求各路大神高手给个编程思路啊啊啊 单片机+lcd1602循环翻页的 跪谢~~~~~

求各路大神高手给个编程思路啊啊啊 单片机+lcd1602循环翻页的 跪谢~~~~~,第1张

这个简单,你先建个二维数组比如说:

unsigned char code taba[8][32]=//存你要显示的数据

{

{ 1. abcddddasda },

{ 2. bbcddddasda },

{ 3. cbcddddasda },

{ 4. dbcddddasda },

{ 5. ebcddddasda },

{ 6. fbcddddasda },

{ 7. gbcddddasda },

{ 8. hbcddddasda },

}

是吧,然后你显示旁岩滚就行了 比如说:

void main(void )

{

while(1)

{

if( 向下按键按下 )

{

消抖再次判读;

i++

if( i==8)i=0

}

if( 向上按键按下 )

{

消抖再次判读;

if(i==0 ) i=8

i--

}

第一行显示( taba[ i ] )

if( i ==7 )j=0 else j=i+1 //第二行显示的就是第一行运余+1,如果第一行显 //示的是最后一 组,那 么第二行就显示第一组

第二枣凳行显示(taba[ j ])

}

}

你说呢,打了这么多字,不给采纳不好哦

如果你可以分别实现按键识别和LCD1602显示字符串,就很好实现切换屏幕了

LCD1602没有多余的显存,如果要切换屏幕,必须把两个(或多个)待显示的内容存储在MCU的内存中,如

unsigned char String_1_1[16]={"good luck"} //第一屏 第一行

unsigned char String_1_2[16]={"good morning"}//第一屏 第二行

unsigned char String_2_1[16]={"Welcome"} //第二屏 第一行

unsigned char String_2_2[16]={"good morning"}

再用一个变量 char Show_Flag=1;// 记录当前显示的是第x屏

当有按键动作时,清屏然后再显示下一屏运唤(如果字符长度一致也可以直旁晌凯接覆盖当前的谨迹显示内容)

1、首先我们打开Keil μVision编译器,新建一个工程,然后保存在硬盘上的位置,然后选择Atmel-AT89C51单片机为模型,并启动器添加STARTUP.A51文件,然后在当前目禅昌录下新建一个C文件,并将其添加入工作路径。

2、导入51单片机的头文件以及LCD1602的头文件。

3、创建一个延时函数,可以传入想要具体延时的时长,其内部实现是由一个二重循环,两个循环的次数相乘积。

4、然后创建写命令的函数,指定RS和E同时为0时,才可以写入命令,设定完成后,将com写入输出端口,规定写命令时,E为正脉冲,然后空 *** 作一个机器周期等待机器反应。

5、然后创建写数据的函数,规定写数据时,E为正脉冲,规定当RS=1和RW=0时才可以写入数据,然后将数据从输出端口输出,最后让E产生正跳变。

6、然后创建初始化LCD1602的函数,指定显示模式位两行显示,5*7,8位数据、整体显示,无光标,无闪烁、写入一个字符后地址指针加1,袜袭毁最后进行清屏 *** 作。

7、最后在主函数中首先执行LCD1602的初始化函数,首先创建一个无告备限循环,然后添加两个字符串,这里以两行显示百度经验的网址为例,再进行延时以及使用清屏函数进行刷新。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存