单片机控制1601液晶屏只显示8个字符!?
-
我使用的是1601液晶屏,但是屏幕上只有8个字符能正常显示,如果把对比度调高也只能看见8个字符块,另外8个一直都没亮!请求大侠帮忙!在线等1601LCD只有一行16个字符无初始话情况下就... 我使用的是1601液晶屏,但是屏幕上只有8个字符能正常显示,如果把对比度调高也只能看见8个字符块,另外8个一直都没亮! 请求大侠帮忙!在线等 1601LCD 只有一行 16个字符 无初始话情况下就不对,考虑会不会是外部电路的问题?? 展开
全部评论(1条)
-
- 甜蜜Love戀 2016-10-23 00:00:00
- 你仿照这个程序改改你的显示 #include<reg52.h> #include <intrins.h> #include <math.h> #include <stdio.h> #define uchar unsigned char #define uint unsigned int #define LCD_DATA P0 sbit lcd_flag=P0^7; sbit LCD_RS=P3^0; sbit LCD_RW=P3^1; sbit LCD_E=P3^3; sbit p32=P3^2; sbit ST=P2^3; sbit OE=P2^4; sbit EOC=P2^5; static long int counter; static long float f; float Vbuf=0,xy,tmp,flag=0; void lcd_delay(int ms) //延时函数 { uchar i; while(ms--) { for(i=0;i<250;i++) { _nop_();_nop_();_nop_();_nop_(); } } } bit lcd_busy() //判断是否忙碌 RS=Low,RW=High,E=High:读状态 { bit flag; LCD_RS=0; //寄存器为Low LCD_RW=1; //是否读写为High LCD_E=1; //使能端为High if (lcd_flag==1) flag=1; else flag=0; LCD_E=0; return flag; //返回标志,判断是否LCD忙碌 } write_command(uchar command) //写指令时序 { while(lcd_busy()); LCD_RS=0; LCD_RW=0; LCD_E=0; LCD_DATA=command; //delay_1ms(5); LCD_E=1; LCD_E=0; } write_data(uchar da) //写数据时序 { while(lcd_busy()); LCD_RS=1; LCD_RW=0; LCD_E=0; // delay_1ms(5); LCD_DATA=da; LCD_E=1; LCD_E=0; } void LCD_INIT(void) { write_command(0x38); lcd_delay(1); //LCD为2行,5×7字 write_command(0x0c); lcd_delay(1); //打开显示,显示光标,光标不闪 write_command(0x06); lcd_delay(1); //每次右移一字符 } void main() { uchar i,j,n; uchar buff[16],buf[16]; LCD_INIT(); P2 &=0xf8; while(1) { flag++; if(flag >= 10) { ST = 0; OE = 0; ST = 1; ST = 0; if(EOC == 1) { OE = 1; xy = P1; OE =0; if(xy > tmp) { tmp = xy; Vbuf = xy*1.0/50; } } } if(flag < 10) { TMOD=0X09; TH0=0; TL0=0; while(p32==1); TR0=1; while(p32==0); while(p32==1); TR0=0; } counter=TH0*256+TL0; while(counter<=500) /*判断是否分频及计算分频次数*/ { P2++; i++; counter=counter*10; if(i==2) { P2 &= 0xf8; break; } } f=(1843200.0/(2*counter))*pow(10,i); sprintf(buf," V=%4.2fv",Vbuf); //if(f<1500) f = f / 1.3123; if(f<1000) { sprintf(buff,"f=%4.2fHZ",f); } else if(f<1000000) { f=f/1000; sprintf(buff,"f=%4.2fkHZ",f); } write_command(0x80); for( j=0;j<16&&buf[j] != '\0';j++) { write_data(buf[j]) ; } write_command(0xc0); for(n=0;n<16&&buff[n]!='\0';n++) { write_data(buff[n]); } } }
-
赞(14)
回复(0)
热门问答
- 单片机控制1601液晶屏只显示8个字符!?
- 我使用的是1601液晶屏,但是屏幕上只有8个字符能正常显示,如果把对比度调高也只能看见8个字符块,另外8个一直都没亮!请求大侠帮忙!在线等1601LCD只有一行16个字符无初始话情况下就... 我使用的是1601液晶屏,但是屏幕上只有8个字符能正常显示,如果把对比度调高也只能看见8个字符块,另外8个一直都没亮! 请求大侠帮忙!在线等 1601LCD 只有一行 16个字符 无初始话情况下就不对,考虑会不会是外部电路的问题?? 展开
2016-10-22 13:16:35
463
1
- 为什么单色液晶屏只显示黑色和白色?
2017-02-13 02:30:54
404
1
- 单片机控制的信号发生器
- 我要做个系统,把传感器的数据传给单片机,然后单片机调节信号发生器的频率,这个的程序怎么写啊?哪里有类似的程序啊?... 我要做个系统,把传感器的数据传给单片机,然后单片机调节信号发生器的频率,这个的程序怎么写啊?哪里有类似的程序啊? 展开
2014-05-21 06:25:17
271
1
- 单片机PID控制问题
- 1.单片机在自动控制上有用到PID,比如一个恒温发热系统也可以用PID控制,但我用到现在单片机没用过PID,如果用单片机恒温可以使温度到达预定值就停止加热,低了就加热,用一个温度传感... 1.单片机在自动控制上有用到PID,比如一个恒温发热系统也可以用PID控制,但我用到现在单片机没用过PID,如果用单片机恒温可以使温度到达预定值就停止加热,低了就加热,用一个温度传感器反馈,这样算是一个自动控制吗?为什么有的用PID?是不是用PID要更精确? 2.我感觉很多单片机控制中可以用传感器反馈再用单片机逻辑判断,能简单的代替PID吗?? 哪位能简单讲下用单片机PID算法控制PWM,进行恒温系统的方法? 就是PWM参数是怎么用PID确认的?? 回答了再加分。 展开
2010-11-07 02:36:50
312
5
- 单片机控制步进电机调速
- 51单片机控制28BYJ-48步进电机我用的是中断方式使其旋转定时时间Z低只能设成1ms1ms时转速差不多4s/r吧定时时间调大会更慢怎么使转速调快点!定时时间过低或者过高电机不转会有震动怎... 51单片机控制28BYJ-48步进电机 我用的是中断方式使其旋转 定时时间Z低只能设成1ms 1ms时转速差不多4s/r吧 定时时间调大会更慢 怎么使转速调快点! 定时时间过低或者过高电机不转 会有震动 怎么回事 展开
2018-11-23 12:39:29
202
0
- 单片机控制与PLC控制的区别?
2010-12-01 01:09:26
280
6
- 基于51单片机8通道数据采集系统设计
- 设计要求:1、使用89C51和ADC0809构成8通道数据采集系统;2、要求有复位电路(包括上电复位和按键复位);3、要求上电以后,按下启动键后顺序采集各个通道的信号;4、先利用A/D转化器... 设计要求: 1、使用89C51和ADC0809构成8通道数据采集系统; 2、要求有复位电路(包括上电复位和按键复位); 3、要求上电以后,按下启动键后顺序采集各个通道的信号; 4、先利用A/D转化器对各路电压进行采样,得到相应的数字量,再经过数字量与模拟量的关系得到模拟电压值,然后在LED数码管上显示,采集信号的范围为:0-5V; 5、设置有停止按钮,按下后停止采集数据。 6、共用4个数码管,Z高位显示通道号,剩下3位,1位为整数位,两位为小数位。 展开
2012-06-25 06:31:58
333
1
- 单片机控制DS18B20的主程序
- 我只想知道单片机读取DS18B20的程序,不需要数码管或者液晶屏显示,该怎么编程啊?... 我只想知道单片机读取DS18B20的程序,不需要数码管或者液晶屏显示,该怎么编程啊? 展开
2016-06-13 08:32:13
634
1
- 怎么通过单片机控制蠕动泵
2017-04-18 13:34:43
276
1
- 如何使用单片机控制MQ135
2014-11-20 19:09:11
262
3
- 如何通过单片机控制光电传感器?
- Z近想做一台避障小车,里面的光电传感器需要用单片机来控制,请问用STC89C52 的单片机可以控制吗?怎么控制呢?谢谢
2013-07-25 06:41:57
409
2
- 51单片机如何控制超声波传感器 ?
2018-12-04 16:38:54
353
0
- 51单片机通过伺服驱动器控制伺服电机?
- 我直接用单片机的4个引脚分别接伺服驱动器PUL+,PUL-,DIR+,DIR-,然后用单片机发送2个高电平的电压去控制伺服驱动的PUL+,DIR+,伺服电机不转动,测得单片机的这两个引脚的电压为4.7v左右... 我直接用单片机的4个引脚分别接伺服驱动器PUL+,PUL-,DIR+,DIR-,然后用单片机发送2个高电平的电压去控制伺服驱动的PUL+,DIR+,伺服电机不转动,测得单片机的这两个引脚的电压为4.7v左右,如果我想控制反向转动是不是把PUL-,DIR-设为低电平输入就行了呢?请问各位大神我该怎么才能完成控制,我还差那些条件呢,谢谢你们了,我是新手多多指点!谢谢了 展开
2013-11-05 04:43:44
936
3
- 电梯用plc还是单片机控制
2011-02-11 03:03:42
1354
4
- 单片机控制直流电机调速,求程序!!
- 硬件电路已经搭好了,就差程序了,哪位高手指导一下程序,或者提供一下程序,不胜感激!... 硬件电路已经搭好了,就差程序了,哪位高手指导一下程序,或者提供一下程序,不胜感激! 展开
2013-12-23 01:22:36
283
1
- RTU通讯协议中的 3.5个字符的静止时间怎么写(单片机的程序) 谢谢!
- RTU通讯协议中的 3.5个字符的静止时间怎么写(单片机的程序) 谢谢!
2014-06-26 01:07:04
509
2
- 如何用单片机控制煤气传感器?如何用单片机检测有害气体
2009-10-04 11:27:31
332
3
- 量子液晶屏于oled液晶屏哪个好
2017-12-18 03:32:43
616
1
- LED液晶屏与普通液晶屏有什么区别
2013-12-31 00:30:31
442
2
- 单片机控制电源快速充电器的设计
2016-10-26 08:44:11
369
1
9月突出贡献榜
- 单位预算忏悔
- 饿啊地方
- 空中有牛
- 依然相信你会
- 本生(天津)健康科技有限公司
- 猫合宝
- 武汉安德信检测设备有限公司
- 上海一科仪器有限公司
- 广东皓天检测仪器有限公司
- 牛牛麻麻2
- 东莞市皓天试验设备有限公司
- futu888
推荐主页
最新话题
参与评论
登录后参与评论