相信接觸過STC15系列單片機的小伙伴們,應該會對其編程風格比較熟悉,沒錯,STC15系列單片機可以采用庫函數編程,官方提供了標準的函數庫,我們只需要利用好庫函數,便可大大簡化配置流程,從而提高編程效率。由于筆者這里的教程不是關于51單片機的基礎教程,所以此處省去了新建工程以及如何添加庫文件等操作。
首先,我們要養成良好的習慣,在使用任何一款板子的時候,先建一個配置板載資源的文件,當然要是板子比較復雜的話,可以分模塊配置多個,由于筆者使用的板子比較簡單,所以就只添加了一個名為“BSP_IO.h”的文件,顧名思義,就是一些輸入輸出的配置而已了。
接下來,我們來配置一下串口參數,在之前的帖子中我們知道,迪文DGUS屏的串口通信波特率配置的是115200,那么,我們在單片機程序中,自然也要講串口通信的波特率配置成115200,其他的就不需要修改了:
程序中有需要用到串口定時向觸摸屏刷新數據,所以,這里我們也配置一個定時器,并設置起中斷頻率為1000Hz,即:1ms中斷一次。
接下來,我們需要根據板子上的IO分布,來配置一下IO口的輸入輸出模式,所有輸入口均配置成“準雙向口”,所有輸出口均配置成“強推挽模式”。
另外,程序中也有用到兩路0-5V電壓的采集,所以此處我們還需要對ADC相關的參數進行配置,本例程中采用的是AD口分別是P10和P11,查詢方式獲取AD值:
至此,系統配置相關的東西基本就完成了,接下來,我們就需要自己寫一些應用相關的函數了,本例中,筆者寫了四個函數:
Uart1_Monitor(); //串口1數據監控
Uart1_Send(); //串口1發送指令
ADC_Sampling(); //ADC采樣
GIOP_StateRefresh();//GPIO狀態刷新
其中,Uart1_Monitor()函數,主要是用對串口中斷接收到的數據進行解析,比如:DGUS屏按鍵返回的指令、參數設置的指令等;Uart1_Send()函數,主要用來定時向DGUS屏寫入數據,比如:數據變量顯示、圖標變量顯示等; ADC_Sampling()函數主要是對外部兩路0-5V模擬量輸入進行采樣處理; GIOP_StateRefresh()函數主要是用來實時刷新輸入輸出口的狀態。
-
單片機
+關注
關注
6061文章
44875瀏覽量
646098 -
程序編寫
+關注
關注
1文章
14瀏覽量
8291
發布評論請先 登錄
單片機Debug工具性能對比 單片機調試常用命令
單片機編程語言有哪些選擇
單片機怎么寫入程序
單片機的中斷機制
單片機hex文件反編譯成C語言的過程
keil可以讀出單片機的程序嗎
單片機燒錄程序可以重新燒嗎
一文讀懂什么單片機:組成結構與應用

藍牙模塊如何實現單片機和手機端數據互傳

評論