日韩在线不卡免费视频一区,日韩欧美精品一区二区三区经典,日产精品码2码三码四码区,人妻无码一区二区三区免费,日本feerbbwdh少妇丰满

  • 回復(fù)
  • 收藏
  • 點(diǎn)贊
  • 分享
  • 發(fā)新帖

5104搖控解碼程序

請(qǐng)教一下,不用外部中斷,利用定時(shí)中斷掃描來實(shí)現(xiàn)5104的解碼?
全部回復(fù)(4)
正序查看
倒序查看
meidi688
LV.2
2
2007-11-10 10:07
沒人幫忙,自己頂一下,已經(jīng)做出來了!求人不如求已,這句話永遠(yuǎn)是真理!
0
回復(fù)
偉哥
LV.4
3
2007-11-10 21:46
@meidi688
沒人幫忙,自己頂一下,已經(jīng)做出來了!求人不如求已,這句話永遠(yuǎn)是真理!
松翰寫的.
;;date:2006/02/28
;;版本:1
;;說明:芯片選用SN8P2602A
;;-------------------------------------------------
CHIP SN8P2602A
//{{SONIX_CODE_OPTION
.Code_Option Noise_Filter Enable
.Code_Option Reset_Pin Reset
.Code_Option Watch_Dog Disable ; Disable Watchdog
.Code_Option High_Clk 4M_X'tal ; Crystal/Resonator: 2Mhz~10Mhz
.Code_Option Fcpu #2     ; Fcpu = High_Clk/4
.Code_Option Security Enable
//}}SONIX_CODE_OPTION

;;=================================================
.DATA
;;通用寄存器定義:
ACC_BUF DS 1
PFLAG_BUF DS 1

TIME_ADD DS 1
PASHE_BUF DS 1
LOOP_A DS 1
LOOP_B DS 1
PASHE_TIME DS 1 ;;相位延遲時(shí)間寄存器
YW_2 DS 1
YW_1 DS 1
CMD_BUF DS 1
MC_BUF DS 1
NUMBER DS 1
MC_BIAO DS 1
BIAO03 DS 1
D_TIMER DS 1
T0_BUF DS 1
BIAO DS 1

YK_ING EQU BIAO.0 ;;處理遙控標(biāo)志
B_BELL EQU BIAO.1 ;;響蜂鳴器標(biāo)志

ON_OFF EQU BIAO.7 ;;開關(guān)狀態(tài)標(biāo)志
ON_FLAME EQU BIAO.6 ;;火焰狀態(tài)標(biāo)志

HEAT_EN EQU BIAO.4  ;;加熱開關(guān)狀態(tài)標(biāo)志
LOW_HIGH EQU BIAO.5  ;;加熱檔位狀態(tài)標(biāo)志
;;=================================================
_LOAD_H EQU P1.3 ;;負(fù)載輸出高檔
_LOAD_L EQU P1.2 ;;負(fù)載輸出低檔

_LOAD EQU P5.7 ;;火焰輸出
_MG EQU P1.0 ;;電機(jī)輸出

_YK EQU P5.0 ;;遙控信號(hào)輸入
_BUZZER EQU P5.4 ;;蜂鳴器驅(qū)動(dòng)
;;=================================================
.CODE

ORG 000H
JMP MAIN

ORG 008H
JMP INT_ING

ORG 010H
;;=================================================
;;****************************************************
;;****************************************************
INT_ING:
B0XCH A,ACC_BUF ;;保護(hù)ACC
NOP
B0MOV A,PFLAG
MOV PFLAG_BUF,A ;;保護(hù)PFLAG
;;-------------------------

INCMS T0_BUF
NOP
NOP
MOV A,T0_BUF
B0ADD PCL,A
NOP
JMP INT_ONE
JMP INT_TWO
JMP INT_THREE
NOP
NOP
CLR T0_BUF
JMP INT_OUT
;;==================================
INT_ONE:
NOP
B0BCLR _LOAD ;;進(jìn)入中斷首先關(guān)負(fù)載
NOP
B0BCLR _LOAD
NOP
;;=====================================
NOP
B0BCLR FP00IRQ ;;p0中斷
NOP
;;-------------------------------------
/*
;;------------------------
INCMS TIME_ADD
NOP
NOP
MOV A,#4D
SUB A,TIME_ADD
B0BTS0 FC
JMP INT_ONE_AA
NOP
CLR TIME_ADD
;;------------------------
MOV A,PASHE_BUF
CMPRS A,PASHE_TIME
JMP INT_ONE_CC
NOP
JMP INT_ONE_AA
NOP
;;------------------------
INT_ONE_CC:
NOP
B0BTS0 FC
JMP ONE_ONE
NOP
INCMS PASHE_BUF
NOP
NOP
JMP INT_ONE_AA
ONE_ONE:
NOP
DECMS PASHE_BUF
NOP
NOP
*/
;; === === === === === === === === === ===
;; --- P0.0中斷的任務(wù)是關(guān)閉負(fù)載并啟動(dòng)定時(shí)
;; === === === === === === === === === ===
INT_ONE_AA:
B0BCLR FT0ENB ;;!!!!!!!
B0BCLR FT0IRQ
B0BCLR FT0IEN
;;-----------------------

