📄 89keya.asm
字号:
cs bit p2.4
clk bit p2.3
dat bit p2.2
key bit p2.1
temp data 30h
cnt data 31h
send_buf data 32h
rec_buf data 33h
delayr data 34h
org 0000h
ajmp reset
org 80h
reset:
mov sp, #10h ;设堆栈
setb cs ;初始化
setb key
clr clk
mov send_buf,#0a4h ;清屏
call send
setb cs
wait:
jb key, wait
main:
mov send_buf,#15h ;接收键盘键值
call send
call receive
setb cs
call delay50u
mov send_buf,#0cfh ;送键值显示
call send
mov send_buf,rec_buf
call send
setb cs
wait1:
jnb key, wait1
ajmp wait
send: ;发送子程序
mov cnt, #8
clr cs
call delay50u
send1:
mov a, send_buf
rlc a
mov send_buf,a
mov dat, c
nop
nop
setb clk
call delay10u
clr clk
call delay10u
djnz cnt, send1
clr dat
ret
receive: ;接收子程序
mov cnt, #8
setb dat
call delay50u
receive1:
setb clk
call delay10u
mov c, dat
mov a, rec_buf
rlc a
mov rec_buf,a
nop
nop
nop
clr clk
call delay10u
djnz cnt, receive1
clr dat
ret
delay50u: ;延时子程序
mov delayr, #200
djnz delayr, $
ret
delay10u:
mov delayr, #40
djnz delayr, $
ret
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -