找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2920|回复: 2
收起左侧

单片机红外光通信系统的Proteus仿真程序设计

[复制链接]
ID:430727 发表于 2020-1-3 13:51 | 显示全部楼层 |阅读模式
红外线通信是日前使用比较广泛的一种通信手段。由十红外线通信具有体积小、功耗低、功能强、成木低等特点,因一而,继彩电、录像机之后,在录音机、音响设备、空调机以及玩具等其它小型电器装置上一也纷纷采用红外线通信技术。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线通信技术不仅完全可靠一而.目.能有效地隔离电气干扰。而单片机是日前设计应用中用得比较广泛的器件,它可以通过软件编程来达到不同的效果,实现一各种一各样不同的功能,具有.灵活性强、可靠性高,可扩展性好等优点。
木文所要介绍的内容就是如何利用单片机,结合红外线器件设计构达出一套简易的车载红外线通信系统,以实现在中短距离内的红外无线通信的功能。与一般通用的红外遥控器不同的是它不是利用专用的编解码芯片来实现发收端的编解码,而是应用C51单片机,通过单片机的编、解码程序来实现红外信号的发收,从一而实现红外遥控通信功能。此通信系统经过一些必要的扩展,完全可以实现通用和各种专用红外遥控器的功能。

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.png

单片机源程序如下:
  1. #include <reg51.h>
  2. #include"wait.h"
  3. #define uchar unsigned char
  4. #define uint  unsigned int
  5. sbit rev=P3^1;
  6. sbit baoj=P3^7;
  7. uchar aa=0,bb=0;
  8. uchar  sz[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  9. void display(uchar dz)
  10. {
  11.           P2=dz;
  12.           switch(dz)
  13.           {
  14.                   case 0xf: P1=sz[0];
  15.                                   break;
  16.                 case 0x1e: P1=sz[1];
  17.                                   break;
  18.                 case 0x2d: P1=sz[2];
  19.                                   break;
  20.                 case 0x3c: P1=sz[3];
  21.                                   break;
  22.                 case 0x4b: P1=sz[4];
  23.                                   break;
  24.                 case 0x5a: P1=sz[5];
  25.                                   break;
  26.                 case 0x69: P1=sz[6];
  27.                                   break;
  28.                 case 0x78: P1=sz[7];
  29.                                   break;
  30.           }
  31. }
  32. uchar read()
  33. {
  34.         uchar dat=0,i=0,j=0;
  35.         while(i<8)
  36.         {
  37.                 while(rev==0);
  38.                 j++;
  39.                 wait_600();
  40.                 if(rev==1)
  41.                 {
  42.                         dat++;
  43.                         wait_900();
  44.                 }
  45.                 if(i<7)
  46.                         dat=dat<<1;
  47.                 i++;
  48.         }
  49.         i=0;
  50.         return dat;
  51. }
  52. void recieve()        interrupt 0
  53. {
  54.         uchar dz;
  55.         EX0=0;
  56.         while(rev==1);
  57.         dz=read();
  58.         //display(dz);
  59.         if(dz==0xb4)
  60.         {
  61.                 baoj=0;
  62.                 dz=read();
  63.                 display(dz);
  64.                 EX0=1;
  65.                 baoj=1;
  66.         }
  67.         else
  68.         {
  69.                 EX0=1;
  70.                 return;
  71.         }
  72. }
  73. int main()
  74. {
  75.         TMOD=0x11;//定时器0,1设置为方式1,16位定时器       
  76.         ET0=0;
  77.         ET1=0;
  78.         EA=1;
  79.         EX0=1;
  80.         baoj=1;       
  81.         while(1);
  82.         return 0;
  83. }
复制代码
51hei.png
所有资料51hei提供下载:

红外光通信.rar (75.51 KB, 下载次数: 54)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:855028 发表于 2020-12-10 19:46 | 显示全部楼层
你好我这显示找不到ledbia。mdf该怎么解决呢
-------补充-----
换用Proteus7.5终于可以了,仿真成功,如图
51hei.png
回复

使用道具 举报

ID:927759 发表于 2021-5-26 19:41 | 显示全部楼层
文件如何运行才能成功?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表