;;-----------------------
INT_AAA:
B0BCLR FT0ENB
NOP
B0BCLR FT0IRQ
NOP
;;----------------------
MOV A,PASHE_TIME
B0MOV T0C,A ;;加載T0
NOP
B0BCLR FT0IRQ
NOP
B0BSET FT0IEN ;;
NOP
B0BSET FT0ENB ;;啟動(dòng)T0
B0BCLR FP00IEN
B0BCLR FP00IRQ
JMP INT_OUT
;; === === === === === === === ===
;; T0中斷的任務(wù)是開啟負(fù)載并啟動(dòng)1ms定時(shí)
;; === === === === === === === ===
INT_TWO:
NOP
NOP
B0BCLR FT0ENB
NOP
MOV A,#240D
B0MOV T0C,A
NOP
B0BCLR FT0IRQ
B0BSET FT0IEN
B0BSET FT0ENB

B0BCLR FP00IRQ
B0BCLR FP00IEN
;;---------------------------
B0BSET _LOAD
NOP
JMP INT_OUT

INT_THREE:
NOP
B0BCLR FT0ENB
CLR T0_BUF
B0BCLR _LOAD
NOP
NOP
B0BCLR FT0IRQ
B0BCLR FT0IEN

B0BCLR FP00IRQ
B0BSET FP00IEN
NOP
;;************************************************
INT_OUT:
MOV A,PFLAG_BUF
B0MOV PFLAG,A ;;恢復(fù)PFLAG
NOP

B0XCH A,ACC_BUF ;;恢復(fù)ACC
RETI

;;=================================================上電初始化
MAIN:
NOP
MOV A,#0X00
B0MOV P1,A ;;設(shè)置P1口初值
MOV A,#0X0F
B0MOV P1M,A
NOP
;;--------------------------
MOV A,#00000001B
B0MOV P5,A
NOP
MOV A,#11111110B
B0MOV P5M,A
NOP
;;------------------------------
B0BCLR _BUZZER
NOP
B0BSET FP54M
;;-------------------------------
MOV A,#0X18
B0MOV PEDGE,A ;;雙邊沿觸發(fā)中斷
;;-------------------------------

