串转并转换器1.docx

上传人:b****3 文档编号:4832749 上传时间:2023-05-07 格式:DOCX 页数:19 大小:151.78KB
下载 相关 举报
串转并转换器1.docx_第1页
第1页 / 共19页
串转并转换器1.docx_第2页
第2页 / 共19页
串转并转换器1.docx_第3页
第3页 / 共19页
串转并转换器1.docx_第4页
第4页 / 共19页
串转并转换器1.docx_第5页
第5页 / 共19页
串转并转换器1.docx_第6页
第6页 / 共19页
串转并转换器1.docx_第7页
第7页 / 共19页
串转并转换器1.docx_第8页
第8页 / 共19页
串转并转换器1.docx_第9页
第9页 / 共19页
串转并转换器1.docx_第10页
第10页 / 共19页
串转并转换器1.docx_第11页
第11页 / 共19页
串转并转换器1.docx_第12页
第12页 / 共19页
串转并转换器1.docx_第13页
第13页 / 共19页
串转并转换器1.docx_第14页
第14页 / 共19页
串转并转换器1.docx_第15页
第15页 / 共19页
串转并转换器1.docx_第16页
第16页 / 共19页
串转并转换器1.docx_第17页
第17页 / 共19页
串转并转换器1.docx_第18页
第18页 / 共19页
串转并转换器1.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

串转并转换器1.docx

《串转并转换器1.docx》由会员分享,可在线阅读,更多相关《串转并转换器1.docx(19页珍藏版)》请在冰点文库上搜索。

串转并转换器1.docx

串转并转换器1

 

一、题意分析及解决方案

1、课程设计名称及内容

应用STARES598PCI单板开发机系列接口芯片设计一个串转并转换器,熟悉串转并转换原理,掌握使用串并转换芯片扩展I/O口的实现方法。

设计编写程序,循环点亮8个指示灯瞬间只有一个灯亮。

观察实验结果,验证串并转换数据的正确性。

2、题意需求分析

根据题目给定的内容与要求可得:

本实验需要用到的主要是控制数据输入的芯片、实现串并转换的芯片和用于显示的发光管。

本实验的核心部分是8位移位寄存器74HC164,它可以实现数据的串行输入和并行输出,达到数据从串行转换为并行的目的。

为了方便控制74HC164的输入,考虑运用可编程接口芯片8255连接CPU和74HC164,实现数据的串行输入和CP脉冲的变化。

同时,为了方便观察实验结果,使用74HC164移位寄存器输出接口连接8位发光二极管,显示并行输出结果。

3、解决问题的思路与方法

(1)硬件部分

程序用到的硬件芯片有8255、74HC164、发光二极管:

使用8255作为CPU和移位寄存器之间的接口电路来控制8位串行数据的输入,其本身的接口就可以支持输出的操作。

而且8255的可编程并行接口,具有传输速度快效率高等优点,不需要附加外部电路便可和大多数并行传输数据的外部设备相连,数据的各位同时传送,使用十分方便。

74HC164是8位移位寄存器,当其中一个(或二个)选通串行输入端的低电平禁止进入新数据,并把第一个触发器在下一个时钟脉冲来后复位到低电平时,门控串行输入端(A和B)可完全控制输入数据。

一个高电平输入后就使另一个输入端赋能,这个输入就决定了第一个触发器的状态。

虽然不管时钟处于高电平或低电平时,串行输入端的数据都可以被改变,但只有满足建立条件的信息才能被输入。

时钟控制发生在时钟输入由低电平到高电平的跃变上。

为了减小传输线效应,所有输入端均采用二极管钳位。

