色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

單片機串行口擴展的方法詳細說明

Wildesbeast ? 來源:單片機教程網 ? 作者:單片機教程網 ? 2020-06-07 12:01 ? 次閱讀

單片機系統擴展是指單片機內部各功能部件不能滿足應用系統要求時,在片外連接相應的外圍芯片以滿足應用系統的要求。

對單片機系統擴展的方法有并行擴展和串行擴展兩種。

串行口的擴展方法

常用的標準51單片機內部僅含有一個可編程的全雙工串行通信接口,具有UART的全部功能。該接口電路不僅能同時進行數據的發送和接收,也可作為一個同步移位寄存器使用。當以此類型單片機構成分布式多級應用系統時,器件本身的串口資源就不夠用了。筆者在實際開發中,查閱了有關資料,總結出如下兩種常用而有效的串行通道擴展方法。

2.1 基于SP2538的擴展方法

SP2538是專用低功耗串行口擴展芯片,該芯片主要是為解決當前基于UART串口通信的外圍智能模塊及器件較多,而單片機或DSP原有的UART串口又過少的問題而推出的。利用該器件可將現有單片機或DSP的單串口擴展至5個全雙工串口。使用方法簡單、高效。

在應用SP2538擴展串行通道時,母串口波特率K1=2880*Fosc_in,單位是MHz,且Fosc_in小于20.0MHz, 在SP2538輸入時鐘Fosc_in =20.0MHz時母串口可自適應上位機的56000bps和57600bps兩種標準波特率輸入。子串口波特率K2=480*Fosc_in。

母串口和所有子串口都是TTL電平接口,可直接匹配其他單片機或TTL數字電路,如需連接PC機則必須增加電平轉換芯片如MAX202 、MAX232 等。SP2538具有內置的上電復位電路和可關閉的看門狗監控電路。上位機寫命令字0x10可實現喂狗,寫命令字0x15關閉看門狗,初次上電后看門狗處于激活狀態或寫命令字0x20激活看門狗監控功能。上位機可通過芯片復位指令0x35在任何時候讓芯片進行指令復位,也可通過芯片睡眠指令0x55在任何時候讓芯片進入微功耗睡眠模式以降低系統功耗。初次上電后芯片不會自行進入睡眠模式,但只能由上位機通過母串口任意發送一個字節數據將其喚醒,其他子串口不具備這一功能。

圖(1)是AT89C52單片機與SP2538的電路連接,圖中,AT89C52的全雙工串口與SP2538的母串口5相連,該串口同時也作為命令/數據口。SP2538的ADRI0、ADRI1、ADRI2分別與AT89C52的P2.3、P2.4、P2.5口相連,可用于選擇發送數據是選擇相應的串口0~4;ADRO0、ADRO1、ADRO2與P2.0、P2.1、P2.2相連,用于判斷接收的數據來自哪一個串口。 SP2538的時鐘頻率選為20.0MHZ,此時母串口5的波特率為57600bps,串口0~4的波特率為9600bps。

下面是與上述硬件電路相關的接口程序,該程序用A51匯編語言編制,程序僅說明了中斷方式下對子串口0(TX0、RX0)的操作,其它子串口類似。

TBLOCK DATA 20H

RBLOCK DATA 30H

LENGTH DATA 14H

TXR_REV_SEND: CLR ES

JBC RI,RECEIVE

CLR TI

MOV A,@R0

CLR P2.0 ; 寫數據到“SBUF”前必須先置欲發送子串口的地址

CLR P2.1

CLR P2.2

MOV SBUF,A

DJNZ R2,NEXT

SJMP $

NEXT: INC R0

RETI

RECEIVE: MOV A,P2

AND A,#31H ;判斷是否為子串口0

JNZ ELSE

MOV A,SBUF

MOV @R1,A

INC R1

RETI

圖(1) AT89C52與SP2538的電路連接

