如何利用C语言对单片机进行编程驱动LCD1602显示字符?(主要问题是我不太了解LCD1602是如何显示字符的)

如题所述

你好:

LCD1602的响应速度相对于单片机的速度来说是偏慢的。

举个简单的例子,把一桶油通过漏斗向一个瓶子里倒,倒油的速度,即流量必须维持在一定范围之内,倒得太快油会从漏斗顶部溢出来,这样就浪费掉了。我们通过眼睛可以判断并使油面保持在顶面以下,以漏斗的额定流量来倒油,这样效率最高。

而对于单片机来说,1602好比那个瓶子漏斗,写入1602中要显示的数据好比油,如果以单片机的高运行速度向1602写数据就很可能造成上面所说的溢出,比如连续写入abc,结果只显示出了a,这是因为1602的显示芯片每次都要花时间来处理输入的ascii码数据,并把它显示出来。而我们却不容易主动地去控制写入数据的速度,所以1602使用忙信号就有必要了,每次单片机只有检测到忙信号为0,即不忙时,才向1602发数据。比如要显示abc,则这样操作,写a---判忙---写b---判忙---写c---判忙。这样就不会出错了。

这几年推出的lcd,像手机的屏响应速度就比较快,而1602这个古董我用示波器测过,大约40us左右的忙处理时间,而很多速度快的单片机的指令周期都是ns级的。也就是说单片机相当一段时间都在‘等’LCD。#include<reg52.h>

#defineucharunsignedchar

#defineuintunsignedint

voidbusy(void)

{uchartemp=0x80;//初始化temp最高位为1,使得能够进入下面<br/><br/>//的while循环<br/><br/>P0=0xff;(P0就是8个数据口)<br/><br/>rs=0;//设置命令操作<br/><br/>rw=1;//设置读操作<br/><br/>en=1;//使能<br/><br/>delay(100);(这是设的延时函数,不用解释)<br/><br/>while(temp&0x80)//判忙,一旦表达式为假,即temp最高位为0,<br/><br/>//则表示1602不忙,跳出while.<br/><br/>{temp=P0;delay(20);}//把p0的的高位读入temp,延时

en=0;//关闭使能信号

}每次读写操作都要调用这个busy函数
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-05
显示字符的代码我就不说了。相信你会,其中要显示字符一般是以字符串或数组的形式存储

51单片机1602怎么显示一行字符,c语言的
lcd1602_e=0; lcd1602_e=1; }while(lcd1602_busy);}\/*** * 函数名称: lcd1602_WriteCmd() * 函数功能:写命令 * 入口参数:命令字 * 出口参数:无***\/void lcd1602_WriteCmd(const uchar cmd)

用LCD1602和DS18B20显示温度和时间C语言程序
void lcd_init(){ delay1(15) ; lcd_wcmd(0x01) ; \/\/清除LCD的显示内容 lcd_wcmd(0x38) ; \/\/16*2显示,5*7点阵,8位数据 delay1(5) ; lcd_wcmd(0x38) ; delay1(5) ; lcd_wcmd(0x38) ; delay1(5) ; lcd_wcmd(0x0c) ; \/\/显示开,关光标 delay1(5) ; lcd_wcmd(0x06) ; ...

51单片机驱动160160点阵显示屏字太大的问题
输入参数:X,Y是坐标位置 n是汉字编号(一个二维表格里可以存多个汉字假设存20个字表格就是 hanzi[20 ][ 32] ) color是字符颜色 void LCD_Disphanzi(uint16_t x, uint16_t y,uint16_t n,uint16_t color){ uint16_t page, column,temp1,temp2;LCD_OpenWindow(x, y,16, 16); \/\/...

1602液晶显示器. 0x80+0x40+6. 是在什么位置显示字符啊
write_date('c');\/\/显示一个字符“c”Delay1ms(12);\/\/延时 lie 就是“列”的意思,a=a+lie-1 就是 等于第a行的第 lie-1列,比如 hang=1,lie=2 时,则 a=0x80,即指定LCD第一行左上角的位置,a=a+lie-1,即a=a+1,指定LCD第一行第2列。include <reg52.h> define uchar unsig...

《单片机C语言程序设计实训100例——基于8051+Proteus仿真》 第03...
单片机c语言编程100个实例目录1 函数的使用和熟悉 实例3:用单片机控制第一个灯亮 实例4:用单片机控制一个灯闪烁:认识单片机的工作频率 实例5:将 P1口状态分别送入P0、P2、P3口:认识I\/O口的引脚功能 实例6:使用P3口流水点亮8位LED 实例7:通过对P3口地址的操作流水点亮8位LED 实例8:用不同...

电脑系统学习怎样学习电脑
就是和系统底层打交道的,所以做单片机程序的自然对一个操作系统内核会比较了解了。在此建议和我一样的对操作系统原理感兴趣,对系统底层的感兴趣的人,直接去看INTEL的官方材料吧,操作系统原理有哪几条,要解决哪些任务,通过查看不同CPU的系统卷编程手册,找出其中相同的任务和逻辑去自己总结操作系统是如何做,无疑...

相似回答