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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

學(xué)習(xí)型紅外遙控8路輸出端——巧妙利用家里的舊遙控器

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:72947 發(fā)表于 2015-5-14 00:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 qq704661078 于 2015-12-26 23:09 編輯

       以前在論壇都持觀望態(tài)度,今天第一次發(fā)帖,希望對大家有所幫助!因本人對匯編語言情有獨(dú)鐘,所以本程序用匯編語言編寫,經(jīng)過測試,MP3和電視機(jī)的遙控都能學(xué)習(xí)對鍵成功,其他遙控因為手頭沒有,所以不敢保證全部支持!P1口作為輸出口,我分別接了8個燈做指示,如果連上8路繼電器,就可紅外控制8路電器的工作,雖然紅外遙控受遙控距離及方向的影響用起來不夠順心,但在房間里是完全夠用了的!紅外接收頭接P3.7腳;8個學(xué)習(xí)鍵是利用P3.0和P3.1輪流輸出低電平與P3.2/3.3/3.4/3.5形成2*4矩陣鍵盤。短按按鍵可分別手動控制輸出端;長按某鍵5秒左右則進(jìn)入學(xué)習(xí)模式,相應(yīng)輸出端的指示燈亮起(學(xué)習(xí)指示燈與輸出指示燈復(fù)用,其實學(xué)習(xí)模式應(yīng)該是閃爍狀態(tài),但我沒寫這方面的程序,有需要的自己加進(jìn)去!),在5秒內(nèi)用遙控器對著接收頭按一次遙控的一個鍵(隨自己愛好),學(xué)習(xí)指示燈熄滅,學(xué)習(xí)成功!如果要刪除遙控鍵,則長按按鍵至學(xué)習(xí)模式后不按遙控器,5秒后學(xué)習(xí)指示燈熄滅,原來學(xué)習(xí)的遙控鍵數(shù)據(jù)被刪除,遙控器不能再控制這一路輸出,有需要了再重新學(xué)習(xí)此路!下面曬幾張我自制的實驗板:           圖片壓縮了,不然發(fā)不上來!!!——板子可插紅外接收頭、315M無線發(fā)射/接收模塊!!!
(1)、插紅外接收頭:


(2)、背面連接線路:


(3)、插315M無線接收模塊:


(4)、插315M無線發(fā)射模塊:





Text1.rar (3.79 KB, 下載次數(shù): 136)
程序更新...:
因之前發(fā)布的程序還存在小Bug,正好今天有空,就把最新的程序貼上來吧!此次更新主要解決以下問題:按某個鍵后5S內(nèi)再按另外一個鍵會誤判斷進(jìn)入第二個鍵的學(xué)習(xí)模式...(在按鍵掃描部分加了一些處理動作)
好了,不多說,看程序吧:

;;;STC12C2052/STC12C56**學(xué)習(xí)型紅外遙控8路繼電器
;;;內(nèi)部RC振蕩器約6MHz;;;
;;;寫EEPROM數(shù)據(jù)不能調(diào)公共的"寫",所以每1路的學(xué)習(xí)模式里
;;;都要重復(fù)寫一堆相同的程序,感覺有點(diǎn)浪費(fèi)空間了,郁悶ing...
;;;修改日期2015/10/10;;;

;----------------------
       ISP_DATA  EQU 0E2H ;定義EEPROM相關(guān)寄存器
       ISP_ADDRH EQU 0E3H ;此類寄存器地址需參考所用單片機(jī)的手冊來設(shè)置
       ISP_ADDRL EQU 0E4H ;STC12C2052和56**系列的地址是E2H~E7H
       ISP_CMD   EQU 0E5H
       ISP_TRIG  EQU 0E6H
       ISP_CONTR EQU 0E7H

;----------------------
       AUXR  EQU 08EH    ;定時器1T/12T時鐘模式控制
       IRCOM EQU 20H     ;RAM中接收到的鍵值起始存放地址(20H-23H)
       Z EQU 00H         ;長按標(biāo)志位
       X EQU 01H         ;接收完成標(biāo)志位
       D EQU 02H         ;學(xué)習(xí)模式標(biāo)志位
         
       IRIN EQU  P3.7    ;紅外接收頭
       K1   EQU  P3.2    ;學(xué)習(xí)鍵 (P3.0與P3.1輪流輸出0)
       K2   EQU  P3.3    ;學(xué)習(xí)鍵 (實現(xiàn)2*4矩陣鍵盤)
       K3   EQU  P3.4    ;學(xué)習(xí)鍵
       K4   EQU  P3.5    ;學(xué)習(xí)鍵
       LED8 EQU  P1.0    ;OUT8         
       LED7 EQU  P1.1    ;OUT7
       LED6 EQU  P1.2    ;OUT6
       LED5 EQU  P1.3    ;OUT5
       LED4 EQU  P1.4    ;OUT4
       LED3 EQU  P1.5    ;OUT3
       LED2 EQU  P1.6    ;OUT2
       LED1 EQU  P1.7    ;OUT1

;----------------------
       ORG 0000H
       LJMP START        ;跳初始化
       ORG 000BH
       LJMP T0INT        ;T0中斷服務(wù)子程序入口
       ORG 0030H

;----------------------
START: MOV   SP,#5FH
       MOV   R0,#20H
LP0:   MOV   @R0,#00H    ;20H-43H清零
       INC   R0
       CJNE  R0,#44H,LP0         
       MOV   P3,#0FFH    ;P3口置1
       MOV   AUXR,00H    ;T0/12T時鐘模式
       MOV   TMOD,#01H   ;定時器工作模式1(16位)
       SETB  EA          ;開總中斷EA
       SETB  ET0         ;開T0中斷ET0         
       CLR  Z
       CLR  X
       CLR  D  

;-----------------------
MAIN:                    ;主程序
       ACALL IR_IN      
       ACALL KEYP30      ;矩陣鍵盤掃描
       ACALL KEYP31      ;矩陣鍵盤掃描
       AJMP MAIN

;-----------------------
;(紅外接收譯碼)
;-----------------------
IR_IN: JNB  IRIN,I2      ;等待 IR 信號出現(xiàn),IRIN=0則跳到I2
       AJMP  IEND        ;如果沒有接收到紅外信號則先跳出

I2:    MOV  R1,#30
I20:   ACALL  DEL
       DJNZ  R1,I20      ;延時去抖動
       JB IRIN,IR_IN     ;確認(rèn)IR信號,去抖動后IRIN仍為0則往下執(zhí)行
I21:   JB  IRIN,I3       ;持續(xù)4.5mS的低電平,等IRIN為1后跳到I3
       AJMP  I21         ;此處循環(huán)等待高電平的到來

I3:    MOV   R0,#IRCOM   
       MOV  R3,#0        ;8位計數(shù)器清0
