多语言展示
当前在线:1262今日阅读:179今日分享:36

如何利用cc1101实现ds18b20的温度设置值

其实在之前就写过一篇关于如何点亮段式液晶的经验,内部一直在换新屏,所以我不得不一直学习关于STM8L152C6T6控制的LCD液晶屏,鉴于之前的基础,就开始了点亮新屏的工作,能利用的代码全都粘贴复制过来,编译调试之后,才发现我的新屏什么显示都没有,然后就是开始找bugle,调试代码,在这个过程中,发现了很多问题,所以想跟大家探讨一下,如果有好的解决办法,请大神们不吝赐教吧
方法/步骤
1

看到下面新屏资料,首先就是要确定新屏的数码管每段所对应的寄存器地址,第一排是星期,R代表两个横杠,中间有四个数码管,标号为1-4,T1 T2代表设置,S1 S2 S3代表F % 温度,第三排为各种图案,最后一排为房间号和房间图案,加上4个数码管,5-8,以及小时和两个小圆圈。所有能够显示的内容就是上面描述的这些,能够控制的也就是这些,根据自己的需求来选择你需要显示的信息即可,由于我们所需要的只是实现温度以及控制温度值得设置,所以只需第二排显示即可,下面说说具体步骤

2

新屏除了有4个COM口之外,还有5-28即24个pin,他们分别对应着不同的SEG,需要根据表中的信息,写出每个段码的地址,放到对应的位置才可以控制它的显示。表中的com口除外,从pin5开始,依次对应的seg标号为:pin5-seg0pin6-seg1 pin7-seg2 pin8-seg3 pin9-seg4、、、、、一直到pin28-seg23 这样大家应该明白了吧,但是由于之前的测试版的管脚只有23个,所以这次我的测试上面有5个引脚是空的,最后的pin19-pin23.根据现在的信息,可以对照单片机的引脚seg标号,跟LCD屏的对应seg标号进行连线,但必须注意,LCD引脚的seg标号与单片机中的seg标号不一定一模一样,需要细心一点

3

下面开始将段位码写入对应的寄存器,利用资料中所对应的pin对照表,可以很方便的知道,段码所对应的地址:1,先在pin5-pin28的上面把对应的seg表号标上,seg0-seg23,我只用了seg0-seg18,所以根据实际情况而定,但全都标上也无妨。2,将com1 com2 com3 com4改为对应的s0 s1 s2 s3 ,这样再看看这张表,你就会发现,原来如此,So easy!3,把寄存器的表画出来,总共有0——13即14个寄存器,每个寄存器都有对应的位,4,下面开始将段码写入表内例如,pin5那一列只有房间5的图案,所以只需要看它对应的s号跟seg标号,分别为seg0,s3所以就可以将房间5图案写到s3对应的,0位中,即寄存器10的0位,同样的房间6的图案写入s3的seg1位,几寄存器10的1位,再看看pin7对应的seg2,分别有5A 5F 5 E 5D 四个段位,其中的5A-S0-seg25F-S1-SEG2  5E-S2-SEG2 5D-S3-SEG2,把他们分别写入对应的寄存器的2位即可,

4

写完这张表之后,你就可以算大功告成了,下一步就是写代码了,由于之前的代码还可以用,所以直接修改对应的寄存器标号就可以了,非常方便,单在修改过程中必须注意移位的方向到底是左还是右,不然会因为一点小问题让你浪费不必要的时间。左移右移的原理是显示段位的位置,是由实际位置移动而来,寄存器的数据是从高位到低位存储,即7-0,共8位,对应段位分别为a b c d e f g ,有时会出现小数点标号h,所以需要把这些段位移到实际段位的位置;为了再让大家明白一点,我举个例子吧

5

比如:1A对应的是高位7,即最高位,但是实际表中的1A是存放在寄存器12的18位,即高位6,所以必须要把它移到6,也就是右移1位,因为它实际显示的时候也是在6位显示,所以要把它移过来。只要明白原理就好做了,这个就好像是去房间取东西,但是每个房间都有标号,都有不同的东西,你要派人取2号房间的西瓜,但是西瓜实际在1号房间,你就必须把西瓜移到2号房间,否则你是取不到西瓜的,虽然这个例子好像实用性不高,但是道理就是这样的。

6

表也写好了,代码也改完了,下面就是见证实际的时刻了,编译ok,下载ok,接着就是点击运行了,但是问题出现了,屏一点动静都没有,很着急、、、、、、又修改了表,校验了一下代码,没问题,重新编译下载,运行,还是不行、、、、、、想不通,难道是智商的问题,难道是不适合写程序,难道是不适合这个工作、、、、、、不管了,休息一下,不小心看到电路原理图,才发现,代码中有一段寄存器seg标号跟单片机中的用来连接cc1101-gdo0的seg标号重复了,也就是本来是已经用seg25来跟cc1101的gdo0连接的,但是在寄存器配置时,又把seg25包含进去了,所以两个冲突了,必须把寄存器那个里面的seg25去掉

7

大概过程就是这样,后期出现的问题会再次跟大家探讨的。

推荐信息