|
做这个有2个目的,第一就是买了这么一个屏,想做这个屏的驱动板。第二就是想学学C51单片机(之前一只用STM8和STM32),最终克服重重困难,完成了。使用的单片机是STC8A8K64S4A12,这块应该是能找到RAM和EEPROM最大的51单片机了,拥有8KSRAM和64K EEPROM(和STM32比起来,好可怜:cry:)。汉字字模是由高通GT30L32S4WS字库提供,时钟由DS3231高精度时钟芯片提供。使用了CH330N这个最简单的USB转串口芯片,用于单片机下载程序。使用STC的ADC读取光敏电阻电压实现屏自动亮度调节。ESP8266联网获取天气和时钟信息,并实时校准DS3231时钟。过程还是遇到很多意想不到的困难,首先,网络天气数据都是JSON格式和UTF8编码,解析JSON和UTF8转码,对于C51这点空间太难为它了,时间转码也无法完成,因为51不支持长整型,最终选择让ESP8266这个32位核心的SOC来完成。于是给ESP8266写个专用的固件来完成联网获取天气、时钟信息,并完成转码,把结果通过串口发给STC8。本来想用官方SDK来写,但是后来偷懒,用Arduino写了,发现挺好,简单好用,固件的完成后类似官方AT固件,但是功能简单很多,单片机只要发几个简单命令,完成SSID、密码的设置、网络扫描、天气地址设置保存、天气数据获取功能。尝试了STC8的一些新功能,比如硬件I2C,最终放弃了,因为不稳定。完工后,挺好,俺也会用51了,哈:lol:。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|