找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3657|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

制作無(wú)線遙控解碼詳細(xì)資料 匯編語(yǔ)言

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
關(guān)于初學(xué)者用51單片機(jī)制作無(wú)線遙控的詳細(xì)資料

  1. ;@ by yangzhenshang
  2. ;@ email:yangzhenshang@hotmail.com
  3. ;@ 2003.7.20

  4. keydata equ 30h  

  5. org 00h
  6. main:
  7. mov keydata,#0        
  8.         mov tmod ,#09h
  9.              mov  r7,#0
  10.         mov  r6,#0
  11.         jb p3.2,$
  12. again:
  13.         mov tl0,#0
  14.         mov th0,#0        
  15.         setb tr0
  16.         jnb p3.2,$
  17.         jb p3.2,$
  18.         clr tr0        
  19.         mov a,th0
  20.         clr c
  21.         subb a,#12
  22.         jc again
  23.         mov a,#14
  24.         clr c
  25.         subb a,th0
  26.         jc again   ;seaching start bit:  3.6ms
  27. nextbit:
  28.         mov tl0,#0
  29.         mov th0,#0
  30.         setb tr0
  31.         jnb p3.2,$
  32.         jb p3.2,$
  33.         clr tr0
  34.         mov a,th0
  35.         clr c
  36.         subb a,#8
  37.         jc next  ;;;;;;;;;;if <2.2ms
  38.         mov a,#10
  39.         clr c
  40.         subb a,th0
  41.         jc again ;;;;;;;if >2.7ms
  42.         mov a,keydata
  43.         setb c          ;bit  = 1
  44.         rrc a
  45.         mov keydata,a
  46.         inc r7
  47.         cjne r7,#8,nextbit
  48.         inc r6
  49.         cjne r6,#2,last8
  50.         sjmp seach
  51. last8:
  52.         mov keydata+1,a
  53.         mov r7,#0
  54.         sjmp nextbit        
  55. next:   
  56.         mov a,th0
  57.         swap a
  58.         mov r1,a
  59.         anl tl0,#0f0h
  60.         mov a,tl0
  61.         clr c
  62.         rrc a
  63.         rrc a
  64.         rrc a
  65.         rrc a
  66.         add a,r1
  67.         mov r1,a
  68.         subb a,#30
  69.         jc nextbit ; if <0.84ms
  70.         mov a,r1
  71.         clr c
  72.         cjne a,#64,continue
  73. continue:
  74.         jnc nextbit ;  if >1.11ms
  75.         mov a,keydata
  76.         clr c          ;bit  = 0
  77.         rrc a
  78.         mov keydata,a
  79.         inc r7
  80.         cjne r7,#8,nextbit
  81.         inc r6
  82.         cjne r6,#2,last_8
  83.         sjmp seach
  84. last_8:
  85.         mov keydata+1,a
  86.         mov r7,#0
  87.         sjmp nextbit
  88. seach:        
  89.         mov r0,#-2  ;pointer
  90.         mov r1,#-1  ;counter        
  91. seach1:
  92.         inc r0
  93. seach2:        inc r0
  94.         inc r1
  95.         cjne r1,#29,compare
  96.         sjmp exit0
  97. compare:
  98.          mov a,r0
  99.         mov dptr,#keycode
  100.         movc a,@a+dptr
  101.         cjne a,keydata,seach1
  102.         inc r0
  103.         mov a,r0
  104.         mov dptr,#keycode
  105.         movc a,@a+dptr
  106.         cjne a,keydata+1,seach2
  107.         mov p1,r1         ;output to p1
  108. send:        
  109.         mov tmod,#20h     ;   timer 1,mode 2
  110.         mov tl1,#0fdh
  111.         mov th1,#0fdh
  112.         mov scon,#01010000b;9600,8,1,0
  113.         setb tr1
  114. loop_s:
  115.         mov sbuf,r1    ;send to the serial port of computer
  116.         jnb ti,$
  117.         clr ti
  118. exit0:        
  119. ljmp main

  120. keycode:
  121. db 11111000b,00000000b,    11111100b,00000000b,    11111001b,11000000b
  122. db 11111100b,11000000b,    11111010b,00000000b,    11111010b,00100000b
  123. db 11111010b,01000000b,    11111010b,01100000b,    11111010b,10000000b
  124. db 11111010b,10100000b,    11111010b,11000000b,    11111010b,11100000b
  125. db 11111011b,00000000b,    11111011b,00100000b,    11111011b,01000000b
  126. db 11111011b,01100000b,    11111111b,01100000b,    11111111b,10100000b
  127. db 10001100b,10001110b,    10001101b,11101110b,    10001100b,10101110b
  128. db 10001101b,11001110b,    11111000b,11100000b,    11111100b,10000000b
  129. db 11111100b,01000000b,    11111001b,10100000b,    11111100b,10100000b
  130. db 11111100b,01100000b
  131. end
復(fù)制代碼


所有資料下載:
自做遙控資料.rar (367 KB, 下載次數(shù): 17)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表