完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 Fortware 于 2013-12-7 15:06 编辑
最近工作签了,没啥事,毕业设计题目也没出来,打算重新学一下51单片机,补补功课。今天看着 LCD1602 的 功能。如下图: 图1 LCD1602 引脚图 51单片机编程要使用RS、E和D0-D7引脚,由于R/W为对1602读写的引脚,不需要对其进行读,所以接低电平。 然后根据下图的LCD1602时序图写指令和数据。 图2 LCD1602时序图 先写两个函数,写指令和数据(第一次,我注释了“EN=1”后面的延时):
全部程序如下:
得到的显示结果如下: 说明仿真结果是正确的。 对上面的程序稍加修改,LCD1602第一行起始地址为0x80+0x10第二行起始地址为0x80+0x40+0x10,由于,仍不 加延时,但是当我想实现以下LCD1602的移屏效果,却得不到想要的结果,如下: 上图的代码如下:
仔细观察,发现第一行的内容不见了,仿真时发现第一行的显示在0x80~(0x80+0x0F)区域,但是程序是写在 (0x80+0x10)~(0x80+0x1F),我检查了几遍,还是不对 百思不得其解。 最后我修改了一下对1602写数据、指令的延时后(取消程序中延时函数的注释),效果一下就出来了。如下: 由于是图片,所以效果不是很好,仿真时可以看到整个移屏的效果,还不错。 这是为什么呢?为什么添加了延时,显示就正确了? 可能是数据还没有完全写完,所以。。。。。 附上仿真文件及程序:
|
|
相关推荐
|
|
好牛逼
|
|
|
|
|
|
非常的感谢楼主分享资料。
|
|
|
|
|
|
3395 浏览 3 评论
4692 浏览 1 评论
4972 浏览 0 评论
Protues中自己封装的芯片元件无Program File、Clock Frequency选项怎么解决,求求大神了!
6685 浏览 1 评论
基于51单片机的车辆倒车雷达报警系统,HC-SR04超声波测距,全套资料
1187 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-3 07:18 , Processed in 0.634651 second(s), Total 82, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号