...用汇编语言编程和Proteus画图用ATC51不加7447

发布网友 发布时间:2024-09-28 08:23

我来回答

1个回答

热心网友 时间:2024-10-04 04:30

没有用外部中断,我嫌麻烦,图上得LED我也只画了2个,麻烦,也不太理解你的意思,将就下,下面是程序:

LED EQU P0

SMG EQU P2

KEY0 EQU 0X20

ORG 0

MAIN:

MOV KEY0 ,#0

MOV LED ,#0X03

KEYSCAN:

MOV A ,P3

CJNE A ,#0XFF ,KEY_1

AJMP KEYSCAN

RET

KEY_1:

CJNE A ,#0XFE ,KEY_2

MOV KEY0 ,#0X01

ACALL DISPLAY

AJMP KEY_RES

KEY_2:

CJNE A ,#0XFD ,KEY_3

MOV KEY0 ,#0X02

ACALL DISPLAY

AJMP KEY_RES

KEY_3:

CJNE A ,#0XFB ,KEY_4

MOV KEY0 ,#0X03

ACALL DISPLAY

AJMP KEY_RES

KEY_4:

CJNE A ,#0XF7 ,KEY_RES

MOV KEY0 ,#0X04

ACALL DISPLAY

AJMP KEY_RES

KEY_RES:

MOV A ,P3

CJNE A ,#0X7F ,KEY_RES

MOV KEY0 ,#0

AJMP KEYSCAN

DISPLAY:

MOV A ,KEY0

MOV DPTR ,#SEGTAB

MOVC A ,@A+DPTR

MOV SMG ,A

MOV A ,LED

RL A

RL A

MOV LED ,A

CJNE A ,#0XFF ,DISPLAY_LOOP

MOV LED ,#0

DISPLAY_LOOP:

RET

SEGTAB:

DB 0X3F ,0X06 ,0X5B ,0X4F ,0X66

END

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com