sbit   P3_4 = P2^1;

static bit OP;        //红外发射管的亮灭

static unsigned int count;       //延时计数器

static unsigned int endcount; //终止延时计数

static unsigned char flag;      //红外发送标志

char iraddr1;  //十六位地址的第一个字节

char iraddr2;  //十六位地址的第二个字节

void SendIRdata(char p_irdata);

void delay();

void main(void)

{

count = 0;

flag = 0;

OP = 0;

P3_4 = 0;

EA = 1; //允许CPU中断

TMOD = 0x11; //设定时器0和1为16位模式1

ET0 = 1; //定时器0中断允许

TH0 = 0xFF;

TL0 = 0xE8; //设定时值0为38K 也就是每隔26us中断一次

TR0 = 1;//开始计数

iraddr1=3;

iraddr2=252;

do{

unsigned char i;

delay();

SendIRdata(12);

}while(1);

}

//定时器0中断处理

void timeint(void) interrupt 1

{

TH0=0xFF;

TL0=0xE8; //设定时值为38K 也就是每隔26us中断一次

count++;

if (flag==1)

{

OP=~OP;

}

else

{

OP = 0;

}

P3_4 = OP;

}

void SendIRdata(char p_irdata)

{

int i;

char irdata=p_irdata;

//发送9ms的起始码

endcount=223;

flag=1;

count=0;

do{}while(count//发送4.5ms的结果码

endcount=117;

flag=0;

count=0;

do{}while(count//发送十六位地址的前八位

irdata=iraddr1;

for(i=0;i<8;i++)

{

//先发送0.56ms的38KHZ红外波(即编码中0.56ms的低电平)

endcount=10;

flag=1;

count=0;

do{}while(count//停止发送红外信号(即编码中的高电平)

if(irdata-(irdata/2)*2)  //判断二进制数个位为1还是0

{

endcount=41;  //1为宽的高电平

}

else

{

endcount=15;   //0为窄的高电平

}

flag=0;

count=0;

do{}while(countirdata=irdata>>1;

}

//发送十六位地址的后八位

irdata=iraddr2;

for(i=0;i<8;i++)

{

endcount=10;

flag=1;

count=0;

do{}while(countif(irdata-(irdata/2)*2)

{

endcount=41;

}

else

{

endcount=15;

}

flag=0;

count=0;

do{}while(countirdata=irdata>>1;

}

//发送八位数据

irdata=p_irdata;

for(i=0;i<8;i++)

{

endcount=10;

flag=1;

count=0;

do{}while(countif(irdata-(irdata/2)*2)

{

endcount=41;

}

else

{

endcount=15;

}

flag=0;

count=0;

do{}while(countirdata=irdata>>1;

}

//发送八位数据的反码

irdata=~p_irdata;

for(i=0;i<8;i++)

{

endcount=10;

flag=1;

count=0;

do{}while(countif(irdata-(irdata/2)*2)

{

endcount=41;

}

else

{

endcount=15;

}

flag=0;

count=0;

do{}while(countirdata=irdata>>1;

}

endcount=10;

flag=1;

count=0;

do{}while(count

flag=0;

}

void delay()

{

int i,j;

for(i = 0; i < 400; i++){

for(j = 0; j < 200; j++){

}

}

}

单片机发射红外c语言程序,基于单片机的红外发射C语言程序相关推荐

  1. 遥控窗帘c语言程序,基于单片机的红外遥控窗帘设计论文(含c语言源程序) 本科毕业论文(设计).doc...

    基于单片机的红外遥控窗帘设计论文(含c语言源程序) 本科毕业论文(设计) 摘 要 随着电子技术和自动化技术的发展,人们对生活质量的要求越来越高.家用电器产品也在不断的更新换代.从始初的晶体管.到电子管 ...

  2. 遥控窗帘c语言程序,基于单片机的红外遥控窗帘设计论文(含c语言源程序) 本科毕业论文.doc...

    基于单片机的红外遥控窗帘设计论文(含c语言源程序) 本科毕业论文 摘 要 随着电子技术和自动化技术的发展,人们对生活质量的要求越来越高.家用电器产品也在不断的更新换代.从始初的晶体管.到电子管:由模拟 ...

  3. 智能窗帘传感器c语言程序,基于单片机的智能窗帘控制系统设计(附程序代码)

    基于单片机的智能窗帘控制系统设计(附程序代码)(论文18000字,程序代码) 摘要:二十一世纪初以来,科学技术不断发展,智能家居涌现于各家各户,人们越来越重视生活质量的提高.但是传统的手动开合窗帘耗时 ...

  4. c语言小车倒车程序,基于单片机的汽车倒车系统设计(超声测距报警)(C语言程序)...

    基于单片机的汽车倒车系统设计(超声测距报警)(C语言程序)(任务书,毕业论文22000字) 摘要 本设计是以单片机技术为基础,实现对前方物体距离的测量.根据超声波指向性强,能量消耗慢,在介质中传播距离 ...

  5. 单片机按键控制数码管c语言程序,基于单片机的按键控制LED数码管共阴极动态显示电路设计报告(毕业论文).doc...

    基于单片机的按键控制LED数码管共阴极动态显示电路设计报告(毕业论文) 物理与电子工程学院2014级课程设计 PAGE IV 物理与电子工程学院 <单片机原理与接口技术> 课程设计报告书 ...

  6. 单片机c语言出租车计时程序,基于单片机出租车计价器课题设计c语言编写(样例3)...

    <基于单片机出租车计价器课题设计(c语言编写).doc>由会员分享,可免费在线阅读全文,更多与<基于单片机出租车计价器课题设计(c语言编写)>相关文档资源请在帮帮文库(www. ...

  7. 基于51单片机的数字电压表c语言程序,基于单片机的数字电压表(全文完整版)...

    <基于单片机的数字电压表.doc>由会员分享,可免费在线阅读全文,更多与<基于单片机的数字电压表>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索. 1 ...

  8. c语言智能车跑道检测程序,基于单片机的智能循迹避障小车(附电路原理图,程序清单)...

    基于单片机的智能循迹避障小车(附电路原理图,程序清单)(论文10000字) 摘要:目前,移动机器人的开发和研究越来越令人瞩目,而智能循迹壁障小车作为移动机器人的一个重要分支,非常值得我们探索和讨论.智 ...

  9. 基于单片机的密码锁c语言设计程序,基于单片机的电子密码锁及程序

    <基于单片机的电子密码锁及程序>由会员分享,可在线阅读,更多相关<基于单片机的电子密码锁及程序(17页珍藏版)>请在人人文库网上搜索. 1.基于单片机的电子密码锁设计摘要随着科 ...

  10. 单片机c语言出租车计时程序,基于单片机的出租车计费(c语言).doc

    基于单片机的出租车计费(c语言) 基于单片机的出租车计费(c语言) 基于proteus仿真 一.设计要求: 1.用实现出租车计费器的设计. 出租车起步开始计程和计费,计程系统按实际公里数计程,计费系统 ...

最新文章

  1. CVPR 2021 Oral|只用静态图像,就能实时渲染出丝滑3D效果
  2. 【IOC 控制反转】Android 事件依赖注入 ( 事件依赖注入具体的操作细节 | 创建 事件监听器 对应的 动态代理 | 动态代理的数据准备 | 创建调用处理程序 | 创建动态代理实例对象 )
  3. python怎么写csv文件_python怎么写csv文件
  4. C语言中嵌入正则表达式
  5. C++中的endl搭配cout和cin用法
  6. 智慧政务解决方案(28页)pdf_【金众电子】智慧政务解决方案
  7. 深入理解 操作系统 LRU算法(以洛谷P1540题为例)
  8. 信息学奥赛C++语言:行李托运
  9. 【Elasticsearch】Meltdown对Elasticsearch性能的影响
  10. kvm虚拟机安装esxi服务器,VMware vSphere虚拟机迁移至KVM virt-v2v方案
  11. 丰巢回应小学生用照片“刷脸”取件;苹果明年或发布四款 5G 手机;Spring Boot 2.2.0 发布 | 极客头条...
  12. Ubuntu系统安装向日葵
  13. 三菱服务器显示rb是什么故障,​三菱伺服驱动器常见报警代码及解决办法
  14. 工程导论-----创造力
  15. 《你要如何衡量你的人生》书籍读后感
  16. 二手书电商闲鱼、转转们的花样淘金和眼前僵局
  17. 线段树维护区间最大子段和 枚举 HDU6638
  18. win10安装Sql Server2019教程
  19. 网络舆情事件热度如何的查询方法
  20. 关于计算机的未来想象作文,有关于未来生活的想象作文

热门文章

  1. 移动端车牌识别sdk如何开发app
  2. 渗透测试工程师面试题大全(164道)
  3. itextpdf生成pdf,html转pdf,pdf转图片
  4. Arcgis 区位图绘制
  5. C++封装Detours库挂钩函数
  6. AGTF30 涡扇发动机说明
  7. Tcl经典报错之 —— variable references require preced
  8. QT常用控件——QLabel标签控件
  9. CSR8811A12-ICXR-R蓝牙芯片
  10. [转载]AutoCAD2013 以上利用AccoreConsole+ c# NetApi 批量处理图纸