哪位大神帮我看下,问题出在哪儿
时间:10-02
整理:3721RD
点击:
1602不显示,

程序:
#include "reg51.h"
#include "intrins.h"
sbit ds1302Rst=P2^0;
sbit ds1302Sclk=P2^1;
sbit ds1302Io=P2^2;
sbit lcd1602RS=P2^5;
sbit lcd1602RW=P2^4;
sbit lcd1602E=P2^3;
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="hello,world!";
void delayms(uint ms)
{
uint m,n;
for(m=0;m<ms;m++)
for(n=0;n<110;n++);
}
void lcd1602_write_com(uchar com)
{
lcd1602RS=0;
lcd1602RW=0;
P3=com;
lcd1602E=1;
_nop_();
_nop_();
lcd1602E=0;
delayms(200);
}
void lcd1602_write_dat(uchar dat)
{
lcd1602RS=1;
lcd1602RW=0;
P3=dat;
lcd1602E=1;
_nop_();
_nop_();
lcd1602E=0;
delayms(200);
}
void lcd1602_init()
{
lcd1602_write_com(0x01);
lcd1602_write_com(0x06);
lcd1602_write_com(0xC0);
lcd1602_write_com(0x38);
}
void main()
{
uint n;
lcd1602_init();
lcd1602_write_com(0x80);
for(n=0;n<12;n++)
{
lcd1602_write_dat(table[n]);
delayms(200);
}
}

程序:
#include "reg51.h"
#include "intrins.h"
sbit ds1302Rst=P2^0;
sbit ds1302Sclk=P2^1;
sbit ds1302Io=P2^2;
sbit lcd1602RS=P2^5;
sbit lcd1602RW=P2^4;
sbit lcd1602E=P2^3;
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="hello,world!";
void delayms(uint ms)
{
uint m,n;
for(m=0;m<ms;m++)
for(n=0;n<110;n++);
}
void lcd1602_write_com(uchar com)
{
lcd1602RS=0;
lcd1602RW=0;
P3=com;
lcd1602E=1;
_nop_();
_nop_();
lcd1602E=0;
delayms(200);
}
void lcd1602_write_dat(uchar dat)
{
lcd1602RS=1;
lcd1602RW=0;
P3=dat;
lcd1602E=1;
_nop_();
_nop_();
lcd1602E=0;
delayms(200);
}
void lcd1602_init()
{
lcd1602_write_com(0x01);
lcd1602_write_com(0x06);
lcd1602_write_com(0xC0);
lcd1602_write_com(0x38);
}
void main()
{
uint n;
lcd1602_init();
lcd1602_write_com(0x80);
for(n=0;n<12;n++)
{
lcd1602_write_dat(table[n]);
delayms(200);
}
}
问题已解决,初始化写错啦
积累经验
感觉写单片的程序非常复杂和繁琐
哈哈,又一个小马虎~~~~不过能自己发现写错了,应该给个赞~
