史上最強單片機科普 應廣單片機( 二 )


外部中斷:外部中斷也是大多數MCU的基本功能,一般用于信號的實時觸發、數據采樣和狀態檢測 。中斷模式由上升沿、下降沿和電平觸發 。外部中斷通常通過輸入端口實現 。如果是IO口,其中斷功能只有設置為輸入時才會開啟 。如果是輸出端口,外部中斷功能會自動關閉(ATMEL的ATiny系列也有一些例外,使用輸出端口也可以觸發中斷功能) 。外部中斷的應用如下:
外部觸發信號檢測:一種是基于實時性要求,如可控硅的控制,突發信號的檢測等 。,而另一個則是需要節約用電 。
信號頻率的測量,為了保證信號不被遺漏,外部中斷是最理想的選擇 。
數據解碼:在遠程控制應用領域,為了降低設計成本,往往需要使用軟件對各種編碼數據進行解碼,如曼徹斯特編碼、PWM編碼等 。
按鍵檢測和系統喚醒:對于進入睡眠狀態的MCU,一般需要通過外部中斷喚醒,最基本的形式就是按鍵,通過按鍵的動作產生電平變化 。
通信接口:單片機提供的通信接口一般包括SPI接口、UART、I2C接口等 。,分別描述如下:
SPI接口:該接口是大多數MCU提供的最基本的通信方式,其數據傳輸由同步時鐘控制 。信號包括串行數據輸入、串行數據輸出、SCLK和就緒信號 。在某些情況下,可能沒有就緒信號;這種接口可以在主模式或從模式下工作 。通俗來說就是看誰提供時鐘信號,提供時鐘的一方是Master,對面是Slave 。
通用異步接收發送:它是最基本的異步傳輸接口 。它的信號線只有Rx和Tx ?;緮祿袷綖?起始位+數據位(7位/8位)+奇偶校驗位(偶數、奇數或無)+停止位(1 ~ 2位) 。一位數據占用的時間稱為波特率 。
對于大多數單片機來說,數據長度、數據校驗方式(奇數校驗、偶數校驗或無校驗)、停止位長度和波特率可以通過編程靈活設置 。這種接口最常見的方式是與PC機的串口通信 。
I2C接口:I2C是飛利浦開發的數據傳輸協議,也是通過兩個信號實現的:SDAT(串行數據輸入輸出)和SCLK(串行時鐘) 。它最大的優點是可以在這條總線上連接多個設備,并通過地址識別和訪問它們 。I2C總線最大的優點之一就是通過IO口用軟件實現非常方便,其數據速率完全由SCLK控制,可以快也可以慢 。與UART接口不同,它有嚴格的速率要求 。
看門狗(Watchdog timer):看門狗也是大多數MCU的基本配置(有些4位MCU可能沒有這個功能) 。大多數單片機的看門狗只能讓程序復位而不能關閉(有些是程序燒錄時設置的,比如Microchip PIC單片機) 。有些MCU決定是否以特定方式打開,比如三星的KS57系列 。只要程序訪問看門狗寄存器,它就會自動打開,不能再關閉 。一般來說,看門狗的復位時間是可以編程的 ??撮T狗最基本的應用就是為MCU提供一種因意外故障而崩潰的自恢復能力 。
單片機學習技巧
任何一個MCU的基本原理和功能都是相似的,只有外圍功能模塊、指令系統等的配置和數量 。
對于指令系統來說,雖然形式看似千差萬別,但實際上只是不同的符號,其含義、要完成的功能和尋址方式基本相似 。
要了解一個MCU,首先要知道的是它的ROM空房間,RAM空房間,IO端口號,定時器數量和計時方式,提供的外設電路,中斷源,工作電壓和功耗等 。
在了解了這些MCU特性之后,下一步就是將所選MCU的功能與實際項目開發所需的功能進行對比,明確目前需要哪些資源,哪些資源沒有在本項目中使用 。
對于項目中需要用到但并非由所選MCU提供的功能,需要仔細了解MCU的相關信息,才能間接實現 。比如開發的項目需要與PC的COM端口進行通信,而選擇的MCU不提供UART端口,則可以通過外部中斷來實現 。
對于項目開發所需的資源,需要仔細理解和閱讀其Manua *,而不必要的功能模塊可以忽略或瀏覽 。對于單片機學習來說,應用是關鍵,也是主要目的 。
明確了單片機的相關功能后,接下來就可以開始編程了 。
對于初次使用這款MCU的初學者或設計師來說,可能有很多地方對MCU的功能描述不太清楚 。對于這樣的問題,有兩種方法可以解決 。一是編寫專門的驗證程序,了解數據中描述的功能 。另一個暫時可以忽略,單片機編程是按照我目前的理解寫的,調試時留下修改完善 。前一種方法適合時間比較寬松的項目和初學者,后一種方法適合對單片機開發有一定經驗的人或者日程比較緊迫的項目 。
系統永遠不應該花時間去理解指令 。指令系統只是邏輯描述的符號 。只有在編程的時候,才可以根據自己的邏輯和程序的邏輯要求來檢查相關的指令 。而且隨著編程,你會越來越精通指令系統,甚至可以在不知不覺中背下來 。

推薦閱讀