完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
第一次用LCD1602,画PCB时,为了焊接接线方便,就把LCD的D0-D7口分别接到了P2.7-P2.0,我用的是STC89C51,接线的时候也没想太多,觉得这个软件肯定是能改的,现在编程就不知道该怎么写了函数了,希望高手能帮助解决这个问题。
|
|
相关推荐
7个回答
|
|
将write_data和write_com函数里面改一下就行了,调用我上面的那个函数将P2=date;改为P2=upset(date);同理P2=upset(com); 我上面那个函数就是将高低位对调。例如date二进制为1110 0001,那么调用那个函数后得到的结果为1000 0111。
最佳答案
|
|
|
|
以前我也这样做过,你写一个函数将要输出的字节高低位对调就行了。
这是我在网上找的函数,方法很简单,但是程序有点难读,你慢慢琢磨吧。
|
|
|
|
这个简单,用BDATA就可以很好的解决
|
|
|
|
看不懂啊!下面是我写的程序怎么改呢? #include #define uchar unsigned char #define uint unsigned int uchar code table[]="Hello everyone!"; uchar code table1[]="Welcome to here!"; ***it lcden=P0^2; ***it lcdrs=P0^0; uchar num; void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } { lcdrs=0; P2=com; delay(5); lcden=1; delay(5); lcden=0;//完成一个高脉冲 } void write_data(uchar date) //写数据 { lcdrs=1; P2=date;//数据付给P2口 delay(5); lcden=1; delay(5); lcden=0; void init() //----------初始化函数。 { lcden=0; write_com(0x38);//显示设置指令(初始化0x38) write_com(0x0f);//不显示光标 write_com(0x06);//写一个字符后指针与地址加一 //write_com(0x01);//显示清零,数据和指针清零 } void main() { init(); write_com(0x80+0x18); for(num=0;num<15;num++) { write_data(table[num]); delay(5); } write_com(0x80+0x58); for(num=0;num<16;num++) { write_data(table1[num]); delay(5); } for(num=0;num<16;num++) { write_com(0x18); delay(20); } while(1); } |
|
|
|
依然落叶飘零 发表于 2014-5-18 12:50 经过菜鸟的努力还是改不成功,求大神帮我把上面程序改一下,让菜鸟学习学习。 |
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
386 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1670 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1123 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1005 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1229 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12018 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 12:22 , Processed in 0.568497 second(s), Total 53, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号