2.2 基于Intel8251的串行口擴展方法

上面基于SP2538的串口擴展方法可以說是一種串行的擴展方法,這里基于Intel8251的擴展方法則是一種并行的方法。Intel8251是一種通用的同步/異步發送器(USART),它的工作方式可以通過編程設置。能夠以同步或異步串行通信方式工作,能自動完成幀格式。

Intel8251具有獨立的接收/發送器。在異步方式下,用于產生8251內部時序的時鐘CLK輸入至少應為發送或接收時鐘的4.5倍。接收/發送(RXC/TXC)時鐘應為波特率的1倍、16倍或64倍(由8251的工作方式字設定)。

圖(2)是用Intel8251擴展一個串行通道的電路原理,圖中,11.0592MHZ晶振經ALE6分頻后于 、組合,產生1.8432MHZ的時鐘頻率,分別作為8251與8253的時鐘輸入,若設定8251通信波特率為9600bps,波特率因子為16,則需要 153.6KHZ的接收/發送時鐘頻率,該頻率可由8253的OUT0產生。

下面的A51程序段說明了如何設置8253使其產生153.6KHZ的方波,以及如何用8251收/發數據:

;設置8253的程序段:

MOV A,#36H ; 計數器0輸出方波控制字

MOV DPTR,#0FFFFH ; 指向控制字寄存器

MOVX @DPTR,A

MOV DPTR,#0FFFCH ; 指向0計數器地址

MOV A,#0DH

MOVX @DPTR,A

MOV A,#0

MOVX DPTR,A

SETB P1.0

;操作8251的程序段:

START: MOV DPTR,#7FFFH ;8251控制、命令口地址

MOV A,#5EH ;一個停止位,奇校驗,8位數據,異步*16

MOVX @DPTR,A ;寫入方式字

MOV A,#15H

MOVX @DPTR,A ;命令字,啟動發送和接收器

LOOP: SJMP LOOP ;等待8251中斷

8251_INT: ;現場保護

MOV DPTR,#7FFFH

MOV A,@DPTR

JB ACC.0,TX_INT

JB ACC.1,RX_INT

INT_EXIT: ;恢復現場

RETI

;發送數據

TX_INT: MOV DPTR,#7FFEH ;8251數據口地址

MOV A,20H

MOVX @DPTR,A

AJMP INT_EXIT

;接收數據

RX_INT: MOV DPTR,#7FFEH

MOVX A,@DPTR

MOV 30H,A

AJMP INI_EXIT

圖(2)用8251擴展串行通道的硬件電路原理

并行擴展是指利用單片機三組總線(AB,DB,CB)進行的系統擴展。

串行擴展是指利用SPI(Serial Peripheral Interface)三線總線和I2C雙總線的串行系統擴展。

1,外部并行擴展

單片機是通過芯片的引腳進行系統擴展的。為了滿足系統擴展的要求,MCS-51系列單片機芯片引腳可以構成可以構成下圖所示的三總線結構,單片機所有的外部芯片都是通過這三組總線進行擴展。

2,外部串行擴展

串行擴展包括SPI三線總線和I2C雙總線兩種。在單片機內不具有串行總線時,可利用兩根或三根I/O口線用軟件來虛擬串行總線的功能。下圖所示:

P2

ALE

P0

WR

RD

PSEN

EA

RESET

MCS-51

地址鎖存器

A8-A15

A0-A7

地址總線

D0-D7

數據總線

控制總線

MCS-51單片機的三總線結構

4.1單片機三總線的形成(外部并行擴展)

有I2C接口的主機

有I2C接口的RAM或I/O芯片

有I2C接口

的從機

SCL

SDL

Vcc

Rf

Rf

I2C總線

I2C 總線系統示意圖

AB,DB,CB 各自的作用

(AB,DB,CB)三組總線稱為系統總線。

系統總線的含義是指計算機各芯片之間的公共連線。總線的根數(位數)稱為總線寬度。

地址總線:單片機外部有存儲器或接口芯片,其中都有存儲單元或寄存器單元,這些單元地位平等,需要被分配地址編號才能予以區分,分配地址當然也是以電信號形式給出,由于存儲器的容量很大,所以用于分配地址的線也較多,這些線被稱為地址線總線.51單片機的地址總線AB(address bus)為16位,可尋址216 (64K)存儲空間

數據總線:起著在CPU和存儲器或外圍接口電路之間傳遞數據的作用。我們常說的8位機,16位機,32位機,是說CPU的外數據總線(DB )(data bus) )寬度(位數)。

控制總線:通常包括時序信號(時鐘,定時,應答),數據傳送控制(如存儲器的讀寫,IO設備的讀寫)信號,中斷的請求和響應,總線請求,復位等信號,控制總線CB(control bus)隨CPU的不同而各具特色。

單片機的擴展

MCS-51單片機本身是一個基本的微型計算機,內部已經 具有一定數量的存儲單元和I/O接口,但在內部的資源不能夠滿足系統的需要時,就需要進行資源的擴展,單片機的擴展主要包括以下

兩方面的內容:

存儲器的擴展

I/O接口的擴展

注: MCS-51系列的單片機在進行擴展時,需要把P0口和P2口作為擴展總線使用,不能夠再作為一般的I/O口使用。

存儲器的擴展

在單片機系統中,存儲器的擴展包括:

程序存儲器擴展

隨著半導體技術的發展,單片機內部的程序存儲器數量越來越大,在一般的單片機系統中,對于程序存儲器的擴展已經使用的比較少。但對于一些比較早的片內沒有程序存儲器的單片機(8031,8032),在使用時還需要進行存儲器的擴展。

但建議用戶盡量避免外擴ROM,51系列單片機1000多種型號,一定可以找到內部ROM容量符合要求的單片機。即便是單片機略微貴點也值得。

數據存儲器擴展

在MCS-51系列單片機構成的系統中,內部RAM的數量比較有限(128B或256B),在面對大容量的數據處理時,就需要進行RAM的擴展。

程序存儲器擴展

常用的外部程序存儲器:

EPROM(紫外線可擦除)

常用的EPROM以27xx系列為主。

EEPROM(電可擦除)

目前的EEPROM分為:串行EEPROM和并行EEPROM,在使用時,常常把串行的EEPROM作為數據存儲器使用。以28xx系列為主。

FlashROM(快閃電可擦除)

主要以29Cxx系列為主。

常用的EPROM芯片引腳封裝示意圖

常用的EPROM芯片引腳封裝示意圖

不同容量的EPROM只是在地址線的數目和編程信號引腳有一點區別,各重要的引腳含義如下:

A0-Ai:地址輸入線,決定存儲器的容量;

Q0-Q7:雙向三態數據線;

E:片選信號輸入線;

G:讀選通輸入信號線;

P:編程脈沖輸入線;

VPP:編程電源輸入線;

VCC:工作電源輸入線(常為+5V);

GND/VSS:工作時接地線。

2817A

2864A

常用的EEPROM芯片引腳封裝示意圖

不同容量的EEPROM只是在地址線的數目和編程信號引腳有一點區別,各重要的引腳含義如下:

A0-Ai:地址輸入線,決定存儲器的容量;

I/O0- I/O7(D0-D7):雙向三態數據線;

CE:片選信號輸入線;

OE:讀選通輸入信號線;

WE:讀選通信號輸入線;

VCC:工作電源輸入線(常為+5V);

GND:工作時接地線。

29c256

29c512

常用的FlashROM芯片引腳封裝示意圖

2.程序存儲器擴展實例

MCS-51單片機與27256芯片的接口。

利用EPROM擴展一個存儲容量為32KB的程序存儲器

MCS-51單片機與2864芯片的接口。

