现代微机原理与接口技术综合练习

现代微机原理与接口技术综合练习

ID:11406590

大小:279.00 KB

页数:36页

时间:2018-07-11

现代微机原理与接口技术综合练习_第1页
现代微机原理与接口技术综合练习_第2页
现代微机原理与接口技术综合练习_第3页
现代微机原理与接口技术综合练习_第4页
现代微机原理与接口技术综合练习_第5页
资源描述:

《现代微机原理与接口技术综合练习》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、综合练习1例1假设有一个4×4的矩阵键盘通过并行接口芯片8255与微机相连。8255的A口作为输出口,与键盘的行线相连;B口为输入口,与键盘列线相连。设8255A口地址为60H,B口地址为61H,控制寄存器地址为63H,请编写键盘扫描程序。23程序如下:moval,82hout63h,albegin:moval,0;检查是否有键按下out60h,alwait:inal,61handal,0fhcmpal,0fhjzwait;无键按下,继续等待4sm:movdl,4;行数送dlmoval,0feh;扫描码,0行为0movch,0;键号初值为0srow:out6

2、0h,al;扫描一行rclal,1;修改扫描行movah,al;保存下次要扫描的扫描码inal,61h;读列线状态andal,0fhcmpal,0fh;是否有列线为0jnzscol;有列线为0转到scol5addch,4;否则键号+4moval,ah;取回行扫描码decdl;行数减1jnzsrow;继续扫描行jmpbeginscol:rcral,1jncproce;该列为0,转处理程序incch;否则键号+1,jmpscol;继续查找proce:……6思考题如何将上题改成中断方式?假设任意键按下后,会通过8259的IR5向CPU发中断请求,另外,8255的端口地

3、址是60H~63H,8259的端口地址是20H~21H,使用74LS138译码器,请修改原图,使其满足题目要求,并要给出译码电路。然后写出相应的键盘扫描程序。7&&PC7IR5CS去138PPICSA0A1A0A18259INTINTRCSINTRCSA0A08Y0Y7ABCG2BG2AG11514131211109712345674LS138A5A6A7A8A9AEN’INTRCSPPICS去8255去8259138译码电路部分9例2.频率计数器设计用8254计数外来信号频率fIN(fCLK=1MHz)。用T/C1产生基准时钟间隔,采用方式1;T/C0采用方式

4、0对外来信号计数;OUT1控制GATE0来停止计数。CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2D0~D7A1A0RDWRCS信号fCLKTRGEOC返回下页返回下二页10思路:T/C1产生10ms的基准时间间隔,然后通过OUT1控制T/C0计数,用fIN=(N-M+1)/10ms*1000Hz公式来计算。其中N是T/C0的初始值,M是计数基准时间到时的T/C0当前计数值。为了辅助控制,我们用8255A口初始化为输出,其中位0为TRG,用来控制计数器1的GATE。8255B口初始化为输入,其中位0接到OUT1脚,通过对该位的不断

5、查询,来确定10ms是否结束,结束后,根据T/C0的计数数值进行计算。11OUTPIO0,0;TRG=0MOVAL,01110010B;T/C1OUT43H,ALMOVAH,2710H;间隔为10ms(2710H=10000)OUT41H,ALMOVAL,AHOUT41H,ALMOVAL,00110000B;T/C0OUT43H,ALMOVAL,00H;初值为65536OUT40H,ALOUT40H,AL;STC产生一个脉冲OUTPIO0,2;TRG=1,开始计数返回下页转上页12S1:INAL,PIO1;循环读EOCJZS1;等到EOC=1才退出循环INAL,

6、40HMOVAH,ALINAL,40HXCHGAH,AL;AX为当前计数值13fIN=(N-M+1)/t=((65536-AX+1)/10)*1000Hz注意:10ms时M应大于0。T/C在0方式时经过一个CLK后才将初值写到CE中。所以实际计数值应该在T/C0的当前值基础上加1。思考1:采用简化电路,用读回命令实现的方法能否很精确?(同时锁存两个计数器的值)。思考2:为得到精确的fIN,需增大时间间隔,在时间间隔内M=0怎么办?转上二页转上页思考3:如何利用8255来设计一个电路,时T/C0最后的计数值就是实际计数值而不需要加1?思考4:可否采用中断方式,硬件

7、怎么改,软件如何写?14例3请设法利用一个8255和若干基本门电路,将8254方式0的计数外部脉冲fclk的个数从n+1转变成n。15步骤1:初始化T/C0,写计数初值步骤2:令PC0=1,利用PC1发一个脉冲(0→1,1→0)步骤3:令PC0=0,PC1=1.&≥1GATE0PC0PC1fclkCLK0PC2PC3WR#PC5CS#A0PC6PC7A1OUT0PA0~PA7D0~D716&≥1GATE0PC0PC1fclkCLK0PC2PC3WR#PC5CS#A0PC6PC7A1OUT0PA0~PA7D0~D7步骤1:初始化T/C0,写计数初值步骤2:令PC0

8、=0,利用PC1发一个脉

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。