LL:    JNB  IRIN,I4      ;持續(xù)4.5mS的高電平,等IRIN為0后跳到I4
       AJMP  LL          ;此處循環(huán)等待低電平的到來
;;;;;以上I1-I3程序完成引導(dǎo)碼的確認(rèn)(4.5mS低電平+4.5mS高電平);;;;;

I4:    JB  IRIN,I5       ;持續(xù)0.565mS的低電平,等IRIN為1后跳到I5
       AJMP  I4          ;此處循環(huán)等待高電平的到來

I5:    MOV  R2,#0        ;高電平到來后開始0.14mS計一次數(shù)
L1:    ACALL  DEL
       JB  IRIN, N1      ;IRIN為1則跳N1繼續(xù)計數(shù)

       MOV  A,#8         ;計算高電平長度
       CLR  C            ;減前清進(jìn)/借位c
       SUBB  A,R2        ;以R2的值判斷此位的高/低(R2<8為0;R2>8為1)
                         ;計數(shù)值<8則此位為0(即8-R2;c=0)
       MOV  A,@R0
       RRC  A        
       MOV  @R0,A        ;將接收到的一位存入對應(yīng)的鍵值緩存區(qū)
       INC  R3           ;處理完一位
       CJNE  R3,#8,LL    ;需收集8位  
       MOV  R3,#0        ;收集到1字節(jié)
       INC  R0           ;需收集4字節(jié)
       CJNE  R0,#24H,LL  ;用戶碼+用戶碼+操作碼+操作反碼

       SETB X            ;接收完成標(biāo)志位置1
       JB D,IEND         ;如果D=1說明是學(xué)習(xí)模式跳過鍵值對比
       AJMP  DK          ;跳到鍵值對比區(qū)         

N1:    INC  R2           ;0.14mS R2加一次
       CJNE  R2,#30,L1   ;0.14ms 計數(shù)過長則時間到自動離開
IEND:  RET

;-----------------------
; DELAY_0.14MS(以12M晶振/12T計算)
;-----------------------
DEL:   ;IR解碼使用(1+2+128+2+4+4=141uS=0.14mS)
       MOV  R5,#3       ;內(nèi)部約6M/1T,3次;;;12M/1T,6次
DEL0:  MOV  R6,#2       ;1uS
DEL1:  MOV  R7,#32      ;1uS*2次=2uS
       DJNZ  R7,$       ;32*2uS*2次=128uS
       nop              ;1uS*2次=2uS
       DJNZ  R6,DEL1    ;2uS*2次=4uS  
       DJNZ  R5,DEL0    ;(1T單片機(jī))
       RET              ;2uS+(acall的)2uS=4uS

;-----------------------
DK:    MOV R0,#24H       ;內(nèi)部鍵值起始存放地址
       MOV DPTR,#00H     ;第1扇區(qū)起始地址
       MOV R1,#4         ;讀4個字節(jié)
DP1:   ACALL EEPROMR     ;讀一字節(jié)
       MOV @R0,A         ;讀出的數(shù)據(jù)存到相應(yīng)地址
       INC R0            ;內(nèi)存地址加一
       INC DPTR          ;地址指針加一
       DJNZ R1,DP1       ;循環(huán)讀完4字節(jié)

       MOV DPTR,#200H    ;第2扇區(qū)起始地址
       MOV R1,#4         ;讀4個字節(jié)
DP2:   ACALL EEPROMR     ;讀一字節(jié)
       MOV @R0,A         ;讀出的數(shù)據(jù)存到相應(yīng)地址
       INC R0            ;內(nèi)存地址加一
       INC DPTR          ;地址指針加一
       DJNZ R1,DP2       ;循環(huán)讀完4字節(jié)

       MOV DPTR,#400H    ;第3扇區(qū)起始地址
       MOV R1,#4         ;讀4個字節(jié)
DP3:   ACALL EEPROMR     ;讀一字節(jié)
       MOV @R0,A         ;讀出的數(shù)據(jù)存到相應(yīng)地址
       INC R0            ;內(nèi)存地址加一
       INC DPTR          ;地址指針加一
       DJNZ R1,DP3       ;循環(huán)讀完4字節(jié)

       MOV DPTR,#600H    ;第4扇區(qū)起始地址
       MOV R1,#4         ;讀4個字節(jié)
DP4:   ACALL EEPROMR     ;讀一字節(jié)
       MOV @R0,A         ;讀出的數(shù)據(jù)存到相應(yīng)地址
       INC R0            ;內(nèi)存地址加一
       INC DPTR          ;地址指針加一
       DJNZ R1,DP4       ;循環(huán)讀完4字節(jié)

       MOV DPTR,#800H    ;第5扇區(qū)起始地址
       MOV R1,#4         ;讀4個字節(jié)
DP5:   ACALL EEPROMR     ;讀一字節(jié)
       MOV @R0,A         ;讀出的數(shù)據(jù)存到相應(yīng)地址
       INC R0            ;內(nèi)存地址加一
       INC DPTR          ;地址指針加一
       DJNZ R1,DP5       ;循環(huán)讀完4字節(jié)

       MOV DPTR,#0A00H   ;第6扇區(qū)起始地址
       MOV R1,#4         ;讀4個字節(jié)
DP6:   ACALL EEPROMR     ;讀一字節(jié)
       MOV @R0,A         ;讀出的數(shù)據(jù)存到相應(yīng)地址
       INC R0            ;內(nèi)存地址加一
       INC DPTR          ;地址指針加一
       DJNZ R1,DP6       ;循環(huán)讀完4字節(jié)

       MOV DPTR,#0C00H   ;第7扇區(qū)起始地址
       MOV R1,#4         ;讀4個字節(jié)
DP7:   ACALL EEPROMR     ;讀一字節(jié)
       MOV @R0,A         ;讀出的數(shù)據(jù)存到相應(yīng)地址
       INC R0            ;內(nèi)存地址加一
       INC DPTR          ;地址指針加一
       DJNZ R1,DP7       ;循環(huán)讀完4字節(jié)

       MOV DPTR,#0E00H   ;第8扇區(qū)起始地址
       MOV R1,#4         ;讀4個字節(jié)
DP8:   ACALL EEPROMR     ;讀一字節(jié)
       MOV @R0,A         ;讀出的數(shù)據(jù)存到相應(yīng)地址
       INC R0            ;內(nèi)存地址加一
       INC DPTR          ;地址指針加一
       DJNZ R1,DP8       ;循環(huán)讀完4字節(jié)

       MOV A,20H         ;接收到的用戶碼
       CJNE A,24H,D1     ;與內(nèi)部存放的對比
       MOV A,21H         ;接收到的用戶反碼
       CJNE A,25H,D1     ;與內(nèi)部存放的對比
       MOV A,22H         ;接收到的操作碼
       CJNE A,26H,D1     ;與內(nèi)部存放的對比
       MOV A,23H         ;接收到的操作反碼
       CJNE A,27H,D1     ;與內(nèi)部存放的對比
       CPL LED1          ;都相同,則取反輸出1狀態(tài)

