<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統 > 設計應用 > 國產51單片機CA51F4系列的端口配置,以及外部中斷配置操作說明

          國產51單片機CA51F4系列的端口配置,以及外部中斷配置操作說明

          作者:時間:2024-02-21來源:單片機(MCU)電子開發—戴工收藏

          國產CA51F412L2是基于IT的51內核單片機,內置18K的Flash,集成8路的12位ADC采集,串口,段碼屏驅動,3路PWM,觸摸按鍵功能。廣泛應用于帶LCM顯示,觸摸的產品類型,

          本文引用地址:http://www.ex-cimer.com/article/202402/455575.htm


          今天繼續講解和外部中斷的配置使用過程。GPIO 主要特性如下:

          l 可配置為高阻模式

          l I/O 結構可獨立設置上拉電阻

          l 輸出模式可選開漏輸出或推挽輸出

          l 數據輸出鎖存支持讀-修改-寫

          l 支持 1.8~5.5V 寬電壓范圍

          一,單片機IO說明

          CA51F4 系列芯片最大封裝有 46 個 I/O 引腳,每個引腳都是復用功能引腳,能獨立編程為輸入/輸出口, 同時還能設置為其他功能。

          主要是PnxF寄存器和Pnx寄存器

          每個引腳都有獨立功能設置寄存器 PnxF,,其中n代表IO端口組號,x代表其中的編號,用戶可通過寄存器 PnxF 配置引腳的主功能和其他選項,如下圖所示,P55F寄存器


          Bit7: 上拉使能控制位

          Bit5: 開漏使能控制位

          Bit2-0: IO引腳復用功能映射表

          如下圖所示:


          數字0為高阻態,1為輸入,2為輸出,3-7分別代表不同的復用功能;比如當P10引腳,選擇使用段碼屏LCD_S0時候,將使用標識的數據6即可實現。


          如下圖所示,為獨立按鍵配置端口為輸入模式,上拉電阻,完成按鍵端口的初始化代碼


          每個引腳都有獨立功能設置寄存器 Pnx,此為對應端口引腳數據寄存器。

          如下圖所示。配置P07為輸出模式,且初始化P07為高電平。


          按照官方提供的工程庫支持包:在gpiodef_f4.h當中,包含了單片機IO端口方向和配置以及單片機IO端口復用功能的枚舉定義


          二,外部中斷配置與說明:

          CA51F4系列總共有INT0,INT1,INT2~INT9總共10個外部中斷源。其中INT2~INT9可選擇任意輸入口作為中斷觸發源。下圖是中斷向量說明,其中有部分中斷是公用同一個向量,所以在開發時,需要注意。


          其中在中斷向量控制章節當中,各個中斷向量是中斷向量開關使能的,相同的向量值,可以根據需要使能對應的正確中斷源。

          以外部中斷2的配置初始化過程為例進行說明:

          第一步:先配置端口為輸入模式

          第二步:IT2CON配置對應的引腳為外部中斷。

          第三步:EPCON 配置中斷上升沿/下降沿觸發方式,以及對應中斷關聯的引腳

          第四步:中斷向量開關EXIE中斷2使能控制位寫1(INT2EN=1)。

          第五步:使能EPIE寄存器,對應外部中斷INT2位置寫1.

          完成配置中斷2初始化,如下圖代碼所示:


          對應外部中斷2函數當中,需要判斷中斷狀態標志位,如發生中斷事件,則對寄存器標志位進行寫1操作,則清除對應的中斷標識,如下圖所示:


          下一章會更新國產CA51F4系列的串口,ADC部分的操作說明,歡迎大家多多支持!




          關鍵詞: MCU 51單片機 端口

          評論


          相關推薦

          技術專區

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();