久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 制作容易的超聲波測距板 [打印本頁]

作者: dzdiy    時(shí)間: 2015-4-12 02:37
標(biāo)題: 制作容易的超聲波測距板
      這款簡單的單片機(jī)超聲波測距板,比較適合電子小制作愛好者仿 制,超聲波測距硬件電路的設(shè)計(jì)主要包括單片機(jī)系統(tǒng)及顯示電路、超聲波發(fā)射電路和超聲波接收電路三部分。超聲波測距單片機(jī)采用AT89C2051。采用 12MHz高精度的晶振,以獲得較穩(wěn)定時(shí)鐘頻率,減小測量誤差。超聲波測距單片機(jī)用P3.5端口輸出超聲波換能器所需的40kHz的方波信號,P3.7端 口監(jiān)測超聲波接收電路輸出的返回信號。顯示電路采用簡單實(shí)用的3位共陽LED數(shù)碼管,段碼輸出端口為單片機(jī)的P1口,位碼輸出端口分別為單片機(jī)的 P3.2、P3.1、P3.0口,數(shù)碼管位驅(qū)運(yùn)用PNP三極管S9012三極管驅(qū)動(dòng)。超聲波測距測量范圍25-300厘米,精度1厘米。


;           基于AT89C2051單片機(jī)超聲波測距系統(tǒng)
;          測量范圍35-300厘米
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;          中斷入口程序              ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ORG 0000H
            AJMP START
            ORG 000BH
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;          主 程 序                 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
START     : MOV R0,#70H     ;立即數(shù)70H送寄存器R0中
            MOV R7,#0BH     ;立即數(shù)0BH送寄存器R7中
            MOV 20H,#00H    ;立即數(shù)00H送20H單元中
CLEARDISP:  MOV @R0,#00H    ;立即數(shù)立即數(shù)00H送R0中的地址單元中
            INC R0          ;寄存器R0加1
            DJNZ R7,CLEARDISP;寄存器中的數(shù)值減1非零時(shí)轉(zhuǎn)移
            MOV TMOD,#01H   ;置定時(shí)器T0工作方式樣3,對內(nèi)部機(jī)器周期計(jì)數(shù)
      CJZCX:MOV TL0,#00H    ;裝入定時(shí)器初值
            MOV TH0,#00H
            MOV R0,#0FH
            MOV R1,#5bH
      puzel:MOV 14H,#08H    ;超聲波發(fā)射持續(xù)200us
       Here:CPL P3.5        ;輸出40kHz方波
            NOP             ;
            NOP             ;
            NOP             ;                             
            DJNZ 14H,Here   ;
            SETB TR0
            SETB P3.2
            MOV R6,#53H     ;延時(shí)1.5ms
DL0:        MOV R5,#03H
            DJNZ R5,$
            DJNZ R6,DL0
        QBA:JNB P3.7,QBC
            DJNZ R1,QBA
            DJNZ R0,QBA
        QBC:CLR P3.2
            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
            MOV R3,#0H
            MOV R4,#0H
            MOV R5,#0H
            MOV R6,73H
            MOV R7,74H   
            LCALL HB2                    
            MOV A,R4       ;分離BCD
            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 7AH,#0EFH
        XXX:LCALL DISPLAY               
            DJNZ 7AH,XXX
            AJMP CJZCX
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;         乘34程序(乘聲速)            ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;      MULD: MOV A,R3  ;計(jì)算R3乘R7
            MOV B,R7
            MUL AB
            MOV R4,B        ;暫存部分積
            MOV R5,A
            MOV A,R3        ;計(jì)算R3乘R6
            MOV B,R6
            MUL AB
            ADD A,R4        ;累加部分積
            MOV R4,A
            CLR A
            ADDC A,B
            MOV R3,A
            MOV A,R2        ;計(jì)算R2乘R7
            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        ;計(jì)算R2乘R6
            MOV B,R6
            MUL AB
            ADD A,R3        ;累加部分積
            MOV R3,A
            MOV A,R2
            ADDC A,B
            MOV R2,A
            RET
                  
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;         除100程序(除法)             ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
      DIVD: CLR C           ;比較被除數(shù)和除數(shù)
            MOV A,R3
            SUBB A,R7
            MOV A,R2
            SUBB A,R6
            JC DVD1
            SETB OV         ;溢出
            RET
      DVD1: MOV B,#10H      ;計(jì)算雙字節(jié)商
      DVD2: CLR C           ;部分商和余數(shù)同時(shí)左移一位
            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       ;計(jì)算(R2R3-R6R7)
            MOV R1,A
            MOV A,R2
            SUBB A,R6
            ANL C,/F0       ;結(jié)果判斷
            JC DVD3
            MOV R2,A        ;夠減,存放新的余數(shù)
            MOV A,R1
            MOV R3,A
            INC R5          ;商的低位置一
      DVD3: DJNZ B,DVD2     ;計(jì)算完十六位商(R4R5)
            MOV A,R4        ;將商移到R2R3中
            MOV R2,A
            MOV A,R5
            MOV R3,A
            CLR OV          ;設(shè)立成功標(biāo)志
            RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;           BCD轉(zhuǎn)換                  ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
       HB2: CLR A           ;BCD碼初始化
            MOV R3,A
            MOV R4,A
            MOV R5,A
            MOV R2,#10H     ;轉(zhuǎn)換雙字節(jié)十六進(jìn)制整數(shù)
       HB3: MOV A,R7        ;從高端移出待轉(zhuǎn)換數(shù)的一位到CY中
            RLC A
            MOV R7,A
            MOV A,R6
            RLC A
            MOV R6,A
            MOV A,R5        ;BCD碼帶進(jìn)位自身相加,相當(dāng)于乘2
            ADDC A,R5
            DA A            ;十進(jìn)制調(diào)整
            MOV R5,A
            MOV A,R4
            ADDC A,R4
            DA A
            MOV R4,A
            MOV A,R3
            ADDC A,R3
            MOV R3,A         ;雙字節(jié)十六進(jìn)制數(shù)的萬位數(shù)不超過6,不用調(diào)整
            DJNZ R2,HB3      ;處理完16bit
            RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;           顯示程序                  ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   DISPLAY: MOV R1,#76H      ;立即數(shù)76H送寄存器中
            MOV R5,#0FEH     ;立即數(shù)FEH送寄存器R5中
      PLAY: MOV A,R5         ;寄存器R5中的數(shù)值送累加器A中
            MOV P3,A         ;累加器A中的數(shù)值送P3口
            MOV A,@R1      ;以寄存器R1中的數(shù)為地址單元的數(shù)值送累加器中
            MOV DPTR,#TAB    ;16位地址送地址寄存器中
            MOVC A,@A+DPTR   ;以中的地址為基地變址尋址單元中的數(shù)送累加器
            MOV P1,A         ;累加器A中的數(shù)值送P1口
            MOV R6,#14H      ;立即數(shù)據(jù)14送寄存器R6中
        DL1:MOV R7,#19H      ;立即數(shù)據(jù)19送寄存器R7中
        DL2:DJNZ R7,DL2      ;寄存器中的數(shù)據(jù)減1,不為零時(shí)則轉(zhuǎn)移
            DJNZ R6,DL1      ;寄存器中的數(shù)據(jù)減1,不為零時(shí)則轉(zhuǎn)移
            INC R1           ;寄存器R1中的數(shù)值加1
            MOV A,R5         ;寄存器R5中的數(shù)值送累加器A中
            JNB ACC.2,ENDOUT ;地址位為0則轉(zhuǎn)到ENDOUT
            RL A             ;累加器循環(huán)右移
            MOV R5,A         ;累加器A中的數(shù)值送寄存器R5中
            AJMP PLAY        ;絕對短轉(zhuǎn)移
    ENDOUT: SETB P3.5        ;置P3.5口
            MOV P1,#0FFH     ;立即數(shù)0FEH送P1口
            RET              ;返回
       TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH
            END              ;結(jié)束


