1、首先我们打开Keil μVision编译器,新建一个工程,然后保存在硬盘上的位置,然后选择Atmel-AT89C51单片机为模型,并启动器添加STARTUP.A51文件,然后在当前目录下新建一个C文件,并将其添加入工作路径。
2、导入51单片机的头文件以及LCD1602的头文件。
3、创建一个延时函数,可以传入想要具体延时的时长,其内部实现是由一个二重循环,两个循环的次数相乘积。
4、然后创建写命令的函数,指定RS和E同时为0时,才可以写入命令,设定完成后,将com写入输出端口,规定写命令时,E为正脉冲,然后空 *** 作一个机器周期等待机器反应。
5、然后创建写数据的函数,规定写数据时,E为正脉冲,规定当RS=1和RW=0时才可以写入数据,然后将数据从输出端口输出,最后让E产生正跳变。
6、然后创建初始化LCD1602的函数,指定显示模式位两行显示,5*7,8位数据、整体显示,无光标,无闪烁、写入一个字符后地址指针加1,最后进行清屏 *** 作。
7、最后在主函数中首先执行LCD1602的初始化函数,首先创建一个无限循环,然后添加两个字符串,这里以两行显示百度经验的网址为例,再进行延时以及使用清屏函数进行刷新。
最简单方闹大伏法Lcd_writecom(0x8c)//送变量显示地址
Lcd_writedata(sum/100+0x30)//液携送数据百位
Lcd_writedata(sum%100/10+0x30)//仿顷...
Lcd_writedata(sum%100/10+0x30)//...
LCD1602是不能直接显示变量数值的,只能显示ASCII码,即显示字符。因此,要显示变量数值,需要把变量的每一位数转换成字符0~9。字符0~9的ASCII码是0x30~0x39 。
举个例子吧,如果 n 变量是8位的,即unsigned char 型的,最大数是255,显示成十进制数是3位,即百十个位。因此,要把n 的百十个位分离出来,分别转岁辩换成字符0~9。然后送字符到LCD1602才能显示出来。
显示百位乎清缺:a=n/100+0x30 //+0x30就是把百位转换成字符了
显示十位正誉:b=n/10%10+0x30
显示个位:c=n%10+0x30
按顺序把abc写到1602就行了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)