完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
void lcd_busy_wait() /*LCD1602 忙等待*/
{ RS = 0; RW = 1; LCDEN = 1; delay(1);//问题一:为什么有的加了延时函数,有的没加延时函数?延时函数的作用是什么? lcd_data_port = 0xff; while (lcd_data_port&0x80); //问题二:为什么LCD不忙之后 lcd_data_port&0x80=0? LCDEN = 0; } |
|
相关推荐
2 个讨论
|
|
|
关于问题一:1602的驱动芯片(例如HD44780,KS0066)大都是80年代的技术,读写速度奇低,而单片机的速度往往相对其较高。由于读写速度上的不匹配,需要单片机在操作1602之前进行读忙检测,确认其处于空闲状态后方可写入新的数据。延时函数和读忙本质上都是等待一段时间。具体什么时候加延时函数要看驱动芯片的datasheet,时序图会有很详细的说明,主频较低的单片机(例如51单片机)由于自身主频也相对较低,读写速度相对不高,在某些进行耗时较短的操作的场合可以省去读忙或者延时操作。
|
|
|
|
|
|
|
|
|
关于问题二:这个问题就需要看芯片的手册,以HD44780为例,读出的字节数据中最高位忙状态标志位,若为1代表处于忙状态,0为空闲状态,与0x80按位与是检测该位是0还是1。
|
|
|
|
|
|
|
|
265 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
789 浏览 0 评论
1306 浏览 2 评论
787 浏览 0 评论
【RA4M2-SENSOR开发板评测】Analogue+Timers综合测试
1587 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16902 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 09:37 , Processed in 0.829025 second(s), Total 49, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
5245