机电毕业设计----利用CC2530芯片开发的基于ZigBee技术的灌溉模拟系统----LED显示屏代码解释(源代码)

源代码下载地址:https://download.csdn.net/download/mahoon411/12393401


1 终端节点的LED显示屏

在这里插入图片描述

2 具体代码及解释

  • 在ZMain.c文件里,zmain_dev_info()函数用来给终端节点设备信息进行初始化,也就是先在终端节点的LCD显示屏上显示一些初始化的信息。图1是zmain_dev_info()函数。
    在这里插入图片描述
    图1 zmain_dev_info()函数
  • 第334行代码,DrawRectFill()这个函数可以实现在指定位置以指定颜色画矩形,函数中第一个参数表示矩形起始位置横坐标,第二个参数表示矩形起始位置纵坐标,第三个参数表示矩形宽度,第四个参数表示矩形高度,第五个参数表示矩形填充颜色。(PS:这个函数的定义代码可这样查询:先选中要查询的函数,然后点击右键,再点击Go to definition of DrawRectFill,如图2所示,然后就可进入到此函数的定义式了,如图3所示,此函数的定义式在hal_lcd.c文件中。同样的,其他函数的定义式也可以这样查询。)
    在这里插入图片描述
    图2 代码查询方式
    在这里插入图片描述
    图3 DrawRectFill()函数定义式
  • 程序执行完334行代码后,将会在终端节点搭载的LCD显示屏上画一个白色的矩形,而这个矩形将会充满整个LCD显示屏(因为这个显示屏的大小就是128×128)。
    第337行代码定义了接下来要写的字符的字体颜色为黑色,第338行代码定义了接下来要写的字符的背景颜色为白色,颜色的宏定义在hal_lcd.h文件中,如图4所示。
    在这里插入图片描述
    图4 LCD颜色的宏定义
  • 需要注意的是,因为使用的LCD显示屏是16位屏,因此,若需要添加没有被宏定义的颜色,则需要先知道自己想要的颜色的24位RGB值,然后再将其转换为16位颜色,最后再直接使用或者宏定义后再使用。
    比如,我想用紫色当背景颜色,可先利用PS或者画图取出紫色的24位RGB值,如图5所示,为(91,3,188)。
    在这里插入图片描述
    图5 紫色的24位RGB值
  • 紫色的24位RGB值为(91,3,188),其对应的十六进制为0x5B03BC,转换为16位RGB颜色后,对应的二进制为0101 1000 0001 0111,因此对应的十六进制为0x5817。这样就可以宏定义紫色或者直接使用紫色了。
    转换的原理就是,在24位RBG颜色中,把R的高5位,G的高6位,B的高5位组合成一个16位的整体,再把这二进制转换为十六进制,得到的就是最终的16位RGB颜色。
    在这里插入图片描述
    图6 24位RGB转换16位RGB的原理
  • 代码第339行为显示图片,在这里显示的图片为集美大学的校徽与“集美大学”四个字,图片取模的具体的教程见第三章基础实验里的第十六课。
    代码第340行为显示文字,文字取模的具体的教程同样见第三章基础实验里的第十六课。
    代码第344与第345行用于显示此终端节点的IEEE地址。
原创文章 29 获赞 62 访问量 10万+

猜你喜欢

转载自blog.csdn.net/mahoon411/article/details/105948335