由于2864不僅可以存放程序也可以在線寫入數據,可通過一定的方式來擴展一個程序存儲器和數據存儲器一體的存儲空間,其容量為8KB.

MCS-51單片機與27256芯片的接口

27256的基本地址范圍:0000H—7FFFH

P0連接:

74LS373的1D-8D

27256的DQ1-DQ8

PSEN接OE

CE接地

P2連接

27256的A8-A14

MCS-51單片機與2864芯片的接口

2864的基本地址范圍:0000H—1FFFH

P0連接:

74LS373的1D-8D

27256的DQ1-DQ8

P2連接

27256的A8-A12

PSEN和RD相與接OE,WR接WE,CE接P2.7

讀外部程序存儲器時序

ALE

PSEN

注意:上述時序是在取指令過程中自動產生

一個機器周期

送地址

取出指令

程序存儲器擴展實例思考:

MCS-51單片機與27256芯片的接口中,為什么片選信號可以直接接地 它的地址范圍還可以是多少

MCS-51單片機與2864芯片的接口中,EEPROM可以在線寫入數據,它能否像寫RAM一樣寫入 它的地址范圍還可以是多少

數據存儲器擴展

常用的數據存儲器:

靜態RAM

靜態RAM在應用時存取速度快,使用方便并且價格比較的低廉。但它具有在掉電時,內部的數據會丟失。典型的有6116,6264,62256等芯片。為了避免掉電數據丟失,出現了自動保護的靜態RAM,如:DS1225,DS1235.

串行EEPROM

串行EEPROM的與并行的EEPROM特性一樣,只是在數據的讀寫使用串行方式。常用的有24Cxx系列(I2C接口)和X25系列(SPI接口)的串行EEPROM.

一,靜態RAM

不同容量的靜態RAM只是在地址線的數目和編程信號引腳有一點區別,各重要的引腳含義如下:

A0-Ai:地址輸入線,決定存儲器的容量;

I/O0-I/O7:雙向三態數據線;

CE:片選信號輸入線;

OE:讀選通輸入信號線;

WE:寫選通輸入信號;

VPP:編程電源輸入線;

VCC:工作電源輸入線(常為+5V);

GND:工作時接地線。

6264

62256

常用的靜態RAM芯片引腳封裝示意圖

二,串行ROM

不同容量的串行ROM存儲容量上有區別,各重要的引腳含義如下:

A0,A1,A2:芯片的地址輸入線;

SDA:串行數據輸入端;

SCL:串行時鐘輸入端;

RESET:復位信號輸入;

WP:寫保護輸入端,為低電平時不允許寫數據;

SCK:串行時鐘輸入端;

SI:串行數據輸入端;

VCC:工作電源輸入線(常為+5V);

GND:工作時接地線。

AT24CXX和X25043的芯片引腳封裝示

意圖封裝

AT24Cxx

X25043

三,利用6116擴展一個2KB的

數據存儲器

在利用6116對MCS-51系列的單片機進行存儲器擴展時,基本的連接為:

OE與RD控制相連;

WE與WR控制相連;

CE與P2.7相連;

A0-A7與鎖存器74LS373的Q0-Q7相連;

A8-A10分別與P2.0-P2.2相連;

6116的基本地址范圍:0000H—07FFH.

MCS-51單片機與6116芯片的接口

6116的基本地址范圍:0000H—07FFH

P0連接:

74LS373的1D-8D

6116的DQ1-DQ8

OE接RD

WR接WD

P2連接片選和

6116的A8-A10

四,利用DS1235擴展一個32KB的數據存儲器

在利用DS1235對MCS-51系列的單片機進行擴展時,基本的連接為:

OE與RD控制相連;

WE與WR控制相連;

CE與P2.7相連;

A0-A7與鎖存器74LS373的Q0-Q7相連;

A8-A14分別與P2.0-P2.6相連;

DS1235的基本地址范圍:0000H—7FFFH.

MCS-51單片機與DS1235芯片的接口

DS1235的基本地址范圍:0000H—7FFFH

P0連接:

74LS373的1D-8D

DS1235的DQ1-DQ8

OE接RD

WR接WD

P2連接片選和

DS1235的A8-A14

DS1235數據存儲單元的操作方法

例1:從DS1235的地址單元2000H讀取數據到累加器ACC中。

例2:從累加器ACC向DS1235的地址為2000H的單元寫入數據。

讀取數據方法1

READB: MOV DPTR,#2000H

MOVX A,@DPTR

讀取數據方法2

READB: MOV P2,#20H

MOV R0,#00H

MOVX A,@R0

寫入方法1

WRITE: MOV DPTR,#2000H

MOVX @DPTR,A

寫入方法2

WRITE: MOV P2,#20H

MOV R0,#00H

MOVX @R0,A

P2口的地址由單片機自動產生

P2口的地址由P2口以I/O方式產生

P2口的地址由單片機自動產生

P2口的地址由P2口以I/O方式產生

讀/寫外部數據存儲器時序

PSEN

一個機器周期

ALE

一個機器周期

RD/WR

訪問ROM,取出MOVX指令

訪問RAM讀/寫數據

送地址

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

    關注

    8

    文章

    464

    瀏覽量

    57076
  • 單片機
    +關注

    關注

    6035

    文章

    44554

    瀏覽量

    634653
  • uart
    +關注

    關注

    22

    文章

    1235

    瀏覽量

    101354
收藏 人收藏

    評論

    相關推薦

    如何實現51單片機與PC串行通信

    詳細步驟和方法。 硬件連接 首先,我們需要將51單片機與PC串行接口連接起來。通常,我們使用RS-232接口進行連接。RS-232接口
    的頭像 發表于 10-21 11:35 ?768次閱讀

    io和串口的區別 單片機有多少個io

    IO和串口的區別 IO,即輸入輸出端口(Input/Output Port),是單片機或其他微控制器與外部設備之間進行數據交換的接口。它們通常用于控制外部設備的狀態,如LED燈的亮滅、電機的啟停
    的頭像 發表于 10-06 10:06 ?1329次閱讀

    單片機基本io功能調試過程

    所使用的單片機型號以及需要調試的IO。不同型號的單片機在IO的配置和特性上可能有所不同。 查閱單片機手冊 : 查閱
    的頭像 發表于 09-14 14:38 ?561次閱讀

    單片機io一般包含哪幾種狀態

    單片機的IO(Input/Output,即輸入輸出端口)通常包含以下幾種狀態,這些狀態使得單片機能夠靈活地與外部設備進行數據交互和控制。以下是對這些狀態的說明: 輸入狀態(Input
    的頭像 發表于 09-14 14:35 ?676次閱讀

    單片機io怎么配置成輸出口

    單片機IO配置成輸出口的過程通常涉及對單片機內部寄存器的操作。不同型號的單片機在寄存器配置和編程方式上可能有所不同,但基本原理是相似的。以下是一個通用的步驟,用于將
    的頭像 發表于 09-14 14:33 ?761次閱讀

    單片機io輸出電流多大

    單片機IO的輸出電流大小會受到多種因素的影響,包括單片機的型號、IO的配置模式以及外部電路的設計等。以下是對單片機IO
    的頭像 發表于 09-14 14:29 ?1670次閱讀

    單片機io的四種工作狀態

    單片機的I/O工作狀態是單片機編程和硬件操作中非常重要的一部分,它決定了單片機如何與外部設備進行通信。 1. 單片機I/O
    的頭像 發表于 09-14 14:24 ?1443次閱讀

    單片機燒錄程序用什么軟件

    工作原理和接口方式的不同,可以分為以下幾類: 1.1 并行燒錄器:通過并行接口將程序數據傳輸給單片機,燒錄速度快,但需要占用較多的I/O端口。 1.2 串行燒錄器:通過串行接口將程序數據傳輸給
    的頭像 發表于 09-02 10:05 ?1156次閱讀

    串行口的四種工作方式各有什么特點

    串行通信是計算機硬件和外設之間常用的通信方式之一。串行口(Serial Port)是實現串行通信的硬件接口。在計算機系統中,串行口通常用于連接鼠標、調制解調器、打印機等設備。
    的頭像 發表于 08-22 17:37 ?1539次閱讀

    串口轉換電路推薦

    因為計算機串行口單片機串行口的電平規范不同,無法直接相連,所以需要尋找一款兩者之間的電平轉換電路,推薦電路盡量不是選用串口轉換芯片
    發表于 05-09 10:05

    請問如何擴展單片機的IO

    在很多項目上都會因單片機的IO不夠、或降低硬件成本要擴展IO,特別在一些機械設備上,如本人從事的這個行業,有時候由一個單片機
    發表于 04-24 06:30

    ?51單片機串口通信詳細介紹-小白必看

    51單片機串口通信是單片機與外部設備通信的重要方式,它基于串行通信的原理,以字節為單位進行數據傳輸。在51單片機中,串口通信主要依賴于兩個關鍵寄存器:SBUF寄存器和SCON寄存器。S
    的頭像 發表于 04-17 09:33 ?1967次閱讀
    ?51<b class='flag-5'>單片機</b>串口通信<b class='flag-5'>詳細</b>介紹-小白必看

    51單片機的四種串行口工作模式介紹

    串行口工作模式設置位,這樣兩位可以對應進行四種模式的設置。串行口工作模式設置。      波特率在使用串口做通訊時,一個很重要的參數就是波特率,只有上下位的波特率一樣時才可以進行正常通訊。波特率
    發表于 04-08 06:49

    3KW工業變頻器電路設計方案詳細說明

    3KW工業變頻器電路設計方案詳細說明
    的頭像 發表于 03-19 08:33 ?928次閱讀
    3KW工業變頻器電路設計方案<b class='flag-5'>詳細說明</b>

    51單片機8位數碼管顯示學號程序編寫思路

    51單片機是一種非常經典的單片機型號,具有廣泛的應用領域。我們可以利用51單片機的IO來控制8位數碼管的顯示,實現學號的顯示功能。下面提供的詳細
    的頭像 發表于 01-04 15:21 ?7641次閱讀
    主站蜘蛛池模板: 国产福利视频一区二区| 风月宝鉴之淫乱英雄传 电影| 米奇影视999| 成人精品视频99在线观看免费| 久久妇女高潮几次MBA| 成年免费三级视频| 999久久国产精品免费人妻| 伊人久在线观看视频| 午夜理论片日本中文在线| 三级全黄a| 青青伊人影院| 暖暖视频免费观看社区| 久久精品WWW人人爽人人| 国产精品综合AV一区二区国产馆 | 国产精品久久久久久久人热 | 宝贝你骚死哥了好爽| 野花韩国在线观看| 亚洲色大成网站WWW永久麻豆| 校园纯肉H教室第一次| 少妇两个奶头喷出奶水了怎么办 | chinese东北夫妻video| 综合久久伊人| 2017最新伦理伦理片67| 中文字幕 亚洲 有码 在线| 国产精品系列在线一区| 99在线视频免费观看视频| 99久久精品国产交换| 国产午夜精品福利久久| 大胸女晃奶动态图| 国产国语在线播放视频| 国产私拍福利精品视频| 果冻传媒在线播放| 久久机热免费视频| 嫩草影院久久精品| 欧美一道本一区二区三区| 前后灌满白浆护士| 迅雷哥在线观看高清| 亚洲中文久久精品AV无码| 久久这里只有精品国产99| 久久99re6热在线播放| 女教师公车痴汉在线播放|