STC15單片機實戰項目軟件開發第二講 - LED閃爍(定時器,面向對象程序結構)

軟件開發第二講 - LED閃爍(定時器、面向對象程序結構)
一、工具鏈接
1、Keil c51 UV4
https://yunpan.360.cn/surl_yrIfYYmeRFk
2、STC-ISP下載軟件
https://yunpan.360.cn/surl_yxH4CuUUvI3

二、學習板獲取方式
方法1:自己設計PCB,自行打板焊接;
方法2:用羣主設計的PCB,自行打板焊接;
方法3:向羣主購買,淘寶鏈接:
https://item.taobao.com/item.htm?ft=t&id=612010801228
在這裏插入圖片描述

三、程序功能
1、將通過Delay延時實現LED閃爍的代碼結構調整爲面向對象結構;
2、用定時器實現LED閃爍。

四、硬件部分
在這裏插入圖片描述

五、面向對象知識

面向對象是軟件開發方法,是相對於面向過程來講的。通過把數據與方法組織爲一個整體來看待,從更高的層次來進行系統建模,更貼近事物的自然運行模式
單片機C語言的面向對象編程,是利用結構體,將變量、指針、函數等進行封裝,達到編程更加方便、程序可讀性更好、方便移植等目的。

1、結構體
結構體是由一系列具有相同類型或不同類型的數據構成的數據集合。
常用的定義方法:
typedef struct
{
變量;
指針;
函數指針;
} 結構體名稱_t;

2、指針
指針是地址,指向內存中的變量。
常用的定義方法:數據類型 * 指針名;
3、函數指針
函數指針是指向函數的指針變量。
常用的定義方法:返回值類型 ( * 指針變量名) ([形參列表]);

六、編程說明 - 面向對象程序結構
1、文件結構如下:
在這裏插入圖片描述

 main.c  -> 主函數文件,包含main函數等;
 Public.c -> 公共函數文件,包含Delay延時函數等;
 Sys_init -> 系統初始化函數,包含GPIO初始化函數等;
 LED.c    -> LED外設函數,包含LED打開、關閉函數等。

2、主函數如下:
在這裏插入圖片描述

運行流程:
通過結構體Hardware_Init的函數指針調用系統初始化函數,完成GPIO的初始化,接着進入主循環,延時500ms將運行指示燈翻轉,實現LED閃爍功能。

3、源代碼
版權需要,這部分內容,請在微信公衆號閱讀。

七、定時器
在這裏插入圖片描述

工作流程:通過寄存器配置定時器的工作模式。設定定時值。定時器啓動後,定時器在時鐘源的驅動下向下計數,當計數到0時,中斷標誌位TF0置位,觸發定時器中斷,此時可以重新設定時值或自動重裝定時值,重新計數,周而復始。 如果定時器中斷開啓了,CPU會停下手頭的工作,轉而去運行定時器中斷函數,中斷函數運行完之後,CPU繼續幹手頭的工作。

八、中斷概念
1、中斷存在的意義
爲了提高CPU快速處理緊急事件的能力,比如按鍵中斷、定時任務、故障報警、接口通信等。
2、中斷概念
舉個例子說明:
碼農A在全神貫注的擼代碼,突然,手機鈴聲響起,追求已久的女神竟然打電話過來了,然後快速的接聽了電話,接聽完電話,碼農A繼續擼代碼。。。
主循環 -> 碼農A擼代碼
手機鈴聲 -> 中斷標誌位
接聽電話 -> 中斷處理
中斷返回 - >碼農A繼續擼代碼

九、編程說明 - 定時器
1、文件結構如下:
在這裏插入圖片描述

 main.c  -> 主函數文件,包含main函數等;
 Public.c -> 公共函數文件,包含Delay延時函數等;
 Sys_init -> 系統初始化函數,包含GPIO初始化函數等;
 LED.c    -> LED外設函數,包含LED打開、關閉函數等。
Timer0.c -> 定時器函數,包含定時器初始化,中斷函數等

2、主函數如下:
在這裏插入圖片描述

運行流程:
通過結構體Hardware_Init的函數指針調用系統初始化函數,完成GPIO與定時器0的初始化,接着進入主循環,CPU閒着。間隔一定時間進入定時器中斷處理函數,實現LED閃爍功能。

3、定時器中斷函數
版權需要,這部分內容,請在微信公衆號閱讀。
4、源代碼
版權需要,這部分內容,請在微信公衆號閱讀。
十、直播
3月21號,21:00,在bilibili平臺進行直播。有時間的朋友,可以看直播,沒時間的朋友,可以看回播。
直播地址: https://live.bilibili.com/21988510

別具一格的單片機實戰項目免費教學,以產品爲導向,一起做項目的形式,加qq 1273755275拉入學習交流羣。
開源項目,開發工具,技術資料以及更多原創技術文章,請關注微信公衆號。
硬件家園 yjjy168168168

作者:劉傑,軟硬件技術10年,全職提供技術開發與技術服務、生產支持等。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章