查看一下是不是接线出现了错误 |
kriswang 发表于 2021-7-6 09:45 如7楼所说的,delay里的数据类型不能改 先看楼主的代码
看看代码是在干什么 j = 239 -> while(--j) 先把j减一,再看看是否不等于零(不等于零为真,等于零为假) 当减了239下,while(--j)会跳出进入do...while(--i) i会被减一再进入while(--j) 重点来了,此是j已经是0,再减就会变回65535 (uint = unsigned int 范围是0~65535) 所以楼主的delay会轮回239 + 65536= 65775 次 如改为七楼的unsigned char(0~255)的delay则会轮回239 + 256 = 495 次 是楼主的132分之一 12T 8051在12Mhz 的运行速度大概是 2us一行 七楼的delay约等于1ms 而楼主的delay就要132ms 对于1602来说太久了 |
怎么能够显示出来的,能不能教一下 |
检查v0口是否接了电阻,如果接了,看接的电阻是否合适 |
HSY666NB 发表于 2020-11-23 21:44 3脚接个2K电阻 |
感谢大家!谢谢各位大佬!问题解决了! |
wulin 发表于 2020-11-23 21:03 我没有接那个10k电阻,但是其他的我改了一下,显示出来了!感谢大佬!谢谢! |
看一下电路接对了吗 |
本帖最后由 wulin 于 2020-11-24 05:56 编辑 硬件:P0.5~P0.7要加10K上拉电阻! 软件: void delay() //1ms@12.000MHz { unsigned char i, j;//数据类型不同延时相差很大!!! i = 2; j = 239; do { while (--j); } while (--i); } void main() { init(); writecmd(0x82); writedata(0x41); while(1);//此句不可以少!!! } |
杨雪飞 发表于 2020-11-23 09:18 还是没有显示呢! |
我是V0和Vss之间搭一个5.1K电阻, |
或者按照电路原理图给的,接一可调电阻,调节直至显示清晰 |
V0找个200欧电阻接地 |