现代微机原理与接口技术 综合练习 Department of Computer Science Engineering 算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 1 综 合 练 习
现代微机原理与接口技术 例1假设有一个4×4的矩阵键盘通过并行接口 芯片8255与微机相连。8255的A口作为输出 ,与键盘的行线相连;B口为输入口,与 键盘列线相连。 设8255A口地址为60H,B口地址为6H,控 制寄存器地址为63H,请编写键盘扫描程序。 Department of Computer Science Engineering 2 算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 2 例1 假设有一个4×4的矩阵键盘通过并行接口 芯片8255与微机相连。8255的A口作为输出 口,与键盘的行线相连;B口为输入口,与 键盘列线相连。 • 设8255A口地址为60H,B口地址为61H,控 制寄存器地址为63H,请编写键盘扫描程序
现代微机原理与接口技术 +5V PAD 0行 PAl 1行 CPU(呼外y PA2 2行 3行 PB0↓ PB1 PB2 PB3 3列 图715825连接非编码接口键盘 Department of Computer Science Engineering 算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 3
现代微机原理与接口技术 ●程序如下: mov al. 82h out 63. al begin: mov al,0;检查是否有键按下 out 60h. al wait n al. 6lh and al. oth cmp al, Ofh jz wait;无键按下,继续等待 Department of Computer Science Engineering 4 算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 4 • 程序如下: mov al, 82h out 63h, al begin: mov al, 0 ;检查是否有键按下 out 60h, al wait: in al, 61h and al, 0fh cmp al, 0fh jz wait ;无键按下,继续等待
现代微机原理与接口技术 Sn movd,4;行数送dl mov al,ofeh;扫描码,0行为0 mov ch,O;键号初值为0 Grow out60h,al;扫描一行 rcl a,1;修改扫描行 mov ah,al;保存下次要扫描的扫描码 a,6lh;读列线状态 and al. ofh cmp al,0mh;是否有列线为0 jnz scol;有列线为0转到scol Department of Computer Science Engineering 「计算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 5 sm: mov dl, 4;行数送dl mov al, 0feh;扫描码,0行为0 mov ch, 0 ;键号初值为0 srow: out 60h, al ;扫描一行 rcl al,1 ;修改扫描行 mov ah, al ;保存下次要扫描的扫描码 in al, 61h ;读列线状态 and al, 0fh cmp al, 0fh ;是否有列线为0 jnz scol ;有列线为0转到scol
现代微机原理与接口技术 adch,4;否则键号+4 mov al,ah;取回行扫描码 dec dl ;行数减1 Jnz row ;继续扫描行 jmp begi scOl rcr a Jnc proce;该列为0,转处理程序 inc ch ;否则键号+1, Jmp scol ;继续查找 proce. Department of Computer Science Engineering 算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 6 add ch, 4 ;否则键号+4 mov al, ah ;取回行扫描码 dec dl ;行数减1 jnz srow ;继续扫描行 jmp begin scol: rcr al, 1 jnc proce ;该列为0,转处理程序 inc ch ;否则键号+1, jmp scol ;继续查找 proce: ……
现代微机原理与接口技术 思考题 如何将上题改成中断方式?假设任意键按下后, 会通过8259的IR5向CPU发中断请求,另外 8255的端口地址是60H~63H,8259的端口地址 是20H~21H,使用74LS138译码器,请修改原图 ,使其满足题目要求,并要给出译码电路。然后 写出相应的键盘扫描程序 Department of Computer Science Engineering 7 算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 7 思考题 如何将上题改成中断方式?假设任意键按下后, 会通过8259的IR5向CPU发中断请求,另外, 8255的端口地址是60H~63H,8259的端口地址 是20H~21H,使用74LS138译码器,请修改原图 ,使其满足题目要求,并要给出译码电路。然后 写出相应的键盘扫描程序
+5V AOAO 0行 Al Al PPPP 2A1 行 A2 行 255 3行 CPU PBO 0列 PB1 AO AO PB 2 PB3 3列 NT/NTR PPICS_PC7 去138 8259 INTRCS IR5 Department of Computer Science Engineering 计算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 8 & & PC7 IR5 去138 CS PPICS A0 A1 A0 A1 8259 INT INTR CS INTRCS A0 A0
现代微机原理与接口技术 138译码电路部分 15 A A Y 0 2 14 INTRCS B74LS13813 去8259 A 7 12 PPICS 5 去8255 32B 9 2A aen 7 Department of Computer Science Engineering 算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 9 Y0 Y7 A B C G2B G2A G1 15 14 13 12 11 10 9 7 1 2 3 4 5 6 74LS138 A5 A6 A7 A8 A9 AEN’ INTRCS PPICS 去8255 去8259 138译码电路部分
现代微机原理与接口技术 例2频率计数器设计 用8254计数外来信号频率fN(fLk=MHz)。 用TC1产生基准时钟间隔,采用方式1;TC0采用方 式0对外来信号计数;OUT1控制GATE0来停止计数。 TRG EOC+ DOD CLKO 信号 RD GATE OUTO WR CLKI CLK CS GATEI Al OUTI CLK2 AO GATE2 OU2 返回下页。scmn返 页 cience Engineering 10 算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 10 例2.频率计数器设计 用8254计数外来信号频率fIN(fCLK=1MHz)。 用T/C1产生基准时钟间隔,采用方式1;T/C0采用方 式0对外来信号计数;OUT1控制GATE0来停止计数。 CLK0 GATE0 OUT0 CLK1 GATE1 OUT1 CLK2 GATE2 OUT2 D0~D7 A1 A0 RD WR CS 信号 fCLK TRG EOC 返回下页 返回下二页