LCD1602(程序)

来源:互联网 发布:阿里巴巴查排名软件 编辑:程序博客网 时间:2024/06/08 16:01
#include<reg52.h>#include "./delay/delay.h"#define LCD_WRITE_DATA 1#define LCD_WRITE_COM 0#define LCDPORT P0sbit RS = P2^4;sbit RW = P2^5;sbit E = P2^6;void lcd1602_write_data(unsigned char byte,unsigned char flag){if(flag){RS = 1;}else{RS = 0;}RW = 0;E = 1;LCDPORT = byte;delay_us(5);E = 0;}void lcd_init(){delay_ms(15);lcd1602_write_data(0x38,LCD_WRITE_COM);delay_ms(5);lcd1602_write_data(0x38,LCD_WRITE_COM);delay_ms(5);lcd1602_write_data(0x38,LCD_WRITE_COM);delay_ms(5);lcd1602_write_data(0x38,LCD_WRITE_COM);delay_ms(5);lcd1602_write_data(0x08,LCD_WRITE_COM);delay_ms(5);lcd1602_write_data(0x01,LCD_WRITE_COM);delay_ms(5);lcd1602_write_data(0x06,LCD_WRITE_COM);delay_ms(5);lcd1602_write_data(0x0c,LCD_WRITE_COM);}void lcd_dis_char(unsigned char x,unsigned char y,unsigned char byte){if((x > 15) || (y > 1)){return;}if(0 == y){lcd1602_write_data(0x80+x,LCD_WRITE_COM);}else{lcd1602_write_data(0x80+0x40+x,LCD_WRITE_COM);}lcd1602_write_data(byte,LCD_WRITE_DATA);}void lcd_write_str(unsigned char x,unsigned char y,unsigned char *p){if((x > 15) || (y > 1)){return;}if(0 == y){lcd1602_write_data(0x80+x,LCD_WRITE_COM);}else{lcd1602_write_data(0x80+0x40+x,LCD_WRITE_COM);}while((*p)!='\0'){  lcd1602_write_data(*p,LCD_WRITE_DATA);p++;}}void main(){lcd_init();lcd1602_write_data(0x80,LCD_WRITE_COM);// lcd1602_write_data('a',LCD_WRITE_DATA);// lcd_dis_char(2,2,'a');lcd_write_str(1,1,"zheerzi");while(1);}

0 0