完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
自己设计了一个程序,但是LCD不显示,不知道问题在哪,求大神帮忙看下/*************定义接口******************** P0------DB0~DB7 (LCD1602) P2.5------RS (LCD1602) P2.6------RW (LCD1602) P2.7------E (LCD1602) P3.5------SOUNDER (蜂鸣器) P3.6------SCK (SHT10) //时钟 P3.7------DATA (SHT10) //数据 *****************************************/ #include #include #include #include #define TEMPUP 24 //温度上限, 达到该温度蜂鸣器报警 typedef unsigned char BYTE; typedef unsigned int WORD; typedef bit BOOL ; /*******************************************/ ***it buzzer = P3^5; //蜂鸣器 BOOL start; /******************************************/ //************第一部分LCD1602设置****** //START*************************************/ #define LCD_DB P0 ***it LCD_RS=P2^5; //P2^5是p2.5 ***it LCD_RW=P2^6; //P2^6是p2.6 ***it LCD_E=P2^7; //P2^7是p2.7 /******定义函数****************/ #define uchar unsigned char #define uint unsigned int void LCD_init(void); //初始化函数 void LCD_write_command(uchar command); //写指令函数 void LCD_write_data(uchar dat); //写数据函数 void LCD_disp_char(uchar x,uchar y,uchar dat);//在某个屏幕位置上显示一个字符,X(0-15),y(1-2) void LCD_disp_str(uchar x,uchar y,uchar *str); //LCD1602显示字符串函数 void delay_n10us(uint n); //延时函数 /*-------------------------------------- ;初始化LCD1602 ;-------------------------------------*/ void LCD_init(void) { delay_n10us(10); LCD_write_command(0x38);//设置8位格式,2行,5x7 delay_n10us(10); LCD_write_command(0x0c);//整体显示,关光标,不闪烁 delay_n10us(10); LCD_write_command(0x06);//设定输入方式,增量不移位 delay_n10us(10); LCD_write_command(0x01);//清除屏幕显示 delay_n10us(100); //延时清屏,延时函数,延时约n个10us } /*-------------------------------------- ;LCD1602写指令函数 ;-------------------------------------*/ void LCD_write_command(uchar dat) { delay_n10us(10); LCD_RS=0; //指令 LCD_RW=0; //写入 LCD_E=1; //允许 LCD_DB=dat; delay_n10us(10); LCD_E=0; delay_n10us(10); } /*-------------------------------------- ;LCD1602写数据函数 ;-------------------------------------*/ void LCD_write_data(uchar dat) { delay_n10us(10); LCD_RS=1; //数据 LCD_RW=0; //写入 LCD_E=1; //允许 LCD_DB=dat; delay_n10us(10); LCD_E=0; delay_n10us(10); } /*-------------------------------------- ;LCD1602显示一个字符函数,在某个屏幕位置上显示一个字符,X(0-15),y(1-2) ;-------------------------------------*/ void LCD_disp_char(uchar x,uchar y,uchar dat) { uchar address; if(y==1) address=0x80+x; else address=0xc0+x; LCD_write_command(address); LCD_write_data(dat); } /*-------------------------------------- ;LCD1602显示字符串函数,在某个屏幕起始位置{X(0-15),y(1-2)}上显示一个字符串 ;-------------------------------------*/ void LCD_disp_str(uchar x,uchar y,uchar *str) { uchar address; if(y==1) address=0x80+x; else address=0xc0+x; LCD_write_command(address); while(*str!=' |