2.2独立式键盘
在P1口上接按钮,作为独立式键盘,如图2.2.1所示:
图2.2.1
由于只用到了四个键,所以只安装了四个开关,从上往下依次为S1、S2、S3、S4
5
2.3数码管
数码管作为显示输出,装有两片74HC573芯片作为P3.6与P3.7开关来控制段码与位码的输入,如图2.3.1
图2.3.1
2.4串口通信
串口通信应用串口中断,在PC机上输出信号,这里只放出仿真用的端口,如图2.4.1
图2.4.1
6
2.5外部中断
外部中断使用的是外部中断0,按钮为P2.7,如图2.5.1所示:
图2.5.1
另外,本作品使用的是实验室中的试验箱,在此不再给出实物图。
3.软件应用
本作品功能简单,按键按下,数码管上显示相应数字并输出到PC机上,可同时按下多个按键并同时显示,但只输出到PC上一次,外部中断时有保留当前数字的功能并使得数码管全部显示“A”,当外部中断结束,数字会恢复原来的样子。
3.1程序初始化
设置外部中断,串口通信等初始参数。 ORG
0000H
7
LJMP ORG LJMP
MAIN
0003H ;外部中断0入口 EINT0
ORG 0030H
SCON,#50H ;设置串口工作方式
MAIN: MOV
MOV MOV MOV MOV SETB SETB SETB
PCON,#80H ;波特率加倍 TMOD,#20H ;设置计数器工作方式 TH1,#0FAH ;设置波特率 TL1,#0FAH
EX0 ;打开中断0 EA ;中断总开关打开 TR1 ;计数器工作
TI
;TI清零
CLR
CLR
IT0 ;中断0为跳沿触发方式
3.2主程序及其说明
主程序运行时查验是否有按键按下,如果按下,则接通相应子程序向数码管发送数据并向PC机发送数值。
LP:
JB P1.0,L2 ;如果按键1没有按下,则跳转到L2
LCALL DM ;载入子程序DM
MOV P0,#06H ;送段码 LCALL WM ;载入子程序WM MOV P0,#0FEH ;送位码 LCALL DELAY ;延时 MOV MOV JNB CLR
A,#31H ;送31H到A SBUF,A ;发送数据 TI,$ TI
8
L2: JB P1.1,L3 LCALL DM
MOV P0,#5BH
LCALL WM MOV P0,#0FDH LCALL DELAY MOV A,#32H MOV SBUF,A JNB TI,$ CLR
TI
L3: JB P1.2,L4 LCALL DM MOV P0,#4FH
LCALL WM
MOV P0,#0FBH LCALL DELAY MOV A,#33H MOV SBUF,A JNB TI,$ CLR
TI
L4:
JB P1.3,LP
LCALL DM MOV P0,#66H LCALL WM MOV P0,#0F7H LCALL DELAY MOV A,#34H MOV SBUF,A
JNB
TI,$
9