• <rp id="wfxtb"><acronym id="wfxtb"></acronym></rp><em id="wfxtb"></em><dd id="wfxtb"><big id="wfxtb"><video id="wfxtb"></video></big></dd>
  • <rp id="wfxtb"></rp>

    <mark id="wfxtb"><center id="wfxtb"></center></mark>

      <rp id="wfxtb"><span id="wfxtb"><u id="wfxtb"></u></span></rp>

      <rp id="wfxtb"><object id="wfxtb"></object></rp>

      注意:訪問本站需要Cookie和JavaScript支持!請設置您的瀏覽器! 打開購物車 查看留言付款方式聯系我們
      初中電子 單片機教材一 單片機教材二
      搜索上次看見的商品或文章:
      商品名、介紹 文章名、內容
      首頁 電子入門 學單片機 免費資源 下載中心 商品列表 象棋在線 在線繪圖 加盟五一 加入收藏 設為首頁
      本站推薦:
      ★單片機四路無線遙控解碼程序
      文章長度[3930] 加入時間[2006/7/27] 更新時間[2025/4/23 17:30:20] 級別[3] [評論] [收藏]
        這篇文章中的程序我們只提供了程序設計思路,有些子程序還要自己增加。即大家應該怎么樣做才可能完成我們需要的功能。本站另一片文章中有最終版本完成版的程序,可以直接生成HEX,請自己找。
        該程序可以對2262以及類似芯片的遙控器進行解碼,并且可以學習記憶,不受停電影響,做成的無線遙控開關通過學習后,可以實現單獨開、單獨關、群開、群關等功能。
        這個程序我們收了客戶2500元,客戶不允許我們提供在網上,后來達成協議,不提供任何技術支持的情況下,可以讓付費貴賓閱讀。如果需要提供原理路、源程序批注,最少應付款800元才可以出售(包括一塊功能演示測試電路板)。
        
      org 00h
      jmp config


      org 03h
      reti
      org 0bh
      reti
      org 13h
      reti
      org 1bh
      reti
      org 23h
      reti
      org 30h
      config:
      clr ea
      mov p0,#0h
      mov p1,#0ffh
      mov p2,#0ffh
      mov p3,#0ffh

      mov r3,#0;表示現在非學習狀態,1234分別表示要學習四路

      mov r4,#0;延時要準
      mov r5,#0;延時要準
      clr 30h;當30h能變成高電平時,說明長識別碼已經收到,下次電平變化時開始保存數據

      main:
      call key;求出鍵值
      call keyrun;執行功能
      call rec;記錄接收
      call kong;執行接收
      call xuexi;是否學習
      jmp:main

      rec:jb p2.2,recend;檢查p2.2是低電平,高電平轉移到recend,可以進入保存數據程序
      rec0:clr p2.3
      mov r1,#30h
      mov a,#0;累加器清零,準備保存數據
      rec1:call chk
      rlc a;第1位存入低位
      call d10ms
      rec2:call chk
      rlc a;第2位存入a
      call d10ms
      rec3:call chk
      rlc a;第3位存入a
      call d10ms
      rec4:call chk
      rlc a;第4位存入a
      call d10ms
      rec5:call chk
      rlc a;第5位存入a
      call d10ms
      rec6:call chk
      rlc a;第6位存入a
      call d10ms
      rec7:call chk
      rlc a;第7位存入a
      call d10ms
      rec8:call chk
      rlc a;第8位存入a
      call d10ms
      mov @r1,a;r1=30/31/32/33,連續記錄4個字節
      inc r1
      cjne r1,#34h,rec1
      setb p2.3
      recend:ret

      chk:inc r5
      cjne r5,#0,chk0;去檢測P3。7的狀態
      mov r5,#0
      inc r4
      cjne r4,#50,chk0
      mov r4,#0
      clr p2.2
      chk0:jnb p2.1, sou2
      sou1:jb p3.7, sou3
         clr p2.1
         setb p2.2
         jmp sou3
      sou2:jnb p3.7, sou3
         setb p2.1
         setb p2.2
      chkend:
      mov c,p3.7
      jb p2.2,recend;檢查p2.2是低電平,高電平轉移到recend,可以進入保存數據程序
      ret


      kong:jb p2.3,kondend;只有p2.3為高表示收到了有效的數據
      jb p2.4,kongend;數據已經記錄,看現在是什么狀態,是學習狀態跳到學習,kk0表示要開始執行按鍵功能
      kk0:mov r1,#50h;50/51/52/53存第一個開關
      call bj
      cjne r2,#4,kk1;連續4個字節相等,說明有碼相同,執行開關命令,否則到kk1檢查第二個開關
      cpl p1.4

      kk1:mov r1,#54h;
      call bj
      cjne r2,#4,kk2;連續4個字節相等,說明有碼相同
      cpl p1.5

      kk2:mov r1,#58h;
      call bj
      cjne r2,#4,kk3;連續4個字節相等,說明有碼相同
      cpl p1.6

      kk3:mov r1,#5ch;
      call bj
      cjne r2,#4,bend;連續4個字節相等,說明有碼相同,
      cpl p1.7
      kongend :ret


      xuexi:jnb p2.3,xxend;只有p2.3為高表示收到了有效的數據
      jb p2.4,xxend;數據已經記錄,看現在是什么狀態,是學習狀態學習

      cjne r3,#0,xxend;r3是表示當前被學習的路數,0表示不學習,1234分別代表4路
      xx1:cjne r3,#1,xx2;是否保存第1路數據
      mov r1,#50h
      call up
      xx2:cjne r3,#2,xx3;是否保存第2路數據
      mov r1,#54h
      call up
      xx3:cjne r3,#3,xx4;是否保存第3路數據
      mov r1,#58h
      call up
      xx4:cjne r3,#4,xxend;是否保存第4路數據
      mov r1,#5ch
      call up
      jmp xxend

      up:
      mov r2,#0;從第一位數保存
      mov r0,#30h;裝入學習的數或者收到的數
      upre:
      mov a,@r0
      mov @r1,a;r1已經分別裝入四路要保存的數
      inc r0
      inc r1
      inc r2
      cjne r2,#4,upre;0123表示四位數已經全部保存,r2=4時表示第五數不能保存,否則會寫壞其它數據
      iap0:
      ;此處要寫到EEROM,50-5f必須放入EEROM中才能在停電不丟失數據,每次重啟動時又從EEROM中讀出
      ;
      ;
      ;
      xxend:ret


      bj:mov r2,#0;正在比較第幾位數
      mov r0,#30h;裝入學習的數或者收到的數
      bj0:mov a,@r0
      xrl a,@r1;與要比較的數異或
      inc r0
      inc r1
      inc r2
      cjne a,#0,bjend;等于表示數相等,往下走,不等于0表示不等,結束比較
      cjne r2,#4,bj0;0123表示四位數都相等就要立即反回,等于4表示前四次比較完都相等
      bjend:ret


      key:
      setb p1.0
      setb p1.1
      setb p1.2
      setb p1.3
      mov r7,#0;r7內裝按鍵值,0表示無鍵按下去
      k1:jb p1.0,k2;先檢查P1。0是否按下,
      mov r7,#1
      mov 4fh,r7;立即將鍵值存入R7和4F,R7還要檢查按鍵松開
      k2:jb p1.1,k3
      mov r7,#2
      mov 4fh,r7
      k3:jb p1.2,k4
      mov r7,#3
      mov 4fh,r7
      k4:jb p1.3,k5
      mov r7,#4
      mov 4fh,r7;立即將鍵值存入R7和4F,R7還要檢查按鍵松開
      k5:cjne r7,#0,kend;掃描到最后,r7為0表示已經沒有按鍵按下,下面要執行按鍵程序
      mov r7,4fh;將4FH值裝入r7,根據鍵值去執行功能。
      mov 4fh,#0;同時將4FH清零,以免重復執行
      run1:cjne r7,#1,run2;分別執行鍵值等于1234的功能
      cpl p1.4
      run2:cjne r7,#2,run3
      cpl p1.5
      run3:cjne r7,#3,run4
      cpl p1.6
      run4:cjne r7,#4,kend;沒有按鍵值相等,表示什么也不執行。
      cpl p1.7
      kend:ret


      d10ms:
      mov r6,#0
      ;mov r5,#0
      dms:
      ;inc r5
      ;cjne r5,#25,dms
      ;mov r5,#0
      inc r6
      cjne r6,#250,dms
      mov r6,#0
      cpl p1.7
      ret
      end
      1、 本站不保證以上觀點正確,就算是本站原創作品,本站也不保證內容正確。
      2、如果您擁有本文版權,并且不想在本站轉載,請書面通知本站立即刪除并且向您公開道歉! 以上可能是本站收集或者轉載的文章,本站可能沒有文章中的元件或產品,如果您需要類似的商品請 點這里查看商品列表!
      本站協議。 版權信息。 關于我們。 本站地圖。 營業執照。 發票說明。 付款方式。 聯系方式
      深圳市寶安區西鄉五壹電子商行——粵ICP備16073394號-1;地址:深圳西鄉河西四坊183號;郵編:518102
      E-mail:51dz$163.com($改為@);Tel:(0755)27947428
      工作時間:9:30-12:00和13:30-17:30和18:30-20:30,無人接聽時可以再打手機13537585389
      91嫩草黄片动漫版