刚开始看不懂,想了一下,那a,b,c,d,e,f不就是那数码管里也有的段选么?于是,我根据图测试,真的是一样的,有4个公共端,12个段选。两位段选四位公共端正好构成一位数字的显示。开始编程了。
第一步:点亮你想要的任意一位。我用四个IO口控制com,10个IO控制seg,再加上定时器里不断取反产生方波,很容易就亮了。
第二步:点亮一位数字。难点来了,我需要控制四个com口,例如第一位显示1,那com2,com3加101010, seg2加010101,b,c段就会亮了,那么要想其它不亮,com1,com4得加010101,同时seg1加101010。这样一看,问题来了,d,f亮了那就显示不了1了啊。怎么办呢?继续百度,发现有1/2偏压发,就是让不需要的com口电压在1/2,不是1,也不是0.这样的话,它就算产生压差,也是很小的了,液晶表现出来就是基本不亮。那么,继续点亮1,这样配置:com1:1/2,1/2,1/2 com2:1,0,1, com3:1,0,1, com4:1/2,1/2,1/2.
Seg1:101 seg2:010
第三步:显示12345.有了前面的铺垫,这一步还比较顺利了。有了1/2偏压发,就可以很方便的配置IO口了,而1/2的体现,主要是将IO口配置成输入状态。编写显示函数了,要想完整的显示,就得搞清楚,com口分别有效时,seg口对应的0,1赋值。在这里,一个完整的显示周期需要八个节拍,分别是
这样我们在每个节拍,给seg赋值,然后不断循环就可以显示我们需要的数字了。至于附什么值,我们就需要给它编码了。其实,八个节拍只需要编码四个值就够了,因为还有四次只要取反就够了。详见程序。
完成了这三部,液晶显示就攻克了。很快,加上我的数字钟程序,并调节好定时,作品就差不多完成了。花了一夜时间,早上4点多的时候,数字钟走起来了。
接下来,我开始测试功耗。想一想,直接测出电源干路电流就可以确定功耗了啊。我用实验室台表测试了一下。59mA
。。。。这么大啊。看过430
宣传图片,不是几个苹果就可以亮了么??思考了一下,我想,估计有很多的外围器件消耗了很多功耗啊。那我手上的板子,没办法将外围器件拆掉啊~~
于是,我想起了launchpad
。正好,前几天,ti官网上淘来的板子到了。于是,我又将程序移植到了pad
上。还真是凑巧,板子上仅有的14
脚全部用到刚好够用。在pad
上,我观察了一下板子,发现上面有条虚线,于是,跟着虚线,我将上面的短路冒拔了下来,然后用电源单独给G2553
供电。测试电路电流,哇哦,309uA,
很不错了,接下来,我将程序调入了LPM3
,低功耗模式。再测试电流,直降200uA
。一百多还是有点大啊。开始在液晶那块调试,我将seg
上的电阻全部拔掉,电流少了1uA
左右,然后,在COM
口上,接地的电阻,都调到了430K
欧。电流降低了一些。再看程序,显示周期还比较大,我边调,边看,在可见的情况下,一个显示周期的频率定在了20HZ
。后来,刘朋给我一些建议,去掉了com
上接地的电容,并把com
口的电阻调到2M
欧,电流又降了一些。最后,做出来成品,电流在50UA
显示很清楚。在38uA
,可以通过调节视角,可见度还比较好。
0