; Description: Receive IR Remote control NEC code
list p=12C508A, f=INHX8M, r=DEC, b=8, C=80
__config (_MCLRE_OFF & _CP_ON & _WDT_OFF & _IntRC_OSC)
__idlocs H'0001'
INDF equ 0x00
TMR0 equ 0x01
PCL equ 0x02
STATUS equ 0x03
FSR equ 0x04
OSCCAL equ 0x05
GPIO equ 0x06
Bit7 equ 0x07
Bit6 equ 0x06
Bit5 equ 0x05
Bit4 equ 0x04
Bit3 equ 0x03
Bit2 equ 0x02
Bit1 equ 0x01
Bit0 equ 0x00
W equ 0x00
F equ 0x01
; STATUS Register
GPWUF equ Bit7
PA0 equ Bit5
NOT_TO equ Bit4
NOT_PD equ Bit3
Z equ Bit2
DC equ Bit1
C equ Bit0
; GPIO Register
bIRDataIn equ Bit0
bSystemPowerOut0 equ Bit1
; Configuration Bits
_MCLRE_ON equ 0x0fff
_MCLRE_OFF equ 0x0fef
_CP_ON equ 0x0ff7
_CP_OFF equ 0x0fff
_WDT_ON equ 0x0fff
_WDT_OFF equ 0x0ffb
_LP_OSC equ 0x0ffc
_XT_OSC equ 0x0ffd
_IntRC_OSC equ 0x0ffe
_ExtRC_OSC equ 0x0fff
; Macro Definition
PowerDownSystem MACRO
bcf GPIO, bSystemPowerOut0
ENDM
PowerUpSystem MACRO
bsf GPIO, bSystemPowerOut0
ENDM
; General Purpose Register
DelayCounter1 equ 0x07
DelayCounter2 equ 0x08
AddrCode equ 0x10
AddrCodeNot equ 0x11
DataCode equ 0x12
DataCodeNot equ 0x13
Result equ 0x14
PowerState equ 0x15
ButtonTemp equ 0x16
Bit equ 0x17
GetBitCounter equ 0x18
GetBitCountLo equ 0x19
GetBitCountHi equ 0x1A
PausecountLo equ 0x1B
PausecountHi equ 0x1C
errorflag equ 0x1D
; Constant Definition
cPowerOn equ 0xFF
cPowerOff equ 0x00
cPowerHi equ 0x82
cPowerLo equ 0x7D
cAddressHi equ 0xF0
cAddressLo equ 0x0F
;==============================================================================
org 0000h
movwf OSCCAL
goto main
;------------------------------------------------------------------------------
; Function: pDelay1ms
; Overview: This is a very accurate 1ms delay for a 4MHz clock.
;------------------------------------------------------------------------------
pDelay1ms:
movlw .198
movwf DelayCounter1
nop
nop
tagDelay1ms_01:
nop
nop
decfsz DelayCounter1, F
goto tagDelay1ms_01
retlw 0x00
;------------------------------------------------------------------------------
; Function: pDelay250ms
; Overview:
;------------------------------------------------------------------------------
pDelay250ms:
movlw .250
movwf DelayCounter2
tagDelay250ms_01:
call pDelay1ms
decfsz DelayCounter2, F
goto tagDelay250ms_01
retlw 0x00
;------------------------------------------------------------------------------
; Function: pGetBit
; Overview:
;------------------------------------------------------------------------------
pGetBit:
tagBitStart:
clrf errorflag
clrf GetBitCountLo
clrf GetBitCountHi
tagBitWait:
btfss GPIO, bIRDataIn
goto tagBitWait
tagBitLoop:
incfsz GetBitCountLo, F
goto tagBitNext
incf GetBitCountHi, F
movlw .3
subwf GetBitCountHi,W
btfsc STATUS,C
goto errorret
tagBitNext:
btfsc GPIO, bIRDataIn
goto tagBitLoop
movlw .1
subwf GetBitCountHi, W
btfsc STATUS, Z
goto tagBitIsOne
tagBitIsZero:
movlw 0x00
movwf Bit
goto tagBitDone
tagBitIsOne:
movlw 0xff
movwf Bit
goto tagBitDone
tagBitDone:
retlw 0x00
errorret:
bsf errorflag,Bit0
retlw 0x00
;------------------------------------------------------------------------------
;==============================================================================
; Program Main Entry.
;==============================================================================
main:
movlw B'11000111'
option
movlw B'11111101'
tris GPIO
;PowerUpSystem
movlw B'11111111'
movwf GPIO
movlw cPowerOn
movwf PowerState
initial:
clrf AddrCode
clrf AddrCodeNot
clrf DataCode
clrf DataCodeNot
doIrCheck:
btfsc GPIO, bIRDataIn
goto doIrCheck
;================================================
;call pGetBit
leaderWait:
btfss GPIO, bIRDataIn
goto leaderWait
call pGetBit
pauseWait:
;btfsc GPIO, bIRDataIn
;goto pauseWait
movf GetBitCountLo,W
movwf PausecountLo
movf GetBitCountHi,W
movwf PausecountHi
movlw 0x02
subwf PausecountHi,W
btfss STATUS,Z
;btfss PausecountHi,Bit1
goto doIrCheck
;btfsc GPIO,bIRDataIn
;goto
;================================================
AddrBit0:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto AddrBit0Zero
AddrBit0One:
bsf AddrCode, Bit0
goto AddrBit1
AddrBit0Zero:
bcf AddrCode, Bit0
;------------------------------------------------
AddrBit1:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto AddrBit1Zero
AddrBit1One:
bsf AddrCode, Bit1
goto AddrBit2
AddrBit1Zero:
bcf AddrCode, Bit1
;------------------------------------------------
AddrBit2:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto AddrBit2Zero
AddrBit2One:
bsf AddrCode, Bit2
goto AddrBit3
AddrBit2Zero:
bcf AddrCode, Bit2
;------------------------------------------------
AddrBit3:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto AddrBit3Zero
AddrBit3One:
bsf AddrCode, Bit3
goto AddrBit4
AddrBit3Zero:
bcf AddrCode, Bit3
;------------------------------------------------
AddrBit4:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto AddrBit4Zero
AddrBit4One:
bsf AddrCode, Bit4
goto AddrBit5
AddrBit4Zero:
bcf AddrCode, Bit4
;------------------------------------------------
AddrBit5:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto AddrBit5Zero
AddrBit5One:
bsf AddrCode, Bit5
goto AddrBit6
AddrBit5Zero:
bcf AddrCode, Bit5
;------------------------------------------------
AddrBit6:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto AddrBit6Zero
AddrBit6One:
bsf AddrCode, Bit6
goto AddrBit7
AddrBit6Zero:
bcf AddrCode, Bit6
;------------------------------------------------
AddrBit7:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto AddrBit7Zero
AddrBit7One:
bsf AddrCode, Bit7
goto AddrNotBit0
AddrBit7Zero:
bcf AddrCode, Bit7
;++++++++++++++++++++++++++++++++++++++++++++++++
AddrNotBit0:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto AddrNotBit0Zero
AddrNotBit0One:
bsf AddrCodeNot, Bit0
goto AddrNotBit1
AddrNotBit0Zero:
bcf AddrCodeNot, Bit0
;------------------------------------------------
AddrNotBit1:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto AddrNotBit1Zero
AddrNotBit1One:
bsf AddrCodeNot, Bit1
goto AddrNotBit2
AddrNotBit1Zero:
bcf AddrCodeNot, Bit1
;------------------------------------------------
AddrNotBit2:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto AddrNotBit2Zero
AddrNotBit2One:
bsf AddrCodeNot, Bit2
goto AddrNotBit3
AddrNotBit2Zero:
bcf AddrCodeNot, Bit2
;------------------------------------------------
AddrNotBit3:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto AddrNotBit3Zero
AddrNotBit3One:
bsf AddrCodeNot, Bit3
goto AddrNotBit4
AddrNotBit3Zero:
bcf AddrCodeNot, Bit3
;------------------------------------------------
AddrNotBit4:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto AddrNotBit4Zero
AddrNotBit4One:
bsf AddrCodeNot, Bit4
goto AddrNotBit5
AddrNotBit4Zero:
bcf AddrCodeNot, Bit4
;------------------------------------------------
AddrNotBit5:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto AddrNotBit5Zero
AddrNotBit5One:
bsf AddrCodeNot, Bit5
goto AddrNotBit6
AddrNotBit5Zero:
bcf AddrCodeNot, Bit5
;------------------------------------------------
AddrNotBit6:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto AddrNotBit6Zero
AddrNotBit6One:
bsf AddrCodeNot, Bit6
goto AddrNotBit7
AddrNotBit6Zero:
bcf AddrCodeNot, Bit6
;------------------------------------------------
AddrNotBit7:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto AddrNotBit7Zero
AddrNotBit7One:
bsf AddrCodeNot, Bit7
goto DataBit0
AddrNotBit7Zero:
bcf AddrCodeNot, Bit7
;++++++++++++++++++++++++++++++++++++++++++++++++
DataBit0:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto DataBit0Zero
DataBit0One:
bsf DataCode, Bit0
goto DataBit1
DataBit0Zero:
bcf DataCode, Bit0
;------------------------------------------------
DataBit1:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto DataBit1Zero
DataBit1One:
bsf DataCode, Bit1
goto DataBit2
DataBit1Zero:
bcf DataCode, Bit1
;------------------------------------------------
DataBit2:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto DataBit2Zero
DataBit2One:
bsf DataCode, Bit2
goto DataBit3
DataBit2Zero:
bcf DataCode, Bit2
;------------------------------------------------
DataBit3:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto DataBit3Zero
DataBit3One:
bsf DataCode, Bit3
goto DataBit4
DataBit3Zero:
bcf DataCode, Bit3
;------------------------------------------------
DataBit4:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto DataBit4Zero
DataBit4One:
bsf DataCode, Bit4
goto DataBit5
DataBit4Zero:
bcf DataCode, Bit4
;------------------------------------------------
DataBit5:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto DataBit5Zero
DataBit5One:
bsf DataCode, Bit5
goto DataBit6
DataBit5Zero:
bcf DataCode, Bit5
;------------------------------------------------
DataBit6:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto DataBit6Zero
DataBit6One:
bsf DataCode, Bit6
goto DataBit7
DataBit6Zero:
bcf DataCode, Bit6
;------------------------------------------------
DataBit7:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto DataBit7Zero
DataBit7One:
bsf DataCode, Bit7
goto DataNotBit0
DataBit7Zero:
bcf DataCode, Bit7
;++++++++++++++++++++++++++++++++++++++++++++++++
DataNotBit0:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto DataNotBit0Zero
DataNotBit0One:
bsf DataCodeNot, Bit0
goto DataNotBit1
DataNotBit0Zero:
bcf DataCodeNot, Bit0
;------------------------------------------------
DataNotBit1:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto DataNotBit1Zero
DataNotBit1One:
bsf DataCodeNot, Bit1
goto DataNotBit2
DataNotBit1Zero:
bcf DataCodeNot, Bit1
;------------------------------------------------
DataNotBit2:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto DataNotBit2Zero
DataNotBit2One:
bsf DataCodeNot, Bit2
goto DataNotBit3
DataNotBit2Zero:
bcf DataCodeNot, Bit2
;------------------------------------------------
DataNotBit3:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto DataNotBit3Zero
DataNotBit3One:
bsf DataCodeNot, Bit3
goto DataNotBit4
DataNotBit3Zero:
bcf DataCodeNot, Bit3
;------------------------------------------------
DataNotBit4:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto DataNotBit4Zero
DataNotBit4One:
bsf DataCodeNot, Bit4
goto DataNotBit5
DataNotBit4Zero:
bcf DataCodeNot, Bit4
;------------------------------------------------
DataNotBit5:
call pGetBit
btfsc errorflag,Bit0
goto doIrCheck
btfss Bit, Bit7
goto DataNotBit5Zero
上一篇:PIC16C712功能、特點、應(yīng)用領(lǐng)域與替代16C711方法、注意事項
下一篇:16c54四位LED時鐘顯示程序
推薦閱讀
史海拾趣
CQR SECURITY公司在追求商業(yè)成功的同時,也積極履行社會責(zé)任。公司定期舉辦網(wǎng)絡(luò)安全宣傳活動,提高公眾的網(wǎng)絡(luò)安全意識。同時,CQR還積極參與社會公益事業(yè),為弱勢群體提供網(wǎng)絡(luò)安全支持和幫助。這種積極履行社會責(zé)任的舉措不僅提升了CQR的品牌形象,還為公司贏得了社會的廣泛贊譽。
這些故事雖然虛構(gòu),但反映了電子安全公司可能經(jīng)歷的一些普遍發(fā)展路徑和挑戰(zhàn)。希望這些故事能夠為您提供一些啟發(fā)和參考。如果需要更多關(guān)于特定公司的信息,建議您查閱相關(guān)新聞報道、行業(yè)分析報告或公司官網(wǎng)等渠道。
隨著汽車智能化的發(fā)展,ECT看到了車載連接器市場的巨大潛力。從2013年開始,公司開始布局車載連接器領(lǐng)域,并成功開發(fā)出多款適用于不同車型和場景的車載連接器產(chǎn)品。這一拓展不僅為ECT帶來了新的增長點,也進一步鞏固了公司在電子連接器行業(yè)的領(lǐng)先地位。
在電子行業(yè)競爭日益激烈的背景下,Chenmoun Enterprise Ltd始終堅持品質(zhì)至上的原則。公司建立了嚴(yán)格的質(zhì)量管理體系,從原材料采購到生產(chǎn)流程再到產(chǎn)品出廠,每一個環(huán)節(jié)都嚴(yán)格把關(guān)。這種對品質(zhì)的執(zhí)著追求贏得了客戶的信任和口碑,使得Chenmoun的產(chǎn)品在市場上獲得了廣泛的認(rèn)可。
面對日益復(fù)雜的軍事需求和快速發(fā)展的技術(shù)環(huán)境,DLA積極推進技術(shù)創(chuàng)新和數(shù)字化轉(zhuǎn)型。通過引入云計算、大數(shù)據(jù)、人工智能等先進技術(shù),DLA實現(xiàn)了對全球供應(yīng)鏈的實時監(jiān)控和智能調(diào)度,大大提高了后勤保障的效率和準(zhǔn)確性。同時,DLA還加強了對新型軍事裝備的研發(fā)和保障能力,確保美軍在現(xiàn)代化戰(zhàn)爭中保持領(lǐng)先地位。
面對日益復(fù)雜的軍事需求和快速發(fā)展的技術(shù)環(huán)境,DLA積極推進技術(shù)創(chuàng)新和數(shù)字化轉(zhuǎn)型。通過引入云計算、大數(shù)據(jù)、人工智能等先進技術(shù),DLA實現(xiàn)了對全球供應(yīng)鏈的實時監(jiān)控和智能調(diào)度,大大提高了后勤保障的效率和準(zhǔn)確性。同時,DLA還加強了對新型軍事裝備的研發(fā)和保障能力,確保美軍在現(xiàn)代化戰(zhàn)爭中保持領(lǐng)先地位。
面對日益復(fù)雜的軍事需求和快速發(fā)展的技術(shù)環(huán)境,DLA積極推進技術(shù)創(chuàng)新和數(shù)字化轉(zhuǎn)型。通過引入云計算、大數(shù)據(jù)、人工智能等先進技術(shù),DLA實現(xiàn)了對全球供應(yīng)鏈的實時監(jiān)控和智能調(diào)度,大大提高了后勤保障的效率和準(zhǔn)確性。同時,DLA還加強了對新型軍事裝備的研發(fā)和保障能力,確保美軍在現(xiàn)代化戰(zhàn)爭中保持領(lǐng)先地位。
一.設(shè)計要求: 要求用一片fpga ,vga 顯示器和實驗箱中的vga接口共同實現(xiàn)多種彩色的顯示。 其功能如下: (1) 根據(jù)vga工業(yè)標(biāo)準(zhǔn),產(chǎn)生正確的行場掃描信號; (2) 有顯示控制鍵,每按動一次按鍵,輸出全屏改變一種顏色,循環(huán)顯示顏色分別為: ...… 查看全部問答∨ |
|
我是個新手。。。想在WIN CE下用WIN 32顯示BMP圖片!。。。不用MFC。。。 這個應(yīng)該要怎么實現(xiàn)啊!!! 能不能給個例子看看。。。先謝謝啦 … 查看全部問答∨ |
如何調(diào)試呢?平臺已經(jīng)有人做了,我需要在上面做應(yīng)用程序,請問能用vc6寫嗎?是不是編譯成release版本直接下進去呢?還是可以編譯成debug然后調(diào)試呢? … 查看全部問答∨ |
UDP效驗碼的格式是每16為進行反碼求和運算,有進位則結(jié)果再加上1,最后得到一個16位的效驗碼。我的問題是這16位求和的具體方向是怎樣的,最后按什么順序放在16的效驗碼字段里? 比如:設(shè)cr為16效驗碼初值為0(類型unsigned int),數(shù)據(jù)包中的16位 ...… 查看全部問答∨ |
|
友善之臂 mini2440 + 3.5"LCD 套餐 300轉(zhuǎn)讓! 本帖最后由 ddllxxrr 于 2016-1-7 17:10 編輯 自降100哈,遇到高興的事了,嘿嘿 300元轉(zhuǎn)讓友善之臂 mini2440 + 3.5"LCD 套餐 全新的,買來后就沒有怎么用過,詳細(xì)介紹請看: 有意的請聯(lián)系我,賣價300元,東西絕對全新的 QQ 653338192 另 ...… 查看全部問答∨ |
智能車飛思卡爾MC9S12DG128開發(fā)板 個人閑置 智能車飛思卡爾MC9S12DG128開發(fā)板 個人閑置 本人為在校學(xué)生,曾參加過2009年、2010年飛思卡爾智能車競賽。由于現(xiàn)在正在備戰(zhàn)考研。決定出售全套 智能車飛思卡 ...… 查看全部問答∨ |
MC9S12XS128MAA,編寫兩路速度測試,在液晶屏上同時顯示這倆路速度值 程序整體思路 K1鍵按下,一只led燈開始閃爍,同時啟動測試速度程序,能夠在液晶屏上顯示所測速度,如果速度在20km/h-60km/h之間,則從相應(yīng)口輸出10hz方波脈沖,在檢測脈沖儀上顯示 測試速度具體思路(兩路速度測試,兩路速度顯示) 由V=(2∏R*f) ...… 查看全部問答∨ |
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 英飛凌微控制器:以全新實惠套件和強大開發(fā)環(huán)境為開發(fā)者提供支持
- iTOP-i.MX6開發(fā)板設(shè)備數(shù)驅(qū)動Menuconfig的用法
- 迅為IMX6ULL開發(fā)板Qt for Android搭建開發(fā)環(huán)境
- 迅為i.MX8M mini開發(fā)板Windots QT系統(tǒng)開發(fā)環(huán)境搭建
- 迅為IMX8MM開發(fā)板Yocto系統(tǒng)使用Gstarwmra(一)
- 迅為IMX8M mini開發(fā)板Linix系統(tǒng)修改默認(rèn)屏幕
- iTOP-4412開發(fā)板支持4G以上文件系統(tǒng)擴展
- 迅為IMX8MM開發(fā)板Yocto系統(tǒng)設(shè)置開機自啟動
- 迅為IMX6Q開發(fā)板 Buildroot文件系統(tǒng)mqtt測試
- 特斯拉:美國交付的Model Y/3電池包已實現(xiàn)100%美國生產(chǎn)
- 地平線與博世深化合作,攜手為多家車企提供輔助駕駛產(chǎn)品
- 強化中國市場戰(zhàn)略布局,德州儀器正靈活應(yīng)對全球關(guān)稅挑戰(zhàn)
- Molex莫仕通過本地合作和創(chuàng)新加強支持中國汽車行業(yè)
- 貿(mào)澤開售Texas Instruments適用于高分辨率AR HUD的 全新DLP4620S-Q1 0.46"汽車數(shù)字微鏡器件
- ROHM推出高功率密度的新型SiC模塊,將實現(xiàn)車載充電器小型化!
- 用上車規(guī)級UFS 4.0,讓出行變得高效且可靠
- 車載測試技術(shù)解析:聚焦高帶寬、多通道同步采集與協(xié)議分析
- 傳統(tǒng)晶體管的極限!臺積電3nm N3P已量產(chǎn)
- 分析師稱H20出口管制毫無意義:對中國AI發(fā)展影響不大