D1:    MOV A,20H         ;接收到的用戶碼
       CJNE A,28H,D2     ;與內(nèi)部存放的對比
       MOV A,21H         ;接收到的用戶反碼
       CJNE A,29H,D2     ;與內(nèi)部存放的對比
       MOV A,22H         ;接收到的操作碼
       CJNE A,2AH,D2     ;與內(nèi)部存放的對比
       MOV A,23H         ;接收到的操作反碼
       CJNE A,2BH,D2     ;與內(nèi)部存放的對比
       CPL LED2          ;都相同,則取反輸出2狀態(tài)

D2:    MOV A,20H         ;接收到的用戶碼
       CJNE A,2CH,D3     ;與內(nèi)部存放的對比
       MOV A,21H         ;接收到的用戶反碼
       CJNE A,2DH,D3     ;與內(nèi)部存放的對比
       MOV A,22H         ;接收到的操作碼
       CJNE A,2EH,D3     ;與內(nèi)部存放的對比
       MOV A,23H         ;接收到的操作反碼
       CJNE A,2FH,D3     ;與內(nèi)部存放的對比
       CPL LED3          ;都相同,則取反輸出3狀態(tài)

D3:    MOV A,20H         ;接收到的用戶碼
       CJNE A,30H,D4     ;與內(nèi)部存放的對比
       MOV A,21H         ;接收到的用戶反碼
       CJNE A,31H,D4     ;與內(nèi)部存放的對比
       MOV A,22H         ;接收到的操作碼
       CJNE A,32H,D4     ;與內(nèi)部存放的對比
       MOV A,23H         ;接收到的操作反碼
       CJNE A,33H,D4     ;與內(nèi)部存放的對比
       CPL LED4          ;都相同,則取反輸出4狀態(tài)

D4:    MOV A,20H         ;接收到的用戶碼
       CJNE A,34H,D5     ;與內(nèi)部存放的對比
       MOV A,21H         ;接收到的用戶反碼
       CJNE A,35H,D5     ;與內(nèi)部存放的對比
       MOV A,22H         ;接收到的操作碼
       CJNE A,36H,D5     ;與內(nèi)部存放的對比
       MOV A,23H         ;接收到的操作反碼
       CJNE A,37H,D5     ;與內(nèi)部存放的對比
       CPL LED5          ;都相同,則取反輸出5狀態(tài)

D5:    MOV A,20H         ;接收到的用戶碼
       CJNE A,38H,D6     ;與內(nèi)部存放的對比
       MOV A,21H         ;接收到的用戶反碼
       CJNE A,39H,D6     ;與內(nèi)部存放的對比
       MOV A,22H         ;接收到的操作碼
       CJNE A,3AH,D6     ;與內(nèi)部存放的對比
       MOV A,23H         ;接收到的操作反碼
       CJNE A,3BH,D6     ;與內(nèi)部存放的對比
       CPL LED6          ;都相同,則取反輸出6狀態(tài)

D6:    MOV A,20H         ;接收到的用戶碼
       CJNE A,3CH,D7     ;與內(nèi)部存放的對比
       MOV A,21H         ;接收到的用戶反碼
       CJNE A,3DH,D7     ;與內(nèi)部存放的對比
       MOV A,22H         ;接收到的操作碼
       CJNE A,3EH,D7     ;與內(nèi)部存放的對比
       MOV A,23H         ;接收到的操作反碼
       CJNE A,3FH,D7     ;與內(nèi)部存放的對比
       CPL LED7          ;都相同,則取反輸出7狀態(tài)

D7:    MOV A,20H         ;接收到的用戶碼
       CJNE A,40H,DEND   ;與內(nèi)部存放的對比
       MOV A,21H         ;接收到的用戶反碼
       CJNE A,41H,DEND   ;與內(nèi)部存放的對比
       MOV A,22H         ;接收到的操作碼
       CJNE A,42H,DEND   ;與內(nèi)部存放的對比
       MOV A,23H         ;接收到的操作反碼
       CJNE A,43H,DEND   ;與內(nèi)部存放的對比
       CPL LED8          ;都相同,則取反輸出8狀態(tài)
DEND:  RET

;-----------------------
KEYP30:CLR P3.0          ;P3.0與P3.1輪流輸出0,實現(xiàn)矩陣鍵盤

KEY1:  JB K1,KEY3
       CLR TR0;這兩句是為了防止在快速連按按鍵  (2015/10/10修改)
       MOV 45H,#0;或快速切換按鍵時,誤判斷進(jìn)入學(xué)習(xí)模式
       ACALL DELAY30MS   ;延時去抖動
       JB K1,KEY3
       ACALL OPEN_T0     ;打開T0計時判斷長按
XH1:   JBC Z,XUEXI1      ;長按跳轉(zhuǎn)到學(xué)習(xí)1,并清零長按標(biāo)志
       JNB K1,XH1
       CPL LED1          ;OUT1狀態(tài)取反
       RET
XUEXI1:                  ;學(xué)習(xí)1
       MOV DPTR,#00H     ;第1扇區(qū)
       ACALL PDSQ        ;讀數(shù)判斷扇區(qū)是否為空
       MOV P1,#07FH      ;LED1
       SETB D            ;學(xué)習(xí)模式標(biāo)志位置1
       ACALL OPEN_T0     ;開T0進(jìn)行等待計時
DZ1:   ACALL IR_IN       ;在5S內(nèi)循環(huán)調(diào)用紅外接收程序
       JBC z,XEND1       ;5S后沒接收到新數(shù)據(jù)則退出
       JNB X,DZ1         ;接收完成標(biāo)志為0則循環(huán)等待
;寫EEPROM數(shù)據(jù)不能調(diào)公共的"寫",所以只能每次
;學(xué)習(xí)模式里都有一堆程序重復(fù)寫,浪費(fèi)空間了!!!                                
       MOV DPTR,#00H     ;第1扇區(qū)起始地址;存入新鍵值   
       MOV R0,#20H       ;RAM中接收到的鍵值起始存放地址     
       MOV R1,#4         ;寫4個字節(jié)
LP1:   MOV A,@R0
       ACALL EEPROMW     ;寫一字節(jié)
       INC R0            ;內(nèi)存地址加一
       INC DPTR          ;地址指針加一
       DJNZ R1,LP1       ;循環(huán)寫完4字節(jié)
XEND1: CLR D             ;退出學(xué)習(xí)模式
       SETB LED1         ;關(guān)燈
       RET               ;退出

