完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
为什么我的模数转换后lcd上不显示东西啊,网上照搬了好几个例子都是这样.毕设要弄这个,第一次接触 程序: #include #include // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - 初始化接口 # define LCD_DB P0 // - - P0 = DB0~DB7 ***it LCD_RS=P2^0; // - - p2.0 = RS ***it LCD_RW=P2^1; // - - p2.1 = RW ***it LCD_E=P2^2; // - - p2.2 = E ***it rd=P3^6; //IO口定义 ***it wr=P3^5; ***it cs=P3^7; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - 定义函数 # define uchar unsigned char # define uint unsigned int // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - 定义子程序函数 void LCD_init(void); // - - 初始化LCD1602函数 void LCD_write_command(uchar command); // - - 向LCD1602写指令函数 void LCD_write_data(uchar dat); // - - 向LCD1602写数据函数 void LCD_set_xy(uchar x,uchar y); // - - 设置LCD1602显示位置 X(0-16),y(1-2) void LCD_disp_char(uchar x,uchar y,uchar dat); // - - 在LCD1602上显示一个字符 void LCD_disp_string(uchar X,uchar Y,uchar *s); // - - 在LCD1602上显示一个字符串 void LCD_delay_10us(uint n); // - - 10微秒的延时子程序 void LCD_delay_50us(uint n); // - - 50微秒的延时子程序 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - 初始化LCD1602 void LCD_init(void) { LCD_delay_10us(20); LCD_write_command(0x38); // - - 设置8位格式,2行,5x7 LCD_delay_10us(5); LCD_write_command(0x0c); // - - 整体显示,关光标,不闪烁 LCD_delay_10us(5); LCD_write_command(0x06); // - - 设定输入方式,增量不移位 LCD_delay_10us(5); LCD_write_command(0x01); // - - 清除屏幕显示 LCD_delay_50us(40); } //******************************** // - - 向LCD1602写指令 void LCD_write_command(uchar dat) { LCD_delay_10us(5); LCD_RS=0; // - - 指令 LCD_RW=0; // - - 写入 LCD_DB=dat; LCD_delay_10us(5); LCD_E=1; // - - 允许 LCD_delay_10us(5); LCD_E=0; } // - - 向LCD1602写数据 void LCD_write_data(uchar dat) { LCD_delay_10us(5); LCD_RS=1;// - - 数据 LCD_RW=0;// - - 写入 LCD_DB=dat; LCD_delay_10us(5); LCD_E=1;// - - 允许 LCD_delay_10us(5); LCD_E=0; } // - - 设置显示位置 void LCD_set_xy(uchar x,uchar y) { uchar address; if(y==1) { address=0x80+x; // - - 第一行位置 } else { address=0xc0+x; // - - 第二行位置 } LCD_delay_10us(5); LCD_write_command(address); } // - - 显示一个字符函数 void LCD_disp_char(uchar x,uchar y,uchar dat) // - - LCD_disp_char(0,1,0x38); // - - 显示8 { LCD_set_xy(x,y); LCD_delay_10us(5); LCD_write_data(dat); } // - - 显示一个字符串函数 void LCD_disp_string(uchar x,uchar y,uchar *s) { LCD_set_xy(x,y); LCD_delay_10us(5); while(*s!=' |