文档库 最新最全的文档下载
当前位置:文档库 › 串转并转换器1

串转并转换器1

串转并转换器1
串转并转换器1

一、题意分析及解决方案

1、课程设计名称及内容

应用STAR ES598PCI单板开发机系列接口芯片设计一个串转并转换器,熟悉串转并转换原理,掌握使用串并转换芯片扩展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的方式控制字如图所示:

图2 8255的方式控制字

方式0的工作特点

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

①两个8位通道:通道A、B。两个四位通道:通道C高4位和低四位;

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

③输出是锁存的;

④输入是不锁存的;

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

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

图3 置位/复位控制字

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

图4 8255A的技术参数

peripheral port的缩写,

输入最低电压:min -0.5V,max 0.8 V,输入最高电压:2.0 V。输出最低电压:

0.45 V

输出最高电压:2.4 V。

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

表1 8255的基本操作

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)引脚信息

2)功能图和功能表

图6 74HC164功能图

图7 74HC164功能表

H---高电平(稳态)

L---低电平(稳态)

X---高或低

↑-----上升沿

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

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

3、芯片选择发光管

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

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

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

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

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

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

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

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

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

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

三、控制程序设计

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

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

2.程序流程图

8255向74HC164中传串行数据

向8255中置数

开始

8255端口初始化

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

结束

图8 实验电路连接原理图

3、试验源程序

.MODEL TINY

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

Vendor_ID EQU 10EBH ;厂商ID号

Device_ID EQU 8376 ;设备ID号

.STACK 100

.DATA

IO_Bit8_BaseAddress DW ?

msg0 DB 'BIOS不支持访问PCI $'

msg1 DB '找不到Star PCI9052板卡 $'

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

COM_ADD DW 00F3H ;控制口偏移量

PA_ADD DW 00F0H ;PA口偏移量

PB_ADD DW 00F1H ;PB口偏移量

PC_ADD DW 00F2H ;PC口偏移量

.CODE

START: MOV AX,@DATA

MOV DS,AX

NOP

CALL InitPCI

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

MOV DX,COM_ADD

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

OUT DX,AL

START1: MOV DX,PC_ADD

MOV CX,8

T: MOV AL,0FFH

OUT DX,AL

MOV AL,00H

OUT DX,AL

LOOP T

CALL YIDENG

CALL QUANGDENG

CALL YIJIAN

CALL ERJIAN

CALL SANJIAN

CALL SIJIAN

CALL WUJIAN

CALL LIUJIAN

MOV AH,06H

MOV DL,0FFH

INT 21H

JZ START1

JMP Exit

YIDENG PROC NEAR

MOV CX,2

T5: PUSH CX

MOV AL,0FH

OUT DX,AL

MOV AL,0F0H

OUT DX,AL MOV CX,8

T1: MOV AL,0FFH

OUT DX,AL

MOV AL,00H

OUT DX,AL

CALL DL500ms

LOOP T1

POP CX

LOOP T5

RET

YIDENG ENDP

QUANGDENG PROC NEAR

MOV CX,2

T6: PUSH CX

MOV CX,8

T2: MOV AL,0FH

OUT DX,AL

MOV AL,0F0H

OUT DX,AL

CALL DL500ms

LOOP T2

MOV CX,8

T4: MOV AL,0FFH

OUT DX,AL

MOV AL,00H

OUT DX,AL

LOOP T4

POP CX

LOOP T6

RET QUANGDENG ENDP

YIJIAN PROC NEAR

MOV CX,10

T3: MOV AL,0FH

OUT DX,AL

MOV AL,0F0H

OUT DX,AL

CALL DL500ms

MOV AL,00H

OUT DX,AL

MOV AL,0FFH

OUT DX,AL

CALL DL500ms

LOOP T3

RET

YIJIAN ENDP

ERJIAN PROC NEAR MOV CX,5

T7: MOV AL,0FH

OUT DX,AL

MOV AL,0F0H OUT DX,AL

CALL DL500ms MOV AL,00H OUT DX,AL

MOV AL,0FFH

OUT DX,AL

CALL DL500ms MOV AL,00H OUT DX,AL

MOV AL,0FFH

OUT DX,AL

CALL DL500ms

LOOP T7

RET

ERJIAN ENDP SANJIAN PROC NEAR MOV CX,5

T8: PUSH CX

MOV AL,0FH OUT DX,AL

MOV AL,0F0H OUT DX,AL

CALL DL500ms MOV CX,3

T9: MOV AL,00H OUT DX,AL

MOV AL,0FFH

OUT DX,AL

CALL DL500ms LOOP T9

POP CX

RET

SANJIAN ENDP

SIJIAN PROC NEAR MOV CX,5

T10: PUSH CX

MOV AL,0FH OUT DX,AL

MOV AL,0F0H OUT DX,AL

CALL DL500ms MOV CX,4

T11: MOV AL,00H OUT DX,AL

MOV AL,0FFH

OUT DX,AL

CALL DL500ms LOOP T11

POP CX

LOOP T10 RET

SIJIAN ENDP

WUJIAN PROC NEAR MOV CX,5

T12: PUSH CX

MOV AL,0FH OUT DX,AL

MOV AL,0F0H OUT DX,AL

CALL DL500ms MOV CX,5

T13: MOV AL,00H OUT DX,AL

MOV AL,0FFH

OUT DX,AL

CALL DL500ms

POP CX

LOOP T12

RET

WUJIAN ENDP

LIUJIAN PROC NEAR

MOV CX,5

T14: PUSH CX

MOV AL,0FH

OUT DX,AL

MOV AL,0F0H

OUT DX,AL

CALL DL500ms

MOV CX,6

T15: MOV AL,00H

OUT DX,AL

MOV AL,0FFH

OUT DX,AL

CALL DL500ms

LOOP T15

POP CX

LOOP T14

RET

LIUJIAN ENDP

DL500ms PROC NEAR

PUSH AX

PUSH DX

MOV DX,500 ;延时500ms

MOV AH,0FFH ;星研公司提供的软中断 INT 21H

POP DX

POP AX

RET

DL500ms ENDP

InitPCI PROC NEAR

MOV AH,00H

MOV AL,03H

INT 10H ;清屏

MOV AH,0B1H

MOV AL,01H

INT 1AH

CMP AH,0

JZ InitPCI2

LEA DX,msg0

InitPCI1: MOV AH,09H

INT 21H

JMP Exit

InitPCI2: MOV AH,0B1H

MOV AL,02H

MOV CX,Device_ID

MOV DX,Vendor_ID

MOV SI,0

INT 1AH

JNC InitPCI3 ;是否存在Star PCI9052板卡 LEA DX,msg1

JMP InitPCI1

InitPCI3: MOV DI,PCIBAR3

MOV AH,0B1H

MOV AL,09H

INT 1AH ;读取该卡PCI9052基地址

JNC InitPCI4

LEA DX,msg2

JMP InitPCI1

InitPCI4: AND CX,0FFFCH

MOV IO_Bit8_BaseAddress,CX

RET

InitPCI ENDP

ModifyAddress PROC NEAR

ADD COM_ADD,CX

ADD PA_ADD,CX

ADD PB_ADD,CX

ADD PC_ADD,CX

RET

ModifyAddress ENDP

Exit: MOV AH,4CH

INT 21H

END START

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

相关文档