用PIC单片机模拟PT2262软件编码方法
[09-13 23:36:14] 来源:http://www.88dzw.com 电视机电路 阅读:8773次
文章摘要:goto-2nopRETURN;reflw0send_byte;发射一个字节movwftxbufmovlw.8movwftxentsend_looprrftxbuf,f;DO先出bffssSTATUS.CgotoNow_txbit0callTx_bitlgoto+2Nowtxbit0callTx_bit0deefsztxcnt,fgotosend_loopRETURN:retlw0Tx_bitObsfGPIO.2callDelay_560asbcfGPl0.2callDelay_560usRETURN;reflw0Tx_bitl;bit1--高560μs,低560μs×
用PIC单片机模拟PT2262软件编码方法,标签:电视机电路,电路设计,http://www.88dzw.comgoto-2
nop
RETURN;reflw0
send_byte;发射一个字节
movwftxbuf
movlw.8
movwftxent
send_looprrftxbuf,f;DO先出
bffssSTATUS.C
gotoNow_txbit0
callTx_bitl
goto+2
Nowtxbit0callTx_bit0
deefsztxcnt,f
gotosend_loop
RETURN:retlw0
Tx_bitObsfGPIO.2
callDelay_560as
bcfGPl0.2
callDelay_560us
RETURN;reflw0
Tx_bitl;bit1--高560μs,低
560μs×3
callDelay560us
bcfGPIO,2
callDelay_560us
callDelay_560us
callDelay_560us
RErURN;retlw0
ResetbcfSTATUS,5MOVLWB'00111111’
OPTION
clrfGPJ0
movlwB'00110011'
TRISGPIO
MOVWFGPI0
MOVLWB'00000011'
movwfGPIO
clrfkeylast
bsfGPIO,2
main_loopcallKey_drv;按键驱动
gotomain_loop;按键扫描和处理,有效的按键键值1~4
Key_drvMOVFGPIO,W
clrfkeyvalue
movfwGPIO
andlwB'00111111';读入按键状态,取GPI05,4,1,0
movwftmp
xorlwB'00011111'
btfscSTATUS,Z
gotoGet_key_LON;GPI05压下了
movfwtmp
xorlwB'00010111'
btfscSTATUS,Z
gotoGet_key_LOFF;GPI04压下了
movfwtmp
xorlwB'00111101
btfscSTATUS,Z
gotoGet_key_RON;GPI01压下了
movfwtmp
xorlwB00111110
btfseSTATUS,Z
gotoGet_key_ROFF;GPIO0压下了
movfwtmp
xorlwB'00111111'
btfscSTATUS,Z
gotoNo_key;没有按键压下
incfkeyvalue,f;超过一个键按下,键值=5
Get_key_RON;keyRON键值=4
incfkeyvalue,f
Get_key_ROFF;keyROFF键值=3
incfkeyvalue;f
Get_kty_LON;keyLON键值=2
incfkeyvalue,f
Get_key_LOFF;KeyLOFF键值=1
incfkeyvalue,f
Nokeymovfwkeylast
xorwfkeyvalue,w
btfseSTATUS,Z
gotoValid_key
New_key;前后两次按键不同,把新的按键记下来
movfkeyvalue,w
movwfkeylast
gotoKey_exit
Validkeymovfwkeyvalue
btfscSTATUS,Z
gotokey_release
keyactivexorlw5
bffscSTATUS,Z
gotoKey_exit:键值=5,是多个按键按下,不处理
bsfB_keyon
gotoTx_frame
keyrelease;两次发现无键,是键释放
bcfB_keyon;清键按下标志
bcfB_keyexec:清键处理过标志
clrftmr_key
gotoKey_exit;退出
Key_exitRETURN;retlw0
Tx_framebsfGPIO,5
bsfGPIO,4;
callDelay_9ms
bcfGPIO,4
callDelay_4ms5
callRead_addr0;发地址字节0
callsend_byte
callRead_addr1;发地址字节1
callsend_byte
movfkeyvalue,w;发按键数据
callsend_byte
movfkeyvalue,w
xorlwOxff
callsend_byte;发按键数据补码
callTx_bit1:发结束位
bcfGPIO,5
gotoKey_exit
end
四、硬件抗干扰
在无线通讯中使用单片机,若设计不当。会对诵讯系统造成严重的干扰,相信许多技术人员一定有过同样的苦恼。如果硬件设计不当,会造成原先硬件解码时通讯距离为200米,而用软件编码后可能只有十几米,因此解决硬件抗干扰问题在很大程度上可减少软件解码的误码率。
1.收发模块:早期常用的频率为47MHz,在此频率下,很难有好的解决方法。建议采用目前国家允许无线遥控使用的频率315MHz或433MHz。
2.单片机振荡频率:由于编码或发射电路比较简单,所选用单片机通常为小型单片机,为了节省单片机I/O口,解决单片机运行速度与电磁干扰的矛盾,建议采用芯片内部振荡。
3.屏蔽:为了有效抑制单片机对接收模块的电磁干扰,建议采用屏蔽的方法,让其振荡与发射电路避免外界干扰。
五、结束语
PT2262的软件编码有较好的用武之地。采用软件编码的系统,厂家无须对收发设备进行配套,有利于生产和保管。对客户来说,使用软件编码,厂家只需在软件中加入自动学习功能,用户便可自行使用该功能:只需轻按学习键即可学习新的通讯设备,如遥控器等。目前,该软件编码已经在众多手持遥控设备中采用,客户反映使用简便,效果良好。
《用PIC单片机模拟PT2262软件编码方法》相关文章
- › 用PIC16F627制作的可调倒计时提醒器
- › 用PIC单片机制作的电源定时插座
- › 用PIC16F627制作倒计时提醒器
- › 用PIC单片机模拟PT2262软件编码方法
- 在百度中搜索相关文章:用PIC单片机模拟PT2262软件编码方法
- 在谷歌中搜索相关文章:用PIC单片机模拟PT2262软件编码方法
- 在soso中搜索相关文章:用PIC单片机模拟PT2262软件编码方法
- 在搜狗中搜索相关文章:用PIC单片机模拟PT2262软件编码方法