您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 基于单片机的红外传感键盘
单片机红外传感键盘2015年4月20日1作品名称:单片机红外传感键盘吉林大学通信工程学院2012级张明凯程骞刘天阳单片机红外传感键盘2015年4月20日2作品类别:1一、立项背景与目的随着社会的不断发展,键盘在我们的日常工作和学习中越来越随处可见,例如银行存取款,保险箱密码锁。但是随着键盘使用频率的增加,不安全的因素也越来越多。针对安全问题,我们希望采用一种方式改进传统的按键键盘,来避免一些不安全因素。二、方案设计1、方案选择就红外发射器而言,我们想到以下几种方案:普通红外发射接收管,优点:不可见光,隐蔽性好,便宜,缺点:光源发散,发收间干扰严重。普通激光器(红、绿等可见光),优点:方向性强,发收间干扰小,发射器价格适中,缺点:可见光,隐蔽性很差,接收管价格昂贵。激光红外发射接收管,优点:不可见光,隐蔽性好,发收间干扰小,缺点:价格昂贵。2、方案确定和优化综合考虑该三个方案,我们选择第一个方案(普通红外发射接收管),他的驱动相对简单,而且功耗低,安全性高,它的优点是不可见光、隐蔽性好、便宜。但是由于红外发射接收对管的发散范围较大,因此我们的方案会遇到精确度不足的问题而影响产品的功能。解决方法是在每一对管的周圈套上不透光的材料,比如加聚光镜或加防护罩等,尽量使得红外射线被控制在一定范围内。经过试验和测试,这种方法可以比较好的解决精确度的问题。3、理论分析与方案论证单片机红外传感键盘2015年4月20日3工作原理:先由红外发射管发射红外线,对面用红外接收管接收,当发收间无东西遮挡时和有东西遮挡时红外接收管的电阻会有明显的变化,再将该接收管与一电阻串联加上5v电压,那么其间电压就会变化(经测大约从0v到4v左右),再将该电平变化的信号送给单片机,经识别,相应定义电平高低含义,就可实现键盘模块功能。技术保证:经过查资料未发现有与该想法相近案例,故无技术保证,需要实际操作,试验中发现并尝试解决问题。三、总体设计四、单元电路设计最小系统板:(我们用的是stc89c52,P0口加一上拉电阻,作为输出口用)单片机红外传感键盘2015年4月20日4显示模块:我们用四位7段共阴数码管,74ls04驱动,9013三极管做位选驱动,其中P3口为段选控制,P0.0~P0.3为位选信号控制。未加驱动:(原本思路,效果:数码管暗暗的亮,根本看不清楚)单片机红外传感键盘2015年4月20日5加驱动后:(效果:数码管点亮正常,无异常现象)键盘模块:P1口选为键盘输入端。单片机红外传感键盘2015年4月20日6起初整体构图:(单片机无法识别来自键盘的信号)起初细节构图:反馈模块:P4口设为反馈口,连一蜂鸣器。单片机红外传感键盘2015年4月20日7程序烧写模块:单片机红外传感键盘2015年4月20日8五、单元电路测试模块所用设备效果程序烧写模块单片机最小系统板,电脑良好反馈模块示波器良好键盘模块电压表,示波器良好最小系统板Led灯良好显示模块直流5v电压源良好六、整体测试测试效果较好,能较快识别所感应按键,而且4×4的键盘不单单识别16个键,经测试,在误差要求低的情况下可实现识别16+8=24个键。识别16个键:P1P2P3P4P50123P64567P789AbP8CdEdelete单片机红外传感键盘2015年4月20日9识别24个键:P1P2P3P4M1M2M3M4P5M50M51M52M53M5M1M2M3M4P6M64M65M66M67M6M1M2M3M4P7M78M79M7AM7bM7M1M2M3M4P8M8CM8dM8EM8FM8M1M2M3M4七、结论经设计和调试,成品效果较好,发收管干扰尚可接受,达到预期结果。在设计和调试过程中我们发现,理论需要通过实践去验证,一些设计时理论上看起来并没有错误的地方在实践过程中并不可行,比如数码管显示那一块,单片机的能力不足以带起四位数码管的正常点亮,还有红外接收管收到的信号并不能让单片机识别,但我们可保证电压是足够的(约0V~4V)。由于在实验室没有足够的仪器来测从收管来的信号波形,实验曾陷入瓶颈。经过我们的一遍遍尝试,最终参考开关三极管特性实现了让单片机认识该电平。我们的作品理念非常简单,但想法有较高参考价值。我们想做的不仅仅是一个键盘,4×4键盘仅是我们红外传感键盘想法简单实物化的缩影。八、附录软件程序代码:#includereg52.hchardisp_buff[]={0,0,0,0};//显示缓冲单元//===========================================================单片机红外传感键盘2015年4月20日10//===========================================================delay1ms(unsignedintt){unsignedinti,j;for(i=0;it;i++)for(j=0;j120;j++);}//===========================================================//===========================================================voiddisplay(void){charcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};charcodewei[]={0xf8,0xf4,0xf2,0xf1};//位选代码chari;for(i=0;i4;i++){P0=0xf0;P3=~table[disp_buff[i]];P0=wei[i];delay1ms(2);}}//===========================================================//===========================================================unsignedcharkeyboard(void){P3=0xff;P1=0xff;P2=0x00;if(P1==0x11){P0=0x00;delay1ms(8);return0;}elseif(P1==0x21){P0=0x00;delay1ms(8);return1;}lseif(P1==0x41){P0=0x00;单片机红外传感键盘2015年4月20日11delay1ms(8);return2;}elseif(P1==0x81){P0=0x00;delay1ms(8);return3;}//////////////////////////////////////////////////////////////////////////////////elseif(P1==0x12){P0=0x00;delay1ms(8);return4;}elseif(P1==0x22){P0=0x00;delay1ms(8);return5;}elseif(P1==0x42){P0=0x00;delay1ms(8);return6;}elseif(P1==0x82){P0=0x00;delay1ms(8);return7;}//////////////////////////////////////////////////////////////////////////////////elseif(P1==0x14){P0=0x00;delay1ms(8);return8;}elseif(P1==0x24){P0=0x00;单片机红外传感键盘2015年4月20日12delay1ms(8);return9;}elseif(P1==0x44){P0=0x00;delay1ms(8);return10;}elseif(P1==0x84){P0=0x00;delay1ms(8);return11;}//////////////////////////////////////////////////////////////////////////////////elseif(P1==0x18){P0=0x00;delay1ms(8);return12;}elseif(P1==0x28){P0=0x00;delay1ms(8);return13;}elseif(P1==0x48){P0=0x00;delay1ms(8);return14;}elseif(P1==0x88){P0=0x00;delay1ms(8);return15;}elseif(P1==0x40){P0=0x00;delay1ms(8);单片机红外传感键盘2015年4月20日13return20;}elsereturn16;}//===========================================================//===========================================================voidmain(void){unsignedchari,key;while(1){display();key=keyboard();if(key16){//===========================================================//===========================================================disp_buff[3]=disp_buff[2];disp_buff[2]=disp_buff[1];disp_buff[1]=disp_buff[0];disp_buff[0]=key;//===========================================================//===========================================================for(i=0;i20;i++)display();while(key16){key=keyboard();display();}}elseif(key==20){//===========================================================//===========================================================disp_buff[0]=disp_buff[1];disp_buff[1]=disp_buff[2];disp_buff[2]=disp_buff[3];disp_buff[3]=0;//===========================================================//===========================================================for(i=0;i20;i++)display();while(key16)单片机红外传感键盘2015年4月20日14{key=keyboard();display();}}}}九、参考文献:[1]百度文库74ls04引脚图_引脚功能=jZ__4LcNwiV3RtykFOsPd6PT7cL85R4NQ393JWNW9qeAo7rBfeiXQBQI_JaH-Y5VKm84PmUtNP9xVTrHQxSvdPNmbp8xv8DxiPnVWzx_IF7[2]stc单片机官网[3]按键控制移位显示
本文标题:基于单片机的红外传感键盘
链接地址:https://www.777doc.com/doc-2536083 .html