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

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

用51單片機(jī)模擬空調(diào)遙控開關(guān)-匯編程序

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2012年08月14日   【字體:

;***************************************
;遙控4按鍵模擬 15F104E 
;內(nèi)部振蕩11.0592M
;按1就P3.0低電平,按2就P3.1低電平 按3就P3.2低電平  按4就P3.3低電平 ;蜂嗚器提示, 
;自學(xué)習(xí)功能,按住要學(xué)習(xí)的鍵2秒,;蜂嗚器長(zhǎng)響,學(xué)習(xí)成功停止響
;***************************
YHM EQU 2fh;用戶碼
SET0  EQU 30H;
SET1  EQU 31H;
SET2  EQU 32H;
SET3  EQU 33H;


;;;;;;;;;;;;;;;;;;;;;;;;;
IAP_DATA EQU 0C2H
IAP_ADDRH EQU 0C3H
IAP_ADDRL EQU 0C4H
IAP_CMD  EQU 0C5H
IAP_TRIG EQU 0C6H
IAP_CONTR EQU 0C7H

ENABLE_IAP EQU 83H ;系統(tǒng)工作時(shí)鐘<12MHZ時(shí)

;************************
IR_KEY BIT P3.5;紅外
beep bit p3.3




MA1 EQU 7BH ;
MA2 EQU 7CH ;
MA3 EQU 7DH 
MA4 EQU 7EH ;
RED_32 EQU 7FH;

;************
ORG  0H ;程序開始
AJMP START
ORG  30H
;*************
; 單片機(jī)初始化
START:
mov p3,#0ffh 


MOV DPTR, #0
call EEPROMR
mov 30h,a
inc dptr
call EEPROMR
mov 31h,a
inc dptr
call EEPROMR
mov 32h,a
inc dptr
call EEPROMR
mov 33h,a

MOV DPTR, #200h
call EEPROMR
mov 2fh,a


;********************************
MAIN:
orl p3,#17h
mov a,p3
anl a,#17h
cjne a,#17h,d2
jmp d4
d2:
call delay2S
orl p3,#17h
mov a,p3
anl a,#17h
cjne a,#17h,d3
jmp d4

d3:
cpl a
anl a,#17h
mov 20h,a
clr beep

d4:
jb IR_KEY,MAIN
ACALL IR
mov a,20h
jnz d4
AJMP MAIN ;返回
;***************************



IR:
PUSH ACC
PUSH PSW

LCALL   DELAY1MS
LCALL   DELAY1MS
LCALL   DELAY1MS
LCALL   DELAY1MS

JB IR_KEY,IR_OUT;;高電平退出

JNB   IR_KEY,$;等 IR 變?yōu)楦唠娖?LCALL DELAY2MS380US
LCALL DELAY2MS380US
JB     IR_KEY,IR_OUT;是否低電平

MOV  R0,#MA1;起始內(nèi)存為7CH,共4個(gè)內(nèi)存
JJJ:MOV  R3,#8  ;8位
BBB:JNB  IR_KEY,$;等 IR 變?yōu)楦唠娖?;高電平后開始計(jì)數(shù),計(jì)數(shù)值1 高電平1
MOV    R2,#0  ;1MS計(jì)數(shù)
CCC:
LCALL   DELAY1MS
JNB     IR_KEY,DDD ;低電平跳出計(jì)數(shù)
INC     R2;;高電平繼續(xù)計(jì)數(shù)
CJNE    R2,#3,CCC;防止計(jì)數(shù)超時(shí)
AJMP IR_OUT
DDD:
CLR A
CLR C
SUBB A,R2 ;
MOV     A,@R0
RRC     A
MOV     @R0,A  ;處理完一位
DJNZ   R3,BBB;8位數(shù)據(jù)
INC     R0;換下一個(gè)內(nèi)存
CJNE    R0,#RED_32,JJJ  ;寫完個(gè)4內(nèi)存
;4個(gè)8位碼存入MA1~MA4中
;-------------------------------------

MOV  A,MA4
CPL  A
CJNE A,MA3,IR_OUT

jbc 0,s30
jbc 1,s31
jbc 2,s32
jbc 4,s33

MOV  A,MA2;
CJNE A,YHM,IR_OUT;
CALL IR_GOTO

IR_OUT:
POP     PSW
POP     ACC
RET

s30:mov set0,MA3
call bao0
call bao1
setb beep
jmp IR_OUT

s31:mov set1,MA3
call bao0
call bao1
setb beep
jmp IR_OUT

s32:mov set2,MA3
call bao0
call bao1
setb beep
jmp IR_OUT

s33:mov set3,MA3
call bao0
call bao1
setb beep
jmp IR_OUT
;----------------
IR_GOTO:mov a,ma3



CJNE A,SET0,E11
clr beep
clr p3.0
LCALL DELAY2MS380US
LCALL DELAY2MS380US
LCALL DELAY2MS380US
setb p3.0
setb beep
RET

