(完整word版)微机原理习题1_第1页
(完整word版)微机原理习题1_第2页
(完整word版)微机原理习题1_第3页
(完整word版)微机原理习题1_第4页
(完整word版)微机原理习题1_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1. 设8255A的A 口、B 口、C 口和控制字寄存器的端口地址分别为 80H、 82H、84H 和 86H。要求A 口工作在方式0输出,B 口工作在方式0输入,C 口高4位输入,低 4位输出,试编写8255A的初始化程序。MOV AL ,10001010B;方式控制字OUT 86H,AL2. 8255A的A 口、B 口、C 口和控制字寄存器的端口地址分别为 80H、82H、84H和86H,要求PC4输出高电平,PC5输出低电平,PC6输出一个正脉冲, 试写出完成这些功能的指令序列。MOVAL,00001001B;PC4输出高电平OUT86H,ALMOVAL,00001010B;PC5输出低

2、电平OUT86H,ALMOVAL,000001100B;PC6先输出低电平OUT86H,ALMOVAL,00001101B;PC6再输出高电平OUT86H,ALMOVAL,00001100B;PC6再输出低电平,形成一个正脉冲OUT86H,AL3. 8255A的口地址为 80H83H,8253的口地址为 84H87H,(1 )若A 口接8个开关K7K0,B 口接8个指示灯LED 7LED0,当开 关合上时相应的指示灯亮,断开时灯灭,要求每隔0.5s检测一次开关状态,并在LED上显示出 来,试画出硬件连线图,编写实现这种功能的程序。(2)若把接在端口 A上的开关去掉,要求接在端口 B上的指示灯轮

3、流熄灭, 每只灯熄灭1秒钟,请编程实现这种功能。答:(1 ) 8255A : A 口输入,B 口输出8253: 2MHz/2Hz = 1000000通道0工作于方式 2,取N0= 1000通道1工作于方式0,取N1 = 999,即得OUT1每0.5秒中断一次。 本题用8253定时中断,中断处理时检测开关状态,并点亮相应的LED设8259A已初始化,主程序如下:MOV AX, SEG INTR ;形成中断矢量表MOV DS, AXMOV DX, OFFSET INTRMOV AL, NMOV AH, 25HINT 21HMOV AL, 10010000B; 8255 初始化OUT 83H, AL

4、MOV AL, 00110101B ;通道 0 方式 2,BCD 计数OUT 87H, ALMOV AL, 00H;置初值 1000OUT 84H, ALMOV AL, 10HOUT 84H, ALMOV AL, 01110001B ;通道 1 方式 0 , BCD 计数OUT 87H, ALMOV AL, 99H;置初值 999OUT 85H, ALMOV AL, 09HOUT 85H, ALSTIAGAIN:HLTJMP AGAIN中断服务程序:INTR: PUSH AXSTIIN AL, 80H ;检测开关,合上为 0NOT AL ;取反OUT 81H, AL ;点亮相应LED (合上)

5、MOV AL, 01110001B ;通道 1 方式 0 , BCD 计数OUT 87H, ALMOV AL, 99H;置初值 999OUT 85H, ALMOV AL, 09HOUT 85H, ALCLIMOV AL, 20H;普通 EOI 命令OUT 20H, ALPOP AXIRET2)8255A : B 口输出8253:通道0工作于方式 2,取 N0 = 2000通道1工作于方式3,取N1 = 1000,即得OUT1频率为1Hz (周期为 1秒)的方波,接到8259A的IRi,边沿触发中断请求。主程序如下:MOV AX, SEG INTR ;形成中断矢量表MOV DS, AXMOV D

6、X, OFFSET INTRMOV AL, NMOV AH, 25HINT 21HMOV AL, 10000000B ; 8255 初始化OUT 83H, ALMOV AL, 00110101B;通道 0 方式 2 , BCD 计数OUT 87H, ALMOV AL, 00H;置初值 2000OUT 84H, ALMOV AL, 20HOUT 84H, ALMOV AL, 01110111B ;通道 1 方式 3 , BCD 计数OUT 87H, ALMOV AL, 00H;置初值 1000OUT 85H, ALMOV AL, 10HOUT 85H, ALMOV AL, 0FEH;熄灭 LED

