⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a5_7_3.asm

📁 单片机汇编例程学习,大量的汇编例程
💻 ASM
字号:
;///////////////////////////////////////////
;本程序源代码由单片机培训网提供.
;单片机培训网,让更多人学习单片机更容易.
;第一网址----www.mcuedu.com
;第二网址----http://51_train.nease.net
;创办人------刘永忠
;热线电话----(0755)27529998
;email-------aa815@163.com
;程序难易等级--------稍难
;8051与PC间做全多工串行通信
;///////////////////////////////////////////
             org        00h
             jmp        start
start:       mov        sp,#60h           ;设置堆栈
             mov        scon,#50h         ;uart工作在mode1,sm1=1,ren=1
             mov        tmod,#20h         ;timer1工作在mode2
             mov        th1,#0f3h         ;波特率为2400
             mov        tl1,#0f3h
             setb       tr1               ;启动timer1
scan0:        mov        r3,#0f7h          ;行扫描初始值
scan:        jb         ri,uart           ;检测scon的ri是否为1?是则表示接收到
             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        scan0 
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                 ;并由p2显示
             mov        p2,a
             jmp        scan0            
uart:        mov        a,sbuf            ;将sbuf的值载入acc
             cpl        a                 ;显示至p0
             mov        p0,a
             clr        ri                ;清除ri=0
             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 + -