版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录TOC\o"1-3"\h\u摘要 附录1总电路图
附录2元件清单序号品名规格型号单位数量备注1单片机芯片AT89C51片22无线传输芯片IRLINK片13电阻10k个14电阻1K个15按键开关个166晶振CRYSTAL个27瓷片电容30pF个48电解电容10uF个29电阻2个110驱动器74LS240片211LED数码显示器8-LED共阴极数码管个1
附录3程序清单附录3.1:发射程序#include<REG51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint#defineSBM0x80//识别码#definem9(65536-9000) //约9mS#definem4_5(65536-4500) //约4.5mS#definem1_6(65536-1630) //约1.65mS#definem_65(65536-580) //约0.65mS#definem_56(65536-560) //约0.56mS#definem40(65536-40000)//约40mS#definem56(65536-56000)//56mS#definem2_25(65536-2250)//约2.25mSsbitIR=P3^5; //定义发射引脚(接PNP三极管基极)sbitLED=P3^7; //发射指示灯ucharKEY(void);voidSanZhuan(void);voidZZ(ucharx);voidZ0(uchartemp);voidTT0(bitBT,uintx);voidYS(uchartime);/*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈函数功能:主函数┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/voidmain(void){TMOD=0x01;//T016位工作方式IR=1; //发射端口常态为高电平while(1){SanZhuan();}}/***************************************************************函数功能:4×4矩阵键盘键值P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7││││││││┃│││└────13141516┃││└────────9101112┃│└────────────5678┃└────────────────1234┃***************************************************************/ucharKEY(void){ucharH,L;//行值,列值H=0;L=0;P1=0xf0;//将键盘端口行值设为1,列值设为0if(P1!=0xf0)//检测是否有按键按下,如果有则hangval必不为0x0f{YS(10);//按键去抖动,延时10毫秒if(P1!=0xf0)//确实有按键按下{H=P1&0xf0;//按键后得到按键的行标志位,将行标志位赋值给hangvalP1=0x0f;//翻转键盘接口输出L=P1&0x0f;//得到列标志位} return(H+L);}return0;}/***************************************************************函数功能:散转程序入口参数:v////13141516//9101112//5678//1234***************************************************************/voidSanZhuan(void){ucharv;v=KEY();switch(v){case0x77:ZZ(0x01);v=0;break; //""case0xb7:ZZ(0x02);v=0;break; //""case0xd7:ZZ(0x03);v=0;break; //""case0xe7:ZZ(0x04);v=0;break; //""case0x7b:ZZ(0x05);v=0;break; //""case0xbb:ZZ(0x06);v=0;break; //""case0xdb:ZZ(0x07);v=0;break; //""case0xeb:ZZ(0x08);v=0;break; //""case0x7d:ZZ(0x09);v=0;break; //""case0xbd:ZZ(0x10);v=0;break; //""case0xdd:ZZ(0x11);v=0;break; //""case0xed:ZZ(0x12);v=0;break; //""case0x7e:ZZ(0x13);v=0;break; //""case0xbe:ZZ(0x14);v=0;break; //""case0xde:ZZ(0x15);v=0;break; //""case0xee:ZZ(0x16);v=0;break; //""default:v=0;}}/*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈函数功能:发送主程序┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/voidZZ(ucharx){TT0(1,m9); //高电平9mSTT0(0,m4_5); //低电平4.5mS/*┈发送4帧数据┈*/Z0(SBM); Z0(~SBM);Z0(x);Z0(~x);/*┈┈结束码┈┈*/TT0(1,m_65);TT0(0,m40);/*┈┈重复码┈┈*/while(KEY()){TT0(1,m9);TT0(0,m2_25);TT0(1,m_56);TT0(0,m40); TT0(0,m56); LED=!LED; //指示灯 }LED=1; }/*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈函数功能:单帧发送程序入口参数:1帧数据┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/voidZ0(uchartemp){ucharv;for(v=0;v<8;v++)//循环8次移位{ TT0(1,m_65); //高电平0.65mS if(temp&0x01)TT0(0,m1_6);//发送最低位 elseTT0(0,m_56); temp>>=1;//右移一位}}/*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈函数功能:38KHz脉冲发射+延时程序入口参数:(是否发射脉冲,延时约x(uS))┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/voidTT0(bitBT,uintx){TH0=x>>8; //输入T0初始值TL0=x;TF0=0; //清0TR0=1; //启动定时器0if(BT==0)while(!TF0); //BT=0时不发射38KHz脉冲只延时;BT=1发射38KHz脉冲且延时;elsewhile(1) //38KHz脉冲,占空比5:26{ IR=0; if(TF0)break; if(TF0)break; IR=1; if(TF0)break; if(TF0)break; if(TF0)break; if(TF0)break; if(TF0)break; if(TF0)break; if(TF0)break; if(TF0)break; if(TF0)break; if(TF0)break; }TR0=0; //关闭定时器0TF0=0; //标志位溢出则清0IR=1; //脉冲停止后,发射端口常态为高电平}/***************************************************************函数功能:按键消抖延时程序入口参数:1ms×time(晶振=12MHz)***************************************************************/voidYS(uchartime){uchari,j; for(i=0;i<time;i++)for(j=0;j<247;j++)_nop_();}附录3.2:接收程序#include<REGX52.H>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintucharcodetab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0X88,0X83,0XC6,0XA1,0X86,0X8E,0xFF};sbit IR=P3^2; uchar N[4]; //识别码,操作码存放ucharX1,X2,X3,X4;voidXSQ(void);voidYS(uchartime);/******************主函数*******************/voidmain(void){ X1=X2=X3=X4=0;IT0=1;EX0=1;EA=1;while(1){XSQ();}}/**********************数码管显示函数************************/voidXSQ(void){ P2_7=1;P0=tab[X1];P2_0=0;YS(1); //识别码P2_0=1;P0=tab[X2];P2_1=0;YS(1);P2_1=1;P0=tab[16];P2_2=0;YS(1);P2_2=1;P0=tab[16];P2_3=0;YS(1);P2_3=1;P0=tab[16];P2_4=0;YS(1);P2_4=1;P0=tab[16];P2_5=0;YS(1);P2_5=1;P0=tab[X3];P2_6=0;YS(1); //操作码P2_6=1;P0=tab[X4];P2_7=0;YS(1);}/**********************外部中断函数************************/voidexint0()interrupt0{ uintcnt;uchari;EX0=0;cnt=0; while(!IR)cnt++;//记录引导码时间if(cnt<1000){EX0=1;return;}//9ms的计数值(12MHz:1000<cnt<1500) cnt=0; while(IR)if(cnt++>400){EX0=1;return;}//防卡死,超时保护(12MHz:>300)if(cnt<200){EX0=1;return;}//(12MHz不分频:<260) for(i=0;i<32;i++)//读取32位位码
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 粉尘危害及防护课件
- 声学专业实习心得体会
- 影视文化公司员工保密合同
- 某钢铁厂炉窑操作办法
- 下篇 模块九 工业机器人红外测量系统应用
- 系统集成流程与案例分析
- 2026山西晋中市寿阳县国有资本运营有限公司及下属公司中高层管理人员招聘12人备考题库带答案详解(轻巧夺冠)
- 某公关公司客户服务细则
- 2026四川成都市锦江区学府幼儿园招聘员额教师2人备考题库含答案详解(突破训练)
- 2026广东深圳市罗湖区新华外国语学校诚聘4人备考题库及答案详解【夺冠系列】
- 人体动静脉课件
- DB32∕T 4341-2022 水下道路隧道消防系统工程施工质量验收规范
- 对口支援新疆管理办法
- 作风建设培训课件民航
- 学堂在线 雨课堂 学堂云 科研伦理与学术规范 期末考试答案
- 二手车经纪人题库及答案
- 专项维修资金存放服务方案投标文件技术方案
- 北师大版(2024)七年级下册数学期末复习:解答题压轴题 尖子生练习题(含答案解析)
- 合同附件安全协议书
- 2025年上海市金山区中考数学二模试卷(含解析)
- 中考作文指导:记叙文审题立意之多角度立意
评论
0/150
提交评论