求LCD1602一次工作过程,不知道该怎么写,求高人详述 这是我做的温湿度计的程序节选,定义了LCD_command();和LCD_date();两个函数来操控LCD1602,有注释,希望你能看懂sbit LCD_E=P2^0;lcd1602控制置位sbit LCD_RW=P2^1;lcd1602控制置位sbit LCD_RS=P2^2;lcd1602控制置位void LCD_command(unsigned charcom){LCD_E=0;LCD_RW=0;LCD_RS=0;P1=com;delay_us(100);LCD_E=1;delay_us(100);LCD_E=0;}void LCD_date(unsigned char dat){LCD_E=0;LCD_RW=0;LCD_RS=1;P1=dat;delay_us(100);LCD_E=1;delay_us(100);LCD_E=0;}LCD_command(0x38);设置LCD为16*2显示,5*7点阵,8位数据接口LCD_command(0x0c);设置LCD显示开,光标显示关LCD_command(0x06);写一个数据后地址加1LCD_command(0x01);显示清屏LCD_command(0x80);数据指针设置为第一行第一位LCD_date('pi');LCD_date('l');LCD_date('e');LCD_date('a');LCD_date('s');LCD_date('e');LCD_date(' ');LCD_date('c');LCD_date('h');LCD_date('e');LCD_date('c');LCD_date('k');LCD_date(' ');LCD_date('t');LCD_date('h');LCD_date('e');LCD_command(0x80+0x40);LCD地址指针指向第二行第一个位置LCD_date('c');LCD_date('o');LCD_date('n');LCD_date('n');LCD_。
为什么我的lcd1602不显示。
高手指教lcd 1602怎么学明白?他的程序太复杂,看不懂啊? 自己编的不好之处多包涵includedefine uchar unsigned chardefine uint unsigned intsbit rs=P2^0;sbit rw=P2^1;sbit e=P2^2;延时程序void delay(uint m){uchar n;for;m>;0;m-)for(n=10;n>;0;n-);}写命令void wr_com(uint dat){P0=dat;rs=0;rw=0;e=1;e=0;}写数据void wr_data(uint dat){P0=dat;rs=1;rw=0;e=1;e=0;}初始化void init(){wr_com(0x01);清屏delay(100);wr_com(0x08);关画面delay(100);wr_com(0x0c);画面显示delay(100);wr_com(0x38);工作方式设置delay(100);wr_com(0x06);输入方式画面不动光标右移delay(100);wr_com(0x0f);显示设置画面、光标、闪烁显示delay(100);}void addr(uchar ass){addr(ass|0x80);地址}void main(){init();while(1){wr_com(0x80);第一行,第一位地址是0x80,0x81。0x8fdelay(10000);wr_data('D');显示字母delay(10000);wr_com(0xc5);第二行,0x80+0x40+你想显示的东西delay(1000);wr_data('C');显示字母delay(10000);}}
有关51单片机Lcd1602的问题 根据我的理解,移位方式设定寄存器的D4位的复位状态为1,此时允许移位操作,如果设置为0x07那么,D4被强行置0,就一定没有移位操作了,而后是S/C(D3)、R/L(D2)这两位,复位状态为0、0;此时为默认的光标左移(AC-1操作),这也是常用的工作模式,所以一般初始化时都不进行移位方式的格式化,此时默认为0x10即“光标左移方式”;而你的0x18模式为“整个显示屏左移方式”,0x1c为“整个显示屏右移方式;找本书或找些资料看看,很简单的。
LCD1602自定义字库怎么编写? 定义一数组,里面放有你要写入的数据。每个字符有8行,也就是自定义的一个字符是8个字节。因为每个字符是5列,所以写入字节的前三个我们一般为0。向lcd1602中写命令;write_com(0x40+x);表示想CGRAM的x地址中写入数据;然后写数据:for(i=0;i;i+)write_data(table[x]);写入数组中的数据;然后就可以显示了!写显示地址,写显示字符。write_com(0x80+x);write_data(i);显示你所定义的第i个字符。