7、0OUT 81H, ALSTIGOON:HLTJMP中断服务程序如下:INTR: PUSH AXSTIROL AL, 1; AL左循环移位1位OUT 81H, AL ;点亮下一位 LEDCLIMOV AL, 20HOUT 20H, AL ;普通EOI结束命令POP AXIRET硬件连接图如下:DDRESETRESETK7RD-RDWR丽A,PB7LED?GYoCS-LED。+5VCGATECSA.BGATEAACLK:I再2MHz丽RDOUToCL/WRWRd7-dOUT18259A IRA1州PA0PB,侖=34. 设8255A的口地址为300H303H , A 口接4个开关K3K0 , B

8、 口接一 个七段LED显示器,用来显示4个开关所拨通的16进制数字0F,开关都 合上时,显示0,都断开时显示F,每隔2秒钟检测一次,试画出硬件连线图, 并编写实现这种功能的程序。与上题思路相同8255A : A 口方式 0输入,B 口方式0输出,端口地址 300H303H8253:用于2秒定时,端口地址为 304H307H2MHz/0.5Hz = 4000000通道0工作于方式 2,取N0 = 4000通道1工作于方式0,取N1 = 999,即得OUT1每2秒中断一次。本题用8253定时中断,中断处理时检测开关状态,并点亮相应的LED共阴极LED上段!nHW码表lA进制散孑P七段显示码 1卜六

9、进制数了七段械示码03FII87FH106H96FH25BHA771 3P4FHb7CH4仙C391156DUd5EH67D1JL79117C7TIF71H假设8259A已初始化,主程序如下:TABLE DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H;七段码表格DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71HMOV AX, SEG INTR ;形成中断矢量表MOV DS, AXMOV DX, OFFSET INTRMOV AL, NMOV AH, 25HINT 21HMOV AL, 10010000B; 8255 初始化MO

10、V DX,303HOUT DX, ALMOV AL, 00110101B ; 8253初始化,通道 0方式2,BCD计数MOVDX,307HOUT DX,ALMOV AL, 00H置初值4000HMOVDX,304HOUT DX, ALMOV AL, 40HOUT DX, ALMOV AL, 01110001B ;通道 1 方式 0 , BCD 计数MOV DX , 307HOUT DX, ALMOV AL, 99H;置初值 999MOV DX , 305HOUT DX, ALMOV AL, 09HOUT DX, ALSTIAGAIN:HLTJMP AGAIN中断服务程序:INTR: PUSH

11、 AXSTIMOV DX , 300HIN AL, DX;检测开关,合上为 0AND AL,0FH ;只保留低4位PA 3PA 0MOVBX , OFFSET TABLEXLATTABLEMOVDX , 301HOUT DX , AL ;点亮LED,显示数字MOV AL, 01110001B ;通道 1 方式 0 , BCD 计数 MOV DX , 307HOUT DX , ALMOV AL, 99H;置初值 999MOV DX , 305HOUT DX , ALMOV AL, 09HOUT DX , ALCLIMOV AL, 20H;普通 EOI 命令OUT 20H, ALPOP AXIRE

12、T5. 利用8255A和ADC0809等芯片设计 PC机上的A/D 转换卡,设8255A的口地址为3C0 H 3C3H,要求对8个通道各采集1个数据,存放到数据段中以D_BUF为始址的 缓冲器中,试完成以下工作:(1 )画出硬件连接图。(2)编写完成上述功能的程序。答:(1)(2 ) AD_SUB PROC NEARMOVCX,8;CX作数据计数器MOVBL,00H;模拟通道号存在 BL中LEADI,D_BUF;缓冲区NEXT_IN :MOVDX,3C2H;8255A端口 C 地址MOVAL,BLOUTDX ,AL;输出通道号MOVDX,3C3H;指向控制口MOVAL,00000111B;PC

13、3 置 1OUTDX ,AL;送出开始启动信号NOP;延时NOPNOPMOVAL,00000110B;PC3复位OUTDX ,AL;送出结束启动信号MOVDX,3C2H;C 口NO_CONV:IN ,AL ,DX;读入C 口内容TESTAL,80H;PC7,EOC 信号JNZ NO_CONV;PC7=1,未开始转换,等待NO_EOC :IN AL,DX;PC7=0,已启动转换TESTAL,80H;再查PC7JZNO_EOC;PC7=0,转换未结束MOVDX ,3C0H;PC7=1,转换结束,口INAL,DX;读入数据MOVDI,AL;存入缓冲区INCDIINCBL;指向下个通道,等待DX指向A