;;-------------------------------  T0 定時(shí)器設(shè)置:
NOP
MOV A,#20H
B0MOV T0M,A ;;64 div
MOV A,#130D
B0MOV T0C,A ;;83ms
B0BCLR FT0IRQ
;;-------------------------------
MOV A,#47D
MOV ACC_BUF,A
CLR Y
CLR Z
CLR_RAM:
INCMS Z
NOP
NOP
CLR @YZ
NOP
DECMS ACC_BUF
JMP CLR_RAM
NOP
MOV A,#250D
MOV PASHE_TIME,A
NOP
;; -------------------------------
CALL BUZZER_OPEN
NOP
MOV A,#250D
MOV LOOP_A,A
NOP
DELAY_A:
MOV A,#100D
MOV LOOP_B,A
NOP
DELAY_B:
NOP
DECMS LOOP_B
JMP DELAY_B
NOP
DECMS LOOP_A
JMP DELAY_A
NOP
CALL BUZZER_OFF
NOP
;; ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
;; ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
START:
NOP
;; --- --- --- --- --- --- --- 檢測遙控信號(hào)
;; --- 起始位: 8ms
;; --- 電平 1: 1.25ms
;; --- 電平 0: 0.54ms
NOP
CLR NUMBER
CLR MC_BUF
CLR MC_BIAO
B0BCLR FTC0ENB
CLR YW_1
CLR YW_2
CLR BIAO03
NOP
B0BTS1 _YK
JMP START ;;未檢測到低電平
NOP
;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;;---------------------------------------------起始位寬度
MOV A,#00100000B ;;選擇對(duì)時(shí)鐘64分頻
B0MOV TC0M,A
MOV A,#00D
B0MOV TC0C,A
B0BCLR FTC0IRQ
B0BSET FTC0ENB
KDKD:
NOP
B0BTS0 _YK
JMP KDKD
NOP
B0BCLR FTC0ENB
NOP
B0MOV A,TC0C
MOV MC_BUF,A
;;********************************************開始判斷脈沖寬度:
B0BTS0 FTC0IRQ
JMP START_DY   ;;脈沖太寬,不符合同步脈沖要求
NOP
MOV A,#60D
SUB A,MC_BUF
NOP
B0BTS0 FC
JMP START ;;脈沖太窄,不符合同步脈沖要求
;;--------------------------------------------已檢測到有效的同步信號(hào):
MC_QS:
B0BCLR FTC0ENB
NOP
CLR MC_BUF
MOV A,#12D
MOV NUMBER,A ;;待檢測的脈沖序列為12個(gè)
MOV A,#01010000B ;;選擇對(duì)時(shí)鐘8分頻
B0MOV TC0M,A
NOP
;;///////////////////////////////////啟動(dòng)TC0:
HHH:
CLR TC0C
B0BCLR FTC0IRQ
B0BSET FTC0ENB
;;*******************************************只檢測高電平寬度
MC_B1:
NOP
B0BTS1 _YK
JMP MC_B1
NOP
B0BCLR FTC0ENB
NOP
B0BTS0 FTC0IRQ
JMP START
NOP
B0MOV A,TC0C ;;取脈沖寬度值
MOV MC_BUF,A ;;暫存
;;**************************************************
;;***============高電平結(jié)束,利用低電平持續(xù)時(shí)間判斷
;;***============標(biāo)準(zhǔn)寬脈沖=1.25ms;標(biāo)準(zhǔn)窄脈沖=540us  
;;**************************************************
MC_AG1:
MOV A,#37D
SUB A,MC_BUF
NOP
B0BTS0 FC
JMP START   ;;脈沖太窄,不符合編碼脈沖要求
NOP
MOV A,#200D
SUB A,MC_BUF
NOP
B0BTS1 FC
JMP START ;;脈沖太寬,不符合編碼脈沖要求
NOP
;;-----------------------------------------------
MOV A,#95D
SUB A,MC_BUF
NOP   ;;
B0BTS0 FC
JMP MC_LOW
MOV A,#105D
SUB A,MC_BUF
NOP   ;;
B0BTS1 FC
JMP MC_HIGH
NOP
JMP START
;;-----------------------------------------
MC_LOW:
NOP
BCLR BIAO03.7
JMP AGIN
MC_HIGH:
BSET BIAO03.7
NOP
;;-----------------------------------------------寬度識(shí)別:
AGIN:
B0BCLR FC
NOP
RLCM BIAO03
RLCM YW_1
RLCM YW_2
NOP
B0BCLR FTC0ENB
DECMS NUMBER
JMP KKK ;;檢測下一個(gè)脈沖
NOP
CLR NUMBER
JMP JIEMA
KKK:
NOP
B0BTS0 _YK
JMP KKK
NOP
JMP HHH
;;====================================== 等待高電平再次出現(xiàn):
MC_AG2:
NOP
B0BTS1 _YK
JMP MC_AG2
NOP
CLR TC0C
B0BCLR FTC0IRQ
CLR MC_BUF ;;!!!
B0BSET FTC0ENB
JMP MC_B1
JIEMA:
NOP
MOV A,YW_1
MOV CMD_BUF,A ;;控制碼
NOP
;;--------------------------------------

;; *** *** *** *** *** *** *** *** ***
;; --- ---  解碼完成,執(zhí)行遙控指令 ---
;; *** *** *** *** *** *** *** *** ***
MOV A,#0X81
XOR A,YW_1
B0BTS0 FZ
JMP K_POWER ;;開關(guān)鍵
;; ---- ---- ---- ---- ---- ---- ----
BTS1 ON_OFF ;;若開關(guān)鍵未開
JMP START ;;禁止其他操作
NOP
;; ---- ---- ---- ---- ---- ---- ----
1
回復(fù)
cuilai
LV.1
4
2011-12-31 18:57
@meidi688
沒人幫忙,自己頂一下,已經(jīng)做出來了!求人不如求已,這句話永遠(yuǎn)是真理!
哥們,能請(qǐng)教一下嗎?我現(xiàn)在也正在做,愁死了?!?”和“1”怎么解?。垦訒r(shí)多少來區(qū)分???
0
回復(fù)
2013-12-07 14:25
@cuilai
哥們,能請(qǐng)教一下嗎?我現(xiàn)在也正在做,愁死了?!?”和“1”怎么解???延時(shí)多少來區(qū)分???

求5104解碼程序? 

0
回復(fù)
發(fā)