msp430 串口irda红外技术能用做1838解码吗

7405人阅读
嵌入式开发(49)
最近由于项目需求,研究了一下MSP430,总体感觉MSP430还是非常不错的单片机,不亏是TI的产品。项目中用MSP430实现了红外遥控功能,下面我们先来分析一下红外的发送原理。
红外发送原理
红外发送实际上是按照一定的时间间隔,断断续续的发送红外射线来进行数据传输,为了提高数据传输的准确定和降低功耗,红外一般是采用38K的红外调制信号,其中,38K允许上下浮动1K以内的误差。红外发送的开头需要一个引导位,引导位是发送9ms,然后停止4.5ms,如果发送完一个数据之后还需要再发数据的话还需要连发码,连发码是先发送9ms,然后停止4.5ms。引导码和连发码的波形如下:
引导码和连发码之后是32位数据位,这32位数据位实际上是一个字节,其中,前16位是用户自定义地址码,用来区分红外是发给谁的,比如,电视的红外遥控是不能操作冰箱或空调的,剩下的16位是传输的数据,其中前8位是要传送的一个字节,后8位是这个字节的反码,用来校验数据传输的是否正确的,数据位无非就是0或1,其中0是先发送560us红外,然后停止565us,1是先发送560us然后停止1685us,0和1的波形如下:
每次传输实际上就是一个引导码加32位数据位或者一个连发码加32位数据位,整体的波形如下:
注意,你上所有的波形都是接收时的波形,由于红外接收头,如HS0038B,在采集到38K红外线时输出低电平,在采集不到38K红外线时输出高电平,所以,当发送红外线时在波形中为低电平,停止发送时反而为高电平。
熟习了原理以后,再来设计电路图就非常简单了,用两个三极管停止串联,其中一个的基极(无论是PNP还是NPN,都是旁边那个脚)接到38K方波上,另一个的基极接到发送控制引脚上,我这里没有自己来绘制原理图,采用了一个网上的原理图,具体如下:
下面的原理部分都理通了,下面,我们用MSP430来实现设计,其中P2.3口是MSP430的PWM输出引脚,这里是输出38K方波,P2.2口为发送停止控制引脚。具体代码如下:#include
&msp430x14x.h&
static unsigned int cnt = 0;
void delay_ms(unsigned int ms){
TBCCR0 = 1000;
TBCTL = CNTL_0 + TASSEL_2 + MC_1 + ID_3;
TBCCTL0 = CCIE;
while(cnt != 0);
TBCTL = MC_0;
void delay_us(unsigned int us){
TBCTL = CNTL_0 + TASSEL_2 + MC_1 + ID_3;
TBCCTL0 = CCIE;
while(cnt != 0);
TBCTL = MC_0;
void ir_open(){
P2DIR |= BIT2 | BIT3;//P2.2, P2.3输出
P2SEL |= BIT3; //P2.2:IO P2.3:TA0
P2OUT &= ~(BIT2 | BIT3);
//38K-&P2.3
CCR0 = (int)(26.3*8 + 0.5);
CCTL1 = OUTMOD_6;
CCR1 = (int)(13.15*8 + 0.5);
TACTL = TASSEL_2 + MC_1;
void ir_start(){
P2OUT |= BIT2;
delay_us(9000);
P2OUT &= ~BIT2;
delay_us(4500);
void ir_next(){
P2OUT |= BIT2;
delay_us(9000);
P2OUT &= ~BIT2;
delay_us(2250);
void ir_send_byte(unsigned char c){
for(i = 0; i != 8; ++i){
P2OUT |= BIT2;
delay_us(560);
P2OUT &= ~BIT2;
if(c&0x01){
delay_us(1685);
delay_us(565);
void ir_end(){
P2OUT |= BIT2;
delay_us(300);
P2OUT &= ~BIT2;
void ir_put(unsigned char c){
ir_start();
ir_send_byte(0x00);
ir_send_byte(0xff);
ir_send_byte(c);
ir_send_byte(~c);
void ir_close(){
P2SEL &- ~BIT3;
P2DIR |= BIT3;
P2OUT &= ~BIT3;
TACTL = TACLR;
void main(void)
WDTCTL = WDTPW + WDTHOLD;
// Stop WDT
BCSCTL1&=~XT2OFF;
IFG1&=~OFIFG;
//清除XT2标志
while((IFG1&OFIFG));
// 等待外部晶振稳定
即寄存器IFGI的OFIFG位等于0
BCSCTL2|=SELM_2;
//将MCLK配置为XT2
BCSCTL2|=SELS;
//将SMCLK配置1/2XT2 即4M
ir_open();
//ir_close();//关闭红外函数,这里不用
delay_ms(1000);
//P2OUT ^= BIT2;
ir_put(0x83);
#pragma vector=TIMERB0_VECTOR
__interrupt void timerb_handler(){
好了,看过上面这些资料,红外的发送就不会有什么疑问了,调试的时候我是用51单片机的红外解码测试程序来调试的,现在已经完全没有问题了,如果有什么疑问,欢迎留言讨论。
本文作者:girlkoo
本文链接:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:401601次
积分:4889
积分:4889
排名:第4315名
原创:61篇
评论:497条
文章:16篇
阅读:98709
阅读:77424
文章:11篇
阅读:40938
文章:12篇
阅读:84740
(12)(4)(3)(6)(1)(11)(3)(2)(4)(7)(3)(2)(2)(1)(2)君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
5基于MSP430的红外通信系统实现
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口您好,欢迎来到捷配电子市场网
您现在的位置: &
型号/规格:Easy430f2132品牌/商标:玉环智拓仪器科技有限公司单片机类型:MSP430F2132
3000多家会员为您找货报价,SO EASY!
类型:生产企业
联系人:陈亨信
地址:浙江台州玉环县坎门街道新街村新塘路
(4)N (1)N (2)N (1) (36)
&系列是美国()1996年开始推向市场的一种16位超低 功耗、具有()的混合信号处理器(Mixed Signal Processor)。称之为混合信号处理器,是由于其针对实际应用需求,将多个不同功能的、模块和集成在一个芯片上,以提供“单片”解决方案。该系列单片机多应用于需要电池供电的便携式中.
Easy430f2132学习板特点
功能框图如图1所示:
&Easy430f2132采用USB供电的方式,而不需要外接电的方式,方便广大同学的使用,而串口通讯,也考虑串口9针的不方便性,精诚的Easy430f2132在电路板内做了USB转串的电路,方便大家学习串口实验。
现将USB转串口的部分电路公开:
Easy430板上自带测温实验,利用AD采样,与查表的方法,学习AD采样的实验,以及查表的算法
利用板上的数码管显示:来实时显示当前室温...
而数码管的实现:是利用2片595芯片的级联,通过MCU的SPI口通信来实现数码管段式的驱动的。
关于数码管的驱动,这里精诚电子补充一个知识点:
&数码管的段电流(即每段发光的电流)应在3MA-10MA,电流过下,会使亮度不够,电流过大,会影响数码管的使用寿命。
& 在动态扫描驱动方式下,段电流应该是静态方式下的N倍(N是数码管的位数)。所以我们使用的四位数码管的段电流范围应该在12MA-40MA之间,这样才会有更好的显示效果。
& 这是为什么呢?因为在动态扫描方式下,一位数码管段的显示机会是静态的1/N。所以电流需要扩大N倍。
& 其次芯片,输出端的单个引脚的输出电流最大是35MA,一般情况下是2MA左右,但是整个芯片不能超过70MA,所以全段驱动的时候,段电流是10MA(当小数点不适用,8段当7段用)。所以输出地电流范围是10MA-20MA,比我们之前设定的范围,下线要少2MA,这是可以容忍的。
& 这里可以发现,我们点亮的段数越多,提供的段电流就不一样。这就是所谓的非恒流驱动。也就是说,在点亮不同数字的时候,因为段数不同,提供的电流也就不同,比如显示1,比显示8就要亮。在实际中,我们会发现,这样的亮度差异其实并不明显。
说明:以上电路为Easy430f2132学习板得部分介绍。
资料截图:
类型:生产企业
联系人:陈亨信
地址:浙江台州玉环县坎门街道新街村新塘路
你可能感兴趣的产品
电子元器件产品索引: &B&&&&F&&&&J&&&&N&&&&R&&&&V&&&&Z&&&&3&&&&7&&>> 使用msp430f5438UART的IRDA编码解码功能实现红外收发
使用msp430f5438UART的IRDA编码解码功能实现红外收发
所属分类:
下载地址:
msp430f5438_IRDA.rar文件大小:31.78 kB
分享有礼! 》
请点击右侧的分享按钮,把本代码分享到各社交媒体。
通过您的分享链接访问Codeforge,每来2个新的IP,您将获得0.1 积分的奖励。
通过您的分享链接,每成功注册一个用户,该用户在Codeforge上所获得的每1个积分,您都将获得0.2 积分的分成奖励。
使用msp430f5438UART的IRDA编码解码功能实现红外收发-msp430f5438 IRDA
Sponsored links
源码文件列表
温馨提示: 点击源码文件名可预览文件内容哦 ^_^
2.51 kB01-09-09 09:16
hong.dbgdt6.24 kB01-09-09 09:16
hong.dni996.00 B01-09-09 09:16
hong.wsdt3.57 kB01-09-09 09:16
3.03 kB01-09-09 08:39
hong.dep2.65 kB01-09-09 09:16
hong.ewd13.09 kB29-08-09 15:27
hong.ewp43.68 kB01-09-09 08:41
hong.eww158.00 B29-08-09 15:26
3.05 kB01-09-09 09:07
hong.d4320.22 kB01-09-09 09:07
fa.r4313.29 kB01-09-09 08:39
hong.pbd154.00 B01-09-09 09:07
MSP430x54x_uscia0_uart_04.pbi775.00 B31-08-09 14:19
MSP430x54x_uscia0_uart_04.r4311.98 kB31-08-09 14:09
shou.r4311.93 kB01-09-09 09:07
&Exe&0.00 B01-09-09 13:46
&List&0.00 B01-09-09 13:46
&Obj&0.00 B01-09-09 13:46
&settings&0.00 B01-09-09 13:46
&Debug&0.00 B01-09-09 13:46
&fa&0.00 B01-09-09 13:46
(提交有效评论获得积分)
评论内容不能少于15个字,不要超出160个字。
评价成功,多谢!
下载msp430f5438_IRDA.rar
CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了
您的积分不足,优惠套餐快速获取 30 积分
10积分 / ¥100
30积分 / ¥200原价 ¥300 元
100积分 / ¥500原价 ¥1000 元
订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。
支付宝支付宝付款
微信钱包微信付款
更多付款方式:、
您本次下载所消耗的积分将转交上传作者。
同一源码,30天内重复下载,只扣除一次积分。
鲁ICP备号-3 runtime:Elapsed:135.681ms - init:0.1;find:0.6;t:0.5;tags:0.3;related:106.3;comment:0.1; 27.69
登录 CodeForge
还没有CodeForge账号?
Switch to the English version?
^_^"呃 ...
Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧君,已阅读到文档的结尾了呢~~
基于MSP430的红外通信系统实现
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
基于MSP430的红外通信系统实现
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 irda红外线驱动下载 的文章

 

随机推荐