前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >指针在液晶屏显示中的用法(二)

指针在液晶屏显示中的用法(二)

作者头像
MCU起航
发布2020-06-29 11:04:05
2K0
发布2020-06-29 11:04:05
举报
文章被收录于专栏:单片机爱好者单片机爱好者

本文纯属虚构,如有雷同,基本不可能。 由于版式原因,如果要看代码部分,建议电脑端观看。

张三受到保洁阿姨点拨之后,爱上了爬楼。坚持了半个月以后,竟然可以一口气上八楼,脸不红、气不喘。饭量也得到了很大的提升,以至于公司食堂在考虑要不要收他双人份的伙食费。

这天,张三在爬楼的时候遇到了保洁阿姨,于是上前打招呼。

张三:阿姨好,我现在可以一口气上八楼了!

阿姨:嗯,听说了。

张三:谁?

阿姨:食堂大妈!她们还说你现在太能吃,要多收你伙食费。

张三:额….

阿姨:最近忙什么呢?

张三:哦,对了阿姨,我们老板又让我给他改界面。一开始只是显示一些参数,这倒还好。后来要在屏幕上设定一些参数,设定的时候,要在相应位置显示光标。一个页面可能要设置四五个参数。

阿姨:还好吧,很难吗?

张三:不难,就是麻烦。这个屏幕虽然有光标显示的功能,但是不符合要求。它就像word里的光标一样,写入一个字,光标自动后移。但实际上,我们设定的时候,是要求光标固定在一个位置不要动的。所以我百度了一下,用纯软件的方式实现的。

进入设定状态的时候,在特定位置循环显示” ”和”_”,循环时间是几百个微秒,这样人眼能看到。开始的时候,光标显示部分的函数是这样写的:

if(A_Step == 1) //页面A的第一处光标

{

if(cursor_cnt >= 500) //延时计数

{

Lcd1602A _SetPoint(1,8);

Lcd1602A _WriteData('_');

}

else

{

Lcd1602A _SetPoint(1,8);

Lcd1602A _WriteData(A[0][8]);

}

}

else if(A_Step == 2)

{

if(cursor_cnt >= 500)

{

Lcd1602A _SetPoint(1,12);

Lcd1602A _WriteData('_');

}

else

{

Lcd1602A _SetPoint(1,12);

Lcd1602A _WriteData(A[0][12]);

}

}

else if(A_Step == 3)

{

if(cursor_cnt >= 500)

{

Lcd1602A _SetPoint(2,10);

Lcd1602A _WriteData('_');

}

else

{

Lcd1602A _SetPoint(2,10);

Lcd1602A _WriteData(A[1][10]);

}

}

阿姨:这么罗嗦?

张三:是的。后来我想指针能发挥什么作用,于是试了一下,真的被我发现了。跟之前您告诉我的方法类似,我也定义了一个指针数组PageA_p(页面A的),把这几个光标的地址存了下来。虽然Lcd1602A _SetPoint(2,10); 这个函数要送入两个值,一个行一个列。但是我可以通过光标地址和数组首地址算出这两个值。数组里的元素地址都是连续的,所以这就是个小学生的计算题。

于是程序变成了这样,不管有几处光标,这几行程序都能搞定:

if(cursor_cnt >= 500)

{

Lcd1602A _SetPoint((PageA_p[A_Step - 1] - A[0])/16 + 1,( PageA _p[A_Step - 1] - A[0])%16);

Lcd1602A _WriteData('_');

}

else

{

Lcd1602A _SetPoint((PageA _p[A_Step - 1] - A[0])/16 + 1,(PageA_p[A_Step - 1] - A[0])%16);

Lcd1602A _WriteData(*PageA _p[A_Step - 1]);

}

阿姨:不错,学会举一反三了。另外,勤洗头,你这头发跟鸟窝似的,看着碍眼。你们这些工程师啊,有头发的时候不爱洗,没头发的时候不用洗,太懒了。

张三:好的阿姨,您走慢点,我跟不上了。

阿姨:我还有工作,先走了~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 单片机爱好者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档