[STC单片机] 1602 清屏命令

[复制链接]
6333|11
 楼主| wdmhzh 发表于 2013-11-24 17:18 | 显示全部楼层 |阅读模式
#include <reg52.h>
#include "mytouwenjian.h"
sbit RS=P2^4;
sbit RW=P2^5;
sbit E=P2^6;
void write_date(char date)
{
  E=0;
  RS=1;
  RW=0;
  P0=date;
  yanshi_100us(1);
  E=1;
}
void write_minling(char datea)
{
  E=0;
  RS=0;
  RW=0;
  P0=datea;
  yanshi_100us(1);
  E=1;
}
void chushihua_lcd()
{
  write_minling(0x06);//
  yanshi_100us(1);
  write_minling(0x0c);//
  yanshi_100us(1);
  write_minling(0x38);//
  yanshi_100us(1);
     write_minling(0x01);//清屏
    yanshi_100us(1);
}
void main()
{
  chushihua_lcd();
  
  write_minling(0x83);
  write_date('k');
  write_date('w');
  write_date('M');
    write_minling(0xc7);
  write_date('q');
  write_date('D');
  write_date('M');

}
请教各位老大 ,这程序为啥一加上清屏命令,就没显示(不管位置和延时),一去掉就一切正常??????
ningling_21 发表于 2013-11-24 18:51 | 显示全部楼层
你在最后加一条:

while(1);
16777216 发表于 2013-11-24 19:31 | 显示全部楼层
同楼上,程序跑飞了,没有一个大循环, 所以你的程序相当于反复复位 ,在最后加while(1);即可
 楼主| wdmhzh 发表于 2013-11-24 22:51 | 显示全部楼层
多谢  但是各位老大加while 还是不行 应该不是跑飞的问题  我用各种方法试过 只要一执行清屏命令 再怎么写入数据也没得显示  把清屏命令一撤 就正常了  真的是百思不得其解呀   
ayb_ice 发表于 2013-11-25 08:15 | 显示全部楼层
那肯定是通信程序有BUG
kyzb001 发表于 2013-11-25 08:54 | 显示全部楼层
有bug 单步调试把
通宵敲代码 发表于 2013-11-25 12:37 | 显示全部楼层
单步调试吧,这个问题不好细说。
限量_个性。 发表于 2013-11-25 13:10 | 显示全部楼层
我感觉你的写指令和写数据的函数就有问题,使能端最后是要拉低的。
大漠烟尘 发表于 2013-12-24 17:03 | 显示全部楼层

那肯定是通信程序有BUG
qiliangzhong 发表于 2013-12-27 12:00 | 显示全部楼层
写数据的命令是E=0开头,当你写完了就马上清屏,清屏就马上E=1,然后又马上E=0写数据,这就有问题了
g_hui 发表于 2014-2-28 21:36 | 显示全部楼层
可能是延时过短,E=1后要置零
  E=0;
  RS=1;
  RW=0;
  P0=date;
  yanshi_100us(20);
  E=1;
  yanshi_100us(20);
  E=0;
fengxiaoli111 发表于 2014-3-14 10:47 | 显示全部楼层
延时不够了吧,亲。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

54

主题

130

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部