欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
STC15F104EA紅外遙控解碼記憶開關匯編語言程序范例 附原理圖
[打印本頁]
作者:
liu2454004961
時間:
2023-1-4 16:23
標題:
STC15F104EA紅外遙控解碼記憶開關匯編語言程序范例 附原理圖
基于12T 51內核的紅外解碼匯編程序,移植到1T STC單片機上,需要修改頻率來達到比較精確的延時
紅外遙控解碼記憶開關接線圖:
1672818593276.png
(55.52 KB, 下載次數: 42)
下載附件
2023-1-4 16:17 上傳
1672820069127.png
(79.85 KB, 下載次數: 48)
下載附件
2023-1-4 16:17 上傳
單片機紅外遙控解碼記憶開關匯編語言源程序如下:
;;;;;;紅外遙控解碼記憶;;;;;開機同時,按住按鍵直到蜂鳴器叫一次再松開,按遙控器認定按鈕,待蜂鳴器叫一次后,完成解碼記憶
;;;;RC頻率30M,分頻系數1/16,采用15F104EA ;;2015-4-16;;
IAP_DATA EQU 0C2H ;IAP數據寄存器
IAP_ADDRH EQU 0C3H ;IAP地址寄存器高字
IAP_ADDRL EQU 0C4H ;IAP地址寄存器低字
IAP_CMD EQU 0C5H ;IAP命令寄存器
IAP_TRIG EQU 0C6H ;IAP命令觸發寄存器
IAP_CONTR EQU 0C7H ;IAP控制寄存器
CMD_IDLE EQU 0 ;空閑模式
CMD_READ EQU 1 ;IAP字節讀命令
CMD_PROGRAM EQU 2 ;IAP字節編程命令
CMD_ERASE EQU 3 ;IAP扇區擦除命令
ENABLE_IAP EQU 83H ;if SYSCLK<12MHz
IAP_ADDRESS EQU 0000H ;測試地址(15L204EA的EEPROM空間為1K,分兩個扇區,每個512字節)
CLK_DIV DATA 97H ;RC頻率30M,分頻系數1/16,采用15F104EA
ID DATA 30H ;燈組個數狀態值
HONG DATA 31H ;紅外數據緩存區
ANJIAN BIT 26H.0 ;按鍵選擇標志
FENG BIT P3.3 ;蜂鳴器
KEY BIT P3.0 ;解碼記憶選擇開關
PH BIT P3.4 ;紅外一體化接受頭
SW BIT P3.5
ORG 0000H
AJMP MAIN1
ORG 0040H
MAIN1: MOV CLK_DIV,#1 ;分頻設置
MOV ID,#00H
MOV P3,#0FFH
SETB ANJIAN
JB KEY,START1 ;按鍵判斷
MOV R7,#50
D4: ACALL YS3
DJNZ R7,D4
JB KEY,START1
CLR FENG ;聲音延時
MOV R7,#50
D5: ACALL YS3
DJNZ R7,D5
SETB FENG
CLR ANJIAN
START1:MOV DPTR,#IAP_ADDRESS ;讀取EEPOM紅外數據到緩存區 ;設置ISP/IAP/EEPROM地址
LCALL IAP_READ ;讀IAP數據
MOV 31H,A
START:JB PH,$ ;等待遙控信號出現
SB:MOV R4,#8
SBA:MOV R5,#250
SBB:JB PH,SXB1
DJNZ R5,SBB
DJNZ R4,SBA
MOV R4,#2
JMP SBC
SXB1: MOV R5,#5
SXB2: JNB PH,SBB
DJNZ R5,SXB2
JMP EXIT
SBC:MOV R5,#250
SB1:JB PH,SB2 ;2MS內不為高電平錯誤
DJNZ R5,SB1
DJNZ R4,SBC
JMP EXIT
SB2: MOV R5,#5
SB2_A:JNB PH,SB1
DJNZ R5,SB2_A
MOV R4,#3
SB2_1:MOV R5,#250
SB3: JNB PH,SXC
DJNZ R5,SB3
DJNZ R4,SB2_1
MOV R4,#2
JMP SB3_1
SXC:MOV R5,#5
SXC1:JB PH,SB3
DJNZ R5,SXC1
JMP EXIT
SB3_1:MOV R5,#250
SB3_2:JNB PH,SB4
DJNZ R5,SB3_2
DJNZ R4,SB3_1
JMP EXIT
SB4: MOV R5,#5
SB4_1:JB PH,SB3_2
DJNZ R5,SB4_1
MOV R1,#1AH ;設定1AH為起始RAM區
MOV R2,#4
PP: MOV R3,#8
JJJJ:MOV R5,#250
JJJJ2:JB PH,JJJJ3
DJNZ R5,JJJJ2
JMP EXIT
JJJJ3:LCALL YS1
MOV C,PH
JNC UUU
MOV R5,#250
JJJJ4:JNB PH,UUU
NOP
DJNZ R5,JJJJ4
JMP EXIT
UUU: MOV A,@R1 ;將R1中地址的給A
RRC A ;將C中的值移入A中的最低位
MOV @R1,A ;將A中的數暫存在R1中
DJNZ R3,JJJJ ;接收地址碼的高8位
INC R1 ;對R1加1,換成下一個RAM
DJNZ R2,PP ;以下對代碼是否正確和定義進行識別
MOV A,1AH ;比較高8位地址碼
XRL A,#00000000B ;判斷1AH的值是否等于00000000,相等的話A為0
JNZ EXIT ;如果不等解碼失敗退出
MOV A,1BH ;比較低8位地址
XRL A,#11111111B ;再判高8位地址是否正確
JNZ EXIT ;如果不相等說明解碼失敗退出
LCALL YS3
MOV A,1CH ;比較數據碼和數據反碼是否正確?
CPL A
XRL A,1DH ;將1CH的值取反后和1DH比較 不同則無效丟棄,核對數據是否準確
JNZ EXIT ;如果不相等說明解碼失敗退出
JB ANJIAN,MAIN2
MOV DPTR,#IAP_ADDRESS ;設置ISP/IAP/EEPROM地址
LCALL IAP_ERASE ;扇區擦除
MOV A,1CH
MOV DPTR,#IAP_ADDRESS ;設置ISP/IAP/EEPROM地址
LCALL IAP_PROGRAM ;字節編程
CLR FENG ;紅外數據寫入成功蜂鳴器叫一次指示
MOV R7,#50
D6: ACALL YS3
DJNZ R7,D6
SETB FENG
SETB ANJIAN
MOV 31H,1CH ;;;寫入成功,建議關機重啟
EXIT: AJMP START
MAIN2: MOV A,31H
CJNE A,1CH,EXIT ;;;判斷紅外遙控次數決定遙控燈組個數;;;;
CPL SW
LJMP START
IAP_IDLE: ;;;關閉IAP;;;
MOV IAP_CONTR,#0 ;關閉IAP功能
MOV IAP_CMD,#0 ;清除命令寄存器
MOV IAP_TRIG,#0 ;清除觸發寄存器
MOV IAP_ADDRH,#80H ;將地址設置到非IAP區域
MOV IAP_ADDRL,#0
RET
IAP_READ: ;;;從ISP/IAP/EEPROM區域讀取一字節;;;
MOV IAP_CONTR,#ENABLE_IAP ;使能IAP
MOV IAP_CMD,#CMD_READ ;設置IAP命令
MOV IAP_ADDRL,DPL ;設置IAP低地址
MOV IAP_ADDRH,DPH ;設置IAP高地址
MOV IAP_TRIG,#5AH ;寫觸發命令(0x5a)
MOV IAP_TRIG,#0A5H ;寫觸發命令(0xa5)
NOP ;等待ISP/IAP/EEPROM操作完成
MOV A,IAP_DATA ;讀IAP數據
LCALL IAP_IDLE ;關閉IAP功能
RET
IAP_PROGRAM: ;;;寫一字節數據到ISP/IAP/EEPROM區域;;;
MOV IAP_CONTR,#ENABLE_IAP ;使能IAP
MOV IAP_CMD,#CMD_PROGRAM ;設置IAP命令
MOV IAP_ADDRL,DPL ;設置IAP低地址
MOV IAP_ADDRH,DPH ;設置IAP高地址
MOV IAP_DATA,A ;寫IAP數據
MOV IAP_TRIG,#5AH ;寫觸發命令(0x5a)
MOV IAP_TRIG,#0A5H ;寫觸發命令(0xa5)
NOP ;等待ISP/IAP/EEPROM操作完成
LCALL IAP_IDLE ;關閉IAP功能
RET
IAP_ERASE: ;;;扇區擦除;;;
MOV IAP_CONTR,#ENABLE_IAP ;使能IAP
MOV IAP_CMD,#CMD_ERASE ;設置IAP命令
MOV IAP_ADDRL,DPL ;設置IAP低地址
MOV IAP_ADDRH,DPH ;設置IAP高地址
MOV IAP_TRIG,#5AH ;寫觸發命令(0x5a)
MOV IAP_TRIG,#0A5H ;寫觸發命令(0xa5)
NOP ;等待ISP/IAP/EEPROM操作完成
LCALL IAP_IDLE ;關閉IAP功能
RET
YS1: MOV R4,#20 ;延時子程序1, 882微秒
D1: MOV R5,#20
DJNZ R5,$
DJNZ R4,D1
RET
YS3: MOV R4,#2 ;延時程序3, 1000微秒
D3:MOV R5,#248
DJNZ R5,$
DJNZ R4,D3
RET
END
復制代碼
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1