最近没事捣鼓着ESP32玩,然后买了一块ST7735TFT彩屏想尝试跑游戏机的固件来着,屏幕分辨率为128X160,结果尺寸太小了。刚好有人问用51能不能跑起来,就整理了下资料做了个温湿度计。
所用到的模块就是DHT11+ST7735彩屏。那么我们要使用这两个模块,就得把驱动程序写好。这些模块的时序图及芯片手册网上都能搜到。工程文件我给大家整理到了网盘中,直接下载即可。
下面直接打开keil2,用其他版本keil可能会出现无法打开工程,简单的选择下芯片,我用的是89C51的,C52的也可以。
实际接线的话大家参考源码,这是SPI的屏,DHT11接3^6脚
程序中有定义
然后直接点击打开工程
找到上面网盘下载好的文件,导入到keil2中
如图,所有的.h和.c已经进来了,我们主要看lcd.c、gb1616.h及main.c。
首先来看lcd.h,lcd.h包含了屏幕的功能函数,比如填充背景颜色、初始化参数、画线段、画圆等
这里随便预留了几种常用的颜色,可以百度颜色码自己往后继续添加。
下面再来看main.c。 主要包含了dht11的驱动程序及彩屏界面位置,tShow()和hShow()为显示温度湿度的函数,实际上就是显示的坐标位置,大家想要修改UI可以参考lcd.h的函数,都有中文注释。
最后就是中文的显示,中文给大家预留了4个汉字,这个数据表里面的东西可以修改,其他位置的千万不要自己乱改,会容易出现闪屏等BUG出现。假如想显示其他汉字可以用下图的取模软件自己取字模。
需要注意的是,取到的字模很有可能显示在屏上是反着的,需要自己点箭头处的旋转去调整。
最后,把改完的程序保存下,用烧录软件烧写到单片机即可。