找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3244|回复: 7
打印 上一主题 下一主题
收起左侧

求助大神 红外通信数码管显示很柔为什么

[复制链接]
跳转到指定楼层
楼主
ID:153217 发表于 2016-12-9 09:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题;谢谢你们
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:153217 发表于 2016-12-9 09:54 | 只看该作者

  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. uchar code table[]={0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  5.                                         };
  6. uchar irtime;
  7. uchar startflag;
  8. uchar bitnum;
  9. uchar irreceok;
  10. uchar ircode[4];
  11. uchar irprosok;
  12. uchar irdata[];
  13. uchar disp[];
  14. sbit m1=P2^2;
  15. sbit m2=P2^3;
  16. sbit m3=P2^4;
  17. void delay(uint a)
  18. {
  19.    while(a--);
  20. }
  21. void timer0init(void)
  22. {
  23.    TMOD=0x02;
  24.          TH0=0;
  25.          TL0=0;
  26.          EA=1;
  27.          ET0=0;
  28.          TR0=1;
  29. }
  30. void int0init(void)
  31. {
  32.   IT0=1;
  33.         EX0=1;
  34.         EA=1;
  35. }
  36. void irwork(void)
  37. {
  38.   disp[0]=ircode[0]/16;
  39.         disp[1]=ircode[0]%16;
  40.          disp[2]=ircode[1]/16;
  41.         disp[3]=ircode[1]%16;
  42.         disp[4]=ircode[2]/16;
  43.         disp[5]=ircode[2]%16;
  44.          disp[6]=ircode[3]/16;
  45.         disp[7]=ircode[3]%16;
  46. }
  47. void display()
  48. {
  49.         uchar i;
  50.         for(i=0;i<8;i++)
  51.         {
  52.         
  53.     switch(i)
  54.         {
  55.      case 0:
  56.                         m3=0;m2=0;m1=0;break;
  57.                  case 1:
  58.                         m3=0;m2=0;m1=1;break;
  59.                  case 2:
  60.                         m3=0;m2=1;m1=0;break;
  61.                         case 3:
  62.                         m3=0;m2=1;m1=1;break;
  63.                
  64.   }
  65.          P0=table[disp[i]];
  66.    delay(100);
  67.         P0=0x00;
  68.         
  69. }
  70. }
  71. void irpros(void)
  72. {
  73.   uchar k,i,j;
  74.         uchar value;        
  75.         k=1;
  76.         for(j=0;j<4;j++)
  77.         {
  78.         for(i=0;i<8;i++)
  79.         {
  80.                 value>>=1;
  81.     irdata[k]>6;
  82.                 {
  83.       value=value|0x80;
  84.     }
  85.                 k++;
  86.   }
  87.         ircode[j]=value;
  88. }
  89.   irprosok=1;
  90. }
  91. void main()
  92. {
  93.         timer0init();
  94.         int0init();
  95.         while(1)
  96.         {
  97.    if(irreceok)//½ÓÊÕºÃÁËÂð
  98.          {
  99.                 irpros();
  100.                  irreceok=0;
  101.          }
  102.          if(irprosok)
  103.          {
  104.                  irwork();
  105.                  irprosok=0;
  106.                  
  107.          }
  108.          display();
  109.   }
  110. }
  111. void timer0() interrupt 1
  112. {
  113.     irtime++;
  114. }
  115. void int0()interrupt 0
  116. {
  117.   if(startflag)//¼ì²âÒýµ¼Âð
  118.         {
  119.     if(irtime>32)
  120.                 {
  121.       bitnum=0;
  122.                 }
  123.                 irdata[bitnum]=irtime;
  124.                 irtime=0;
  125.                 bitnum++;
  126.                 if(bitnum==33)
  127.                 {
  128.     bitnum=0;
  129.                 irreceok=1;
  130.                 }
  131.         }
  132.         else
  133.         {
  134.      startflag=1;
  135.            irtime=0;
  136.   }
  137. }
复制代码
回复

使用道具 举报

板凳
ID:1 发表于 2016-12-10 04:26 | 只看该作者
很柔是个什么样子?
回复

使用道具 举报

地板
ID:138155 发表于 2016-12-10 08:50 | 只看该作者
这个估计是硬件电路问题 是不是数码管段位的限流电阻大了呀
回复

使用道具 举报

5#
ID:144175 发表于 2016-12-10 09:34 | 只看该作者
亮度应该跟电流关系,电流高就亮。
回复

使用道具 举报

6#
ID:153755 发表于 2016-12-10 23:27 | 只看该作者
红光本身就最弱
回复

使用道具 举报

7#
ID:123289 发表于 2016-12-11 09:43 | 只看该作者
红外是不可见光,数码管显示的是可见光,两者没有直接的关联。
回复

使用道具 举报

8#
ID:153199 发表于 2016-12-16 16:00 | 只看该作者
电流小
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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