📄 test.asm
字号:
;=================================================
;用IO口驱动2片164来驱动5位LED作为显示(完成)
;用IO口驱动2片165来级联键盘(完成)
;与电脑串行通讯(完成)
;串行通讯(未测试)
;标度变换(未测试)
;=================================================
CLK1 EQU P2.3
Q7 EQU P2.4
PL EQU P2.2 ;74HC165
CLKIN EQU P2.5
;=================================================
CLK EQU P2.0
DAT EQU P2.1 ;74HC164
;=================================================
DE BIT P1.1 ;75176
ORG 0000H
AJMP MAIN
ORG 0100H
;===================
;主函数
;===================
MAIN:
MOV SP,#60H
;===================
;初始化
;===================
INIT:
LCALL KEY_SCAN
LCALL AJZH
MOV A,R4
LCALL DISP
LJMP INIT
;====================
;数码管显示
;====================
DISP:
MOV R3,#8
MOV DPTR,#TAB
MOVC A,@A+DPTR
LOOP01:
CLR CLK
RRC A
MOV DAT,C
SETB CLK
DJNZ R3,LOOP01
RET
;=====================
;键盘扫描
;=====================
KEY_SCAN:
MOV R0,#20H
MOV R1,#2
MOV R2,#8
MOV R3,#08H
MOV A,#00H
SETB CLKIN
CLR PL
NOP
NOP
SETB PL
CLR CLKIN
KEY_SCAN1:
MOV C,Q7
RRC A
CLR CLK1
NOP
NOP
SETB CLK1
DJNZ R2,KEY_SCAN1
MOV R2,#8
MOV @R0,A
INC R0
DJNZ R1,KEY_SCAN1
RET
;===========================
;判断键值
;===========================
AJZH:
MOV A,20H
CJNE A,#00H,AJZH1
MOV A,21H
CJNE A,#00H,AJZH1
LCALL KEY_SCAN
AJMP AJZH
AJZH1:
MOV R4,#0
MOV R1,#2
MOV R2,#8
MOV A,20H
AJZH2:
RLC A
INC R4
JC AJZH3
DJNZ R2,AJZH2
MOV R2,#8
MOV A,21H
DJNZ R1,AJZH2
AJZH3:
LCALL KEY_WAIT
RET
;====================
;等待按键释放
;====================
KEY_WAIT:
MOV A,20H
CJNE A,#00H,KEY_WAIT_LOOP
LJMP KEY_WAIT1
KEY_WAIT_LOOP:
LCALL KEY_SCAN
LJMP KEY_WAIT
KEY_WAIT1:
MOV A,21H
CJNE A,#00H,KEY_WAIT_LOOP
RET
;==============================
;延时函数(200mS)
;==============================
DELAY:
MOV R7,#2
DELAY1:
MOV R6,#200
DELAY2:
MOV R5,#255
DJNZ R5,$
DJNZ R6,DELAY2
DJNZ R7,DELAY1
RET
;===============================
;数据表
;===============================
TAB:
DB 0FFH,003H,09FH,025H,00DH,099H,049H,041H,01FH,001H,009H,011H,0C1H,063H,085H,061H,071H,0D5H
DATA11:
DB '大和制衡产业有限公司 研发部 竭诚为您服务 0417-4892158 '
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -