注意:访问本站需要Cookie和JavaScript支持!请设置您的浏览器! • 打开购物车 • 查看留言 • 付款方式 • 联系我们 |
首页 | 电子入门 | 学单片机 | 免费资源 | 下载中心 | 商品列表 | 象棋在线 | 在线绘图 | 加盟五一 | 加入收藏 | 设为首页 |
选择分类:当前分类——加盟五一 相关联或者相类似的文章: 借用大家两分钟时间 祝大家端午节快乐 (626) 世界上最大的建筑(626) 反馈回路是怎么回事(626) 与初学者谈低功耗设计(626) 如何正确使用电烙铁(626) 五一电子站长的FLASH代表作(626) 网友机趣幽默话电子(625) 全保护型家用供水控制器(625) 优秀的CXA1238收音集成电路(625) 可以自动稳压的逆变器电路(624) 电流、电动势与电压 (624) 充电器 收音机电路(624) 盯住灯泡黑色部分30秒钟(624) 调压、定时两用控制器(623) 常用电机与控制—伺服电动机(623) DS1820的工作原理(623) 学习用两个单片机之间通讯(623) 超速照相(622) 成 功 致 富 (拿破仑)(622) 部分电子网站链接(向电子网站致敬(621) 首页 前页 后页 尾页 本站推荐: | 借用大家两分钟时间 祝大家端午节快乐 大家好,借用大家两分钟时间,希望可以和大家一起来探讨C51,谢谢 文档:该程序功能是接收遥控信号。先发引导码,引道码9MS的电平和4.5MS的低电平够成,再开始发用户码(16位),接着发按键码(8位)最后发按键的反码(8位) 都是先发低位再发高位. 数据0是由0.56MS的高电平和0.56ms的低电平构成,数据1是由0.56ms高电平和1.685ms的底电平构成。所以我用低电平的时间来判断是0还是1。 #include static unsigned char data IRcode[3],IRcon,IRcon2; void int1()interrupt 2 using 2 //INT1中断. { TMOD=0x01; //选择定时方式1 EX1=1; //开CPU中断 TH0=0xFC; // 768US TL0=0xBF; for(IRcon=0;IRcon<4;IRcon++) 将数组清0 {IRcode[IRcon]=0; } IRcon2=0; //计数器清0 TR0=1;} //开定时器 void timer0(void) interrupt 4 using 0 //定时器0中断处理 { int i,j; char k; TH0=0xFC; TL0=0xBF; while(INT1); // 等待9ms高电平的出现 {for(i=0;i<8600;i++) ;file://延时8.6ms while(!INT1); // 等待4.5ms的低电平出现 for(j=0;j<4400;j++); //延时4.4ms while(INT1); //等低电平出现. TR0=1; //启动定时器 if(IRcon<4){ //如果没有数组没有装满 if(IRcon2<8){ //如果还没有装满8位 if(TH0<0x03) //如果低电平的时间小于768US k=0; //发的是0 else k=1; //否则发的是1; IRcode[IRcon]=IRcode[IRcon]|k; //将0或1存入数组中; IRcode[IRcon]>>=1; //由于遥控器是先发低位再发高位,所以先收到的是低位; } else IRcon++; //否则装下一字节 IRcon2=0; //计数器清0 }} else TR0=0; //定时器关, ET0=0;} //定时器0中断关闭 void main() {TMOD=0X01 ; //选择定时方式1; EA=1; //开CPU中断 EX1=1; //开INT1中断 IT1=1; } //INT1下降延有效 我用的是11.0592的晶振,怎么寄存器没有收到数据,请大家指教谢谢!祝大家端午节快乐 希望我们能成为一起探讨C51朋友。我的邮箱是tuzhiwei722@163.com. 1、 本站不保证以上观点正确,就算是本站原创作品,本站也不保证内容正确。 2、如果您拥有本文版权,并且不想在本站转载,请书面通知本站立即删除并且向您公开道歉! |
本站协议 |
版权信息 |
关于我们 |
本站地图 |
营业执照 |
发票说明 |
付款方式 |
联系方式
深圳市宝安区西乡五壹电子商行——粤ICP备16073394号-1;地址:深圳西乡河西四坊183号;邮编:518102 E-mail:51dz$163.com($改为@);Tel:(0755)27947428 工作时间:9:30-12:00和13:30-17:30和18:30-20:30,无人接听时可以再打手机13537585389 |