KEY3:  JB K2,KEY5
       CLR TR0;這兩句是為了防止在快速連按按鍵  (2015/10/10修改)
       MOV 45H,#0;或快速切換按鍵時,誤判斷進(jìn)入學(xué)習(xí)模式
       ACALL DELAY30MS   ;延時去抖動
       JB K2,KEY5
       ACALL OPEN_T0     ;打開T0計時判斷長按
XH3:   JBC Z,XUEXI3      ;長按跳轉(zhuǎn)到學(xué)習(xí)3,并清零長按標(biāo)志
       JNB K2,XH3
       CPL LED3          ;OUT3狀態(tài)取反
       RET
XUEXI3:                  ;學(xué)習(xí)3
       MOV DPTR,#400H    ;第3扇區(qū)
       ACALL PDSQ        ;讀數(shù)判斷扇區(qū)是否為空
       MOV P1,#0DFH      ;LED3
       SETB D            ;學(xué)習(xí)模式標(biāo)志位置1
       ACALL OPEN_T0     ;開T0進(jìn)行等待計時
DZ3:   ACALL IR_IN       ;在5S內(nèi)循環(huán)調(diào)用紅外接收程序
       JBC z,XEND3       ;5S后沒接收到新數(shù)據(jù)則退出
       JNB X,DZ3         ;接收完成標(biāo)志為0則循環(huán)等待

       MOV DPTR,#400H    ;第3扇區(qū)起始地址;存入新鍵值   
       MOV R0,#20H       ;RAM中接收到的鍵值起始存放地址     
       MOV R1,#4         ;寫4個字節(jié)
LP3:   MOV A,@R0
       ACALL EEPROMW     ;寫一字節(jié)
       INC R0            ;內(nèi)存地址加一
       INC DPTR          ;地址指針加一
       DJNZ R1,LP3       ;循環(huán)寫完4字節(jié)
XEND3: CLR D             ;退出學(xué)習(xí)模式
       SETB LED3         ;關(guān)燈
       RET               ;退出

KEY5:  JB K3,KEY7
       CLR TR0;這兩句是為了防止在快速連按按鍵  (2015/10/10修改)
       MOV 45H,#0;或快速切換按鍵時,誤判斷進(jìn)入學(xué)習(xí)模式
       ACALL DELAY30MS   ;延時去抖動
       JB K3,KEY7
       ACALL OPEN_T0     ;打開T0計時判斷長按
XH5:   JBC Z,XUEXI5      ;長按跳轉(zhuǎn)到學(xué)習(xí)5,并清零長按標(biāo)志
       JNB K3,XH5
       CPL LED5          ;OUT5狀態(tài)取反
       RET
XUEXI5:                  ;學(xué)習(xí)5
       MOV DPTR,#800H    ;第5扇區(qū)
       ACALL PDSQ        ;讀數(shù)判斷扇區(qū)是否為空
       MOV P1,#0F7H      ;LED5
       SETB D            ;學(xué)習(xí)模式標(biāo)志位置1
       ACALL OPEN_T0     ;開T0進(jìn)行等待計時
DZ5:   ACALL IR_IN       ;在5S內(nèi)循環(huán)調(diào)用紅外接收程序
       JBC z,XEND5       ;5S后沒接收到新數(shù)據(jù)則退出
       JNB X,DZ5         ;接收完成標(biāo)志為0則循環(huán)等待

       MOV DPTR,#800H    ;第5扇區(qū)起始地址;存入新鍵值   
       MOV R0,#20H       ;RAM中接收到的鍵值起始存放地址     
       MOV R1,#4         ;寫4個字節(jié)
LP5:   MOV A,@R0
       ACALL EEPROMW     ;寫一字節(jié)
       INC R0            ;內(nèi)存地址加一
       INC DPTR          ;地址指針加一
       DJNZ R1,LP5       ;循環(huán)寫完4字節(jié)
XEND5: CLR D             ;退出學(xué)習(xí)模式
       SETB LED5         ;關(guān)燈
       RET               ;退出

KEY7:  JB K4,KP30OUT
       CLR TR0;這兩句是為了防止在快速連按按鍵  (2015/10/10修改)
       MOV 45H,#0;或快速切換按鍵時,誤判斷進(jìn)入學(xué)習(xí)模式
       ACALL DELAY30MS   ;延時去抖動
       JB K4,KP30OUT
       ACALL OPEN_T0     ;打開T0計時判斷長按
XH7:   JBC Z,XUEXI7      ;長按跳轉(zhuǎn)到學(xué)習(xí)7,并清零長按標(biāo)志
       JNB K4,XH7
       CPL LED7          ;OUT7狀態(tài)取反
       RET
XUEXI7:                  ;學(xué)習(xí)7
       MOV DPTR,#0C00H   ;第7扇區(qū)
       ACALL PDSQ        ;讀數(shù)判斷扇區(qū)是否為空
       MOV P1,#0FDH      ;LED7
       SETB D            ;學(xué)習(xí)模式標(biāo)志位置1
       ACALL OPEN_T0     ;開T0進(jìn)行等待計時
DZ7:   ACALL IR_IN       ;在5S內(nèi)循環(huán)調(diào)用紅外接收程序
       JBC z,XEND7       ;5S后沒接收到新數(shù)據(jù)則退出
       JNB X,DZ7         ;接收完成標(biāo)志為0則循環(huán)等待

       MOV DPTR,#0C00H   ;第7扇區(qū)起始地址;存入新鍵值   
       MOV R0,#20H       ;RAM中接收到的鍵值起始存放地址     
       MOV R1,#4         ;寫4個字節(jié)
LP7:   MOV A,@R0
       ACALL EEPROMW     ;寫一字節(jié)
       INC R0            ;內(nèi)存地址加一
       INC DPTR          ;地址指針加一
       DJNZ R1,LP7       ;循環(huán)寫完4字節(jié)
XEND7: CLR D             ;退出學(xué)習(xí)模式
       SETB LED7         ;關(guān)燈
       RET               ;退出

KP30OUT:
       SETB P3.0
       RET

;-----------------------
KEYP31:CLR P3.1          ;P3.0與P3.1輪流輸出0,實現(xiàn)矩陣鍵盤

KEY2:  JB K1,KEY4
       CLR TR0;這兩句是為了防止在快速連按按鍵  (2015/10/10修改)
       MOV 45H,#0;或快速切換按鍵時,誤判斷進(jìn)入學(xué)習(xí)模式
       ACALL DELAY30MS   ;延時去抖動
       JB K1,KEY4
       ACALL OPEN_T0     ;打開T0計時判斷長按
XH2:   JBC Z,XUEXI2      ;長按跳轉(zhuǎn)到學(xué)習(xí)2,并清零長按標(biāo)志
       JNB K1,XH2
       CPL LED2          ;OUT2狀態(tài)取反
       RET
