📄 anjian.asm
字号:
DAT BIT P1.2 ;HD7279A的DATA连接于P1.2
KEY BIT P3.2 ;HD7279A的KEY连接于P3.2
CS BIT P1.0 ;HD7279A的CS连接于P1.0
CLK BIT P1.1 ;HD7279A的CLK连接于P1.1
ORG 000H
LJMP START
ORG 100H
START: MOV SP,#2FH
MOV P1,#11011011B ;I/O口初始化
MOV TIMER,#50 ;延时约25MS
START_DELAY: MOV TIMER1,#255
START_DELAY1: DJNZ TIMER1,START_DELAY1
DJNZ TIMER,START_DELAY
MOV DATA_OUT,#10100100B ; 发复位(清除)指令
LCALL SEND
SETB CS ; 恢复CS为高电平
MOV DATA_OUT,#00010101B ;有键按下,发送读键盘指令
LCALL SEND
LCALL RECEIVE
SETB CS ;设CS为高电平
MOV B,#10 ;16 进制--BCD转换
MOV A,DATA_IN
MAIN: JB KEY,MAIN ;检测是否有键按下
DIV AB
MOV TEN,A
MOV DATA_OUT,#10100001B ;发2次左移指令,使当前显示
;内容左移,留出空位供显示新
;数据
LCALL SEND ; 发送指令到HD7279A
MOV DATA_OUT,#10100001B
LCALL SEND
MOV DATA_OUT,#10000001B ;下载数据且译码指令(第2位)
LCALL SEND
MOV DATA_OUT,TEN ; 发送十位数字到HD7279A
LCALL SEND
MOV DATA_OUT,#10000000B ; 下载数据且译码指令(第1
;位)
LCALL SEND
MOV DATA_OUT,B ;发送个位数字到HD7279A
LCALL SEND
SETB CS
WAIT: JNB KEY,WAIT ;等待按键放开
LJMP MAIN
;*******************************************
; 发送1个字节到 HD7279,高位在前
;*******************************************
SEND: MOV BIT_COUNT,#8 ;设定位记数器 =8
CLR CS ; 设CS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -