一体化红外接收头控制

一体化红外接收头控制

ID:39351628

大小:16.00 KB

页数:3页

时间:2019-07-01

一体化红外接收头控制_第1页
一体化红外接收头控制_第2页
一体化红外接收头控制_第3页
资源描述:

《一体化红外接收头控制》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、#include#defineBHSELP2SEL//定义捕获端口#defineBH_IOBIT2unsignedintCyc=0,LastCCR0=0,flag=0,key=0;voidInitBhTimerA();voidInitSys();unsignedinttranslate(unsignedintnumber);unsignedintgetkey()//得到按键的值{returnkey;}unsignedinttranslate(unsignedintnumber)//将传入函数的数转化成七段数码管显示{

2、unsignedinti;switch(number){case0:i=0xFC;break;case1:i=0x60;break;case2:i=0xDA;break;case3:i=0xF2;break;case4:i=0x66;break;case5:i=0xB6;break;case6:i=0xBE;break;case7:i=0xE0;break;case8:i=0xFE;break;case9:i=0xF6;break;}returni;}voidInitBhTimerA()//初始化{P6DIR=0XFF;P6OUT=0X00;P

3、5DIR=0XFF;P5OUT=0X00;TACTL=TASSEL_2+ID_3+TACLR;//定时器A,时钟源:ACLK,连续计数模式CCTL0=CCIS_1+CM_2+CAP;//选择上降沿捕获,CCIB(P2.2)为信号源,BHSEL

4、=BH_IO;//选择P2.2使用第二功能TACTL

5、=MC_2+TACLR;//打开计数器CCTL0

6、=CCIE;//捕获中断允许InitSys();}voidInitSys(){unsignedintiq0;//使用XT2振荡器BCSCTL1&=~XT2OFF;//打开XT2振荡器do{IFG1&=~

7、OFIFG;//清除振荡器失效标志for(iq0=0xFF;iq0>0;iq0--);//延时,等待XT2起振}while((IFG1&OFIFG)!=0);//判断XT2是否起振BCSCTL2=SELM_2+SELS;//选择MCLK、SMCLK为XT2_EINT();//打开全局中断控制,若不需要打开,可以屏蔽本句}voidmain(){WDTCTL=WDTPW+WDTHOLD;InitBhTimerA();while(1){P6OUT=BIT1+BIT2;P5OUT=translate((getkey()%10));P6OUT=BIT0+

8、BIT2;P5OUT=translate((getkey()/10)%10);P6OUT=BIT0+BIT1;P5OUT=translate((getkey()/100));}}#pragmavector=TIMERA0_VECTOR//捕捉中断,根据两次中断的时间判断传入的值,最后转化成需要的整数__interruptvoidTimerA0(){Cyc=CCR0-LastCCR0;LastCCR0=CCR0;if((Cyc>12000)&&(Cyc<14000)){flag=0;key=0;}flag++;//2233112613401if(

9、(flag>18)&&(flag<=26)){if((Cyc>1000)&&(Cyc<2000))key=key*2;if((Cyc>2000)&&(Cyc<3000))key=key*2+1;}//flag++;//Cyb[(flag-2)]=Cyc;}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。