XUEXI2:                  ;學(xué)習(xí)2
       MOV DPTR,#200H    ;第2扇區(qū)
       ACALL PDSQ        ;讀數(shù)判斷扇區(qū)是否為空
       MOV P1,#0BFH      ;LED2
       SETB D            ;學(xué)習(xí)模式標(biāo)志位置1
       ACALL OPEN_T0     ;開T0進(jìn)行等待計時
DZ2:   ACALL IR_IN       ;在5S內(nèi)循環(huán)調(diào)用紅外接收程序
       JBC z,XEND2       ;5S后沒接收到新數(shù)據(jù)則退出
       JNB X,DZ2         ;接收完成標(biāo)志為0則循環(huán)等待

       MOV DPTR,#200H    ;第2扇區(qū)起始地址;存入新鍵值   
       MOV R0,#20H       ;RAM中接收到的鍵值起始存放地址     
       MOV R1,#4         ;寫4個字節(jié)
LP2:   MOV A,@R0
       ACALL EEPROMW     ;寫一字節(jié)
       INC R0            ;內(nèi)存地址加一
       INC DPTR          ;地址指針加一
       DJNZ R1,LP2       ;循環(huán)寫完4字節(jié)
XEND2: CLR D             ;退出學(xué)習(xí)模式
       SETB LED2         ;關(guān)燈
       RET               ;退出

KEY4:  JB K2,KEY6
       CLR TR0;這兩句是為了防止在快速連按按鍵  (2015/10/10修改)
       MOV 45H,#0;或快速切換按鍵時,誤判斷進(jìn)入學(xué)習(xí)模式
       ACALL DELAY30MS   ;延時去抖動
       JB K2,KEY6
       ACALL OPEN_T0     ;打開T0計時判斷長按
XH4:   JBC Z,XUEXI4      ;長按跳轉(zhuǎn)到學(xué)習(xí)4,并清零長按標(biāo)志
       JNB K2,XH4
       CPL LED4          ;OUT4狀態(tài)取反
       RET
XUEXI4:                  ;學(xué)習(xí)4
       MOV DPTR,#600H    ;第4扇區(qū)
       ACALL PDSQ        ;讀數(shù)判斷扇區(qū)是否為空
       MOV P1,#0EFH      ;LED4
       SETB D            ;學(xué)習(xí)模式標(biāo)志位置1
       ACALL OPEN_T0     ;開T0進(jìn)行等待計時
DZ4:   ACALL IR_IN       ;在5S內(nèi)循環(huán)調(diào)用紅外接收程序
       JBC z,XEND4       ;5S后沒接收到新數(shù)據(jù)則退出
       JNB X,DZ4         ;接收完成標(biāo)志為0則循環(huán)等待

       MOV DPTR,#600H    ;第4扇區(qū)起始地址;存入新鍵值   
       MOV R0,#20H       ;RAM中接收到的鍵值起始存放地址     
       MOV R1,#4         ;寫4個字節(jié)
LP4:   MOV A,@R0
       ACALL EEPROMW     ;寫一字節(jié)
       INC R0            ;內(nèi)存地址加一
       INC DPTR          ;地址指針加一
       DJNZ R1,LP4       ;循環(huán)寫完4字節(jié)
XEND4: CLR D             ;退出學(xué)習(xí)模式
       SETB LED4         ;關(guān)燈
       RET               ;退出

KEY6:  JB K3,KEY8
       CLR TR0;這兩句是為了防止在快速連按按鍵  (2015/10/10修改)
       MOV 45H,#0;或快速切換按鍵時,誤判斷進(jìn)入學(xué)習(xí)模式
       ACALL DELAY30MS   ;延時去抖動
       JB K3,KEY8
       ACALL OPEN_T0     ;打開T0計時判斷長按
XH6:   JBC Z,XUEXI6      ;長按跳轉(zhuǎn)到學(xué)習(xí)6,并清零長按標(biāo)志
       JNB K3,XH6
       CPL LED6          ;OUT6狀態(tài)取反
       RET
XUEXI6:                  ;學(xué)習(xí)6
       MOV DPTR,#0A00H   ;第6扇區(qū)
       ACALL PDSQ        ;讀數(shù)判斷扇區(qū)是否為空
       MOV P1,#0FBH      ;LED6
       SETB D            ;學(xué)習(xí)模式標(biāo)志位置1
       ACALL OPEN_T0     ;開T0進(jìn)行等待計時
DZ6:   ACALL IR_IN       ;在5S內(nèi)循環(huán)調(diào)用紅外接收程序
       JBC z,XEND6       ;5S后沒接收到新數(shù)據(jù)則退出
       JNB X,DZ6         ;接收完成標(biāo)志為0則循環(huán)等待

       MOV DPTR,#0A00H   ;第6扇區(qū)起始地址;存入新鍵值   
       MOV R0,#20H       ;RAM中接收到的鍵值起始存放地址     
       MOV R1,#4         ;寫4個字節(jié)
LP6:   MOV A,@R0
       ACALL EEPROMW     ;寫一字節(jié)
       INC R0            ;內(nèi)存地址加一
       INC DPTR          ;地址指針加一
       DJNZ R1,LP6       ;循環(huán)寫完4字節(jié)
XEND6: CLR D             ;退出學(xué)習(xí)模式
       SETB LED6         ;關(guān)燈
       RET               ;退出

KEY8:  JB K4,KP31OUT
       CLR TR0;這兩句是為了防止在快速連按按鍵  (2015/10/10修改)
       MOV 45H,#0;或快速切換按鍵時,誤判斷進(jìn)入學(xué)習(xí)模式
       ACALL DELAY30MS   ;延時去抖動
       JB K4,KP31OUT
       ACALL OPEN_T0     ;打開T0計時判斷長按
XH8:   JBC Z,XUEXI8      ;長按跳轉(zhuǎn)到學(xué)習(xí)8,并清零長按標(biāo)志
       JNB K4,XH8
       CPL LED8          ;OUT8狀態(tài)取反
       RET
XUEXI8:                  ;學(xué)習(xí)8
       MOV DPTR,#0E00H   ;第8扇區(qū)
       ACALL PDSQ        ;讀數(shù)判斷扇區(qū)是否為空
       MOV P1,#0FEH      ;LED8
       SETB D            ;學(xué)習(xí)模式標(biāo)志位置1
       ACALL OPEN_T0     ;開T0進(jìn)行等待計時
DZ8:   ACALL IR_IN       ;在5S內(nèi)循環(huán)調(diào)用紅外接收程序
       JBC z,XEND8       ;5S后沒接收到新數(shù)據(jù)則退出
       JNB X,DZ8         ;接收完成標(biāo)志為0則循環(huán)等待

       MOV DPTR,#0E00H   ;第8扇區(qū)起始地址;存入新鍵值   
       MOV R0,#20H       ;RAM中接收到的鍵值起始存放地址     
       MOV R1,#4         ;寫4個字節(jié)
