張路瑩, 許亞迪, 鄭文青, 周麟坤
(山東科技大學(xué)電氣信息系, 山東 濟(jì)南 230031)
本文設(shè)計了基于STM32的萬年歷,以STM32F103V CT6作為開發(fā)板的核心部件,以SYSCLK為基礎(chǔ)實現(xiàn)時間流動。同時,選擇ili9320顯示屏作為顯示模塊,選擇NRF24L01作為無線通信模塊,選擇DS1820作為溫度傳感器。時鐘電路可以準(zhǔn)確提供計時等功能,通過編程,可以最終實現(xiàn)顯示溫度、時間、日期、星期以及定時等功能。
系統(tǒng)設(shè)計流程如圖1、圖2所示。
圖1 上位機(jī)主程序流程圖
圖2 下位機(jī)主程序流程圖
1)主程序模塊:原理主函數(shù)模塊分為上位機(jī)與下位機(jī)。通過初始化函數(shù)、定時函數(shù)、中斷函數(shù)、顯示函數(shù)、觸摸函數(shù)、初始化2401函數(shù)、字庫字模函數(shù)等主程序來完成所需主程序模塊。主程序先初始化所有函數(shù)TFT顯示器、定時器和ili9320觸摸屏,并將初始數(shù)據(jù)寫入顯示屏,在LED燈閃爍計時配置好中斷,按下ok鍵進(jìn)入鬧鐘調(diào)整界面,觸摸相應(yīng)位置則可以更改。
2)顯示屏模塊:TFT(ThinFilmTransistor),指薄膜液晶顯示器。ILI9320液晶控制器自帶大小為172820(240*320*18/8)26萬色的顯存。模塊各個像素均由紅綠藍(lán)三種顏色混合而成,16位數(shù)據(jù)線與顯寸的對應(yīng)關(guān)系高達(dá)565種[1]。
3)觸摸屏模塊:可根據(jù)圖形按鈕坐標(biāo)范圍編寫好的驅(qū)動式程序?qū)⒕匦螀^(qū)域中觸摸點(diǎn)(X,Y)的物理位置轉(zhuǎn)換為代表X坐標(biāo)和Y坐標(biāo)的電壓。
4)萬年歷算法模塊:根據(jù)日歷的加減設(shè)計的。秒位上滿60即進(jìn)1,29、30、31時清零并進(jìn)1,每次月份滿12就進(jìn)1并清零。同時算法會判別平年和閏年以實現(xiàn)對于二月為29天還是28天的判斷。在公農(nóng)歷的算法轉(zhuǎn)換中,本系統(tǒng)采用了查表的形式,將中國科學(xué)院紫金山天文臺歷算組所頒布的近二百年農(nóng)歷對應(yīng)表輸入進(jìn)STM32,使得農(nóng)歷與公歷能夠一一對應(yīng)。同時,本系統(tǒng)還加入了判別平閏年的算法以實現(xiàn)對二月總天數(shù)的判斷。
5)無線通信模塊:利用SPI通信中的半雙工通信方式,使MCU與NIF2401建立通訊聯(lián)系,并且與兩個無線通訊模塊之間進(jìn)行信息傳輸,在通訊之前要對無線通訊模塊進(jìn)行收或發(fā)的設(shè)置,在發(fā)送過程當(dāng)中,需要先發(fā)送校驗位,然后是有效數(shù)組,最后是截止位,其傳輸類型為字符串型,所以需要對發(fā)送數(shù)組進(jìn)行字符串類型處理,在接收時也需要處理得到想要的類型。
根據(jù)系統(tǒng)硬件的設(shè)計,將系統(tǒng)分為上位機(jī)和下位機(jī)系統(tǒng),其中主要單元有主控芯片模塊、RTC時鐘模塊、外部中斷模塊、時鐘芯片模塊、時間調(diào)整模塊等。單片機(jī)STM32F103單片機(jī)內(nèi)部時鐘芯片VCT6的控制需要通過程序驅(qū)動來實現(xiàn),程序主要完成兩個方面的任務(wù)[2-3]:
1)利用單片機(jī)實現(xiàn)對STM32F103寄存器的分頻設(shè)置,分頻得到相應(yīng)的頻率。
2)實現(xiàn)對時鐘中斷的年月日時分秒的進(jìn)位設(shè)置。同時,也可以使用RTC內(nèi)部時鐘進(jìn)行分頻設(shè)置,由于RTC內(nèi)部時鐘是一個特定的時鐘,所以其1秒的進(jìn)制較為準(zhǔn)確。首先對所需的函數(shù)進(jìn)行初始化,并且使用中斷優(yōu)先級處理,在RTC時鐘和定時時鐘程序運(yùn)行時,主程序仍然可以運(yùn)行。
1)外設(shè)選擇與連接。上位機(jī)是否選擇基于STM 32F103VCT的神舟II號開發(fā)板,下位機(jī)是否選擇基于STM32F103VCT的戰(zhàn)艦V3開發(fā)板,屏幕是否選擇ili9320,無線傳輸模塊是否選擇NRF24L01,溫度傳感器是否選擇DS1820。神舟II號開發(fā)板是否正確連接電源線、串口線及J-Link-ARM V8仿真器,戰(zhàn)艦V3開發(fā)板是否正確連接電源線、串口線及ST-Link仿真器。
2)軟硬匹配。無線傳輸模塊NRF24L01的管腳配置是否與程序保持一致,即:GND連接開發(fā)板的電源地,VCC連接開發(fā)板的3.3 V電源,CE連接PB12,CS 連 接 PD8,SCK 連 接 PB13,MISO 連 接PB14,MOSI連接PB15,IRQ連接PD9。溫度傳感器DS1820的管腳配置是否與程序保持一致,即:GND連接開發(fā)板的電源地,VCC連接開發(fā)板的3.3V電源,DQ連接PB0。
屏幕顯示如圖3、圖4所示。
圖3 下位機(jī)主頁面
圖4 上位機(jī)主頁面
現(xiàn)代工業(yè)經(jīng)濟(jì)和信息化2018年13期