您现在的位置: 主页 > MCU > 单片机综合应用 > 单片机与单片机串行通讯+键盘扫描+数码管显示
本文所属标签:
为本文创立个标签吧:

单片机与单片机串行通讯+键盘扫描+数码管显示

来源:网络整理 网络用户发布,如有版权联系网管删除 2018-07-21 

发送的子程序:

MOV TMOD,#20H

MOV SCON,#11010000B

ANL PCON,#01111111B

MOV TH1,#0FDH

MOV TL1,#0FDH

SETB TR1

ALOOP1: INC R7

MOV A,R7

MOV 35H,A

MOV SBUF,#0E1H

JNB TI,$

CLR TI

JNB RI,$

CLR RI

MOV A,SBUF

XRL A,#0E2H

JNZ ALOOP1

ALOOP2: MOV R0,#30H

MOV R7,#06H

MOV R6,#00H

ALOOP3:MOV SBUF,@R0

MOV A,R6

ADD A,@R0

MOV R6,A

INC R0

DJNZ R7,ALOOP3

MOV SBUF,R6

CJNE A,#00H,ALOOP2

RET

接收子程序:

BLOOP1:

XRL A,#0E1H

JNZ BLOOP1

MOV SBUF,#0E2H

RETT: MOV R0,#30H

BLOOP2:JNB RI,$

MOV @R0,A

ADD A,R6

DJNZ R7,BLOOP2

XRL A,R6

JZ END1

MOV SBUF,#0FFH

AJMP RETT

END1:MOV SBUF,#00H

AJMP BLOOP1

中断显示,数码管显示:

;针对实验板的键盘扫描,显示程序

;使用中断T0进行键盘的扫描和T1进行显示

;显示缓冲区设在30H到35H里

;***********************初始化程序*********************

ORG 0000H

AJMP MAIN

ORG 000BH

AJMP IT00

ORG 0030H

MAIN: MOV R0,#7FH

LOOP: MOV @R0,#00H

DJNZ R0,LOOP

MOV SP,#70H

MOV 37H,#30H ;把30H的一个缓冲区第一位保存,以后作为指针来用

MOV 09H,#30H ;把30H放到第一组工作寄存器R1中

MOV 08H,#30H ;把30H放到第一组工作寄存器R0中

MOV 0CH,#20H

CLR 00H

CLR 01H

CLR 02H ;初始化位地址00H,01H,02H

MOV TMOD,#01H

MOV TH0,#0FCH

MOV TL0,#018H

SETB TR0

SETB ET0

SETB EA ;启动定时

HEAR:

AJMP HEAR

;*******************************中断T0键盘+显示**********************

IT00:

CLR EA

PUSH ACC

PUSH B

PUSH PSW

PUSH DPH

PUSH DPL

SETB RS0

CLR RS1

MOV DPTR,#1FFFH

MOV A,#00H

MOVX @DPTR,A

JB P1.7,PASS0

JB 00H,CP

SETB 00H

AJMP PASS

CP:JB 01H,PASS

SETB 01H

AJMP KEYSELECT

;*********************判断健盘的具体位置********************

KEYSELECT:

MOV A,#0FEH

JNB

P1.7,KEYS5

RL A

JNB P1.7,KEYS4

JNB P1.7,KEYS3

JNB P1.7,KEYS2

JNB P1.7,KEYS9

JNB P1.7,KEYS8

JNB P1.7,KEYS7

JNB P1.7,KEYS6

;******************************键盘功能模块**************************

KEYS4:

KEYS6:JB 02H,PASS

MOV A,@R0

MOV R5,A

INC R5

MOV A,R5

CJNE R5,#0AH,PASS

MOV @R0,#00H

KEYS7:JB 02H,PASS

DEC R5

CJNE R5,#0FFH,PASS

MOV @R0,#09H

KEYS8:JB 02H,PASS

MOV R0,37H

MOV 37H,R0

CJNE R0,#36H,PASS

MOV 37H,#30H

KEYS2:

KEYS5:

CPL 02H

KEYS3:AJMP PASS

KEYS9:AJMP PASS

;************************键盘功能结束******************************

PASS0:

PASS:

;****************************中断T1显示***************************

MOV

A,@R1

mov

dptr, #tab

MOVC

A,@A+DPTR

MOV R2,A

JB 02H,RE

;*********************闪烁程序**********************

MOV A,R0

CLR C

SUBB A,R1

JNZ RE

INC R3

MOV A,R3

SUBB A,#4FH

JNC RE

MOV A,#0FFH

MOV DPTR, #9FFFH

AJMP RE1

RE:

dptr,#09FFFH

MOV A,R2

RE1:

MOV A,R4

MOV DPTR,#7FFFH

INC

R1

A,R4

JB

ACC.0,FORMAT

RR

A

R4,A

AJMP EXIT

FORMAT:

R1,#30H

R4,#20H

EXIT:

POP DPL

POP DPH

POP PSW

POP B

POP ACC

SETB EA

RETI

TAB:

DB

0c0H, 0f9H, 0a4H, 0b0H, 99H, 92H

;

1

2

3

4

5

00H

01H

02H

03H

04H

05H

82H, 0f8H, 80H, 90H

0FFH

6

7

8

9



              查看评论 回复



嵌入式交流网主页 > MCU > 单片机综合应用 > 单片机与单片机串行通讯+键盘扫描+数码管显示
 显示 键盘 中断

"单片机与单片机串行通讯+键盘扫描+数码管显示"的相关文章

网站地图

围观()