完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我将在STC89C52RC上调试成功的LCD1602程序移植到STC12C5A60S2上,延迟什么的都扩大了;但是只有数字显示正常,字母显示的是乱码,这是什么原因
|
|
相关推荐
4个回答
|
|
STC89C52RC是12T单片机,STC12C5A60S2是1T单片机,移植程序过来,关于时间的函数肯定是要修改的哈
标准51单片机是12T的,就是说12个时钟周期(晶振周期,例如12M的,周期是1/12M,单位秒),机器做一个指令周期,刚好就是1/12M*12=1uS,常见指令例如_nop_就是一个周期,刚好1uS,其他的大多多于一个周期,乘除法更多。如果是单片机1T的话,那_nop_只需要1/12uS 另外,数字可以正常显示,字母不能正常显示……说到底都是显示的字符,不应该有不同……不明白 |
|
|
|
z***hello 发表于 2015-9-7 18:02 您那里,有用STC12c5a60s2编写LCD1602的程序吗,能够给我参考一下吗;我现在也被弄懵了 |
|
|
|
LCD1602的控制应该算是比较简单,笔者也是本科时代利用STC89控制过1602的 下面是网上找的一段代码 希望对你有用,请特别要注意线缆连线! #include #include #define uint unsigned int #define uchar unsigned char ***it rs=P1^0; ***it rw=P1^1; ***it en=P1^2; void delay(uint sum) { int i,j; for(i=sum;i>0;i--) for(j=110;j>0;j--); } void write_date(uchar date) { rs=1; rw=0; P0=date; delay(5); en=1; delay(5); en=0; } void write_com(uint com) { rs=0; rw=0; P0=com; delay(5); en=1; delay(5); en=0; } void init() { en=0; write_com(0x38); write_com(0x0e); write_com(0x06); write_com(0x01); write_com(0x80+0x10); } void main() { init(); write_date('a'); delay(20); write_date('b'); while(1); } |
|
|
|
RCT问题!
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-初识设备树之设备组织架构
166 浏览 0 评论
480 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-初识设备树之设备树组成和结构
758 浏览 0 评论
【敏矽微ME32G070开发板免费体验】点亮WS2812B灯板
740 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植之内核启动流程
828 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12157 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-11 12:06 , Processed in 0.469226 second(s), Total 44, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号