找回密码
 立即注册

QQ登录

只需一步,快速开始

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

这是一个遥控led的程序

[复制链接]
跳转到指定楼层
楼主
ID:479615 发表于 2019-3-31 16:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. #include "reg52.h"
  2. #include "intrins.h"
  3. sbit int0=P3^2;
  4. sbit led0=P1^0;
  5. sbit led1=P1^1;
  6. sbit led2=P1^2;
  7. sbit led3=P1^3;
  8. sbit led4=P1^4;
  9. sbit led5=P1^5;
  10. sbit led6=P1^6;
  11. sbit led7=P1^7;
  12. sbit led8=P0^0;
  13. #define uint unsigned int
  14. #define uchar unsigned char
  15. uint v;
  16. uchar temp,LrValue[6];
  17. void DelayMs(unsigned int x)
  18. {
  19.         unsigned char i;
  20.         while(x--)
  21.         {
  22.                 for (i=0;i<13;i++)
  23.                 {}
  24.                 }
  25.         }
  26. void main()
  27. {
  28.         EX0=1;
  29.         EA=1;
  30.         int0=1;
  31.         P1=0x00;
  32.         P0=0x00;
  33.         while(1)
  34.         {
  35. if(LrValue[2]==0x16)//0
  36.                 {
  37. led0=1;led1=0;led2=0;led3=0;led4=0;led5=0;led6=0;led7=0;led8=0;                       
  38.                 }
  39. if(LrValue[2]==0x0c)//1
  40.                 {
  41. led1=1;led0=0;led2=0;led3=0;led4=0;led5=0;led6=0;led7=0;led8=0;       
  42.           }
  43. if(LrValue[2]==0x18)//2
  44.                 {
  45. led2=1;led0=0;led1=0;led3=0;led4=0;led5=0;led6=0;led7=0;led8=0;               
  46.         }
  47. if(LrValue[2]==0x5e)//3
  48.                 {
  49. led3=1;led0=0;led1=0;led2=0;led4=0;led5=0;led6=0;led7=0;led8=0;               
  50.         }       
  51. if(LrValue[2]==0x08)//4
  52.                 {
  53. led4=1;led0=0;led1=0;led2=0;led3=0;led5=0;led6=0;led7=0;led8=0;               
  54.         }
  55. if(LrValue[2]==0x1c)//5
  56.                 {
  57. led5=1;led0=0;led1=0;led2=0;led3=0;led4=0;led6=0;led7=0;led8=0;               
  58.         }                       
  59. if(LrValue[2]==0x5a)//6
  60.                 {
  61. led6=1;led0=0;led1=0;led2=0;led3=0;led4=0;led5=0;led7=0;led8=0;               
  62.         }       
  63. if(LrValue[2]==0x42)//7
  64.                 {
  65. led7=1;led0=0;led1=0;led2=0;led3=0;led4=0;led5=0;led6=0;led8=0;               
  66.         }       
  67. if(LrValue[2]==0x52)
  68.                 {
  69. led0=1;DelayMs(5000);led0=0;DelayMs(5000);               
  70.                 }
  71. //if(LrValue[2]==0x19)//&Ccedil;&ETH;&raquo;&raquo;
  72. //                {
  73. //P1=0x00;P0=0x00;
  74. //                        while(1)
  75. //                        {
  76. //                        if(LrValue[2]==0x16)
  77. //                {
  78. //                        led8=1;
  79. //                        }
  80. //                        if(LrValue[2]==0x0d)
  81. //                {
  82. //                break;       
  83. //                }
  84. //                }       
  85. //        }                       
  86. if(LrValue[2]==0x45)//&Egrave;&laquo;&Atilde;&eth;
  87.                 {
  88. P1=0x00;
  89. P0=0x00;                       
  90.         }
  91. }
  92. }
  93. void int00()interrupt 0
  94. {
  95.         unsigned char j,k;
  96.         unsigned int err,Time;
  97.         Time=0;
  98.         DelayMs(68);
  99.         {
  100.                 err=1000;
  101.                 while((int0==0)&&(err>0))
  102.                 {
  103.                         DelayMs(1);
  104.                         err--;
  105.                 }
  106.                 if(int0==1)
  107.                 {
  108.                         err=500;
  109.                         while((int0==1)&&(err>0))
  110.                         {
  111.                                 DelayMs(1);
  112.                                 err--;
  113.                         }
  114.                         for(k=0;k<4;k++)
  115.                         {
  116.                                 for(j=0;j<8;j++)
  117.                                 {
  118.                                         err=60;
  119.                                         while((int0==0)&&(err>0))
  120.                                         {
  121.                                                 DelayMs(1);
  122.                                                 err--;
  123.                                         }
  124.                                         err=500;
  125.                                         while((int0==1)&&(err>0))
  126.                                         {
  127.                                                 DelayMs(1);
  128.                                                 Time++;
  129.                                                 err--;
  130.                                                 if(Time>30)
  131.                                                 {
  132.                                                         EX0=1;
  133.                                                         return;
  134.                                                 }
  135.                                         }
  136.                                         LrValue[k]>>=1;
  137.                                         if(Time>=8)
  138.                                         {
  139.                                                 LrValue[k]|=0x80;
  140.                                         }
  141.                                         Time=0;
  142.                                 }
  143.                         }
  144.                 }
  145.                 if(LrValue[2]!=~LrValue[3])
  146.                 {
  147.                         return;
  148.                 }
  149.         }
  150. }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2019-4-1 04:29 | 只看该作者
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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