E11:
CJNE A,SET1,E12
clr beep
clr p3.1
LCALL DELAY2MS380US
LCALL DELAY2MS380US
LCALL DELAY2MS380US
setb p3.1
setb beep
ret

E12:
CJNE A,SET2,E13
clr beep
clr p3.2
LCALL DELAY2MS380US
LCALL DELAY2MS380US
LCALL DELAY2MS380US
setb p3.2
setb beep
RET

E13:
CJNE A,SET3,E14
clr beep
clr p3.4
LCALL DELAY2MS380US
LCALL DELAY2MS380US
LCALL DELAY2MS380US
setb p3.4
setb beep
RET

E14:;

RET






;--------延時(shí)------
DELAY2MS380US:   ;1T  11.0592M
    MOV R6,#0DFH
DL0:
    MOV R5,#1CH
    DJNZ R5,$
    DJNZ R6,DL0
    RET
DELAY1MS:   ;1T   11.0592M
    MOV R6,#12H
DL05:
    MOV R5,#98H
    DJNZ R5,$
    DJNZ R6,DL05
    NOP
    RET

DELAY255MS:   ;
    MOV R7,#255
DL045:
call DELAY1MS
    DJNZ R7,DL045
    NOP
    RET

DELAY2S:   ;
    MOV R4,#7
DL1s:
call DELAY255MS
    DJNZ R4,DL1s
    RET


;************************
ERASE:;擦除
MOV IAP_CONTR,#83h;允許IAP/IAP操作
MOV IAP_CMD,#03H  ;扇區(qū)擦除
MOV IAP_ADDRH,DPH ;送高地址
MOV IAP_ADDRL,DPL ;送低地址
ACALL IAPXX       ;觸發(fā)
RET
;************************
EEPROMW:;寫
MOV IAP_CONTR,#83h;允許IAP/IAP操作
MOV IAP_CMD,#02H  ;送寫命令
MOV IAP_ADDRH,DPH ;送高地址
MOV IAP_ADDRL,DPL ;送低地址
MOV IAP_DATA,A    ;A是要寫入的數(shù)據(jù)
ACALL IAPXX       ;觸發(fā)
RET
;************************
EEPROMR:;讀
MOV IAP_CONTR,#83h;允許IAP/IAP操作
MOV IAP_CMD,#01H  ;送讀命令
MOV IAP_ADDRH,DPH ;送高地址
MOV IAP_ADDRL,DPL ;送低地址
ACALL IAPXX       ;觸發(fā)
MOV A,IAP_DATA    ;讀出的數(shù)據(jù)放到A
RET
;----------

IAPXX:;觸發(fā)
MOV IAP_TRIG, #5AH
MOV IAP_TRIG, #0A5H ;
NOP
NOP
ret
;---------------------

IAP_Disable:;禁止IAP/IAP操作
MOV IAP_CONTR,#0  
MOV IAP_CMD,#0    
MOV IAP_TRIG,#0   
MOV IAP_ADDRH,#0FFH
MOV IAP_ADDRL,#0FFH
RET

bao0:
MOV DPTR, #0;保存
call ERASE
mov a,30h
call EEPROMW
inc dptr
mov a,31h
call EEPROMW
inc dptr
mov a,32h
call EEPROMW
inc dptr
mov a,33h
call EEPROMW
call IAP_Disable

ret

bao1:
MOV DPTR,#200h;保存
call ERASE
MOV  A,MA2
mov 2fh,a
call EEPROMW
call IAP_Disable
ret

END
關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 国产精品一区二区在线播放 | 人人爽日日躁夜夜躁尤物 | 欧美日韩一区二区在线 | 中文字幕免费在线观看 | 日韩欧美国产一区二区 | 成年男女免费视频网站 | 欧美日韩不卡合集视频 | 欧美成人精品 | av电影一区二区 | 成人亚洲性情网站www在线观看 | 91日韩在线 | 91在线网站| 久久久91精品国产一区二区三区 | 美女在线一区二区 | 亚洲一区二区三区久久 | 成人久久网 | 欧美一级片免费看 | 一区二区三区电影网 | 人人干在线| 久久精品国产免费 | 欧美中文一区 | 国产精品国产精品国产专区不卡 | 91精品国产一区二区三区 | 97精品超碰一区二区三区 | 久久久久久久久蜜桃 | 免费1区2区3区| 成人免费观看男女羞羞视频 | 亚洲欧美日韩在线 | 久久久精品综合 | 日韩电影一区二区三区 | 三级在线免费 | 操皮视频| 亚洲免费av一区 | 一区二区三区四区免费在线观看 | 在线观看黄色电影 | 99视频在线免费观看 | 日日操操 | 日韩人体视频 | 国产免费观看久久黄av片涩av | 色女人天堂 | 狠狠躁天天躁夜夜躁婷婷老牛影视 |