找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机代码正确,仿真无法显示,求解决

[复制链接]
跳转到指定楼层
楼主
  1. #include <reg51.h>
  2. sbit RS = P2^3;
  3. sbit RW = P2^2;
  4. sbit E = P2^1;
  5. #define DATAPORT P0
  6. unsigned char code string1[]={"MCU - QQ: 173885525"};
  7. unsigned char code string2[]={"Glad to see you!"};
  8. void delayMS(unsigned int b)
  9. {
  10.         unsigned char a =200;
  11.         for(;b>0;b--)
  12.         {
  13.                 while(--a);
  14.                 a=200;
  15.         }
  16. }
  17. void LCDSTA()
  18. {
  19.         unsigned char flag;
  20.         while(1)
  21.         {
  22.                 RS = 0;
  23.                 RW = 1;
  24.                 delayMS(5);
  25.                 E = 1;
  26.                 delayMS(10);
  27.                 flag=DATAPORT;
  28.                 E = 0;
  29.                 flag=flag&0x80;
  30.                 if(flag ==0x00)
  31.                 {
  32.                         break;
  33.                 }
  34.         }
  35. }
  36. void WRDcomm(unsigned char com)
  37. {
  38.         LCDSTA();
  39.         DATAPORT = com;
  40.         RS = 0;
  41.         RW = 0;
  42.         E = 1;
  43.         E = 0;
  44.         delayMS(10);
  45. }
  46. void lcd_initial()
  47. {
  48.         WRDcomm(0X01);
  49.         WRDcomm(0X38);
  50.         WRDcomm(0X0F);
  51.         WRDcomm(0X06);
  52. }
  53. void WRData()
  54. {
  55.         LCDSTA();
  56.         RS = 1;
  57.         RW = 0;
  58.         E = 1;
  59.         E = 0;
  60.         delayMS(10);
  61. }
  62. void main()
  63. {
  64.         unsigned char i;
  65.         lcd_initial();
  66.         WRDcomm(0x80);
  67.         for(i=0;i<16;i++)
  68.         {
  69.                 DATAPORT=string1[i];
  70.                 WRData();
  71.                 delayMS(20);
  72.         }
  73.         for(i=0;i<16;i++)
  74.         {
  75.                 DATAPORT=string2[i];
  76.                 WRData();
  77.                 delayMS(20);
  78.         }
  79.         while(1);
  80. }
复制代码

1574082783(1).png (66.46 KB, 下载次数: 15)

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

使用道具 举报

沙发
ID:96682 发表于 2019-11-19 04:10 来自手机 | 只看该作者
数据口连接的标签不一致怎能正常
回复

使用道具 举报

板凳
ID:213173 发表于 2019-11-19 08:45 | 只看该作者
楼主凭什么断定单片机代码正确?


  1. #include <reg51.h>
  2. sbit RS = P2^3;
  3. sbit RW = P2^2;
  4. sbit E = P2^1;
  5. #define DATAPORT P0
  6. unsigned char code string1[]={"MCU-QQ:173885525"};
  7. unsigned char code string2[]={"Glad to see you!"};

  8. void delayMS(unsigned int b)
  9. {
  10.         unsigned char a =200;
  11.         for(;b>0;b--)
  12.         {
  13.                 while(--a);
  14.                 a=200;
  15.         }
  16. }

  17. void LCDSTA()
  18. {
  19.         unsigned char flag;
  20.         while(1)
  21.         {
  22.                 RS = 0;
  23.                 RW = 1;
  24.                 delayMS(5);
  25.                 E = 1;
  26.                 delayMS(10);
  27.                 flag=DATAPORT;
  28.                 E = 0;
  29.                 flag=flag&0x80;
  30.                 if(flag ==0x00)
  31.                 {
  32.                         break;
  33.                 }
  34.         }
  35. }
  36. void WRDcomm(unsigned char com)
  37. {
  38.         LCDSTA();
  39.         DATAPORT = com;
  40.         RS = 0;
  41.         RW = 0;
  42.         E = 1;
  43.         E = 0;
  44.         delayMS(10);
  45. }

  46. void WRData(unsigned char date)
  47. {
  48.         LCDSTA();
  49.         DATAPORT = date;
  50.         RS = 1;
  51.         RW = 0;
  52.         E = 1;
  53.         E = 0;
  54.         delayMS(10);
  55. }
  56. void lcd_initial()
  57. {
  58.         WRDcomm(0X01);
  59.         WRDcomm(0X38);
  60.         WRDcomm(0X0F);
  61.         WRDcomm(0X06);
  62. }

  63. void main()
  64. {
  65.         unsigned char i;
  66.         lcd_initial();

  67.         WRDcomm(0x80);
  68.         for(i=0;i<16;i++)
  69.         {
  70.                 WRData(string1[i]);
  71.         }
  72.         WRDcomm(0xc0);
  73.         for(i=0;i<16;i++)
  74.         {
  75.                 WRData(string2[i]);
  76.         }
  77.         while(1);
  78. }
复制代码





回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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