- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用51单片机制作的SAA3010T型遥控器
用51单片机制作的SAA3010T型遥控器
默认分类 2008-11-26 15:30:49 阅读356 评论2 ??字号:大中小?订阅
//作者:全立波,quanlibo@126.com
#include reg51.h
#define uchar unsigned char#define uint? unsigned int
//用单片机来模拟发送SAA3010数据码
//电脑用串口控制单片机,单片机通过模拟红外通信去控制机器人,空调,电视等电子设备。
uchar sendstart=3; //起始位2位+控制位1位+系统位6位=8位,其中起始两位为1,其它各为均为0uchar senddatas=1; //数据位为6位,这里只用该字节的前6位uchar count=0;sbit? P1_0=P1^0;?? //用来控制红外发光二极管来发送数据bit?? sendflag=0;? //发送数据的标志量
void? Init();void? sendData();uchar datas[28];
void main(void){? Init();? while(1){??? if(sendflag==1){? //串口不允许中断??? ET1=0;???? ?????? TR1=0;?????? ES=0;? //一个周期是26.32us,那么一个周期的一半应该是13us,所有的错误全部都在这里(看来网上发表的文章也是一些理论没有真正实践过)???? //12MHZ,38KHZ???? //TH1=0xf3;???? //TL1=0xf3;
???? //11.0592MHZ ,38KHZ?????? TH1=0xf4;?????? TL1=0xf4;
??? sendflag=0;?????? sendData();?}? };}
?
//这里定义1位的时间为在1.651ms,那么半位的时间为1.651ms/2=0.8255ms=825.5us//事先准备要发送的数void sendData(){? uchar c=0;? uint? b=0;//待发送的数据? uchar s=0;
? sendstart=3;//起始码? ? for(c=0;c8;c++){? ?if(senddatas-(senddatas/2)*2){??? //为1??? b=b|1;?}else{??? //为0??? b=b|0;?}?if(c7){??? b=b1;?}?senddatas=senddatas1;? }? b=b82;? //做起来真是精细,还要搞掉后面没有被占掉的值,否则数据不准确,做学问真的是不容易啊? b=b |sendstart;
? //下面代码用来装配发送数据? c=0;? //先发送起始位2位+控制位1位+系统位5位=8位,后面的6位是数据位,共14位? //用NPN三极管放大信号? do? {???? if(b-(b/2)*2){??????? //发送1的前半位???? datas[s++]=1;???? }else{??????? //发送0的前半位???? datas[s++]=0;???? }
? if(b-(b/2)*2){??????? //发送1的后半位???? datas[s++]=0;???? }else{??????? //发送0的后半位???? datas[s++]=1;???? }? //数据循环右移,发送下一位数据? b=b1;?? }while(++c14);
?? //开始发送数据??? count=0;??//12MHZ,延时0.8255ms用??//TH0=0xfc;??? //TL0=0xc6;
?//11.0592MHZ,延时0.8255ms用?TH0=0xfd;??? TL0=0x07;?ET0=1;? ??? TR0=1;}
void Init(){? //刚开始启动不发送? P1_0=0;? //我们这里利用定时器1的工作方式2(8位自动重载)来发送载波信号? TMOD=0x21;? EA=1;//总中断允许? ES=1;//允许串口中断
? //串口工作于方式1,8位UART,波特率可变 ,允许串口接受数据,工作方式为1,无奇偶校验位。? SCON=0x50;? //波特率不加倍,也就是串口通信的波特率为9600? PCON=0x00;? ? //串口通信? TH1=0xfd; //装入初值, 以后是自动重载的8位计数器? TL1=0xfd;? ? ET1=0;????? ?
您可能关注的文档
最近下载
- 草牧场转让合同5篇.docx VIP
- (四级)保育师理论学习考试题库(浓缩300题).docx VIP
- 2025四级保育师资格考试题库及答案(浓缩400题).docx VIP
- 实施指南《GB_T10068-2020轴中心高为56mm及以上电机的机械振动振动的测量、评定及限值》实施指南.docx VIP
- 中小学生常见病防治课件.pptx VIP
- 1.1 原始社会的解体和阶级社会的演进:原始社会 课件-【新教材】高中政治统编版(2019)必修一(共29张PPT).pptx VIP
- 铝方通吊顶施工技术交底.pptx VIP
- DB23T1501-2013 水利堤(岸)坡防护工程格宾与雷诺护垫施工技术规范.pdf VIP
- 华为极简站点解决方案opm200.pdf VIP
- 北师大版七年级数学下册第二章测试题及答案下载.doc VIP
文档评论(0)