完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
有时能正常亮,但过一会儿,关闭电源再打开和复位后就又乱码了,让他循环跑后,跑个三十、四十遍又可以了,这是什么原因,求解????????????
#include ***it RS=P3^5; ***it RW=P3^6; ***it E=P3^7; /********************************** 延时 **********************************/ void delay(int x) { x=x*20; for(;x>0;x--) ; } /********************************** 写指令 **********************************/ void order(int x) { E=0; RS=0; RW=0; P0=x; delay(10); E=1; delay(20); E=0; } /***************************** 读出数据 *****************************/ void out(char y) { E=0; RS=1; RW=0; P0=y; delay(10); E=1; delay(20); E=0; } /**************************************** 主函数 ****************************************/ void main() { int x,y,z; int code a[]={0x4d,0x79,0x20,0x6e,0x61,0x6d,0x65,0x20,0x69,0x73,0x20}; int code b[]={0x59,0x75,0x20,0x50,0x65,0x6e,0x67}; int code c[]={0x49,0x20,0x4c,0x4f,0x56,0x45,0x20,0x59,0x4f,0x55}; int code d[]={0x28,0x5e,0x6f,0x5e,0x20,0x29}; while(1) { /****************** 初始化 ******************/ delay(300); order(0x38); delay(100); order(0x38); delay(100); order(0x38); delay(100); order(0x01); order(0x0c); order(0x06); y=0x80; //显示地址 order(y); delay(400); /******************************* My name is *******************************/ for(x=0;x<11;x++) { //输出字符所在地址 delay(200); out(a[x]); //输出字符 } y=0xc8; //显示地址 delay(400); order(y); /******************************* Yu Peng *******************************/ for(x=0;x<7;x++) { delay(200); out(b[x]); //输出字符 } for(z=0;z<50;z++) { delay(6000); } /****************** 初始化 ******************/ order(0x38); delay(300); order(0x38); delay(300); order(0x0c); delay(300); order(0x06); delay(300); order(0x01); delay(300); y=0x80; //显示地址 delay(400); order(y); /********************************** I LOVE YOU **********************************/ for(x=0;x<10;x++) { delay(200); out(c[x]); //输出字符 } y=0xc8; //显示地址 delay(400); order(y); /********************************** ( ^O^ ) **********************************/ for(x=0;x<6;x++) { delay(200); out(d[x]); //输出字符 } } } |
|
相关推荐
4个回答
|
|
没有忙检查函数。液晶屏属于慢显示器件。
|
|
|
|
查忙,可以解决这个问题
|
|
|
|
LCD初始化判忙看看.
|
|
|
|
你这个
for(z=0;z<50;z++) { delay(6000); } 6000超区了,你delay里面是*20,你自己看一下,然后你自己检查一下,是不是有检测lcd的busy状态. |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
464 浏览 0 评论
478 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
439 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
994 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1056 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11786 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 12:44 , Processed in 0.717021 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号