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

📄 csb.asm

📁 基于51系列单片机的超声波测距壁障程序 采用4位共阴数码管显示
💻 ASM
字号:
;********WAVE-E6000/T*******************************
;*MCU:          AT89C51                            *
;*MCU-crystal:  12M                                *
;*Version:      00                                 *
;*Last Updata:                                     *
;*Author:       www.picavr.com                     *
;*Description:  超声波测距
;晶振采用6M,P1口为数码管段输出口,P3.0~P3.2为     *
;数码管位输出口,P3.5超声波;发送输出,P3.7超声波收 *                     
;***************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;           中断入口程序              ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ORG 0000H
            ljmp start
            ORG 002BH
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;           主 程 序                 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
START:      MOV R0,#70H     
            MOV R7,#0BH     
            MOV 20H,#00H    
CLEARDISP:  MOV @R0,#00H    
            INC R0          
            DJNZ R7,CLEARDISP
            MOV TMOD,#99H   
      cjzcx:MOV TL0,#00H    
            MOV TH0,#00H
            MOV R0,#0bH
            mov r1,#0bh
            mov 16h,#03H
            mov 15h,#54H
            mov 17h,#90h
      puzel:mov 14h,#32h    ;超声波发射持续200ms
       here:cpl p1.0        ;输出40kHz方波
            nop              
            nop              
            nop                                              
            djnz 14h,here    
            setb tr0
            setb p2.6
         mq:djnz 15h,$
            djnz 16h,mq 
        QBA:JNB P3.2,QBC
            DJNZ R1,QBA
            DJNZ R0,QBA
        QBC:djnz 17h,QBC
            clr p2.6
            clr tr0                   
            mov 70h,tl0
            mov 71h,th0
            mov r2,71h
            mov r3,70h
            mov r6,#22H
            mov r7,#0H
            LCALL MULD            
            mov r6,#64H
            mov r7,#0H
            LCALL DIVD     
            MOV 73H,R2
            MOV 74H,R3
            ;CLR R3
            ;CLR R4
            ;CLR R5
            MOV R6,73H
            MOV R7,74H     
            LCALL HB2     
            MOV A,R4      
            MOV B,#10H
            DIV AB
            MOV 78H,A
            MOV 77H,B
            MOV A,R5
            MOV B,#10H
            DIV AB
            MOV 76H,A
            MOV 75H,B      
            mov a,78h
            cjne a,#0h,pdcx
            mov a,77h
            cjne a,#5h,pdcx
            mov a,76h
            cjne a,#0h,pdcx
            mov 78h,#0bh
            mov 77h,#0bh
            mov 76h,#0bh
            ajmp xxcx
       pdcx:mov a,78h
            cjne a,#4h,xxcx
            mov a,77h
            cjne a,#0h,xxcx
            mov a,76H
            cjne a,#0h,xxcx
            mov 78h,#0ah;;;;
            mov 77h,#0ah;;;;
            mov 76h,#0ah;;;;
       xxcx:MOV 7AH,#0FEH
        XXX:LCALL DISPLAY                 
            DJNZ 7AH,XXX
            ajmp cjzcx
 
       MULD:MOV A,R3       
            MOV B,R7
            MUL AB
            MOV R4,B       
            MOV R5,A
            MOV A,R3       
            MOV B,R6
            MUL AB
            ADD A,R4        
            MOV R4,A
            CLR A
            ADDC A,B
            MOV R3,A
            MOV A,R2        
            MOV B,R7
            MUL AB
            ADD A,R4        
            MOV R4,A
            MOV A,R3
            ADDC A,B
            MOV R3,A
            CLR A
            RLC A
            XCH A,R2        
            MOV B,R6
            MUL AB
            ADD A,R3        
            MOV R3,A
            MOV A,R2
            ADDC A,B
            MOV R2,A
            RET                
 
       DIVD:CLR C          
            MOV A,R3 
            SUBB A,R7
            MOV A,R2
            SUBB A,R6
            JC DVD1
            SETB OV         
            RET
       DVD1:MOV B,#10H      
       DVD2:CLR C           
            MOV A,R5
            RLC A
            MOV R5,A
            MOV A,R4
            RLC A
            MOV R4,A
            MOV A,R3
            RLC A
            MOV R3,A
            XCH A,R2
            RLC A
            XCH A,R2
            MOV F0,C        
            CLR C
            SUBB A,R7       
            MOV R1,A
            MOV A,R2
            SUBB A,R6
            ANL C,/F0       
            JC DVD3
            MOV R2,A       
            MOV A,R1
            MOV R3,A
            INC R5          
       DVD3:DJNZ B,DVD2     
            MOV A,R4        
            MOV R2,A
            MOV A,R5
            MOV R3,A
            CLR OV          
            RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;           BCD转换                   ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        HB2:CLR A           ;BCD码初始化
            MOV R3,A
            MOV R4,A
            MOV R5,A
            MOV R2,#10H     ;转换双字节十六进制整数
        HB3:MOV A,R7        ;从高端移出待转换数的一位到CY中
            RLC A
            MOV R7,A
            MOV A,R6
            RLC A
            MOV R6,A
            MOV A,R5        ;BCD码带进位自身相加,相当于乘2
            ADDC A,R5
            DA A            ;十进制调整
            MOV R5,A
            MOV A,R4
            ADDC A,R4
            DA A
            MOV R4,A
            MOV A,R3
            ADDC A,R3
            MOV R3,A         
            DJNZ R2,HB3      
            RET 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;           显示程序                  ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    DISPLAY:MOV R1,#76H      
            MOV R5,#0EFH     
       PLAY:MOV A,R5         
            MOV P2,A         ;累加器A中的数值送P2口?????????????????????????
            MOV A,@R1      
            MOV DPTR,#TAB    
            MOVC A,@A+DPTR   ;
            MOV P0,A         ;累加器A中的数值送P0口
            MOV R6,#14H      
        DL1:MOV R7,#19H      
        DL2:DJNZ R7,DL2      
            DJNZ R6,DL1      
            INC R1          
            MOV A,R5         
            JNB ACC.6,ENDOUT 
            RR A             
            MOV R5,A         
            AJMP PLAY        
     ENDOUT:SETB P1.0        
            MOV P0,#0FFH     ;立即数0FEH送P0口
            RET              
        TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
            END 


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -