精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

將基于8051的微控制器連接到SCI端口

星星科技指導員 ? 來源:ADI ? 作者:ADI ? 2023-06-13 15:48 ? 次閱讀

本應用筆記介紹如何配置高速微控制器或超高速閃存微控制器的UART,以便與支持SCI的設備通信。它首先簡要討論了SCI和UART模塊之間的差異,并以一個實際示例結束,說明如何配置基于8051的達拉斯半導體微控制器UART以與SCI模塊通信。

介紹

串行通信接口 (SCI) 是一種高速串行 I/O 端口,允許設備之間的同步或異步通信。它允許微控制器連接到各種類似功能的外設,以及標準RS-232接口。SCI 的確切實現因設備制造商而異;許多器件都支持異步模式下的全雙工通信、奇偶校驗、錯誤檢測以及 <> 到 <> 位的可編程字符長度等功能。

所有基于 8051 的達拉斯半導體微控制器都能夠與支持 SCI 的設備進行通信,即使 SCI 功能未明確列在微控制器的功能列表中。我們所有的微控制器都包含一到三個8051型UART,可以配置為在大多數常見的SCI模式下運行。

本應用筆記介紹如何配置高速微控制器或超高速閃存微控制器的UART,以便與支持SCI的器件通信。它首先簡要討論了SCI和UART模塊之間的差異,并以一個實際示例結束,說明如何配置基于8051的達拉斯半導體微控制器UART以與SCI模塊通信。提供了一個代碼示例,演示如何初始化微控制器并執行簡單的測試以確保設備正確通信。

SCI的特點

如上所述,SCI是一種高速串行接口。它與基于達拉斯半導體8051的微控制器上的8051式UART有許多相似之處。以下是 UART 中的 SCI 功能及其對應項的列表。用戶應注意,并非所有 SCI 模塊都支持列出的所有功能,因此用戶應仔細閱讀支持 SCI 的器件的數據手冊,以了解其使用方式。

特征 SCI 達拉斯半導體UART
異步模式 適用于大多數實現 串行模式 1、2、3
同步模式 在某些實現上可用 僅串行模式 0
字符長度 1 到 9(如果支持可選字符長度) 8 或 9
平價 在某些實現上可用 受 9 位模式下的軟件支持
成幀錯誤 是的 是的
空閑字符 檢測空閑字符以喚醒設備。 UART不能檢測空閑字符,但UART微處理器通信模式可用于向UART發出信號,將下一個字節視為地址/標識符。
中斷字符 SCI 可以發送和接收中斷字符 (00h)。 可以通過將串口RX引腳轉換為邏輯0來傳輸中斷字符。收到中斷字符可能會導致成幀錯誤,具體取決于所選字符長度。

大多數 SCI 模塊都支持異步通信格式,其中許多是獨占的。此處的示例演示如何將基于 Dallas Semiconductor 8051 的微控制器配置為與支持 SCI 的設備進行異步通信。在這種情況下,我們將微控制器配置為與配置了以下特征的目標 SCI 通信:

10位異步模式;1 個啟動,8 個數據,1 個停止位

波特率:19200 bps

為了與此設備通信,我們將做出以下決定來設置達拉斯半導體微控制器:

使用串行端口 0 進行通信

外部時鐘源為 22.1184MHz

串口將配置為10位異步模式;1 個啟動,8 個數據,1 個停止位(這是串口模式 1。

波特率發生器時鐘源將是自動重新加載模式下的定時器1(定時器模式2)。

由于所有基于 Dallas Semiconductor 8051 的微控制器定時器默認為原始的 12 分頻工作模式,因此此示例的優點是適用于所有達拉斯半導體器件,無論內核的時鐘除數如何。這是因為DS5000FP (被12分頻)、DS80C320 (被四分頻)和DS89C450 (被1分頻)都使用相同的串行端口時序,如果未選擇定時器的更高速度選項。 有關UART操作的詳細信息,請參閱相應用戶指南的串行I/O部分。

由于SCI決定了數據的格式,因此接下來必須將達拉斯半導體微控制器初始化為正確的波特率。8位自動重載模式(定時器模式2)通過由外部時鐘源驅動的用戶可選定時器溢出產生波特率。這為設計增加了相當大的靈活性并簡化了開發,因為波特率可以在軟件中輕松選擇,允許來自同一時鐘源的多個波特率。確定波特率的公式如下所示:

wKgZomSIH0CAOZa_AAAF_ypo7G8967.gif

其中osc_frequency是外部時鐘源的頻率,單位為MHz,TH1是放置在定時器8 MSB SFR中的1位重載值,SMOD_0(PCON.7)是串行端口0倍增器使能位。或者,如果波特率和振蕩器頻率已知,則可以使用以下公式求解8位重載數TH1的值:

wKgaomSIH0KAN9KgAAAFxMtvzas477.gif

假設外部時鐘源為22.1184MHz,TH1值為FDh將產生19200的目標波特率,并清除倍頻位。有關波特率選擇的更多信息,請參閱相應用戶指南的串行 I/O 部分。

以下簡短的匯編代碼示例演示如何初始化串行端口 0 以與配置為 10 位異步模式的 SCI 模塊通信,速率為 19200 bps。成功操作后,它將回顯任何收到的字符。可以輕松刪除此功能,使其成為任何用戶所需的 SCI 通信應用程序的通用 shell。

;SCI emulation example
; Simple transmit test to demonstrate how to configure 8051 UART to
; emulate an SCI module. Test code embedded in this example echoes back
; received characters.

org 0h            ;Reset vector.
ljmp start

org 23h           ;Serial port 0 vector.
ljmp SP0_ISR


org 100h          ;Start of code.
start:            ;Initialize Serial Port 0 for mode 1, 19200 baud
MOV TMOD,  #020h  ;Set timer 1 for mode 2 (8-bit auto reload)
MOV SCON0, #050h  ;SP0  10-bit asynchronous mode with receive enabled

;Now select the reload value based on baud rate and xtal frequency.
MOV TH1,   #0FDh ;19200 baud at 22.11 MHz
;MOV TH1,   #0FDh ;9600 baud at 11.059 MHz
;MOV TH1,   #0FAh ;9600 baud at 22.11  MHz

SETB TR1          ;Serial port is initialized, now start timer

;Enable Interrupts
MOV IE, #90h      ;This example supports interrupt-driven communications, so
                  ; enable global and serial port 0 interrupts.


;Test code in receive interrupt routine echoes back any received characters
; when combined with the loop here.
loop: sjmp loop


SP0_ISR:          ;Serial port 0 Interrupt Service Routine
jb  RI0, RIO_INT  ;Determine if receiver/transmitter was cause of interrupt.

TIO_INT:          ;Interrupt was caused by transmission.
;
;                  Placeholder for transmitter routine
;
CLR TI0
RETI

RIO_INT:          ;Interrupt was caused by reception
;
;                  Placeholder for receiver routine
;

MOV A, SBUF0      ;Test code that echoes back received character
MOV SBUF0, A      ; Remove for real code.

CLR RI0
RETI

總結

達拉斯半導體基于8051的微控制器中的UART可以很容易地配置為與許多設備中的SCI模塊接口。這種流行的串行接口可以在多種模式下工作,但最常見的是RS-10通信中使用的11/232位異步模式。允許達拉斯半導體微控制器連接到SCI模塊可提高整體系統的靈活性,因為它們可以連接到更廣泛的嵌入式系統

雖然此示例側重于異步工作模式,但達拉斯半導體微控制器也可以配置為與在同步模式下運行的 SCI 接口。SCI 模塊與 8051 UART 的相似性使得該接口能夠以最小的努力完成。有關同步模式(串行端口模式 0)的詳細信息,請參閱相應用戶指南的串行 I/O 部分。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7496

    瀏覽量

    151085
  • 半導體
    +關注

    關注

    334

    文章

    27063

    瀏覽量

    216490
  • uart
    +關注

    關注

    22

    文章

    1228

    瀏覽量

    101198
收藏 人收藏

    評論

    相關推薦

    8051微控制器架構的簡要說明

    此前已經介紹了關于8051微控制器基礎知識和引腳圖說明等相關知識,而在本文中,重點介紹8051微控制器的硬件方面內容,如 I/O
    發表于 08-23 14:45 ?2793次閱讀
    <b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>架構的簡要說明

    8051微控制器的基礎知識

    8051微控制器是嵌入式系統、消費電子、汽車等各個領域中最流行和最常用的微控制器之一,技術上稱為Intel MCS-51架構。8051微控制器
    發表于 09-12 17:32 ?3324次閱讀
    <b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>的基礎知識

    怎么Fieldfox連接到微控制器

    我正在構建一個微控制器控制的轉盤,用于測量天線輻射模式。階段1簡單地平臺定位在0到360度的任何位置。我最不想做的是使用我的Fieldfox頻譜分析儀以單一頻率讀取信號電平。有了這
    發表于 02-12 12:35

    如何8051微控制器引到FPGA中去?

    請問如何8051微控制器引到FPGA中去?
    發表于 04-28 06:41

    如何EVAL6498L連接到微控制器

    您好,我是柵極驅動評估板 EVAL6498L 的第一次用戶,我正在嘗試了解如何將它連接到控制器和 MOSFET,我正在使用此文檔。假設我從微控制器 PWM1 和 PWM2 發送 2
    發表于 01-06 06:24

    如何ESP連接到微控制器

    你好! 我有一個問題:這是 ESP 的最小電路。 我想用微控制器驅動它。我的問題是: 1) RST 和 EN 引腳通過電阻連接到 Vcc。如果我想將它連接到 STM32(連接到 STM
    發表于 05-15 08:30

    如何PC鍵盤連接到8051微控制器

    在這里,我們已將一個LCD以4位模式連接到8051端口2。現在,我們已通過USB至UART轉換開發板
    的頭像 發表于 10-31 09:55 ?2157次閱讀

    8051微控制器引腳說明與基本電路

    此前已經介紹過8051微控制器的基礎知識,包括它的歷史、特性、封裝和一些實際應用。在本文中,小編將將繼續介紹關于8051微控制器引腳圖、引腳說明以及其他一些細節內容,包括
    發表于 08-23 15:53 ?8124次閱讀
    <b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>引腳說明與基本電路

    如何實現SDRAM存儲并通過接口連接到高性能微控制器

    電子發燒友網站提供《如何實現SDRAM存儲并通過接口連接到高性能微控制器.zip》資料免費下載
    發表于 09-07 09:31 ?1次下載
    如何實現SDRAM存儲<b class='flag-5'>器</b>并通過接口<b class='flag-5'>連接到</b>高性能<b class='flag-5'>微控制器</b>

    如何使用觸摸傳感8051微控制器控制LED燈

    在這個項目中,我們觸摸傳感8051 微控制器 AT89S52 連接。如果您是 8051
    的頭像 發表于 09-07 15:13 ?3070次閱讀
    如何使用觸摸傳感<b class='flag-5'>器</b>和<b class='flag-5'>8051</b><b class='flag-5'>微控制器</b><b class='flag-5'>控制</b>LED燈

    如何微控制器和adafruit.io儀表板連接到外部應用程序

    電子發燒友網站提供《如何微控制器和adafruit.io儀表板連接到外部應用程序.zip》資料免費下載
    發表于 10-28 14:22 ?0次下載
    如何<b class='flag-5'>將</b><b class='flag-5'>微控制器</b>和adafruit.io儀表板<b class='flag-5'>連接到</b>外部應用程序

    用于8051兼容微控制器的高效位敲擊SPI端口

    快速 SPI 端口可通過 GPIO 引腳進行位沖擊,并作為具有 SPI 端口8051 兼容微控制器的低成本替代方案。本應用筆記所示的代碼利用80
    的頭像 發表于 01-12 16:18 ?918次閱讀
    用于<b class='flag-5'>8051</b>兼容<b class='flag-5'>微控制器</b>的高效位敲擊SPI<b class='flag-5'>端口</b>

    I2C接口小型閃存卡連接到微控制器

    本應用筆記說明如何使用I2C I/O擴展CF卡連接到微控制器的I2C接口。解釋了用于讀取和寫入數據的軟件命令。MAX7311 I/O端口
    的頭像 發表于 02-14 10:19 ?911次閱讀
    I2C接口<b class='flag-5'>將</b>小型閃存卡<b class='flag-5'>連接到</b><b class='flag-5'>微控制器</b>

    DS1307與兼容8051微控制器接口

    DS1307串行實時時鐘集成了2線串行接口,可使用兼容8051微控制器進行控制。本例中的DS1307直接連接到DS5000微控制器上的兩個
    的頭像 發表于 03-01 13:52 ?1359次閱讀
    DS1307與兼容<b class='flag-5'>8051</b>的<b class='flag-5'>微控制器</b>接口

    LCD控制器連接到DM642視頻端口

    電子發燒友網站提供《LCD控制器連接到DM642視頻端口.pdf》資料免費下載
    發表于 10-17 10:42 ?0次下載
    <b class='flag-5'>將</b>LCD<b class='flag-5'>控制器</b><b class='flag-5'>連接到</b>DM642視頻<b class='flag-5'>端口</b>