📄 a5_7_2.asm
字号:
;///////////////////////////////////////////
;本程序源代码由单片机培训网提供.
;单片机培训网,让更多人学习单片机更容易.
;第一网址----www.mcuedu.com
;第二网址----http://51_train.nease.net
;创办人------刘永忠
;热线电话----(0755)27529998
;email-------aa815@163.com
;程序难易等级--------稍难
;8051对PC做单工发送数据
;///////////////////////////////////////////
org 00h
start: mov sp,#60h ;设置堆栈
mov scon,#20h ;uart工作在mode1,sm1=1,ren=1
mov tmod,#0f3h ;timer1工作在mode2
mov th1,#0f3h ;波特率为2400
mov tl1,#0f3h
setb tr1 ;启动timer1
scan: mov r3,#0f7h ;行扫描初始值
mov r1,#00h ;table取码指针
scan1: mov a,r3 ;扫描输出
mov p1,a
mov a,p1
mov r4,a
setb c ;c=1
mov r5,#04h ;4列
l1: rlc a ;检测是否有键按下?
jnc keyin
inc r1 ;取码指针加1
djnz r5,l1
mov a,r3 ;扫描下一行
setb c
rrc a
mov r3,a
jc scan1 ;4行是否扫描完毕?
jmp scan
keyin: mov r7,#10 ;消除抖动
d2: mov r6,#248
djnz r6,$
djnz r7,d2
d3: mov a,p1 ;按钮放开否?
xrl a,r4
jz d3
mov a,r1 ;至table取码
mov dptr,#table
movc a,@a+dptr
mov sbuf,a ;载入sbuf发送出去
cpl a ;并由p0显示
mov p0,a
jmp scan
;
table: db 01h,02h,03h,04h ;
db 05h,06h,07h,08h ;
db 09h,0ah,0bh,0ch ;
db 0dh,0eh,0fh,00h ;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -