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

標(biāo)題: STC15W104單片機(jī)遙控開(kāi)關(guān)電路圖+程序(匯編語(yǔ)言) [打印本頁(yè)]

作者: 新鄉(xiāng)家電維修    時(shí)間: 2018-12-3 10:45
標(biāo)題: STC15W104單片機(jī)遙控開(kāi)關(guān)電路圖+程序(匯編語(yǔ)言)
電路原理圖如下:


STC15W104單片機(jī)遙控開(kāi)關(guān)
功能介紹:
1.按鍵控制繼電器釋放吸合
2.遙控碼控制繼電器(只一個(gè)按鍵編碼識(shí)別,其他編碼無(wú)效)
3.按鍵按下時(shí),按遙控器,學(xué)習(xí)當(dāng)前遙控碼,前碼失效(利用內(nèi)部eeprom)

/*15W408單片機(jī)遙控?zé)簦獠恐袛喾绞酵ㄟ^(guò)測(cè)試2018.09.04

IAP_DATA    EQU 0C2H        ;IAP數(shù)據(jù)寄存器
IAP_ADDRH   EQU 0C3H        ;IAP地址寄存器高字(地址需要改變時(shí),才需要重新送地址)
IAP_ADDRL   EQU 0C4H        ;IAP地址寄存器低字(指令完成后地址不會(huì)自動(dòng)加1或減1)
IAP_CMD     EQU 0C5H        ;IAP命令寄存器
IAP_TRIG    EQU 0C6H        ;IAP命令觸發(fā)寄存器
IAP_CONTR   EQU 0C7H        ;IAP控制寄存器
P0M1    DATA    0x93        ; P0M1.n,P0M0.n     =00--->準(zhǔn)雙向口,  01--->推挽輸出
P0M0    DATA    0x94        ;                            =10--->高阻輸入,  11--->開(kāi)漏輸出
P1M1    DATA    0x91        ; P1M1.n,P1M0.n   
P1M0    DATA    0x92        ;                 
P2M1    DATA    0x95        ; P2M1.n,P2M0.n  
P2M0    DATA    0x96        ;                 
P3M1    DATA    0xB1        ; P3M1.n,P3M0.n   
P3M0    DATA    0xB2        ;               
P4M1    DATA    0xB3        ; P4M1.n,P4M0.n  
P4M0    DATA    0xB4        ;               
P5M1    DATA    0xC9        ; P5M1.n,P5M0.n   
P5M0    DATA    0xCA        ;               
P6M1    DATA    0xCB        ; P6M1.n,P6M0.n  
P6M0    DATA    0xCC        ;               
P7M1    DATA    0xE1            ;
P7M0    DATA    0xE2            ;
;ENABLE_IAP  EQU  80H          ;if SYSCLK<30MHz
;ENABLE_IAP  EQU  81H          ;if SYSCLK<24MHz
;ENABLE_IAP  EQU  82H          ;if SYSCLK<20MHz
;ENABLE_IAP  EQU  83H          ;if SYSCLK<12MHz
ENABLE_IAP  EQU  84H           ;if SYSCLK<6MHz
;ENABLE_IAP  EQU  85H          ;if SYSCLK<3MHz
;ENABLE_IAP  EQU  86H          ;if SYSCLK<2MHz
;ENABLE_IAP  EQU  87H          ;if SYSCLK<1MHz


ADDRESS  EQU 00H        ;EEPROM扇區(qū)地址(第1扇區(qū)0000H)(第2扇區(qū)0200H)(第3扇區(qū)0400H)(第4扇區(qū)0600H
P5_0 BIT 0C8H                ;P5口定義
P5_1 BIT 0C9H
P5_2 BIT 0CAH
P5_3 BIT 0CBH
P5_4 BIT 0CCH
P5_5 BIT 0CDH


        SSR        BIT        P3.4        ;輸出控制腳
        S0        BIT        P3.3        ;開(kāi)關(guān)燈鍵和記憶鍵
        IRIN        BIT        P3.2   ;紅外線輸入腳

        ORG        0000H
        LJMP        MAIN
        ORG        0003H         ;外部中斷P3.2腳INT0入口地址
        LJMP        INT_0
        ORG        0100h
;=========================主程序================================
MAIN:
        MOV        SP,        #60h
        CLR        P3.5
        CLR     A
        MOV        P0M1, A    ;設(shè)置準(zhǔn)雙向口 00--->準(zhǔn)雙向口,    01--->推挽輸出
        MOV        P0M0, A
        MOV        P1M1, A    ;設(shè)置準(zhǔn)雙向口 10--->高阻輸入,  11--->開(kāi)漏輸出
        MOV        P1M0, A
        MOV        P2M1, A    ;設(shè)置準(zhǔn)雙向口
        MOV        P2M0, A
        MOV        P3M1, A    ;設(shè)置準(zhǔn)雙向口
        MOV        P3M0, A

        SETB        SSR
        mov        IE,#10000001b        ;允許外部中斷0
        mov        IP,#00000001B        ;外中斷1優(yōu)先中斷
        MOV        TCON,#00000101B        ;都是脈沖下降中
        MOV        R0,#20h    ;20h單元開(kāi)始放數(shù)據(jù)
MAIN1:
;        LCALL DISPLAY
        ACALL KEY
        JMP MAIN1
;==================================繼電器輸出========================================
OUT_0:
        MOV  A,20H
        CJNE A,2AH,WWW    ;將接收到的20H、21H、22H與讀出的數(shù)據(jù)比較,
        MOV  A,21H                ;相同繼電器就進(jìn)行動(dòng)作
        CJNE A,2BH,WWW   ;
        MOV  A,22H
        CJNE A,2CH,WWW
        MOV  A,23H
        CJNE A,2DH,WWW
        CPL        SSR
WWW:
        RET
;=================================按鍵程序===========================================
KEY:
        JB        S0,        KEY_D
        ACALL        DELAY
        JB        S0,        KEY_D
        JNB        S0,        $
        ACALL        DELAY
        JNB        S0,        $
        cpl SSR
KEY_D:
        RET
;=========================寫(xiě)入EEPROM數(shù)據(jù)========================================
WERED:
        MOV   DPTR,#ADDRESS        ;EEPROM扇區(qū)起始地址(擦除起始地址)
        LCALL IAP_ERASE                ;扇區(qū)擦除
;        MOV   DPTR,#ADDRESS        ;EEPROM指針寫(xiě)入數(shù)據(jù)起始地址
;        MOV   R0,#0                ;檢測(cè)512字節(jié)(256*2=512)
;        MOV   R1,#2
;CHECK_0:                        ;檢測(cè)是否擦除成功(全FF檢測(cè))
;        LCALL IAP_READ                ;讀IAP數(shù)據(jù)
;        CJNE  A,#0FFH,ERROR        ;如果出錯(cuò),則退出
;        INC   DPTR                ;IAP地址+1
;        DJNZ  R0,CHECK_0
;        DJNZ  R1,CHECK_0
;寫(xiě)入數(shù)據(jù)程序                  ;
        MOV   DPTR,#ADDRESS        ;EEPROM扇區(qū)起始地址(寫(xiě)數(shù)據(jù)起始地址)
        MOV   R0,#4                ;編程3字節(jié)
        MOV   R1,#20H                ;寫(xiě)紅外解碼數(shù)據(jù)地址
NEXT:                              
        MOV   A,@R1                ;準(zhǔn)備數(shù)據(jù)
        LCALL IAP_PROGRAM        ;字節(jié)編程
        INC   DPTR                ;IAP地址+1
        INC   R1                ;修改數(shù)據(jù)地址
        DJNZ  R0,NEXT
        RET
;===============讀取EEPROM數(shù)據(jù)===========================
READ_ROM:
        MOV   DPTR,#ADDRESS        ;設(shè)置要讀取的EEPROM地址(扇區(qū))
        MOV   R0,#4                ;讀取多少字節(jié)
        MOV   R1,#2AH                ;數(shù)據(jù)存放起始地址
CHECK2:                             
        LCALL IAP_READ                ;讀IAP數(shù)據(jù)
        MOV  @R1,A                ;數(shù)據(jù)轉(zhuǎn)移到地址R1指向
        INC   DPTR                ;IAP地址+1
        INC   R1                ;數(shù)據(jù)保存地址加1
        DJNZ  R0,CHECK2                ;是否讀完
        RET

;=====================關(guān)閉IAP========================
IAP_IDLE:
    MOV   IAP_CONTR,#0              ;關(guān)閉IAP功能
    MOV   IAP_CMD,#0               ; 清除命令寄存器
    MOV   IAP_TRIG,#0               ;清除觸發(fā)寄存器
    MOV   IAP_ADDRH,#80H            ;將地址設(shè)置到非IAP區(qū)域
    MOV   IAP_ADDRL,#0
    RET
;=====================讀取一字節(jié)=====================
IAP_READ:
    MOV   IAP_CONTR,#ENABLE_IAP     ;允許擦除與等待時(shí)間設(shè)置(10000xxxB)
    MOV   IAP_CMD,#01H                 ;字節(jié)讀命令
    MOV   IAP_ADDRL,DPL             ;設(shè)置IAP低地址
    MOV   IAP_ADDRH,DPH             ;設(shè)置IAP高地址
    MOV   IAP_TRIG,#5AH             ;寫(xiě)觸發(fā)命令(0x5a)
    MOV   IAP_TRIG,#0A5H            ;寫(xiě)觸發(fā)命令(0xa5)
    NOP                             ;等待ISP/IAP/EEPROM操作完成
    MOV   A,IAP_DATA                ;度IAP數(shù)據(jù)
    LCALL IAP_IDLE                  ;關(guān)閉IAP功能
    RET
;====================寫(xiě)一字節(jié)數(shù)據(jù)==================
IAP_PROGRAM:
    MOV   IAP_CONTR,#ENABLE_IAP    ;允許擦除與等待時(shí)間設(shè)置(10000xxxB)
    MOV   IAP_CMD,#02H                     ;字節(jié)寫(xiě)命令
    MOV   IAP_ADDRL,DPL            ;設(shè)置IAP低地址
    MOV   IAP_ADDRH,DPH            ;設(shè)置IAP高地址
    MOV   IAP_DATA,A               ;寫(xiě)IAP數(shù)據(jù)
    MOV   IAP_TRIG,#5AH            ;寫(xiě)觸發(fā)命令(0x5a)
    MOV   IAP_TRIG,#0A5H           ;寫(xiě)觸發(fā)命令(0xa5)
    NOP                            ;等待ISP/IAP/EEPROM操作完成
    LCALL IAP_IDLE                 ;關(guān)閉IAP功能
    RET
;====================扇區(qū)擦除======================
IAP_ERASE:
    MOV   IAP_CONTR,#ENABLE_IAP    ;允許擦除與等待時(shí)間設(shè)置(10000xxxB)
    MOV   IAP_CMD,#03H               ;扇區(qū)擦除命令
    MOV   IAP_ADDRL,DPL            ;設(shè)置IAP低地址
    MOV   IAP_ADDRH,DPH            ;設(shè)置IAP高地址
    MOV   IAP_TRIG,#5AH            ;寫(xiě)觸發(fā)命令(0x5a)
    MOV   IAP_TRIG,#0A5H           ;寫(xiě)觸發(fā)命令(0xa5)
    NOP                            ;等待ISP/IAP/EEPROM操作完成
    LCALL IAP_IDLE                 ;關(guān)閉IAP功能
    RET
;===================中斷程序=======================
INT_0:
        CLR EA         ;暫時(shí)關(guān)閉CPU的所有中斷請(qǐng)求
        MOV R0,#20h    ;20h單元開(kāi)始放數(shù)據(jù)
        MOV R5,#17
L2:        ACALL DELAY05_R5
        JB IRIN,L10      ;
        DJNZ R5,L2        ;重復(fù)多次
         JNB IRIN,$
        MOV R5,#8
L3:        ACALL DELAY05_R5  
        JNB IRIN,L10   
        DJNZ R5,L3        
L4:        MOV R3,#0
L5:        JNB IRIN,L6
        ACALL DEL
        JMP L5
L6:        JB IRIN,L7
        ACALL DEL
        JMP L6
L7:        MOV R2,#0
L8:        ACALL DEL
        JB IRIN,L9
        MOV A,#8
        CLR C
        SUBB A,R2
        MOV A,@R0
        RRC A
        MOV @R0,A
        INC R3
        CJNE R3,#8,L5
        MOV R3,#0
        INC R0
        CJNE R0,#24H,L5   
        JMP L10
L9:        INC R2
        CJNE R2,#30,L8  
        JB        S0,L9_0
        LCALL WERED
        LCALL READ_ROM
L9_0:
L10:
        SETB EA ;允許中斷,然后退出中斷程序
        RETI
;=============================================
DE:
DELAY540US:                        ;@6.000MHz
        NOP
        PUSH 38H
        PUSH 39H
        MOV 38H,#3
        MOV 39H,#128
NEXT1:
        DJNZ 39H,NEXT1
        DJNZ 38H,NEXT1
        POP 39H
        POP 38H
        RET


DELAY05_R5:       ;總延時(shí)時(shí)間為0.5ms*R5
DELAY500US:                        ;@6.000MHz
        NOP
        PUSH 38H
        PUSH 39H
        MOV 38H,#3
        MOV 39H,#80
NEXT2:
        DJNZ 39H,NEXT2
        DJNZ 38H,NEXT2
        POP 39H
        POP 38H
        RET
DEL:             ;延時(shí)為0.093ms
DELAY93US:                        ;@6.000MHz
        NOP
        NOP
        PUSH 38H
        MOV 38H,#108
NEXT3:
        DJNZ 38H,NEXT3
        POP 38H
        RET   
;=================延時(shí)程序==================
DELAY: MOV  R6, #30
D1:    MOV  R7, #250
       DJNZ R7, $
       DJNZ R6, D1
       RET
;==================================================

        END



作者: admin    時(shí)間: 2018-12-5 03:03
好資料,能分享一下程序嗎?
作者: byalan    時(shí)間: 2019-5-8 15:06
學(xué)習(xí)了,好……
作者: pleianth    時(shí)間: 2019-5-16 07:30
求程序
作者: 新鄉(xiāng)家電維修    時(shí)間: 2019-5-16 15:33
pleianth 發(fā)表于 2019-5-16 07:30
求程序

程序已經(jīng)貼出來(lái)了,呵呵

作者: 新鄉(xiāng)家電維修    時(shí)間: 2019-5-16 15:40
admin 發(fā)表于 2018-12-5 03:03
好資料,能分享一下程序嗎?

已經(jīng)直接分享過(guò)了,

作者: 新鄉(xiāng)家電維修    時(shí)間: 2019-5-16 15:42

下面是PCB照片和焊接好的成品,供喜歡單片機(jī)的朋友借鑒

1557992336979.jpg (1.86 MB, 下載次數(shù): 192)

1557992336979.jpg

1557992354002.jpg (2.17 MB, 下載次數(shù): 225)

1557992354002.jpg

作者: 找人PK    時(shí)間: 2019-5-16 17:29
STC15W104性價(jià)比完全抵不過(guò)義隆,一個(gè)STC15W104芯片的價(jià)錢(qián)都能買(mǎi)10個(gè)義隆芯片
作者: pleianth    時(shí)間: 2019-5-19 00:05
新手第一次編譯,求解答,

IMG_20190518_235938.jpg (4.77 MB, 下載次數(shù): 208)

IMG_20190518_235938.jpg

2019-05-18_23.58.36.jpg (7.12 MB, 下載次數(shù): 194)

2019-05-18_23.58.36.jpg

IMG_20190519_000502.jpg (5.12 MB, 下載次數(shù): 191)

IMG_20190519_000502.jpg

IMG_20190519_000452.jpg (5.46 MB, 下載次數(shù): 206)

IMG_20190519_000452.jpg

作者: 新鄉(xiāng)家電維修    時(shí)間: 2019-6-24 20:26
pleianth 發(fā)表于 2019-5-19 00:05
新手第一次編譯,求解答,

頻率不對(duì),設(shè)置成6M
作者: 新鄉(xiāng)家電維修    時(shí)間: 2019-6-24 20:28
pleianth 發(fā)表于 2019-5-19 00:05
新手第一次編譯,求解答,

程序是匯編的,你保存成C了,編譯是不對(duì)的,燒寫(xiě)時(shí)候頻率調(diào)成6M就行了
作者: irico58    時(shí)間: 2019-8-1 11:43
有沒(méi)有燒錄文件,匯編有點(diǎn)蒙圈
作者: yanghb81    時(shí)間: 2020-1-29 13:17
學(xué)習(xí)了!!!
作者: dxdsjyx    時(shí)間: 2020-3-24 22:56
匯編怎么燒寫(xiě)?
作者: cooleaf    時(shí)間: 2020-3-25 10:39
匯編代碼,還是很牛逼的!
作者: liuhl_2005    時(shí)間: 2021-2-26 08:38
不錯(cuò)的資料,謝謝!
作者: 快樂(lè)a123    時(shí)間: 2021-3-1 18:08
求c語(yǔ)言
作者: xjlfh    時(shí)間: 2021-5-15 11:48
最近在學(xué)習(xí)中,想仿制樓主的,可是編譯無(wú)法通過(guò),不知道是啥原因,下面是截圖,MCU選15W104和15W408都不行。

作者: xjlfh    時(shí)間: 2021-5-15 11:51
不知為何無(wú)法上傳截圖,編譯提示錯(cuò)誤如下:
*** FATAL ERROR L210: I/O ERROR ON INPUT FILE:
    EXCEPTION 0021H: PATH OR FILE NOT FOUND
    FILE: STC15W104單片機(jī)遙控開(kāi)關(guān)電路.obj
Target not created
代碼保存的是ASM格式。


作者: 一時(shí)    時(shí)間: 2021-5-19 12:01
不懂匯編呀
作者: 965153391    時(shí)間: 2021-5-30 21:29
接收端怎么一個(gè)遙控器發(fā)送的啥信息呀
作者: 超級(jí)賽亞人8402    時(shí)間: 2022-9-19 11:48
怎么樣進(jìn)入學(xué)習(xí)紅外信號(hào)模式,長(zhǎng)按按鍵不放嗎??、
作者: liu2454004961    時(shí)間: 2022-10-13 15:44
很好一次編譯通過(guò)。想做個(gè)阻容降壓做電源,試一下看有沒(méi)有干擾
作者: 新鄉(xiāng)家電維修    時(shí)間: 2022-11-18 10:59
超級(jí)賽亞人8402 發(fā)表于 2022-9-19 11:48
怎么樣進(jìn)入學(xué)習(xí)紅外信號(hào)模式,長(zhǎng)按按鍵不放嗎??、

對(duì),按著不放,按下遙控鍵就學(xué)習(xí)成功了
作者: 新鄉(xiāng)家電維修    時(shí)間: 2022-11-18 11:01
liu2454004961 發(fā)表于 2022-10-13 15:44
很好一次編譯通過(guò)。想做個(gè)阻容降壓做電源,試一下看有沒(méi)有干擾

阻容降壓要考慮繼電器吸合電流,繼電器吸合電流100ma比較可靠
作者: 電子愛(ài)好114514    時(shí)間: 2022-12-23 09:53
為什么我還是報(bào)錯(cuò)?Build target 'Target 1' assembling 2.asm... 2.asm(271): error A300: unterminated comment 2.asm(272): warning A41: MISSING 'END' STATEMENT Target not created. Build Time Elapsed:  00:00:01
作者: liu2454004961    時(shí)間: 2022-12-23 12:01
仔細(xì)一看,程序還是有問(wèn)題的。主程序:第一行,帶分號(hào)不編譯;第二行,按鍵處理程序;第三行,跳回主程序標(biāo)題。按鍵處理程序,只包含繼電器狀態(tài)取反。
作者: liu2454004961    時(shí)間: 2022-12-26 10:05
pleianth 發(fā)表于 2019-5-19 00:05
新手第一次編譯,求解答,

不要想了,這個(gè)程序明顯有問(wèn)題。燒錄進(jìn)去運(yùn)行結(jié)果是紅外無(wú)法解碼,按一次按鍵,輸出腳取反一次
作者: 新鄉(xiāng)家電維修    時(shí)間: 2023-1-4 18:47
liu2454004961 發(fā)表于 2022-12-23 12:01
仔細(xì)一看,程序還是有問(wèn)題的。主程序:第一行,帶分號(hào)不編譯;第二行,按鍵處理程序;第三行,跳回主程序標(biāo) ...

你看不懂匯編就不要說(shuō),
遙控中斷程序最后是判斷按鍵狀態(tài)是否決定學(xué)習(xí),和對(duì)比存儲(chǔ)數(shù)據(jù)決定是否反轉(zhuǎn)繼電器
作者: tnovicet    時(shí)間: 2023-1-5 15:41
        LCALL WERED
        LCALL READ_ROM
L9_0:
   
       LCALL OUT_0

L10:
        SETB EA ;允許中斷,然后退出中斷程序
        RETI
作者: XDDZ1013    時(shí)間: 2023-9-6 22:34
電路簡(jiǎn)潔,值得學(xué)習(xí)。。。





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 伊人狠狠操 | 五月婷婷视频 | 亚洲精品福利视频 | 国产高清在线精品一区二区三区 | 国产精品日韩欧美一区二区三区 | 一级黄色影片在线观看 | 亚洲精品久久久久中文字幕欢迎你 | 亚洲国产aⅴ成人精品无吗 亚洲精品久久久一区二区三区 | av网站免费看 | 国产在线视频在线观看 | aaa在线| 欧美日韩亚洲视频 | 福利片在线观看 | 成人在线小视频 | 欧美日韩久久 | 国产一区久久久 | 播放一级毛片 | 亚洲日韩中文字幕一区 | 99久久国产综合精品麻豆 | 岛国av在线免费观看 | 成人高清在线 | 欧美日韩在线免费观看 | 精品国产精品三级精品av网址 | 风间由美一区二区三区在线观看 | 欧美日韩一区在线 | 91精产国品一二三区 | 久久国产精品视频观看 | 亚洲国产精品视频一区 | 91免费观看 | 51ⅴ精品国产91久久久久久 | 欧美日韩三区 | 国产成人免费视频网站视频社区 | 国产目拍亚洲精品99久久精品 | 999久久久精品 | 国产精品一区二区福利视频 | 在线国产精品一区 | 青青久草 | 成人精品一区亚洲午夜久久久 | 欧美高清视频 | 欧美精品电影一区 | 欧美一级免费 |