LP8:   MOV A,@R0
       ACALL EEPROMW     ;寫一字節(jié)
       INC R0            ;內(nèi)存地址加一
       INC DPTR          ;地址指針加一
       DJNZ R1,LP8       ;循環(huán)寫完4字節(jié)
XEND8: CLR D             ;退出學(xué)習(xí)模式
       SETB LED8         ;關(guān)燈
       RET               ;退出

KP31OUT:
       SETB P3.1
       RET

;-----------------------
DELAY30MS:               ;6M/1T模式延時約30mS
       MOV R7,#6  
DL1:   MOV R6,#100
DL0:   MOV R5,#150
       DJNZ R5,$   
       DJNZ R6,DL0
       DJNZ R7,DL1
       RET

;-----------------------
OPEN_T0:                 ;打開T0計時
       MOV TH0,#3CH      ;定時器0初值
       MOV TL0,#0B0H     ;內(nèi)部約6MHz(100ms)
       CLR Z             ;清長按標(biāo)志
       CLR X             ;接收完成標(biāo)志位清零
       SETB TR0          ;打開T0
       RET

;-----------------------
T0INT:                                  ;T0中斷(判斷長按)
       MOV TH0,#3CH      ;重裝初值
       MOV TL0,#0B0H     ;內(nèi)部約6MHz(100ms)
       INC 45H                       ;中斷計數(shù)約100ms一次
       MOV A,45H
       CJNE A,#30,TOUT1  ;100ms*30=3s
       MOV 45H,#0        ;中斷計數(shù)滿30清零
       SETB Z                       ;長按標(biāo)志位置1
       CLR TR0           ;關(guān)閉T0
TOUT1: RETI

;-----------------------
PDSQ:  ACALL EEPROMR     ;讀1個字節(jié)判斷扇區(qū)是否為空
       CJNE A,#0FFH,ERASE;扇區(qū)不為空則擦除扇區(qū)
       RET

;-----------------------
;EEPROM相關(guān)操作
;-----------------------
ERASE:;擦除
       MOV ISP_ADDRH,DPH   ;送高地址
       MOV ISP_ADDRL,DPL   ;送低地址
       MOV ISP_CONTR,#83H  ;允許ISP/IAP操作(6~12MHz)
       MOV ISP_CMD,#03H    ;扇區(qū)擦除
       ACALL ISPCF         ;觸發(fā)IAP
       ACALL ISP_DISABLE   ;禁止ISP/IAP操作
       RET
;----------------------
EEPROMW:;寫
       MOV ISP_DATA,A      ;ACC里是要寫入的數(shù)據(jù)
       MOV ISP_ADDRH,DPH   ;送高地址
       MOV ISP_ADDRL,DPL   ;送低地址
       MOV ISP_CONTR,#83H  ;允許ISP/IAP操作(6~12MHz)
       MOV ISP_CMD,#02H    ;送寫命令
       ACALL ISPCF         ;觸發(fā)IAP
       ACALL ISP_DISABLE   ;禁止ISP/IAP操作
       RET
;----------------------
EEPROMR: ;讀
       MOV ISP_ADDRH,DPH   ;送高地址
       MOV ISP_ADDRL,DPL   ;送低地址
       MOV ISP_CONTR,#83H  ;允許ISP/IAP操作(6~12MHz)
       MOV ISP_CMD,#01H    ;送讀命令
       ACALL ISPCF         ;觸發(fā)IAP
       MOV A,ISP_DATA      ;讀出的數(shù)據(jù)放到ACC
       ACALL ISP_DISABLE   ;禁止ISP/IAP操作
       RET
;----------------------
ISPCF: ;觸發(fā)ISP/IAP
       MOV ISP_TRIG, #46H  ;以MCU型號來定;STC12C2052(46H/0B9H)
       MOV ISP_TRIG, #0B9H ;11F和15F系列相同(5AH/0A5H)
       NOP
       RET
;----------------------
ISP_DISABLE: ;禁止ISP/IAP操作(出于安全考慮才要)
       MOV ISP_CONTR,#00H
       MOV ISP_CMD,#00H
       MOV ISP_TRIG,#00H
       MOV ISP_ADDRH,#0FFH
       MOV ISP_ADDRL,#0FFH
       RET
;-----------------------
END
新程序的hex代碼長度有1089字節(jié),超過1K了,沒法用我的那塊STC12C1052了,1052才1K字節(jié)的ROMo(╯□╰)o......







評分

參與人數(shù) 5黑幣 +89 收起 理由
qjzyx + 4 贊一個!
51黑ren + 18 很給力!
absflash + 12 焊功不錯,漂亮,用匯編寫完真是辛苦了,
madell + 5 贊一個!
admin + 50 共享資料的積分獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2015-5-14 00:35 | 只看該作者
51黑有你更精彩!!
回復(fù)

使用道具 舉報

板凳
ID:77496 發(fā)表于 2015-5-14 00:38 | 只看該作者
收藏了 有機(jī)會我也做一個,樓主的圖片好像沒有上傳成功啊 期待中!!!!!!!!
回復(fù)

使用道具 舉報

地板
ID:72947 發(fā)表于 2015-5-14 19:03 | 只看該作者
admin 發(fā)表于 2015-5-14 00:35
把樓主的程序貼出來一下 為大家省點(diǎn)黑幣:

謝謝壇主了!圖片因為之前沒壓縮,上傳失敗,現(xiàn)在補(bǔ)上了!

評分

參與人數(shù) 1黑幣 +35 收起 理由
admin + 35 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

5#
ID:72947 發(fā)表于 2015-5-14 19:04 | 只看該作者
liuqin 發(fā)表于 2015-5-14 00:38
收藏了 有機(jī)會我也做一個,樓主的圖片好像沒有上傳成功啊 期待中!!!!!!!!

圖片已補(bǔ)上!謝謝支持!
回復(fù)

使用道具 舉報

6#
ID:79481 發(fā)表于 2015-5-16 00:09 | 只看該作者
一個吊字已不能形容了!
回復(fù)

使用道具 舉報

7#
ID:63588 發(fā)表于 2015-5-23 23:54 | 只看該作者
沒有電路圖完全沒法做
回復(fù)

使用道具 舉報

8#
ID:77205 發(fā)表于 2015-5-24 16:33 | 只看該作者
太好了,可惜沒有C程序
回復(fù)

使用道具 舉報

9#
ID:70614 發(fā)表于 2015-5-25 07:19 | 只看該作者
你是個高手。謝謝分享, 向高手學(xué)習(xí)。
回復(fù)

使用道具 舉報

10#
ID:72947 發(fā)表于 2015-5-25 19:59 | 只看該作者
云不肯說 發(fā)表于 2015-5-23 23:54
沒有電路圖完全沒法做

