基于STM32的智能万年历设计

2018-10-23 12:12张路莹许亚迪郑文青周麟坤
现代工业经济和信息化 2018年13期
关键词:机主开发板下位

张路莹, 许亚迪, 郑文青, 周麟坤

(山东科技大学电气信息系, 山东 济南 230031)

引言

本文设计了基于STM32的万年历,以STM32F103V CT6作为开发板的核心部件,以SYSCLK为基础实现时间流动。同时,选择ili9320显示屏作为显示模块,选择NRF24L01作为无线通信模块,选择DS1820作为温度传感器。时钟电路可以准确提供计时等功能,通过编程,可以最终实现显示温度、时间、日期、星期以及定时等功能。

1 系统设计流程图

系统设计流程如图1、图2所示。

图1 上位机主程序流程图

图2 下位机主程序流程图

2 模块简介

1)主程序模块:原理主函数模块分为上位机与下位机。通过初始化函数、定时函数、中断函数、显示函数、触摸函数、初始化2401函数、字库字模函数等主程序来完成所需主程序模块。主程序先初始化所有函数TFT显示器、定时器和ili9320触摸屏,并将初始数据写入显示屏,在LED灯闪烁计时配置好中断,按下ok键进入闹钟调整界面,触摸相应位置则可以更改。

2)显示屏模块:TFT(ThinFilmTransistor),指薄膜液晶显示器。ILI9320液晶控制器自带大小为172820(240*320*18/8)26万色的显存。模块各个像素均由红绿蓝三种颜色混合而成,16位数据线与显寸的对应关系高达565种[1]。

3)触摸屏模块:可根据图形按钮坐标范围编写好的驱动式程序将矩形区域中触摸点(X,Y)的物理位置转换为代表X坐标和Y坐标的电压。

4)万年历算法模块:根据日历的加减设计的。秒位上满60即进1,29、30、31时清零并进1,每次月份满12就进1并清零。同时算法会判别平年和闰年以实现对于二月为29天还是28天的判断。在公农历的算法转换中,本系统采用了查表的形式,将中国科学院紫金山天文台历算组所颁布的近二百年农历对应表输入进STM32,使得农历与公历能够一一对应。同时,本系统还加入了判别平闰年的算法以实现对二月总天数的判断。

5)无线通信模块:利用SPI通信中的半双工通信方式,使MCU与NIF2401建立通讯联系,并且与两个无线通讯模块之间进行信息传输,在通讯之前要对无线通讯模块进行收或发的设置,在发送过程当中,需要先发送校验位,然后是有效数组,最后是截止位,其传输类型为字符串型,所以需要对发送数组进行字符串类型处理,在接收时也需要处理得到想要的类型。

3 智能万年历总体设计思路

根据系统硬件的设计,将系统分为上位机和下位机系统,其中主要单元有主控芯片模块、RTC时钟模块、外部中断模块、时钟芯片模块、时间调整模块等。单片机STM32F103单片机内部时钟芯片VCT6的控制需要通过程序驱动来实现,程序主要完成两个方面的任务[2-3]:

1)利用单片机实现对STM32F103寄存器的分频设置,分频得到相应的频率。

2)实现对时钟中断的年月日时分秒的进位设置。同时,也可以使用RTC内部时钟进行分频设置,由于RTC内部时钟是一个特定的时钟,所以其1秒的进制较为准确。首先对所需的函数进行初始化,并且使用中断优先级处理,在RTC时钟和定时时钟程序运行时,主程序仍然可以运行。

4 设计过程及步骤

4.1 前期准备

1)外设选择与连接。上位机是否选择基于STM 32F103VCT的神舟II号开发板,下位机是否选择基于STM32F103VCT的战舰V3开发板,屏幕是否选择ili9320,无线传输模块是否选择NRF24L01,温度传感器是否选择DS1820。神舟II号开发板是否正确连接电源线、串口线及J-Link-ARM V8仿真器,战舰V3开发板是否正确连接电源线、串口线及ST-Link仿真器。

2)软硬匹配。无线传输模块NRF24L01的管脚配置是否与程序保持一致,即:GND连接开发板的电源地,VCC连接开发板的3.3 V电源,CE连接PB12,CS 连 接 PD8,SCK 连 接 PB13,MISO 连 接PB14,MOSI连接PB15,IRQ连接PD9。温度传感器DS1820的管脚配置是否与程序保持一致,即:GND连接开发板的电源地,VCC连接开发板的3.3V电源,DQ连接PB0。

4.2 屏幕显示

屏幕显示如图3、图4所示。

图3 下位机主页面

图4 上位机主页面

猜你喜欢
机主开发板下位
基于桥墩纵向刚度的昆仑号架桥机主支腿受力影响因素及解决方案
基于STM32H7的FDCAN通信系统设计与实现∗
铁路自助实名制核验闸机主控模块的设计
发射机房监控系统之下位机
一种起落架下位锁机构的设计
你的智能手机将比你更懂你!
英航母出洋相:被无人机“突袭”
浅析单片机开发板的设计与制作
围观党“下位”,吐槽帝“登基”
ARM宣布mbed Enabled Freescale FRDM—K64F开发板通过微软认证