找回密码
 立即注册

QQ登录

只需一步,快速开始

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

发个TFT串口屏控制LED

[复制链接]
ID:279114 发表于 2018-3-18 23:17 | 显示全部楼层 |阅读模式
TFT串口屏控制LED
回复

使用道具 举报

ID:1 发表于 2018-3-20 00:45 | 显示全部楼层
楼主的源码:
  1. #include<reg51.h>          
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. unsigned char flag,i,j;
  5. unsigned char temp[14];         // [EE B1 11 00 02 00 03 10 01 00 FF FC FF FF] 对应串口屏指令14位

  6. sbit led1=P1^7;
  7. sbit led2=P1^6;
  8. sbit led3=P1^5;
  9. sbit led4=P1^4;
  10. sbit led5=P1^3;
  11. sbit led6=P1^2;
  12. sbit led7=P1^1;
  13. sbit led8=P1^0;

  14. void init()
  15. {
  16.         SCON=0X50;                        //设置为工作方式1
  17.         TMOD=0x20;                //设定定时器T1工作方式2,8位自动重装
  18.         PCON=0x00;                //波特率加倍
  19.         TH1=0xfd;
  20.         TL1=0xfd;                //定时器初值
  21.         TR1=1;                        //允许启动定时器
  22.         REN=1;                        //允许串行接收
  23.         SM0=0;                       
  24.         SM1=1;                        //设定串行工作方式1
  25.         EA=1;                        //开总中断
  26.         ES=1;                        //开串行中断
  27. }
  28. void main()
  29. {
  30.         init();

  31.         P1=0;
  32.         while(1)
  33.         {
  34.           if(temp[4]==2)                 //查询画面ID号,ID=1          EE B1 11 00 01 00 00 10 01 00 FF FC FF FF 对应串口屏指令
  35.                 {
  36.           if(temp[6]==2)                 //查询按键ID号,ID=3          EE B1 11 00 01 00 24 10 01 00 FF FC FF FF 对应串口屏指令
  37.                 {
  38.                  switch (temp[9]==1)          //查询按键状态          EE B1 11 00 01 00 24 10 01 01 FF FC FF FF
  39.                     {case 0x01:led1=1;          //如果按键=1,则打开输出
  40.                          break;
  41.                          case 0x00:led1=0;   //如果按键=0,则关闭输出,。EE B1 11 00 01 00 24 10 01 00 FF FC FF FF
  42.                          break;
  43.                          }
  44.                    }
  45.                 }
  46.           if(temp[4]==2)                     //查询画面ID号,ID=2                EE B1 11 00 01 00 25 10 01 00 FF FC FF FF
  47.                 {
  48.           if(temp[6]==3)                     //查询按键ID号,ID=4                EE B1 11 00 01 00 25 10 01 00 FF FC FF FF
  49.                 {
  50.                  switch (temp[9]==1)         //查询按键状态                            EE B1 11 00 01 00 25 10 01 01 FF FC FF FF
  51.                     {case 0x01:led2=1;         // 如果按键=1,则打开输出。
  52.                          break;
  53.                          case 0x00:led2=0;          //如果按键=0,则关闭输出, EE B1 11 00 01 00 25 10 01 00 FF FC FF FF
  54.                          break;
  55.                          }
  56.                  }
  57.             }
  58.        if(temp[4]==2)                 //查询画面ID号,ID=1          EE B1 11 00 01 00 00 10 01 00 FF FC FF FF 对应串口屏指令
  59.                 {
  60.           if(temp[6]==4)                 //查询按键ID号,ID=3          EE B1 11 00 01 00 24 10 01 00 FF FC FF FF 对应串口屏指令
  61.                 {
  62.                  switch (temp[9]==1)          //查询按键状态          EE B1 11 00 01 00 24 10 01 01 FF FC FF FF
  63.                     {case 0x01:led3=1;          //如果按键=1,则打开输出
  64.                          break;
  65.                          case 0x00:led3=0;   //如果按键=0,则关闭输出,。EE B1 11 00 01 00 24 10 01 00 FF FC FF FF
  66.                          break;
  67.                          }
  68.                    }
  69.                 }
  70.           if(temp[4]==2)                     //查询画面ID号,ID=2                EE B1 11 00 01 00 25 10 01 00 FF FC FF FF
  71.                 {
  72.           if(temp[6]==5)                     //查询按键ID号,ID=4                EE B1 11 00 01 00 25 10 01 00 FF FC FF FF
  73.                 {
  74.                  switch (temp[9]==1)         //查询按键状态                            EE B1 11 00 01 00 25 10 01 01 FF FC FF FF
  75.                     {case 0x01:led4=1;         // 如果按键=1,则打开输出。
  76.                          break;
  77.                          case 0x00:led4=0;          //如果按键=0,则关闭输出, EE B1 11 00 01 00 25 10 01 00 FF FC FF FF
  78.                          break;
  79.                          }
  80.                  }
  81.             }
  82.            if(temp[4]==2)                 //查询画面ID号,ID=1          EE B1 11 00 01 00 00 10 01 00 FF FC FF FF 对应串口屏指令
  83.                 {
  84.           if(temp[6]==6)                 //查询按键ID号,ID=3          EE B1 11 00 01 00 24 10 01 00 FF FC FF FF 对应串口屏指令
  85.                 {
  86.                  switch (temp[9]==1)          //查询按键状态          EE B1 11 00 01 00 24 10 01 01 FF FC FF FF
  87.                     {case 0x01:led5=1;          //如果按键=1,则打开输出
  88.                          break;
  89.                          case 0x00:led5=0;   //如果按键=0,则关闭输出,。EE B1 11 00 01 00 24 10 01 00 FF FC FF FF
  90.                          break;
  91.                          }
  92.                    }
  93.                 }
  94.           if(temp[4]==2)                     //查询画面ID号,ID=2                EE B1 11 00 01 00 25 10 01 00 FF FC FF FF
  95.                 {
  96.           if(temp[6]==7)                     //查询按键ID号,ID=4                EE B1 11 00 01 00 25 10 01 00 FF FC FF FF
  97.                 {
  98.                  switch (temp[9]==1)         //查询按键状态                            EE B1 11 00 01 00 25 10 01 01 FF FC FF FF
  99.                     {case 0x01:led6=1;         // 如果按键=1,则打开输出。
  100.                          break;
  101.                          case 0x00:led6=0;          //如果按键=0,则关闭输出, EE B1 11 00 01 00 25 10 01 00 FF FC FF FF
  102.                          break;
  103.                          }
  104.                  }
  105.             }
  106.        if(temp[4]==2)                 //查询画面ID号,ID=1          EE B1 11 00 01 00 00 10 01 00 FF FC FF FF 对应串口屏指令
  107.                 {
  108.           if(temp[6]==8)                 //查询按键ID号,ID=3          EE B1 11 00 01 00 24 10 01 00 FF FC FF FF 对应串口屏指令
  109.                 {
  110.                  switch (temp[9]==1)          //查询按键状态          EE B1 11 00 01 00 24 10 01 01 FF FC FF FF
  111.                     {case 0x01:led7=1;          //如果按键=1,则打开输出
  112.                          break;
  113.                          case 0x00:led7=0;   //如果按键=0,则关闭输出,。EE B1 11 00 01 00 24 10 01 00 FF FC FF FF
  114.                          break;
  115.                          }
  116.                    }
  117.                 }
  118.           if(temp[4]==2)                     //查询画面ID号,ID=2                EE B1 11 00 01 00 25 10 01 00 FF FC FF FF
  119.                 {
  120.           if(temp[6]==9)                     //查询按键ID号,ID=4                EE B1 11 00 01 00 25 10 01 00 FF FC FF FF
  121.                 {
  122.                  switch (temp[9]==1)         //查询按键状态                            EE B1 11 00 01 00 25 10 01 01 FF FC FF FF
  123.                     {case 0x01:led8=1;         // 如果按键=1,则打开输出。
  124.                          break;
  125.                          case 0x00:led8=0;          //如果按键=0,则关闭输出, EE B1 11 00 01 00 25 10 01 00 FF FC FF FF
  126.                          break;
  127.                          }
  128.                  }
  129.             }

  130.        

  131.           flag=0;                   //复位接收完毕标志位
  132.         }
  133. }

  134. void ser() interrupt 4
  135. {
  136.         RI=0;                        //关闭串口接收1字节完毕中断申请
  137.         temp[j]=SBUF;
  138.         j++;
  139.         if(j==14)                 //判断是否14字节接收完毕
  140.         {
  141.         j=0;
  142.         flag=1;                          //置数据接收完毕标志位。
  143.         }
  144. }

复制代码
回复

使用道具 举报

ID:279114 发表于 2018-3-19 10:51 | 显示全部楼层
付件 串口屏控制.zip (25.97 KB, 下载次数: 28)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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