tft每日頭條

 > 生活

 > 51單片機怎樣使用宏定義

51單片機怎樣使用宏定義

生活 更新时间:2024-08-13 21:28:33

目前單片機是以默認内部高速時鐘在進行運行,此内部時鐘RCH是8Mhz,我們在學習這篇端口操作時,先不進行系統時鐘的配置。

我們先熟悉在單片機的IO口操作,等到我們講解到定時器驗證之後,再講解單片機内部時鐘配置,就有了可以驗證,是否正确配置的手段和方法了。

3.1,端口操作流程,LED的點亮

我們選擇的這款單片機HC32L176/HC32L196系列單片機是M0 内核,有很多的端口都是多種功能複用,所以在進行端口操作的時候,需要明确是否有複用功能。我們使用普通的端口功能過程,對下列寄存器進行講解和配置。

第一步,配置GPIO時鐘,這個時鐘寄存器在芯片資料的系統控制器章節,如下圖所示

51單片機怎樣使用宏定義(第三章華大M0内核HC32L176)1

第二步,配置GPIO是數字端口還是模拟端口。使用的寄存器是下圖中所示

51單片機怎樣使用宏定義(第三章華大M0内核HC32L176)2

如何确定是數字端口還是模拟端口呢?如下圖所示,ADC,LCD,OPA,DAC等都是模拟端口,如端口隻有1/0邏輯電平的,就是數字端口,如PWM,按鍵輸入,輸出高低電平等。

下圖單片機的時鐘樹結構,我們在學習STM32的時候,總結的經驗就是時鐘樹非常重要,所以大家也要對這款有所了解,STM32對每個GPIOA-F都有單獨的時鐘控制,華大的這款,所有的GPIO隻有這一個。大家區别一下。

51單片機怎樣使用宏定義(第三章華大M0内核HC32L176)3

第三步,配置GPIO輸入輸出模式,如下圖所示。

51單片機怎樣使用宏定義(第三章華大M0内核HC32L176)4

還有複用功能的配置寄存器,因為有很多端口有其他功能,而且每個端口都有一個配置項,如ADC,串口等,可以根據你設計需要選擇對應功能,注意LCM的端口複用配置是其他專用寄存器進行配置

51單片機怎樣使用宏定義(第三章華大M0内核HC32L176)5

在上圖中,我舉例截圖了PA的配置說明,每個端口的配置具體的複用說明會有差異,将PA02_SEL配置為00,就是普通端口,在截圖當中的紅色标注當中,如果将PA02_SEL配置為1,則是UART1_TXD引腳

51單片機怎樣使用宏定義(第三章華大M0内核HC32L176)6

3.2,端口輸入與輸出配置初始化的代碼,我們以PC13這個端口作為LED控制,配置一個輸出代碼。如下圖所示,一般有兩種寫法,因為華大本身的.H文件對各個寄存器的位都有定義,有時候記不清想要配置的位的标号,所以為了方便和簡單明了,将主要是以第二種寫法進行講解。

51單片機怎樣使用宏定義(第三章華大M0内核HC32L176)7

為了能夠方便調用LED的輸出高電平和低電平,我們寫入兩個宏定義

51單片機怎樣使用宏定義(第三章華大M0内核HC32L176)8

LED硬件,假設LED燈的正極直接接單片機的IO端口。

接下來就是完整的點亮一顆LED神燈,循環不斷的控制LED引腳高低電平翻轉,等同于學C語言的hello world,下圖就是工程代碼,添加了簡單的延時函數,歡迎鑒賞。

51單片機怎樣使用宏定義(第三章華大M0内核HC32L176)9

3.3,端口的操作控制,按鍵的輸入采集,其實和輸出差不多,隻是将方向寄存器改為輸入即可,我們使用PE02作為按鍵輸入口,并定義一個宏。

硬件電路上,我們設定KEY默認上拉電阻,未按下時高電平,按下按鍵時,為低電平。

我們設計一段代碼,進行按鍵和LED端口初始化後,按鍵按下,LED點亮,按鍵松開,LED滅

51單片機怎樣使用宏定義(第三章華大M0内核HC32L176)10

歡迎大家關注我,謝謝大家!

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved