MOV AL ,03H ;使DTR和RTS均为低电平 OUT DX ,AL MOV DX ,2F9H MOV AL ,03H
OUT DX ,AL ;写中断允许寄存器
从上面的初始化程序可以看到,首先写除数锁存器。为了写除数,首先写通信线控制寄存器,使DLAB=l,然后写入16位的除数000CH,即十进制数12。由于加在XTAL1上的时钟频率为1.8432MHZ,故波特率为9600波特。
分频系数=基准时钟÷(16′波特率)
3.试编写使8251A可以发送数据的一段程序。将8251A设定为异步传送方式,波特率系数为64,采用偶校验,1位停止位,8位数据位。8251A与外设有握手信号,采用查询方式发送数据。假设8251A的数据端口地址为04AOH,控制口地址为04A2H。(12分)
MOV DX,2F3H MOV AL,80H OUT DX,AL ;8255A初始化 MOV DX,2F0H MOV AL,3FH
OUT DX,AL ;向PA口输出0字符代码 但在8251A初始化之前应用软件方法使8251A复位。
17
4. 某一A/D变换器的电原理图及主要工作时序如下图所示。
≥1us 启动变换开始 D0~D7 STA8 VA EOC 模拟信 STA变换结束 号输入 位 EOC 换时间
A/
电原理图 工作时序
① 若分配给8255A的端口地址为2F0H~2F3H,试将此A/D变换器通过8255A与PC/XT系统总线连接起来。
② 编写包括8255A初始化在内的对模拟输入信号采集变换一次的程序,并将变化后的数据存入DL。
18
答: ① A/D变换器通过8255A与PC/XT系统总线的连接:
② 编写包括8255A初始化在内的对模拟输入信号采集变换一次的程序,并将变化后的数据存入DL。 MOV DX,2F3H MOV AL,10010001B
OUT DX,AL ;8255A初始化 MOV DX,2F1H MOV AL,00H
OUT DX,AL ;PB0=STRAT=0 MOV AL,01H
OUT DX,AL ;PB0=STRAT=1 NOP
MOV AL,00H
OUT DX,AL ;PB0=STRAT=0 MOV DX,2F2H
WAIT1: IN AL,DX ;读EOC状态 TEST AL,00000001B
JZ WAIT1 ;查询A/D转换结束?
19
MOV DX,2F0H
IN AL,DX ;读A/D转换结果 MOV DL,AL ;存结果
20