最近挺忙的,沒空用軟件畫了,這是手工畫的,希望可以看得懂!“RF”是紅外接收頭;“P1.0~P1.7”和“地線GND”可以接上排針留出來,方便連接排線到繼電器擴(kuò)展板,這樣就可以紅外遙控控制8路繼電器的通斷了!

回復(fù)

使用道具 舉報

11#
ID:72947 發(fā)表于 2015-5-25 20:14 | 只看該作者
lesson18 發(fā)表于 2015-5-24 16:33
太好了,可惜沒有C程序

學(xué)習(xí)下匯編也好的,可以多了解一下單片機(jī)的內(nèi)部結(jié)構(gòu)!我是兩個都會一點(diǎn)點(diǎn),但是這個程序我沒有用C語言寫過,所以暫時無法提供C版本的!有需要的自己翻譯一下就好了,而且翻譯后你還能順便學(xué)到一點(diǎn)匯編語言!
回復(fù)

使用道具 舉報

12#
ID:72947 發(fā)表于 2015-5-25 20:15 | 只看該作者
星星一眨眼 發(fā)表于 2015-5-25 07:19
你是個高手。謝謝分享, 向高手學(xué)習(xí)。

謝謝支持!我也是在學(xué)習(xí)路上!
回復(fù)

使用道具 舉報

13#
ID:79544 發(fā)表于 2015-9-18 22:14 | 只看該作者
不懂匯編啊
回復(fù)

使用道具 舉報

14#
ID:72947 發(fā)表于 2015-9-19 08:54 | 只看該作者

嘿嘿,匯編其實也不是很難,但是用起來很繁瑣的,我是簡單的程序才用匯編寫,不然頭都要大啊!在這里公布個教程算了 51單片機(jī)匯編語言教程.pdf (15.69 MB, 下載次數(shù): 78)
回復(fù)

使用道具 舉報

15#
ID:79544 發(fā)表于 2015-9-19 10:43 | 只看該作者
qq704661078 發(fā)表于 2015-9-19 08:54
嘿嘿,匯編其實也不是很難,但是用起來很繁瑣的,我是簡單的程序才用匯編寫,不然頭都要大啊!在這里公布 ...

我的編譯器編譯不了,要什么編譯器?
回復(fù)

使用道具 舉報

16#
ID:72947 發(fā)表于 2015-9-19 11:43 | 只看該作者
騰飛的龍 發(fā)表于 2015-9-19 10:43
我的編譯器編譯不了,要什么編譯器?

用 Keil uVision2 啊,匯編程序的后綴是( .asm );C語言的后綴是(.c );你用對沒有?
回復(fù)

使用道具 舉報

17#
ID:79544 發(fā)表于 2015-9-19 14:37 | 只看該作者
就是.asm。不編譯
回復(fù)

使用道具 舉報

18#
ID:79544 發(fā)表于 2015-9-19 14:37 | 只看該作者
要把你程序里的;注釋掉是吧
回復(fù)

使用道具 舉報

19#
ID:79544 發(fā)表于 2015-9-19 14:44 | 只看該作者
好啦現(xiàn)在編譯通過下進(jìn)去試試。謝謝分享!
回復(fù)

使用道具 舉報

20#
ID:72947 發(fā)表于 2015-9-19 15:12 | 只看該作者
本帖最后由 qq704661078 于 2015-9-19 15:15 編輯
騰飛的龍 發(fā)表于 2015-9-19 14:37
要把你程序里的;注釋掉是吧

去掉么?不用啊,“;”號后面就是注釋嘛,跟C的“//”一個意思,不知道你怎么會編譯不了……有些語句前面“;”注釋掉是可以不要那幾句,不影響程序功能的!只是為了省ROM
回復(fù)

使用道具 舉報

21#
ID:72947 發(fā)表于 2015-9-19 15:25 | 只看該作者
騰飛的龍 發(fā)表于 2015-9-19 14:37
要把你程序里的;注釋掉是吧

我之前用STC12C1052單片機(jī),只有1KB(0~1023字節(jié))ROM,如果不把那些能省的省掉,ROM就不夠裝了,現(xiàn)在這個程序編譯出來的代碼長度剛好1010字節(jié),只差13個字節(jié)就裝滿了……
如果你有大點(diǎn)容量的單片機(jī),比如STC12C2052/4052/56**系列的都行(其他系列的EEPROM相關(guān)寄存器地址不同),也可以把我那些用“;”注釋掉的代碼用起來的!
回復(fù)

使用道具 舉報

22#
ID:79544 發(fā)表于 2015-9-19 18:13 | 只看該作者
哦謝謝,學(xué)習(xí)啦,感覺c順手,第一次接觸匯編。
回復(fù)

使用道具 舉報

23#
ID:79544 發(fā)表于 2015-9-26 15:44 | 只看該作者
樓主你好;按你的程序下進(jìn)單片機(jī)怎么沒有紅外輸出啊,看著學(xué)習(xí)都正常,就是沒有紅外輸出,紅外發(fā)射管通過pnp三極管控制發(fā)射管的正極,發(fā)射管的負(fù)極接地。P3.7腳通過1k電阻接三極管的基極驅(qū)動紅外發(fā)射管,這樣一個對吧。請指教。謝謝!
回復(fù)

使用道具 舉報

24#
ID:79544 發(fā)表于 2015-9-26 16:00 | 只看該作者
qq704661078 發(fā)表于 2015-5-14 19:04
圖片已補(bǔ)上!謝謝支持!

樓主你好。用遙控器直接遙控板子8個指示燈也不亮。哪里出錯啦?再就是你的板子上紅外接收頭旁邊的小LED時紅外發(fā)射管嗎?謝謝
回復(fù)

使用道具 舉報

25#
ID:79544 發(fā)表于 2015-9-26 16:12 | 只看該作者
樓主你好,我用的是STC12C5608AD的單片機(jī),以前沒接觸匯編,下載了你的匯編教程,改了IO口。指示燈還是P1口,按鍵改成P2口,接收頭改在P3.2,現(xiàn)在控制不了,哪里的問題呀謝謝指教。
回復(fù)

使用道具 舉報

26#
ID:79544 發(fā)表于 2015-9-26 22:01 | 只看該作者
qq704661078 發(fā)表于 2015-9-19 08:54
嘿嘿,匯編其實也不是很難,但是用起來很繁瑣的,我是簡單的程序才用匯編寫,不然頭都要大啊!在這里公布 ...

謝謝你的匯編教程,很好,又學(xué)到新東西啦。呵呵,就是你的這個程序我下進(jìn)單片機(jī),怎么控制不了
回復(fù)

使用道具 舉報

27#
ID:72947 發(fā)表于 2015-11-17 22:59 | 只看該作者
騰飛的龍 發(fā)表于 2015-9-26 16:00
樓主你好。用遙控器直接遙控板子8個指示燈也不亮。哪里出錯啦?再就是你的板子上紅外接收頭旁邊的小LED時 ...

