微机原理.docx
- 文档编号:17773575
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:17
- 大小:168.12KB
微机原理.docx
《微机原理.docx》由会员分享,可在线阅读,更多相关《微机原理.docx(17页珍藏版)》请在冰点文库上搜索。
微机原理
1.已知CPU利用8255A芯片的B口向某数模转换口输出数字信号,让数模转换器将其转换成模拟信号,8255A的4个端口号分别为:
300H,301H,302H,303H,请设计一个完整的程序,该程序运行后能够由数模转换器的模拟信号输出端输出一个锯齿波。
(注意程序的完整性,同时还要注意8255A芯片的初始化。
)(10分)
(8255A的控制字格式见附图)
解:
实现功能的程序如下:
CODESSEGMENT
ASSUMECS:
CODES
START:
MOVDX,303H
MOVAL,10000000B;全工作于方式0,输出。
OUTDX,AL
MOVDX,301H
MOVAL,00H
LOOP1:
OUTDX,AL
INCAL
LOOPLOOP1
CODESENDS
ENDSTART
2.8253初始化程序。
要求:
计数器1工作于方式3(方波方式),CLK1接4MHz信号,要求OUT1输出周期为10ms的方波,选择二进制数。
(1)该计数器的方式控制字和计数初值各为多少?
(2)写出能实现上述功能的初始化代码。
设8253的端口地址为200H~203H。
提示:
8253控制字格式见附图:
(10分)
(1)
答:
方式控制字为:
01110110B,计数初值为:
n=40000
(2)程序如下:
MOVDX,203H
MOVAL,76H
OUTDX,AL
MOVAX,40000
MOVDX,201H
OUTDX,AL
XCHGAH,AL
OUTDX,AL
3.计算下图中的8255A的端口号和8253A的端口号,并指出它们的端口名称。
(10分)
解:
各端口地址如下:
器件
端口名称
地址编码
8255A
A口
7800H
B口
7802H
C口
7804H
控制口
7806H
8253
计数器0
7A00H
计数器1
7A02H
计数器2
7A04H
控制口
7A06H
4.在由8086构成的最小方式系统中,有一片8259A构成中断控制系统,设片内A0=0时的端口地址用P8259A表示,片内A0=1时的端口地址用P8259B表示,初始化命令字格式如下面给出的附图所示。
(10分)
若执行如下两段程序:
MOVDX,P8259A
MOVAL,00011011B
OUTDX,AL
MOVDX,P8259B
MOVAL,10001000B
OUTDX,AL
MOVAL,00001101B
OUTDX,AL
MOVAL,11000100B
OUTDX,AL
请填空:
1.中断结束方式为自动EOI(自动结束方式)。
2.中断级IR2的中断类型号为8AH。
3.IR1和IR2上有中断请求信号,在IF=1时能否引起中断。
IR1能IR2不能
1、下图中8255A有四个端口,分别为A口、B口、C口和控制口。
8253A芯片也有四个端口,分别为0#口、1#口、2#口和控制口,请你根据下图算出这八个端口的口地址。
(8分)
2、在图7.19中,从CLK1输入的是2MHZ的时钟信号,要求用OUT2输出分频脉冲信号,其信号周期为1秒。
请你实现8253相应端口的初始化。
(5)
3、在图7.19中,8255A的A口只能工作于输出状态,PC6、PC4为系统安排给A口的专用联络信号线,PC4为低电平时,选通打印机,让打印机取走A口的数据;ACK(非)为低电平时,表示打印机已处理了上一次接收到的一个字符,可以再接收数据。
请你完成8255A的初始化。
(5)
4.已在数据段定义一个字节型数据变量BUF,BUF的第一个字节为其后续的有效数据(全是可打印字符)个数,结合图7.19,请你设计一个程序片段,将这些字符送打印机打印。
(12分)
1、(8分)解如下:
8255A各端口的地址如下:
A口:
00E4H
B口:
00E5H
C口:
00E6H
控制口:
00E7H
8253各端口的地址如下:
0号计数器端口:
00F8H
1号计数器端口:
00F9H
2号计数器端口:
00FAH
控制口:
00FBH
上面的端口号只写出有效的二位十六进制数也可以。
2、解:
:
考虑仅用计数器1进变频输出,计数值N=2M/1=2,000,000
显然是不行的,要用二级计数器串联起来变频。
以计数器1的CLK1接初始的2MHZ的周期信号,其输出的OUT1接计数器2的CLK2,取N1=2000,N2=1000,计数器1工作于方式3,计数器2工作于方式2,其初始化程序如下:
MOVDX,0FBH
MOVAL,01110110B;计数器1的方式字
OUTDX,AL
MOVAL,10110010B;计数器2的方式字
MOVDX,0F9H;计数器1的计数初值写入
MOVAX,2000
OUTDX,AL
MOVAL,AH
OUTDX,AL
MOVDX,0FAH;计数器2的计数初值写入
MOVAX,1000
OUTDX,AL
XCHGAL,AH
OUTDX,AL
3、由题意及原理图可知,8255A的A口可以工作于方式0或方式1输出状态,如A口工作于方式0,则需要指令C上口的工作方式为输入这样可以让PC6接收打印机来的应答信号,如让A口工作于方式1输出,则PC6自动具有这个功能。
PC4是自由的,我们可以用C口的置位复位字对其进行控制。
故选定A口工作于方式1输出,得8255A的方式控制字为:
10100000B,初始化程序如下:
MOVDX,0E7H;方式字写入控制口
MOVAL,10100000B
OUTDX,AL
MOVDX,0E7H;将PC4置高电平,打印机不工作
MOVAL,00001001B
OUTDX,AL
4、向打印机输出要打印的字符的程序如下:
XORCX,CX;取字符有效个数赋给CX
MOVCL,BUF
LEASI,BUF
INCSI;SI指向第一个要打印的字符位置。
LOP1:
MOVDX,0E6H;读C口
LOP2:
INAL,DX
TESTAL,40H;60H=01000000B判断打印机空闲否?
JNZLOP2
MOVDX,0E4H;指向A口
MOVAL,[SI];读存储器取字符
INCSI;指向下一个字符
OUTDX,AL
MOVDX,0E7H;将PC4置高电平,打印机不工作
MOVAL,00001001B;输出一个完整的负脉冲
OUTDX,AL;用以控制打印机打印一个字符
MOVAL,00001000B
OUTDX,AL
NOP
NOP
MOVAL,09H
OUTDX,AL
LOOPLOP1
1、已知对某8251串行通讯接口进行初始化时写入的方式控制字为0FEH,送给该8251芯片的发送时钟信号频率为2400Hz,问:
(1)其发送波特率为多少?
(2)若发送字符“A”,请你给出“A”的帧结构的二进制表示形式
注:
8251芯片的方式控制字格式见试卷后的附图部分,设串行信号发送时是高位先发。
10%
解:
0FEH=11111110B
两个停止位,一个偶校验位,八位的数据位,波特率因子为16
起始位为低电平,停止位为高电平.
(1)发送波特率=发送时钟/波特率因子=2400/16=150HZ
(2)“A”的二进制表示的ASCII码为:
01000001B按上面的方式控制字的要求加上附加信息位后,其发送的帧结构为:
(高位先发)001000001011
2、中断号为30H的中断服务子程序INTRP的入口地址为:
2100H:
3100H,写一段程序,将其中断向量装入中断向量表。
10%
解程序如下:
方法一:
MOVAX,2100H
MOVDS,AX
MOVDX,3100H
MOVAL,30H
MOVAH,25H
INT21H
方法二
PUSHDS
MOVAX,0
MOVDS,AX
MOVAX,3100H
MOVBX,30H*4
MOV[BX],AX
MOVAX,2100H
ADDBX,2
MOV[BX],AX
POPDS
方法三:
EDATASSEGMENTAT0
ORG30H*4
DD21003100H
EDATASENDS
3、在IBMPC机的扩展槽上利用8255A和8位的A/D转换器开发数据采集系统如下图所示。
(1)求出8255A芯片的四个端口地址.
本小题说明:
8255A芯片外的三个小圆圈表示接在相应引脚上的信号必须是低电平有效,不表示反相作用.上图中的三个逻辑门电路,分别是与非门及二个或门。
10%
解:
A口、B口、C口、控制口的地址分别为:
81D1H、81D3H、81D5H、81D7H
(2)这里的8位的A/D转换器只有一路模拟信号输入,只要启动该A/D转换器,即可对该路的模拟信号进行采样转换,启动信号为从PC7发出的一个高电平脉冲信号(如图),转换后的信号从8255A的A口读入CPU,从启动转换到转换后的二进制信号从A/D转换器送出要一定的时间,要求CPU采用查询方式从A/D转换器接收一个字节的信息。
请你写一个程序,实现CPU对A/D转换器的启动,实现对PC4的查询操作,当PC4为低电平时,从A口读一个字节的信息到AL。
10%
说明:
本小题做错不扣分,做对加10分。
解:
由题图可知:
A口工作于方式一输入,B口不用,PC4、PC5是一对联络信号线,PC5在本题中不被使用,PC4若为低平,则说明A口的数据为转换后的正确数据是可用的。
PC7用于向A/D转换器输出启动信号。
程序段如下:
MOVDX,81D7H
MOVAL,10110000B;0B0HA口方式一输入,C上口为输出,其它无所谓。
OUTDX,AL;8255A的初始化
MOVAL,0E0H;输入启动信号
OUTDX,AL
MOVAL,0FH
OUTDX,AL
NOP
NOP
MOVAL,0E0H
OUTDX,AL
LOP1:
MOVDX,81D5H
INAL,DX
TESTAL,10H;10H=00010000B
LNZLOP1
MOVDX,81D1H
INAL,DX
1.设某8088微机系统的I/O接口电路的逻辑结构示意如如图A4.1
要求:
(1)按图中的连线,写出8255与8253各可寻址端口的地址号。
(2)完成8253的初始化程序片段,其中8253的0#,1#两个计数器均工作在分频方式下,两级分频后,OUT1的输出脉冲为20Hz的方波。
(CLK0的输入的脉冲频率为2MHz)。
(3)完成8255的初始化程序片段,其中B口及PC0作输入,A口作输出。
(4)该系统的工作过程如下:
首先检测PC0的状态,当PC0=1时,从B口读入待显示数字的ASCII码;然后将读入的代码转换成相应的二进制数,从字型代码表中取出要显示的数字的字型代码,并由A口送出,使7段LED数码管显示相应的数字。
其中,数据段中已将数字0~9对应的字型代码生成一个字型代码表。
放在以TABLE开始的单元中。
DATAREGMENT
TABLEDB40H,79H,24H,30H,19H,12H,02H,78H,00H,10H
DATAENDS
试按以下程序流程图的要求设计一个显示子程序的DISPLAY
(1)8255A各端口地址为:
18H,19H,1AH,1BH
8253各端口地址为:
1CH,1DH,1EH,1FH
(2)求8253的初始化程序片段
这一题要求用8253的计数器1输出一个20Hz的方波信号,而输入的时钟信号为2MHz,显然用一级计数器进行转换是不可能的,要用二级计数器进行级联。
N=2MHz/20Hz=100000,设定,计数器0工作于方式2,计数器1工作于方式3,计数器0的计数初值为1000,计数器1的计数初值为100,两计数器都使用二进制计数,可得两个计数器的工作方式字如下:
0#00110100B写入1FH端口
1#01010110B写入1FH端口
程序如下:
MOVAL,00110100B
OUT1FH,AL
MOVAL,01010110B
OUT1FH,AL
MOVAX,1000;计数器0的计数初值写入1CH端口
OUT1CH,AL
XCHGAH,AL
OUT1CH,AL
MOVAL,100;计数器1的计数初值写入1DH端口
OUT1DH,AL
(3)8255A的初始化程序
由于图A4.1可知,8255A的A口工作于输出状态,B口工作于输入状态,PC0工作于输入状态,输入/输出都要求有锁存功能,所以决定让8255A三个数据口全工作于方式0,这样得到它的工作方式字为:
10010011B写入1BH端口
MOVAL,10010011B
OUT1BH,AL
(4)按下面的流程图设计一个显示子程序DISPLAY
图A4.2程序流程图
TABLEDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
。
。
。
。
。
。
DISPLAYPROCNEAR
WAIT:
INAL,1AH;8255A的C口读入
TESTAL,01H
JZWAIT;若PC0=0,继续查询
INAL,19H;从B口读入要显示的数字的ASCII字符码
ANDAL,0FH;屏蔽高四位
MOVBX,OFFSETTABLE;内存中事先定义的显示代码表
XLAT;换码指令
OUT18H,AL;从A口输出给LED显示器
RET
DISPLAYENDP
2.已知某8086微机系统包括8255A和8253两个可编程接口电路。
其中,8253的3个计数器分别工作在不同的方式下,可以为其它数据采集电路提供脉冲信号。
8255A的PB4
~PB7可用于检测按键开关的位置,PA0~PA3根据PB输入的开关K0~K3的状态决定是否点亮LED0~LED3各个指示灯。
设系统所要求的有关硬件连线如图A5.1所示
试完成:
(1)将8255A,8253中各个可寻址端口的地址编填入表A5.2中。
器件
端口名称
地址编码
8255A
A口
7800H
B口
7802H
C口
7804H
控制口
7806H
8253
计数器0
7A00H
计数器1
7A02H
计数器2
7A04H
控制口
7A06H
要注意地址线A9的作用。
(2)按图中8255A的A口和B口的连接方式,写出其接口的初始化及I/O处理子程序CHECK的片段。
要求:
初始化结束后各LED灯全部熄灭;当CPU调用I/O处理了程序CHECK时,若任一开关K断开,则相应的LED不亮;K闭合则相应序号的LED点亮。
解:
都用方式0,可以保证输入/输出都有数据缓冲功能,A口工作于方式0输出,
B口工作于方式0输入,8255A的工作方式字为:
10000010B,其初始化程序为:
MOVAL,10000010B;方式字写入控制口。
MOVDX,7806H
OUTDX,AL
MOVDX,7800H;向四个LED管送出低电平0
MOVAL,0;(CPU向A口送出全0)
OUTDX,AX;四灯全不亮,注意电路接法
实现题目要求的程序功能段如下:
CHECKPROCNEAR
MOVDX,7802H;从B口读开关状态
INAL,DX
MOVCL,4;将读到的高四位值送AL的低四位
SHRAL,CL
NOTAL;开关接通时相应的信号为低电平,
MOVDX,7800H;而点亮LED要高电平。
OUTDX,AL
RET
CHECKENDP
(3)设已知,外部时钟频率F,试按下述要求完成该8253各个计数器的初始化片段:
计数器0的计数初值为1000,工作在方式2
计数器1的计数初值为100,工作在方式1
计数器2的计数初值为10,工作在方式3
略
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理