14、LOOP NEXT INRETAD SUB ENDP6. 试利用ADC0809 , 8253和8259A等芯片设计8通道A/D转换电路。系统中用8253作定时器,采用中断方式控制采样率,采样率为500Hz。设8253的 通道0输入时钟脉冲为 2MHz,输出端OUT0接8259A的IR2 , 8253的口 地址为300H303H , 8259A的口地址为304H和305H , ADC0809的8个输 入通道的口地址为 308H30FH,查询 EOC 信号和状态口地址为 306H ,ADC0809的输入时钟频率为 640KHZ,A/D转换的结果依次存入数据段中以 BUFFER为始址的内存中,从通道

15、0开始先存入各通道的第一个数据,再存放 第二个数据,采集10秒钟后停止工作。要求:(1 )画出硬件连线图,可以不画具体的译码电路。(2 )编写8253, 8259A (只需写入中断屏蔽字)的初始化程序及采集8路模拟信号的中断服务程序。答: (1 )(2 )因为8253的时钟输入频率为2MHz,而要求的采样频率f=500Hz,即 用8253定时,每隔 2ms中断一次,因此 8253的分频次数(时间常数)N=2MHz/500Hz=4000。采集 10 秒钟,共采集 10s/2ms=5000 次,即 8253 中 断次数为5000次。DATA SEGMENTBUFFER DB 8*5000 DUP

16、(?)DATA ENDS;数据采集子程序8253初始化编程,通道0,方式2 ,先写低字节,后高字节,BCD计数,时间常数4000MOVDX , 303HMOVAL , 00110101BOUTDX,ALMOVDX , 300H;通道0MOVAX , 4000H;时间常数OUTDX,ALMOVAL ,AHOUTDX,AL;8259A设置屏蔽字,仅允许 8259A的IR2和键盘中断,其余禁止MOV AL ,11111001B;屏蔽字MOV DX ,305HOUT DX,AL;向屏蔽寄存器输出屏蔽字;设置数据缓冲区始址到 SI 中,计数初值到BX中,等待中断,每通道采完5000次后结束中断MOVSI

17、,OFFSET BUFFER; SI指向数据缓冲区MOVBX , 5000STI;开中断AGAIN :CMPBX,0JNZAGAINMOV AL ,11111101B;采集完,禁止IR2中断MOVDX,305HOUTDX ,ALMOVAH,4CH;退出中断INT21HADINTENDP;中断服务程序,对每个通道均采集一个数据,存入BUFFERADINTPROCNEARMOVCX , 0008H;设置通道计数器初值MOVDX , 308H;DX指向ADC通道0NEXT :OUTDX,AL;启动一次转换PUSHDX;保存通道号MOVDX , 306H;DX指向状态口POLL :IN AL ,DX;

18、读入EOC状态TESTAL , 80H;EOC ( D7)=0?即开始转换了JNZ 1POLL;非0,循环等待NO_END : IN AL , DX; EOC=0,开始转换TEST AL , 80H;再查EOC 是否为1JZNO_END;EOC=0,等待转换结束POPDX;EOC=1,恢复通道地址IN AL ,DX;读取结果MOVSI,AL;存储到缓冲区INCDX;DX指向下一个通道INCSI;地址指针指向下一个缓冲单元LOOPNEXT;通道计数器减1 ,结果非0则循环DECBX;为0 ,缓冲数据计数器减1MOVAL , 20HMOVDX,304HOUTDX,ALSTI;开中断IRET7. 利用8255A和AD574A设计数据采集系统,输入模拟电压为 0+10V,若 每秒采集100个数据,转换后的数据字存放在 W_BUF开始的缓冲器中,低字节在前,高字 节在后,采满16K字节的数据后停止工作,要求:(1 )画出硬件连线图。;8255A的端口地址PORT_AEQU0F0H;A口地址PORT_BEQU0F1H;B口地址PORT_CEQU0F2H;C口地址PORT_CTLEQU0F3H;控制口地址;8255A控制字:A 口和B 口工作于方式 0 , A 口、B 口和C 口的上

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论