找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1053|回复: 0
收起左侧

监控开关通过串口发送数据 单片机程序

[复制链接]
ID:311419 发表于 2020-3-17 10:53 | 显示全部楼层 |阅读模式
程序较为简单易学

单片机源程序如下:
  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit  k1=P3^2;
  5. sbit  k2=P3^3;
  6. sbit  led=P1^0;       
  7. unsigned char i;
  8. uchar code  table[]={
  9. 0xf1,0xf2,0xf4,0xf8};
  10. void  delayms(uint xms)
  11. {
  12. uint i,j;
  13.   for(i=xms;i>0;i--)
  14.    for(j=110;j>0;j--);
  15. }
  16. void InitUART(void)
  17. {
  18.     TMOD = 0x20;
  19.     SCON = 0x50;
  20.     TH1 = 0xFD;
  21.     TL1 = TH1;
  22.     PCON = 0x00;
  23.     EA = 1;
  24.     ES = 1;
  25.     TR1 = 1;
  26. }

  27. void  zz()
  28. {
  29. SBUF=table[0];
  30. while(!TI);
  31. TI=0;
  32. }
  33. void  zy()
  34. {
  35.   SBUF=table[1];
  36.   while(!TI);
  37.   TI=0;
  38.   }
  39. void  ff()
  40. {
  41. SBUF=table[2];
  42. while(!TI);
  43. TI=0;
  44. }
  45. void  main()
  46. {
  47.   InitUART();
  48.   while(1)
  49.   {
  50.    if(k1==0)
  51.    {                  
  52.     delayms(20);
  53.         if(k2==0)
  54.         {
  55.         ff();
  56.         while(!k2);
  57.          }
  58.          else
  59.          {         
  60.            zz();
  61.            while(!k1);
  62.           }
  63.         }
  64.         if(k2==0)
  65.         {
  66.          delayms(20);
  67.          if(k1==0)
  68.          {
  69.           ff();
  70.           while(!k1);
  71.           }
  72.           else
  73.           {
  74.           zy();
  75.           while(!k2);
  76.            }
  77.            }
  78.           delayms(100);
  79.                         }
  80.         }
复制代码

所有资料51hei提供下载:
串口监控开关并发送信号.zip (609 Bytes, 下载次数: 8)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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