器或扩展I/O口时,P0口分时复用为低8位地址总线和双向数据总线。
P1口(1~8脚):P1.0~P1.7统称为P1口,可作为准双向I/O口使用。对于52子系列,P1.0与P1.1还有第二功能:P1.0可用作定时器/计数器2的计数脉冲输入端T2,P1.1可用作定时器/计数器2的外部控制端T2EX。
P2口(21~28脚):P2.0~P2.7统称为P2口,一般可作为准双向I/O口使用;在接有片外存储器或扩展I/O口且寻址范围超过256字节时,P2口用作高8位地址总线。
P3口(10~17脚):P3.0~P3.7统称为P3口。除作为准双向I/O口使用外,还可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。P3口的第二功能如表1-1所示。 引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 RxD TxD _________第二功能 串行数据的输入端 串行数据的输出端 外部中断0的中断请求信号输入端 外部中断1的中断请求信号输入端 定时器/计数器T0的外部计数信号输入端 定时器/计数器T1的外部计数信号输入端 INT0 _________INT1 T0 T1 5
P3.6 WR ____外部数据存储器和外部I/O口的写控制信号 P3.7 RD ____外部数据存储器和外部I/O口的读控制信号 表1-1 ④ 控制信号线
ALE(引脚30)——地址锁存控信号,输出。
PSEN(引脚29)——外部程序存储器读选通信号,输出。 EA(引脚31)——内、外程序存储器选择控制端,输入。 RESET(引脚9)——复位信号。
(2)数码管显示
____________
采用共阴极8位数码管来显示键盘输入的键值。 数码管字型编码表
6
(3)4×4键盘输入
键盘输入有“1,2,3,4,5,6,7,8,9,A,B,C,D,E,F”这些键值,“A”键的功能是流水灯循环显示。
键盘所有键的特征码
按键 0 特征码 77 键值 00 按键 8 特征码 7D 键值 08 7
1 2 3 4 5 6 7
B7 D7 E7 7B BB DB EB 01 02 03 04 05 06 07 9 A B C D E F BD DD ED 7E BE DE EE 09 0A 0B 0C 0D 0E 0F (4)流水灯显示
流水灯显示方式:开始全部点亮,按下“LED---”键后,点亮第一个LED,然后从左向右依次循环点亮。
六、源程序
;--------------键盘控制数码管显示及LED点亮程序--------- org 0000h ajmp main
8
ORG 0BH JMP TIM0 main:
mov dptr,#tab ;将表头位置送入DPT mov 30h,#0ffh ;将30显示单元清零 mov 31h,#0ffh ;将30显示单元清零 mov 32h,#0ffh ;将30显示单元清零 mov 33h,#0ffh
mov 34h,#0ffh ;将30显示单元清零 mov 35h,#0ffh mov 36h,#0ffh mov 37h,#0ffh
mov 39h,#0ffh ;将30显示单元清零
loop: jb f0,kk1 ;f0若等于一则跳到KK1处 mov 39h,#00h
kk2:lcall display ;调用显示程序 lcall key ;调用键盘描程序 cpl a ;将A的值取反 jz loop ;无键按下则返回 mov a,38h ;有键按下将键值送入ACC cjne a,#0ah,norp ;若A键未按下则返回到LOOP处 setb f0 ;若A键按下则将F0值1
9