标题: 有没有大佬可以用大白话帮忙讲明白这个单片机汇编程序? [打印本页]

作者: pcyyyy    时间: 2021-11-19 19:00
标题: 有没有大佬可以用大白话帮忙讲明白这个单片机汇编程序?
                ORG                0000H                        
                AJMP                MAIN                        
                ORG                0100H                        
MAIN:        MOV                P2,#00H                        
KEY0:        MOV                P3,#0FEH               
                JNB                P3.4,K1                        
                JNB                P3.5,K2                        
                JNB                P3.6,K3                        
               
                MOV                P3,#0FDH               
                JNB                P3.4,K4                        
                JNB                P3.5,K5                        
                JNB                P3.6,K6                        
               
                MOV                P3,#0FBH               
                JNB                P3.4,K7                        
                JNB                P3.5,K8                        
                JNB                P3.6,K9               
               
                AJMP        KEY0                        
                                
K1:                MOV                P0,#0F9H               
                ACALL        YSH1S                        
                AJMP         KEY0                        
                RET                                       
               
K2:                MOV                P0,#0A4H               
                ACALL        YSH1S                        
                AJMP         KEY0                        
                RET                                                
               
K3:                MOV                P0,#0B0H               
                ACALL        YSH1S               
                AJMP         KEY0                        
                RET                                                
               
K4:                MOV                P0,#099H               
                ACALL        YSH1S                        
                AJMP         KEY0                        
                RET                                                
               
K5:                MOV                P0,#092H               
                ACALL        YSH1S               
                AJMP         KEY0                        
                RET                                       
               
K6:                MOV                P0,#082H               
                ACALL        YSH1S               
                AJMP         KEY0                        
                RET                                                
               
K7:                MOV                P0,#0F8H               
                ACALL        YSH1S                        
                AJMP         KEY0                        
                RET                                                
K8:                MOV                P0,#080H               
                ACALL        YSH1S                        
                AJMP         KEY0                        
                RET                                                
               
K9:                MOV                P0,#090H               
                ACALL        YSH1S        
                AJMP         KEY0                        
                RET                                       
               
YSH1S:        MOV                R3,#10               
LOOP:        MOV                R4,#200               
LOOP1:        MOV                R5,#230                        
                DJNZ        R5,$                        
                DJNZ        R4,LOOP1               
                DJNZ        R3,LOOP               
                RET                                                
                END                                       
               
               
作者: wc86110    时间: 2021-11-20 09:34
这货要软硬结合才能明白它要做什么,光有注释只能一知半解
作者: liht1634    时间: 2021-11-20 12:22
ORG                0000H                       ;复位处
                AJMP                MAIN       ;短跳转至MAIN也就0100H地址处         
                ORG                0100H                        
MAIN:        MOV                P2,#00H        ;P2.7-P2.0置0
KEY0:        MOV                P3,#0FEH       ;P3.7-P3.1置1,P3.0置0
                JNB                P3.4,K1            ;P3.4为0则跳转至K1处
                JNB                P3.5,K2                        
                JNB                P3.6,K3                        
               
                MOV                P3,#0FDH               
                JNB                P3.4,K4                        
                JNB                P3.5,K5                        
                JNB                P3.6,K6                        
               
                MOV                P3,#0FBH               
                JNB                P3.4,K7                        
                JNB                P3.5,K8                        
                JNB                P3.6,K9               
               
                AJMP        KEY0                        
                                
K1:             MOV                P0,#0F9H   ;P0=1111 1001B
                ACALL        YSH1S            ;短调用,延时
                AJMP         KEY0             ;短跳转回KEY0,差不多就是C的While(1)      
                RET                           ;这里是跑飞拉回
               
K2:                MOV                P0,#0A4H               
                ACALL        YSH1S                        
                AJMP         KEY0                        
                RET                                                
               
K3:                MOV                P0,#0B0H               
                ACALL        YSH1S               
                AJMP         KEY0                        
                RET                                                
               
K4:                MOV                P0,#099H               
                ACALL        YSH1S                        
                AJMP         KEY0                        
                RET                                                
               
K5:                MOV                P0,#092H               
                ACALL        YSH1S               
                AJMP         KEY0                        
                RET                                       
               
K6:                MOV                P0,#082H               
                ACALL        YSH1S               
                AJMP         KEY0                        
                RET                                                
               
K7:                MOV                P0,#0F8H               
                ACALL        YSH1S                        
                AJMP         KEY0                        
                RET                                                
K8:                MOV                P0,#080H               
                ACALL        YSH1S                        
                AJMP         KEY0                        
                RET                                                
               
K9:                MOV                P0,#090H               
                ACALL        YSH1S        
                AJMP         KEY0                        
                RET                                       
               
YSH1S:        MOV                R3,#10               
LOOP:        MOV                R4,#200               
LOOP1:        MOV                R5,#230                        
                DJNZ        R5,$       ;R5内容减1 不为0返回本行继续执行 为0就向下执行
                DJNZ        R4,LOOP1         ;就是循环等待
                DJNZ        R3,LOOP               
                RET                                                
                END                                       
作者: 冰火风轮    时间: 2021-11-20 17:11
P2 P3 组成矩阵键盘,识别键值驱动 P0 口共阳数码管,显示 1--9  一秒




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1