当前位置:首页 > 单片微型计算机与接口技术第4版课后答案第5章
第5章
5.2 8XX51的4个I/O端口的作用是什么?8XX51对外的三总线是如何分配的?
答:P0口是一个8位漏极开路的双向I/O口;P1 、P2、P3口是一个具有内部上拉电阻的8 位双向I/O 口;
当访问外部程序和数据存储器时,P0口被作为低8位地址/数据复用,在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2一般做地址总线,P2 口送出高八位地址。P3口亦作为AT89S52特殊功能(第二功能)使用。
5.4为什么说8XX51能全部作为I/O口使用的仅有p1端口?
答:因为低八位数据与数据线分时使用p0口,p2作为扩展的地址总线,输出高8位地址。P3为双功能口。
5.6 利用8XX51的P1口监测某一按键开关,每按一次,输出一个正脉冲(脉宽随意),画出电路并编出程序。
ORG 0000H AA:CLR P1.0 SETB P1.7 JB P1.7 ,$ SETB P1.0 MOV R2,#0 DAY:NOP NOP DJNZ R2,DAY SJMP AA
当按下p1.7开关,led灯灭一次,松开又变亮
5.8用89c51/89s51并行口设计显示一个数码的电路,是数码循环显示“0”~“F”。
ORG 0000H MOV A,#0FH AA:MOV P1,A ACALL AA SWAP A SJMP ABC AA:MOV R6,250 BB:MOV R7,250 CC:NOP NOP
DJNZ R7,CC DJNZ R6,BB RET END
5.10 用89c51/89s51并行口设计8x8的矩阵键盘并用箭头标明信号的方向。
P1口的八根线接行线,输出行扫描信号,p3的八根线接列线。输入回馈信号。 程序如下: ORG 0000H
AA:MOV P1,#0FFH
MOV P3,#00H ;P1输出1,P3输出0,作为输入位 Mov A,P1 ;读键盘,检测有无键按下 ANL A,#0FFH ;屏蔽P3,检测P1是否全为1 CJNZ A,#0FFH,BB ;P1不全为1,有键按下 SJMP AA ;P1全为1,无键按下,重检测键盘
BB:MOV P3,#0FEH ;有键按下逐行扫描键盘,置扫描初值 CC:MOV B,A ;扫描码暂存于B MOV P1,A ;输出扫描码 DD:MOV B,P1 ;读键盘
ANL A,#0FFH ;屏蔽P3检测P1是否全为1
CJNZ A,#0FFH,DD ;P1不全为1,改行有键按下 MOV A,B ;被扫描行无键按下,准备查下一行 RL A ;置下一行扫描码
CJNZ A,#0EFH,常常;未扫描到最后一行循环 EE:ACALL DELAY;延时去抖动 FF:MOV A,P1 ;在读键盘
ANL A,#0F0H ;屏蔽P3,保留P1 MOV R2,A ;暂存列码
MOV A,B
ANL A,#0FH ;取行扫描码
ORL A,R2 ;行码,列码合为键盘码 GG:MOV B,A;键盘码存于B
LJMP SAM38;转键分析处理程序 DELAY:MOV R3,#0AH DELAY2:MOV R4,#7DH DELAY1:NOP NOP
DJNZ R4,DELAY1 DJNZ R3,DELAY2 RET SAM38: end
共分享92篇相关文档