作者: lxa0    時(shí)間: 2015-4-12 11:16
本帖最后由 lxa0 于 2015-4-12 11:23 編輯

學(xué)習(xí)了
謝謝樓主


作者: lxa0    時(shí)間: 2015-4-12 11:26
下面這段沒看明白
請樓主講解一下?

MOV R6,#53H     ;延時(shí)1.5ms
DL0:        MOV R5,#03H
            DJNZ R5,$
            DJNZ R6,DL0
        QBA:JNB P3.7,QBC
            DJNZ R1,QBA
            DJNZ R0,QBA
        QBC:CLR P3.2
            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
            MOV R3,#0H
            MOV R4,#0H
            MOV R5,#0H
            MOV R6,73H
            MOV R7,74H   
            LCALL HB2                    
            MOV A,R4       ;分離BCD
            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 7AH,#0EFH

作者: popo119    時(shí)間: 2015-4-26 23:06
謝謝分享!!收藏!!
作者: tomas2049    時(shí)間: 2015-5-4 23:16
為啥輸進(jìn)程序都只顯示8000,怎么弄都不好使

作者: tomas2049    時(shí)間: 2015-5-4 23:17
還有乘37那段不是很懂
作者: ludaijin    時(shí)間: 2015-12-26 08:04
頂一個(gè)
作者: 順?biāo)浦?11    時(shí)間: 2016-9-7 10:06
很好,有用
作者: zhhufe    時(shí)間: 2017-1-17 23:10
學(xué)習(xí)學(xué)習(xí)    謝謝分享  
作者: 1468216262    時(shí)間: 2018-11-29 17:26
有沒有c語言版的




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 免费的黄色大片 | 成人免费视频视频 | 中文字幕在线观看亚洲 | 97在线观看视频 | 亚洲精品色 | 欧美久久一区二区 | 日韩黄色在线视频 | 在线观看小视频 | 黄色大片免费在线观看 | 国产91丝袜在线播放 | 国产成人免费在线视频 | 欧美91视频 | 成人免费毛片嘿嘿连载视频 | 精品黑人一区二区三区国语馆 | 成人少妇影院yyyy | 日韩中文字幕在线播放 | 日韩伦理视频 | 国产a√ | 日本乱轮视频 | av免费观看网址 | 国产精品一区二区三 | 久久久久久久久国产 | 久久精品国产一区 | 日韩视频在线观看 | 国产精品天美传媒入口 | 国产精品高潮呻吟av | 欧美精品在线观看视频 | 久久精品人人 | 久草福利视频 | 一区二区小视频 | 久久爱综合 | 成人手机在线视频 | 精品国产aⅴ麻豆 | 日本黄a三级三级三级 | 日韩精品三区 | av在线免费观看网站 | 夜夜躁狠狠躁日日躁av | 青草国产 | 福利av在线 | 日韩黄网 | 黄色大片一级 |