51单片机 c语言里 lcd1602 命令0x40 和 数据0x00 看不懂 求指教

51单片机 c语言里 lcd1602 命令0x40 和 数据0x00 看不懂 求指教,第1张

前面两句,是自定义字符的。
设定起始地址0x40后,可以写入8个字节的点阵数据,即组成了一个字符。
点阵数据00是自己编写的,和地址0x40,没有什么密切关系。
下一个字符的地址是0x48。

我要 显示 0 怎么做 求高手
-----
显示0,用不着自定义字符,如下即可:
write_LCD_data(0x30); //即可。

在51单片机中,模式0为13位C/T,最大定时/计数值为8192。它由TL0的低5位和TH0的8个位组成13位定时器/计数器TL0的5个位最大为0x1f,也就是十进制的31。那么同样可以用模式1那样的公式来计算初始值,只需要把因子改成32即可:
#define CNT XXXX //XXXX为需要定时的值
//假定1个机器周期 = 1us
TH0 = (8192 - CNT) / 32;
TL0 = (8192 - CNT) % 32;

这是基本问题。
定时器置初值后,当定时器全部位数为1,则溢出启动定时中断。
在本题目中,要求50ms中断,求定时器初值。
晶振110592M,每个机器周期时间为:t=12×(1/110592M) 单位:us
50ms所需机器周期为:50×1000÷t=46080
那么需要初值为:
0xFFFF-46080=65535-46080=19456=0x4C00
因此,置初值为TH=0x4c,TL=0x00,经过46080个指令周期,计数器将产生50ms定时中断。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13180609.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-16
下一篇 2023-06-16

发表评论

登录后才能评论

评论列表(0条)

保存