<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機四驅(qū)無線遙控小車制作詳解

          51單片機四驅(qū)無線遙控小車制作詳解

          作者: 時間:2012-06-24 來源:網(wǎng)絡(luò) 收藏
          源代碼:

          本文引用地址:http://www.ex-cimer.com/article/171240.htm

            ;接收程序

            ORG 0 ;程序起始地址

            SJMP STAR ;跳轉(zhuǎn)到主程序

            ORG 30H ;串口中斷地址

            sjmp loop ;跳轉(zhuǎn)到中斷服務(wù)程序

            STAR:

            MOV SP,#5FH ;設(shè)置堆棧

            MOV SCON,#50H ;串行數(shù)據(jù)格式(詳情請參考51手冊)

            MOV TMOD,#20H ;定時器工作方式(請參考51手冊)

            MOV PCON,#0 ;波特率不倍速(請參考51手冊)

            MOV TH1,#0fdH ;設(shè)置波特率在9600

            MOV TL1,#0fdH ;設(shè)置波特率在9600

            SETB EA ;開起中斷

            clr ET1 ;關(guān)閉定時1中斷

            SETB ES ;開起串口中斷

            SETB TR1 ;啟動定時器1

            mov a,#0 ;

            mov p1,a ;設(shè)置初始值,即開機p1輸出00h不動作

            main:

            mov p1,a ;把a值給p1端口

            sjmp main ;無限循環(huán)main程序

            LOOP:

            jnb ri,$ ;判斷接收位是否接收完

            clr ri ;接收完后清空接收位

            mov a,sbuf ;發(fā)送的數(shù)據(jù)給a

            reti ;返回后,a的值就會給p1

            END

            ;發(fā)送程序

            ORG 0 ;程序起始地址

            SJMP START ;跳轉(zhuǎn)到主程序

            ORG 30H ;串口中斷地址

            START:

            MOV SP,#5FH ;設(shè)置堆棧

            MOV TMOD,#20H ;定時器工作方式(請參考51手冊)

            MOV PCON,#0 ;波特率不倍速(請參考51手冊)

            MOV SCON,#50H ;串行數(shù)據(jù)格式(詳情請參考51手冊)

            MOV TH1,#0fdH ;設(shè)置波特率在9600

            MOV TL1,#0fdH

            setb EA ;開起中斷

            clr ET1 ;關(guān)閉定時1中斷

            setb ES ;開起串口中斷

            SETB TR1 ;啟動定時器1

            main:

            lcall kcs ;調(diào)用按鍵掃描程序

            jnz key ;有鍵按下則跳轉(zhuǎn)到key程序段

            sjmp main ;無限循環(huán)main程序

            kcs:

            mov p1,#0ffh ;p1給初值

            mov a,p1 ;p1的數(shù)值給a

            cpl a ;取反a

            anl a,#0ffh ;與運算

            ret

            key:

            lcall delay ;軟件延時程序,按鍵去抖

            jb acc.0,send1

            jb acc.1,send2

            jb acc.2,send3

            jb acc.3,send4

            jb acc.4,send5

            ret

            DELAY:

            MOV R5,#20

            D1:MOV R6,#10

            D2:MOV R7,#100

            DJNZ R7,$

            DJNZ R6,D2

            DJNZ R5,D1

            ret

            send1:

            mov r1,#10101010b ;前進指令

            sjmp send

            send2:

            mov r1,#01010101b ;后退指令

            sjmp send

            send3:

            mov r1,#01011010b ;左轉(zhuǎn)指令

            sjmp send

            send4:

            mov r1,#10100101b ;右轉(zhuǎn)指令

            sjmp send

            send5:

            mov r1,#00h ;停止指令

            sjmp send

            send:

            MOV SBUF,r1 ;指令給sbuf

            JNB TI,$ ;判斷是否發(fā)送完

            reti ;中斷返回

            END

          51單片機相關(guān)文章:51單片機教程


          雙控開關(guān)相關(guān)文章:雙控開關(guān)原理

          上一頁 1 2 3 4 下一頁

          關(guān)鍵詞: 制作 詳解 小車 遙控 無線 單片機

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();