暈,我這個程序可不是用來發(fā)射的,接收頭那個LED也只是普通LED,程序只是接收紅外信號解碼,然后可以學(xué)習(xí)8個遙控的鍵跟板上的8個按鍵對應(yīng),方便用紅外遙控和板上的按鍵都能靈活的控制8路I/O口輸出...
回復(fù)

使用道具 舉報

28#
ID:72947 發(fā)表于 2015-11-17 23:02 | 只看該作者
騰飛的龍 發(fā)表于 2015-9-26 16:00
樓主你好。用遙控器直接遙控板子8個指示燈也不亮。哪里出錯啦?再就是你的板子上紅外接收頭旁邊的小LED時 ...

要學(xué)習(xí)才可以控制嘛,比如我想用紅外遙控器的“1鍵”控制板上的LED1亮,那我就得長按板上控制LED1的按鍵進(jìn)入學(xué)習(xí)模式,然后遙控對著接收頭按“1鍵”,學(xué)習(xí)成功了,遙控器的“1鍵”才可以控制板上的LED1;明白沒?
回復(fù)

使用道具 舉報

29#
ID:72947 發(fā)表于 2015-11-17 23:06 | 只看該作者
騰飛的龍 發(fā)表于 2015-9-26 15:44
樓主你好;按你的程序下進(jìn)單片機(jī)怎么沒有紅外輸出啊,看著學(xué)習(xí)都正常,就是沒有紅外輸出,紅外發(fā)射管通過pn ...

你誤解了我的程序功能了,我這個不是用來實現(xiàn)    “復(fù)制紅外遙控器”   ,所以是沒有紅外發(fā)射功能的!我板上也沒有紅外發(fā)射管,你想要    “復(fù)制紅外遙控器”   的程序論壇里也有的,搜一下就出來了
回復(fù)

使用道具 舉報

30#
ID:79544 發(fā)表于 2015-11-18 16:50 | 只看該作者
qq704661078 發(fā)表于 2015-11-17 23:06
你誤解了我的程序功能了,我這個不是用來實現(xiàn)    “復(fù)制紅外遙控器”   ,所以是沒有紅外發(fā)射功能的!我 ...

謝謝指教,學(xué)習(xí)啦,
回復(fù)

使用道具 舉報

31#
ID:95342 發(fā)表于 2015-11-19 23:13 | 只看該作者
樓主太感謝了
回復(fù)

使用道具 舉報

32#
ID:95342 發(fā)表于 2015-11-19 23:15 | 只看該作者
希望樓主以后多發(fā)點(diǎn)有關(guān)無線知識大家一塊交流學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報

33#
ID:95342 發(fā)表于 2015-11-19 23:20 | 只看該作者
qq704661078 發(fā)表于 2015-5-14 19:03
謝謝壇主了!圖片因為之前沒壓縮,上傳失敗,現(xiàn)在補(bǔ)上了!

大贊一個
回復(fù)

使用道具 舉報

34#
ID:44267 發(fā)表于 2015-11-24 11:45 | 只看該作者
一個吊字已不能形容了!
回復(fù)

使用道具 舉報

35#
ID:99987 發(fā)表于 2015-12-24 11:47 | 只看該作者
匯編的程序不錯,現(xiàn)在很少了。非常適合。匯編非常適合,現(xiàn)在很少了,原來基礎(chǔ)都是匯編,

非常棒,看程序,硬件就可以搭起來了。感謝

作者很人性化,為了我們節(jié)省黑幣,程序無私奉獻(xiàn)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 贊一個!

查看全部評分

回復(fù)

使用道具 舉報

36#
ID:99624 發(fā)表于 2015-12-26 23:43 | 只看該作者
樓主的程序,注釋得這么詳細(xì),我一個對匯編不怎么感冒的人都看的懂了三分。趕緊收藏,問一下這個程序能學(xué)習(xí)空調(diào)的編碼嗎?空調(diào)的編碼比較長,網(wǎng)上下過好多程序都失敗了..
回復(fù)

使用道具 舉報

37#
ID:72947 發(fā)表于 2015-12-27 01:01 | 只看該作者
51黑ren 發(fā)表于 2015-12-26 23:43
樓主的程序,注釋得這么詳細(xì),我一個對匯編不怎么感冒的人都看的懂了三分。趕緊收藏,問一下這個程序能學(xué)習(xí) ...

空調(diào)遙控的編碼好長的,比如格力的一個鍵的鍵碼長度是9個碼也就是72位,修改一下應(yīng)該可以配對得上,我這個程序是以MP3的遙控編碼格式編的,其他遙控沒試過...還有一種配對方法是記錄高低電平的時長,也是最能適應(yīng)各種遙控器的,不過現(xiàn)在暫時抽不出時間調(diào)試這種方案!
回復(fù)

使用道具 舉報

38#
ID:72947 發(fā)表于 2015-12-27 01:03 | 只看該作者
madell 發(fā)表于 2015-12-24 12:05
作者很人性化,為了我們節(jié)省黑幣,程序無私奉獻(xiàn)

程序有更新,感興趣的話請參考最新程序,之前的有Bug......o(╯□╰)o
回復(fù)

使用道具 舉報

39#
ID:99987 發(fā)表于 2015-12-29 11:20 | 只看該作者
效果不錯,謝謝分享
回復(fù)

使用道具 舉報

40#
ID:101285 發(fā)表于 2015-12-30 21:52 | 只看該作者
好棒的功能,學(xué)習(xí)一下
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美国产亚洲一区二区 | 中文字幕在线视频免费观看 | 国产精品久久免费观看 | 99视频精品| 91亚洲一区 | 久久精品视频网站 | 免费视频一区二区三区在线观看 | 99久久精品视频免费 | 蜜桃精品噜噜噜成人av | 国产成人99久久亚洲综合精品 | 日韩在线视频免费观看 | 亚洲在线 | 波多野结衣一区二区三区 | 在线看免费 | 一区二区三区视频在线观看 | 国产视频精品免费 | 天天操夜夜操 | 欧洲精品码一区二区三区免费看 | 精品一二区| 亚洲成人一区二区 | 精品免费国产视频 | 国产视频一区在线 | 成人福利在线观看 | 国产精品免费视频一区 | 91嫩草精品 | 黄色一级毛片 | 成人欧美一区二区三区在线观看 | 日韩欧美亚洲 | 国产不卡在线播放 | 色婷婷综合网 | 中文字幕成人 | 欧美日韩国产精品激情在线播放 | 狠狠干2020 | 精品国产99 | 国产精品二区三区在线观看 | 中文字幕在线观看一区二区 | 一区二区在线免费观看 | 国产一区视频在线 | 欧美另类视频 | 久久久精品视频免费看 | 亚洲国产精品视频 |