完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
各位大神,帮我看看LCD1602的初始化对不?好郁闷~~弄看好久。加了查忙程序就显示一行黑块,不加就显示2行黑块~~帮帮忙啦!!到底怎么回事啊!!求~~
#define lcd P0 ***it rs=P2^0;***it rw=P2^1;***it e=P2^2; uchar code lcd_addr[]={ 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7, 0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf, }; void delay(uint j) { uchar i=120; for(;j>0;j--)while(i--); } void check_busy(void) { uchar dt; do{ rs=0;rw=1;e=1; _nop_();_nop_();_nop_();_nop_();_nop_(); dt=lcd; delay(1); e=0; } while(dt&0x80); } void write_command(uchar com) { check_busy(); rs=0;rw=0,e=0; _nop_();_nop_(); lcd=com; _nop_();_nop_();_nop_();_nop_();_nop_(); e=1; _nop_();_nop_();_nop_();_nop_();_nop_(); e=0; delay(1); } void write_data(uchar dat) { check_busy(); rs=1;rw=0;e=0;lcd=dat; _nop_();_nop_();_nop_();_nop_();_nop_(); e=1; _nop_();_nop_();_nop_();_nop_();_nop_(); e=0; delay(1); } void LCD_initial() { e=0; rw=0; write_command(0x38); //write_command(0x38); write_command(0x0C); write_command(0x01); write_command(0x06); } void lcd_disp(uchar addr,uchar *p,uchar len) { uchar i; //uchar a=strlen(p); for(i=0;i write_command(lcd_addr[addr+i]) write_data(dispplay[i]); } } |
|
相关推荐
6个回答
|
|
谁能告诉我答案啊~~谢谢啊~·
|
|
|
|
现在#define lcd P0下加一个数组uchar code dispplay[]={"gfgfsfgs"};里面内容随便写,再把void lcd_disp(uchar addr,uchar *p,uchar len)里面的uchar *p删除。主程序是 void main() { LCD_initial(); delay(20); lcd_disp(0,15);//长度自己定。 } |
|
|
|
楼主,这是完整程序:正常显示:
#include #include #define uchar unsigned char #define uint unsigned int uchar code dispplay[]={"www.gdqy.edu.cn"}; #define lcd P0 ***it rs=P2^0;***it rw=P2^1;***it e=P2^2; uchar code lcd_addr[]={ 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7, 0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf }; void delay(uint j) { uchar i=120; for(;j>0;j--)while(i--); } void check_busy(void) { uchar dt; do{ rs=0;rw=1;e=1; _nop_();_nop_();_nop_();_nop_();_nop_(); dt=lcd; delay(1); e=0; } while(dt&0x80); } void write_command(uchar com) { check_busy(); rs=0;rw=0,e=0; _nop_();_nop_(); lcd=com; _nop_();_nop_();_nop_();_nop_();_nop_(); e=1; _nop_();_nop_();_nop_();_nop_();_nop_(); e=0; delay(1); } void write_data(uchar dat) { check_busy(); rs=1;rw=0;e=0;lcd=dat; _nop_();;_nop_();_nop_();_nop_(); e=1; _nop_();_nop_();_nop_();_nop_();_nop_(); e=0; delay(1); } void LCD_initial() { e=0; rw=0; write_command(0x38); write_command(0x0C); write_command(0x01); write_command(0x06); } void lcd_disp(uchar addr,uchar len) { uchar i; for(i=0;i write_command(lcd_addr[addr+i]); write_data(dispplay[i]); } } void main() { LCD_initial(); delay(20); lcd_disp(0,14); } |
|
|
|
你程序都没给全,最后一个函数有问题,display数组都没有。最紧要是居然没有main主函数.再多说一句,编程注意点格式啊。符程序;
|
|
|
|
学习了,谢谢分享支持
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
7 浏览 0 评论
26 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
13 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
644 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1000 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11770 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 14:52 , Processed in 0.708090 second(s), Total 87, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号