时钟(CP)每次由低变高时,数据右移一位,输入到Q0,Q0是两个数据输入端(DSA和DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。

主复位(MR)输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。

此外,选择发光二极管指示灯作为输出设备,发光二极管亮度高、工作电压低、功耗小、微型化、易与集成电路匹配、驱动简单、寿命长、耐冲击、性能稳定。

在电工仪器及控制设备中广泛用作信号、状态指示、数码显示以及各种图形显示等。

(2)软件部分

首先要对8255进行初始化。

将8255的工作方式设定为方式0,使PC口能够进行输入输出操作。

由于移位寄存器需要一个时钟信号控制数据移位,可以用PC口的的一个端口在高、低电平之间转化来编程实现,对某位由低电平跳跃至高电平一次表示一个上升沿时钟信号(电位由低到高的跃变)的输入。

二、硬件设计

1、选择芯片8255

(1)芯片8255在本次实验中的作用

8255主要用作数据的输入和输出接口,将所要执行串并转换的数据接收进来并输出到移位寄存器,通过PC口输出数据和CP时钟信号。

(2)8255的引脚及功能分析

8255是可编程并行接口,内部有3个相互独立的8位数据端口,即A口、B口和C口。

三个端口都可以作为输入端口或输出端口。

A口有三种工作方式:

即方式0、方式1和方式2,而B口只能工作在方式0或方式1下,而C口通常作为联络信号使用。

8255的工作只有当片选CS有效时才能进行。

而控制逻辑端口实现对其他端口的控制。

8255采用40脚双列直插式封装单一+5V电源,全部输入/输出均与TTL电平兼容,为可编程通用并行接口芯片。

它有24条可编程的I/O引脚,与Intel系列微处理器完全兼容,直接的位清0或置1功能,简化了接口控制。

本实验中将8255设置为方式0,PC口作为输入口,与移位寄存器相连,提供需要串并转换的数值和CP脉冲信号。

在方式0下,CPU可以采用无条件读/写方式与8255交换数据。

图1

(3)8255的技术参数

8255A的方式控制字如图所示:

图28255的方式控制字

方式0的工作特点

这种方式通常不用联络信号,不使用中断,三个通道中的每一个都有可以由程序选定作为输入或输出。

其功能为:

①两个8位通道:

通道A、B。

两个四位通道:

通道C高4位和低四位;

②任何一个通道可以作输入/输出;

③输出是锁存的;

④输入是不锁存的;

⑤在方式0时各个通道的输入/输出可有16种不同的组合。

置位/复位控制字如图所示:

图3置位/复位控制字

芯片8255A的技术参数如下图所示:

图48255A的技术参数

标识符

最小

最大

测试条件

输入低电平(VIL)

-0.5V

0.8V

输入高电平(VIH)

2.0V

5V

输出低电平(VOL)DB

0.45V

IOL=2.5mA

输出低电平(VOL)PER

0.45V

IOL=1.7mA

输出高电平(VOH)DB

2.4V

IOH=-400μA

输出高电平(VOH)PER

2.4V

IOH=-200μA

驱动电流

-1.0mA

-4.0mA

EXT=750Ω

VEXT=1.5V

供应电流

120mA

IIL(INPUTLOADCURRENT

±10μA

VIN=0V~5V

IOFL(Outputfloatleakage

±10μA

VOUT=0.45~5V

其中PER为peripheralport的缩写,

输入最低电压:

min-0.5V,max0.8V,输入最高电压:

2.0V。

输出最低电压:

0.45V

输出最高电压:

2.4V。

8255的基本操作如下表所示。

表18255的基本操作

2、芯片选择74HC164

(1)芯片74HC164在本次实验中的作用

移位寄存器74HC164在本实验中主要用来接收接口电路传递来的串行数据并将其并行输出。

(2)芯片74HC164的功能分析

串并转换原理:

把若干个触发器串接起来,就可以构成一个移位寄存器。

数据从串行输入端输入,左边触发器的输出作为右邻触发器的数据输入。

假设移位寄存器的初始状态为00000000,现将数码D7D6D5D4D3D2D1D0(11010001)从高位(D7)至低位依次送到D0端,经过第一个时钟脉冲后,Q0=D7。

由于跟随数码D7后面的数码是D6,则经过第二个时钟脉冲后,即Q1=D7,Q0=D6。

依此类推,可得8位右向移位寄存器的状态。

输入数码依次地由低位触发器移到高位触发器,作右向移动。

经过8个时钟脉冲后,8个触发器的输出状态Q7Q6Q5Q4Q3Q2Q1Q0与输入数码D7D6D5D4D3D2D1D0相对应。

这样,就可将串行输入的数码转换为并行输出的数码。

(3)芯片74HC164的技术参数

1)引脚信息

 符号

 引脚

 说明

 DSA

 1

 数据输入

 DSB

 2

 数据输入

 Q0~Q3

 3~6

 输出

 GND

 地(0V)

 CP

 8

 时钟输入(低电平到高电平边沿触发)

 /MR

 9

 中央复位输入(低电平有效)

Q4~Q7

10~13

输出

VCC

14

正电源罗

图574HC164引脚图

2)功能图和功能表

图674HC164功能图

图774HC164功能表

H---高电平(稳态)

L---低电平(稳态)

X---高或低

↑-----上升沿

Q0,Q1⋯Q7----在CLK时钟上升沿到来之后,寄存器输出的稳态值。

Q0n,Q1n⋯Q7n----在CLK时钟上升沿到来之前,寄存器输出的稳态值。

3、芯片选择发光管

(1)发光二极管在实验中的作用

LED发光二极管在本实验中的作用是显示移位寄存器中八个触发器的状态,显示串行数据移位后输出的结果。

(2)发光二极管的功能分析

共阳极发光管和共阴极发光管的区别:

共阳极公共端接阳极,低电平有效(灯亮),共阳极数码管内部发光二极管的阳极(正极)都联在一起,此数码管阳极(正极)在外部只有一个引脚。

共阴极公共端接阴极,高电平有效(灯亮),共阴极数码管内部发光二极管的阴极(负极)都联在一起,此数码管阴极(负极)在外部只有一个引脚。

本实验中选择共阴极发光二极管。

(3)发光二极管的技术参数

发光二极管的压降一般为1.5~2.0V,其工作电流一般取10~20mA为宜。

4.硬件总逻辑图及其说明

三、控制程序设计

1.控制程序设计思路说明

本实验是利用控制程序通过改变输出的数据来控制灯的闪烁量及闪烁次序,8255A设置为方式0,因此关键在于通过8255A将原始的数据通过PC口传达个74HC164,即串转并转换器。

在实验中8255A的PA和PB口都用做输入,PC口用作输出数据,74HC164芯片相连,提供数据输入。

2.程序流程图

8255向74HC164中传串行数据

向8255中置数

开始

8255端口初始化

74HC164移位,并行输出数据到发光二极管

结束

图8实验电路连接原理图

3、试验源程序

.MODELTINY

PCIBAR3EQU1CH;8位I/O空间基地址(它就是实验仪的基地址,也为DMA&32BITRAM板卡上的8237提供基地址)

Vendor_IDEQU10EBH;厂商ID号

Device_IDEQU8376;设备ID号

.STACK100

.DATA

IO_Bit8_BaseAddressDW?

msg0DB'BIOS不支持访问PCI$'

msg1DB'找不到StarPCI9052板卡$'

msg2DB'读8位I/O空间基地址时出错$'

COM_ADDDW00F3H;控制口偏移量

PA_ADDDW00F0H;PA口偏移量

PB_ADDDW00F1H;PB口偏移量

PC_ADDDW00F2H;PC口偏移量

 

.CODE

START:

MOVAX,@DATA

MOVDS,AX

NOP

CALLInitPCI

CALLModifyAddress;根据PCI提供的基地址,将偏移地址转化为实地址

MOVDX,COM_ADD

MOVAL,80H;PA、PB、PC为基本输出模式

OUTDX,AL

START1:

MOVDX,PC_ADD

MOVCX,8

T:

MOVAL,0FFH

OUTDX,AL

MOVAL,00H

OUTDX,AL

LOOPT

CALLYIDENG

CALLQUANGDENG

CALLYIJIAN

CALLERJIAN

CALLSANJIAN

CALLSIJIAN

CALLWUJIAN

CALLLIUJIAN

MOVAH,06H

MOVDL,0FFH

INT21H

JZSTART1

JMPExit

YIDENGPROCNEAR

MOVCX,2

T5:

PUSHCX

MOVAL,0FH

OUTDX,AL

MOVAL,0F0H

OUTDX,AL

MOVCX,8

T1:

MOVAL,0FFH

OUTDX,AL

MOVAL,00H

OUTDX,AL

CALLDL500ms

LOOPT1

POPCX

LOOPT5

RET

YIDENGENDP

QUANGDENGPROCNEAR

MOVCX,2

T6:

PUSHCX

MOVCX,8

T2:

MOVAL,0FH

OUTDX,AL

MOVAL,0F0H

OUTDX,AL

CALLDL500ms

LOOPT2

MOVCX,8

T4:

MOVAL,0FFH

OUTDX,AL

MOVAL,00H

OUTDX,AL

LOOPT4

POPCX

LOOPT6

RET

QUANGDENGENDP

YIJIANPROCNEAR

MOVCX,10

T3:

MOVAL,0FH

OUTDX,AL

MOVAL,0F0H

OUTDX,AL

CALLDL500ms

MOVAL,00H

OUTDX,AL

MOVAL,0FFH

OUTDX,AL

CALLDL500ms

LOOPT3

RET

YIJIANENDP

ERJIANPROCNEAR

MOVCX,5

T7:

MOVAL,0FH

OUTDX,AL

MOVAL,0F0H

OUTDX,AL

CALLDL500ms

MOVAL,00H

OUTDX,AL

MOVAL,0FFH

OUTDX,AL

CALLDL500ms

MOVAL,00H

OUTDX,AL

MOVAL,0FFH

OUTDX,AL

CALLDL500ms

LOOPT7

RET

ERJIANENDP

SANJIANPROCNEAR

MOVCX,5

T8:

PUSHCX

MOVAL,0FH

OUTDX,AL

MOVAL,0F0H

OUTDX,AL

CALLDL500ms

MOVCX,3

T9:

MOVAL,00H

OUTDX,AL

MOVAL,0FFH

OUTDX,AL

CALLDL500ms

LOOPT9

POPCX

LOOPT8

RET

SANJIANENDP

SIJIANPROCNEAR

MOVCX,5

T10:

PUSHCX

MOVAL,0FH

OUTDX,AL

MOVAL,0F0H

OUTDX,AL

CALLDL500ms

MOVCX,4

T11:

MOVAL,00H

OUTDX,AL

MOVAL,0FFH

OUTDX,AL

CALLDL500ms

LOOPT11

POPCX

LOOPT10

RET

SIJIANENDP

WUJIANPROCNEAR

MOVCX,5

T12:

PUSHCX

MOVAL,0FH

OUTDX,AL

MOVAL,0F0H

OUTDX,AL

CALLDL500ms

MOVCX,5

T13:

MOVAL,00H

OUTDX,AL

MOVAL,0FFH

OUTDX,AL

CALLDL500ms

LOOPT13

POPCX

LOOPT12

RET

WUJIANENDP

LIUJIANPROCNEAR

MOVCX,5

T14:

PUSHCX

MOVAL,0FH

OUTDX,AL

MOVAL,0F0H

OUTDX,AL

CALLDL500ms

MOVCX,6

T15:

MOVAL,00H

OUTDX,AL

MOVAL,0FFH

OUTDX,AL

CALLDL500ms

LOOPT15

POPCX

LOOPT14

RET

LIUJIANENDP

DL500msPROCNEAR

PUSHAX

PUSHDX

MOVDX,500;延时500ms

MOVAH,0FFH;星研公司提供的软中断

INT21H

POPDX

POPAX

RET

DL500msENDP

InitPCIPROCNEAR

MOVAH,00H

MOVAL,03H

INT10H;清屏

MOVAH,0B1H

MOVAL,01H

INT1AH

CMPAH,0

JZInitPCI2

LEADX,msg0

InitPCI1:

MOVAH,09H

INT21H

JMPExit

InitPCI2:

MOVAH,0B1H

MOVAL,02H

MOVCX,Device_ID

MOVDX,Vendor_ID

MOVSI,0

INT1AH

JNCInitPCI3;是否存在StarPCI9052板卡

LEADX,msg1

JMPInitPCI1

InitPCI3:

MOVDI,PCIBAR3

MOVAH,0B1H

MOVAL,09H

INT1AH;读取该卡PCI9052基地址

JNCInitPCI4

LEADX,msg2

JMPInitPCI1

InitPCI4:

ANDCX,0FFFCH

MOVIO_Bit8_BaseAddress,CX

RET

InitPCIENDP

ModifyAddressPROCNEAR

ADDCOM_ADD,CX

ADDPA_ADD,CX

ADDPB_ADD,CX

ADDPC_ADD,CX

RET

ModifyAddressENDP

Exit:

MOVAH,4CH

INT21H

ENDSTART

PS:

应该有调试过程,如何解决问题,总结和收获,不足,改进。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2