基于tinyAVR和Nokia3310 LCD的溫度繪圖儀
5 C語言程序設(shè)計
這里提供給大家經(jīng)過編譯的利用C語言編寫的源代碼程序(軟件集成開發(fā)環(huán)境為WinAVR,C語言編譯器為AVR-GCC)。程序需要運行在1 MHz的時鐘頻率下。
采用編程器STK500在ISP編程模式給單片機燒寫程序。單總線溫度傳感器DS18B20是通過單總線接口完成讀/寫功能的,這種總線接口在單片機上是利用軟件模擬來實現(xiàn)的??梢詤⒖紲囟葌鞲衅鞯氖褂檬謨砸垣@取它的各種命令。這里僅僅對源程序代碼中較重要的部分作如下注釋:
在ds1820_read函數(shù)中讀取DS18B20,經(jīng)過必要的處理后,返回一個10倍于實際攝氏溫度值的數(shù)值。無限循環(huán)構(gòu)成程序的主體,其操作模式主要有兩種:第一種模式是以攝氏度和華氏度交替顯示當(dāng)前溫度值,同時顯示最大值和最小值;另一種模式是用圖形方式顯示溫度的變化。曲線圖的繪制采用了graph1函數(shù),它是通過提取數(shù)組data的數(shù)值繪制像素點的。Setlcd函數(shù)用于在LCD屏幕上繪制坐標(biāo)軸。S4開關(guān)(連接單片機PA1引腳)用于切換上述兩種模式。從繪圖模式到溫度模式的相互切換并不會刪除狀態(tài)信息。程序代碼的其他部分用于處理LCD的初始化和繪圖算法。
6 獨立運行
溫度繪圖儀采用一節(jié)或兩節(jié)5號或7號規(guī)格的干電池,可以是堿性電池,或者可充電的鎳氫或鎳鎘電池。一旦接通電源后,顯示器開始顯示溫度值??墒褂瞄_關(guān)在讀數(shù)模式和繪圖模式之間切換。
評論