MC68HC908RF2在汽车远程无匙进入系统中的应用
[09-12 17:55:09] 来源:http://www.88dzw.com 单片机学习 阅读:8841次
文章摘要:clr buffer4 ;clr buffer5 ;clr buffer6 ;clr crc ;clr BitCount ;clr LastRow ;clr LastCol ;clr TxCnt ;clr TEMP;WarmStartmov #DDRAInit,DDRA ;初始化PORTA口mov #PortAInit,PORTA ;bset led,portamov #DDRBInit,DDRB ;初始化PORTB口mov #PortBInit,PORTB ;mov #%00100011,INTKBSR ;mov #%00011110,INTKBIER ;BSET ACKK,INTKBSR
MC68HC908RF2在汽车远程无匙进入系统中的应用,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.comclr buffer4 ;
clr buffer5 ;
clr buffer6 ;
clr crc ;
clr BitCount ;
clr LastRow ;
clr LastCol ;
clr TxCnt ;
clr TEMP;
WarmStart
mov #DDRAInit,DDRA ;初始化PORTA口
mov #PortAInit,PORTA ;
bset led,porta
mov #DDRBInit,DDRB ;初始化PORTB口
mov #PortBInit,PORTB ;
mov #%00100011,INTKBSR ;
mov #%00011110,INTKBIER ;
BSET ACKK,INTKBSR ;
mov #%00100001,INTKBSR ;
StopProc
bclr pllen,porta
STOP
bra StopProc
KeybIRQ
brclr 7,INTKBSR,KeyboardProc ;检查是否为外部中断
jmp IRQProc ;不是有效的键盘中断,
退出
KeyboardProc bset 2,INTKBSR ;清除键盘中断标志
clrx
BCLR Led,PORTA ;电亮LED
WaitRow
lda PORTA ;读取PORTA口数据
coma ;
and #%00011110 ;
lsra ;
bne RowOk ;
dbnza $ ;
dbnzx WaitRow ;如果PORTA口数据为0,一直读取,直到延时时间到
jmp ExitKeyb 延时到
RowOk
sta LastRow ;Save Row number
clr INTKBIER ;Clear Keyboard interrupt enable bits
lda #%00011110 ;All rows to 1
ora DDRA ;
sta DDRA ;
lda #%00011110 ;
ora PORTA ;
sta PORTA ;
clrx ;
mov #$10,BitCount ;
ColLoop
lda #$40 ;
KeyLoop
dbnzx KeyLoop ;
dbnza KeyLoop ;
;组织待发射数据
SetKey
lda lastrow
lsla
lsla
lsla
lsla
sta Buffer4 ;Init Key Code
LDA ID0
STA Buffer0 ;
lda ID1 ;Init ID
sta Buffer1 ;
lda ID2 ;
sta Buffer2 ;
lda ID3 ;
sta Buffer3 ;
lda #Dly300ms ;Attendi 350ms
psha ;
clra ;
clrx ;
ToggleDly
dbnzx $ ;[3*256=768]
dbnza ToggleDly ;[256*771]
dbnz 1,SP,ToggleDly ;[197379*Dly300ms]
pula ;
lda PORTA ;Check if key still down
and #%01100000 ;
nsa ;
lsra ;
bne NoToggle ;
bset 0,Buffer0 ;键盘没有释放
NoToggle
;
lda #$01 ;
add Buffer6 ;
sta Buffer6 ;
clra ;
adc Buffer5 ;
sta Buffer5 ;
clc
lda Buffer6 ;
and #$0F ;
beq NoRotate ;
tax
NextRotate
lda Buffer5 ;
rora ;
ror Buffer0 ;
ror Buffer1 ;
ror Buffer2 ;
ror Buffer3 ;
ror Buffer4 ;
ror Buffer5 ;
dbnzx NextRotate ;
NoRotate
ldhx #Buffer0 ;
lda ,X ;
eor 1,X ;
sta 1,X ;
eor 2,X ;
sta 2,X ;
eor 3,X ;
sta 3,X ;
eor 4,X ;
sta 4,X ;
eor 5,X ;
sta 5,X ;
clr CRC ;
ldhx #Buffer0 ;
NextCRCByte LDA ,X
ADD BUFFER1
ADD BUFFER2
ADD BUFFER3
ADD BUFFER4
ADD BUFFER5
ADD BUFFER6
STA CRC
;发送程序
mov #DDRAInit,DDRA ;初始化A口方向寄存器
mov #PortAInit,PORTA ;初始化A口
mov #%00011110,INTKBIER
mov #MinTx,TxCnt ;一共发送3帧相同的数据
bset PLLEn,PORTA ;允许UHF模块
ldx #FrameDly ;
clra ;
FrameBlank
dbnza $ ;
dbnzx FrameBlank
lda #$0c
;********产生24个TE******************************* *******************
HX301
BCLR Data,PORTB
mov #%00110000,TASCR
ldhx #$0200
sthx TAMODH ;
bclr 5,TASCR ;计数器开始计数
brclr 7,TASCR,* ;Wait
BSET Data,PORTB
mov #%00110000,TASCR
ldhx #$0214
sthx TAMODH ;
bclr 5,TASCR ;计数器开始计数
brclr 7,TASCR,* ;Wait
dbnza HX301
bclr Data,portb
lda #$09
HX302 mov #%00110000,TASCR
ldhx #$023e
sthx TAMODH ;
bclr 5,TASCR ;计数器开始计数
brclr 7,TASCR,* ;Wait
dbnza HX302
NextFrame
ldhx #CRC ;指向CRC的RAM地址
psha ;
NextTxByte
lda #$08 ;
sta 1,SP ;
NextTxBit lda 0,X ;将X+0指向的地址的内容
ACC中
rora ;带进位位右移
ror 0,X ;将X+0的地址的内容带进位
《MC68HC908RF2在汽车远程无匙进入系统中的应用》相关文章
- › 芯片引脚及主要特性MC68HC805C4 8位微控制器(A/D)
- › 芯片引脚及主要特性MC68HC805B6 8位微控制器(A/D)
- › 芯片引脚及主要特性MC68HC711J6 8位微控制器(A/D)
- › 芯片引脚及主要特性MC68HC05A6,8位微控制器
- › 芯片引脚及主要特性MC68851,32页式存储器管理电路
- › 芯片引脚及主要特性MC68824标准总线控制器
- 在百度中搜索相关文章:MC68HC908RF2在汽车远程无匙进入系统中的应用
- 在谷歌中搜索相关文章:MC68HC908RF2在汽车远程无匙进入系统中的应用
- 在soso中搜索相关文章:MC68HC908RF2在汽车远程无匙进入系统中的应用
- 在搜狗中搜索相关文章:MC68HC908RF2在汽车远程无匙进入系统中的应用