午夜亚洲国产日本电影一区二区三区,九九久久99综合一区二区,国产一级毛片视频,草莓视频在线观看精品最新

加急見刊

大連海事大學畢業設計(一)

未知

1引言

1.1 設計的目及意義

一般的PC與單片機之間的串行通信,需要單片機采集數據,然后用異步串行通訊方式傳給PC機。相對而言比較的煩瑣,而本文著重用VB具有面向對象的設計方法,友好的用戶來探討在VB環境下來實現PC機與51單片機之間串行通訊的方法。實現起來要簡捷方便。

隨著計算機系統的應用和微機網絡的發展,各種控制設備之間的通信功能越來越顯得重要。尤其是伴隨著單片微型機技術的發展,人們已越來越多地采用單片機來對一些工業控制系統中如溫度、流量和壓力等參數進行檢測和控制。在本系統中,下位機采用一片AT89S51單片機,用于對發送的數據實施控制,為了實現對輸入數據的接收,上位機采用便攜式PC機,上、下位機之間通過MAX232芯片實現串行數據通信。PC 機具有強大的監控和管理功能,而單片機則具有快速及靈活的控制特點,通過PC 機的RS-232 串行接口與外部設備進行通信,是許多測控系統中常用的一種通信解決方案。

本文將論述在VB 環境下PC 機與單片機之間實現串行通訊的軟硬件方案。實現單片機與 PC 機的相互通信。單片機部分由匯編語言實現,PC 機的通訊程序使用Visual Basic 編寫,VB 是Microsoft 公司推出的Windows 應用程序開發工具,因其具有界面友好,編程簡便等優點而受到廣泛的使用,而且Visual Basic 6.0 版本帶有專門實現串行通訊的MSCOMM 控件。因此如何實現PC 機與單片機之間的通訊具有非常重要的現實意義。

利用VB6.0 的事件驅動方式可以很方便地開發數據采集與監控系統,用單臺PC 機可以測量和監控多路控制信號,整控制系統設計方便,對小型測控系統的設計具有很大的實用性。

1.2 設計實現的功能

實現單片機與 PC 機的相互通信。具體要求有以下兩點:

①單片機發固定編好的代碼,在用 VB 編好的界面上接收;

②在 VB 編好的界面上發送數字,在單片機板上的數碼管上顯示出來。

2 硬件設計方案

為了實現PC機與單片機之間的串行通信,我們首先要清楚了解整個系統所采用的原理圖。原理圖就象一根紅線貫穿于整個系統設計,通過此圖我們就能很清楚的看到系統所涉及的內容,然后鑒于此,我們將在以后的章節中依次對所牽涉的內容作詳細的論述。下面對原理圖作一點說明:從MAX232芯片中的兩路發送接收中任選一路作為接口,要注意其發送與接收引腳對應,否則可能對器件或計算機串口造成永久性損壞。如選他T1IN接單片機的發送端TXD,則PC機、的RS—232的接收端RD一定要對應接T1OUT引腳。同時,R1OUT接單片機的接受端RXD引腳,則PC機的RS—232的發送端TD一定要對應接R1IN引腳。

上圖為采用MAX232芯片接口的PC機與51單片機串行通信接口原理圖

2.1 AT89S51單片機

2.1.1 AT89S51單片機簡介

AT89S51 為 ATMEL 所生產的可電氣燒錄清洗的 8051 相容單芯片,是一個低功耗,高性能CMOS 8位單片機,片內含4k Bytes ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統及80C51引腳結構,芯片內集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應用系統提供高性價比的解決方案。

AT89S51具有如下特點:40個引腳,4k Bytes Flash片內程序存儲器, 128 bytes的隨機存取數據存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優先級2層中斷嵌套中斷,2個16位可編程定時計數器,2個全雙工串行通信口,看門狗(WDT)電路,片內時鐘振蕩器。

2.1.2 AT89S51單片機的功能

AT89S51主要功能列舉如下:

1)為一般控制應用的8位單芯片2)晶片內部具有時鐘振蕩器

3)內部程式存儲器(ROM)為 4KB4)內部數據存儲器(RAM)為 128B

5)外部程序存儲器可擴充至 64KB6)外部數據存儲器可擴充至 64KB

7)32 條雙向輸入輸出線,且每條均可以單獨做 I/O 的控制

8)5個中斷向量源9)2組獨立的 16 位定時器

10)1個全多工串行通信端口11)8751 及 8752 單芯片具有數據保密的功能

12)單芯片提供位邏輯運算指令

2.1.3 AT89S51各引腳功能介紹:

VCC:AT89S51 電源正端輸入,接+5V。

VSS:電源地端。

XTAL1:單芯片系統時鐘的反相放大器輸入端。

XTAL2:系統時鐘的反相放大器輸出端。

RESET:AT89S51的重置引腳,高電平動作。

EA/Vpp:存取外部程序代碼,低電平動作。

ALE/PROG:地址鎖存器啟用信號。

PSEN:程序儲存啟用,通常這支腳是接到EPROM的OE腳。

PORT0(P0.0~P0.7):端口0是一個8位寬的開路汲極(Open Drain)雙向輸出入端口,共有8個位,P0.0表示位0,P0.1表示位1,依此類推。其他三個I/O端口(P1、P2、P3)則不具有此電路組態,而是內部有一提升電路,P0在當作I/O用時可以推動8個LS的TTL負載。如果當EA引腳為低電平時(即取用外部程序代碼或數據存儲器),P0就以多工方式提供地址總線(A0~A7)及數據總線(D0~D7)。

PORT2(P2.0~P2.7):端口2是具有內部提升電路的雙向I/O端口,每一個引腳可以推動4個LS的TTL負載,若將端口2的輸出設為高電平時,此端口便能當成輸入端口來使用。P2除了當作一般I/O端口使用外,若是在AT89S51擴充外接程序存儲器或數據存儲器時,也提供地址總線的高字節A8~A15,這個時候P2便不能當作I/O來使用了。

PORT1(P1.0~P1.7):端口1也是具有內部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個LS TTL負載,同樣地若將端口1的輸出設為高電平,便是由此端口來輸入數據。

PORT3(P3.0~P3.7):端口3也具有內部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個TTL負載,同時還多工具有其他的額外特殊功能,包括串行通信、外部中斷控制、計時計數控制及外部數據存儲器內容的讀取或寫入控制等功能。

其引腳分配如下:

P3.0:RXD,串行通信輸入。P3.1:TXD,串行通信輸出。P3.2:INT0,外部中斷0輸入。

P3.3:INT1,外部中斷1輸入。P3.4:T0,計時計數器0輸入。P3.5:T1,計時計數器1輸入。

P3.6:WR:外部數據存儲器的寫入信號。P3.7:RD,外部數據存儲器的讀取信號。

本系統所采用的AT89S51芯片如下圖所示:

2.1.4 AT89S51 ISP

ISP為在線編程接口。ISP在線編程接口為89S51單片機提供了方便的在線編程方法,使用時將ISP下載線一端與PC并口相連接,一端與ISP接口相連,使用ISP下載軟件即可實現MCU在線編程。

下載線插接說明:兩排十針下載口,板圖上都有一個小方框,為1號引角;下載線的凸口為正方向,凸口的右側邊的第一個插孔為1號引角,這一點一定要切記,不然的話程序下載不進去。

本系統中所用AT89S51 ISP原理圖如下示:

AT89S51 ISP

2.2串行通訊

2.2.1串行通訊的概念

串行通訊:一條信息的各位數據被逐位按順序傳送的通訊方式稱為串行通訊。

串行通訊的特點是:數據位傳送,傳送按位順序進行,最少只需一根傳輸線即可完成,成本低但傳送速度慢。串行通訊的距離可以從幾米到幾千米。

分類:根據信息的傳送方向,串行通訊可以進一步分為單工、半雙工和全雙工三種。

RS-232C是目前最常用的串行接口標準,用來實現計算機與計算機之間,計算機與外設之間的數據通信。

RS-232C串行接口總線適用于設備之間的通信距離不大于15米,傳輸速率最高為19.2kb/s的場合。RS-232C標準規定的數據傳輸速率為50、75、100、150、300、600、1200、2400、4800、9600、和19200b/s。RS-232C屬單端信號傳送,存在共地噪聲和不能抑制的共模干擾等問題,因此一般用于短距離通信。

1)RS-232C接口信號

一個完整的RS-232C接口有22根線,采用標準的25芯連接器。

2)RS-232C 典型應用

用RS-232C總線連接系統時,有近程通信方式和遠程通信方式之分。近程通信是指傳輸距離小于15米的通信,這時可以用RS-232C電纜直接連接。15米以上的長距離通信,需要采用調制解調器。

下圖a)是計算機與終端之間利用RS-232C直接通信的最常用的交叉連線圖。圖中“發送數據”與“接收數據”是交叉相連的,使得兩臺設備都能正確地發送和接收。“數據終端變緒”與“數據裝置就緒”兩根線也是交叉相連的,使得兩設備都能檢測出對方是否已經準備好。

在最簡單的全雙工系統中,公用發送數據、接收數據和信號地三根即可。對MCS-51單片機來說,利用RXD(串行數據接收端)線、TXD(串行數據發送端)線以及一根地線,就可以構成符合RS-232C接口標準的全雙工串行通信口。(見圖b)

(a)直接連接

(b)最簡單的RS-232C數據通信連接 3)RS-232C接口電平轉換

RS-232C是早期為促進公用電話網絡進行數據通信而制定的標準,其邏輯電平對地是對稱的,完全與TTL、CMOS邏輯電平不同。

RS-232C采用負邏輯,即:

邏輯1:-5V~-15V。 邏輯0:+5V~+15V。

由于MCS-51采用TTL電平,若用RS-232C標準接口通信必須進行電平轉換。目前RS-232C與TTL電平轉換最常用的集成電路芯片是傳輸線驅動器MC1488傳輸線接收器MC1489。其內部結構和引腳如下圖(c)所示。

MC1488可完成TTL電平到RS-232C的電平轉換,輸入為TTL電平,輸出為RS-232C電平。其內部有3個與非門和1個反相器。采用±12V或±15V電源供電。

MC1489可完成由RS-232C到TTL電平轉換,輸入為RS-232C電平,輸出為TTL電平。其內部有4個反相器,采用+5V電源供電。MC1489中每個反相器都有一個控制端,高電平有效,可作為RS-232C操作的控制端。圖(d)給出了RS-232C接口電路原理圖。

(c)RS-232C電平轉換芯片MC1488和MC1489

(d) RS-232C接口電路

MAX232芯片

MAX232芯片是美信公司專門為電腦的RS-232標準串口設計的接口電路,使用+5v單電源供電。它的內部結構基本可分三個部分;

第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構成。功能是產生+12v和-12v兩個電源,提供給RS-232串口電平的需要。

第二部分是數據轉換通道。由7、8、9、10、11、12、13、14腳構成兩個數據通道。其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數據通道。8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數據通道。TTL/CMOS數據從T1IN、T2IN輸入轉換成RS-232數據從T1OUT、T2OUT送到電腦DP9插頭;DP9插頭的RS-232數據從R1IN、R2IN輸入轉換成TTL/CMOS數據后從R1OUT、R2OUT輸出。

第三部分就是供電。15腳DNG、16腳VCC(+5v)。

2.2.3串行接口

控制串行接口的寄存器有兩個,即特殊功能寄存器PCON和SCON。

1)PCON中的波特率選擇位

PCON是一個特殊功能寄存器(如下圖所示),沒有位尋址功能,字節地址為87H。其中D7位(SMOD)為波特率選擇位。其他位均無意義。復位時的SMOD值為0。可用MOV PCON。#80H或MOV 87H,#80H指令使該位置1。當SMOD=1時,在串行接口方式1、2或3情況下,波特率提高一倍。

D7 D0

PCON SMOD

PCON SMOD

PCON

波特率選擇位| 無定義位 |

2)串行接口控制寄存器 SCON

特殊功能寄存器SCON用于定義串行接口的操作方式和控制它的某些功能。其字節地址為98H。寄存器中各位內容如下:

位D7D6D5D4D3D2 D1 D0

位地址 9F 9E 9D 9C 9B 9A 99 98 SM0 SM1 SM2 REN TB8 RB8 TI RI

位地址

9F

9E

9D

9C

9B

9A

99

98

SM0

SM1

SM2

REN

TB8

RB8

TI

RI

SM0,SM1串行接口操作方式選擇位。兩個選擇位對應于四種狀態,所以串行接口能以四種方式工作。

SM2允許方式2和3的多機通信使能位。

REN允許串行接收位。由軟件置位或清0,使允許接收或禁止接收。

TB8是在方式2和3中要發送的第9位數據可按需要由軟件置位或復位

RB8 是方式2和3中已接收到的第9位數據。

TI 發送中斷標志。

RI 接收中斷標志。

串行接口工作方式

串行接口的操作方式由SM0、SM1定義,編碼和功能如下表所示

串行接口方式選擇

SM0SM0 方式 功能說明 波特率 0 0 0 移位寄存器方式 Fosc/12 0 1 1 8位UART 可變 1 0 2 9位UART Fosc/64或fosc/32 1 1 3 9位UART 可變

SM0SM0

方式

功能說明

波特率

0 0

0

移位寄存器方式

Fosc/12

0 1

1

8位UART

可變

1 0

2

9位UART

Fosc/64或fosc/32

1 1

3

9位UART

可變

2.2.4TMOD介紹

定時器/計數器T0、T1 的方式寄存器TMOD

字節地址為89H。TMOD的格式如下:低4位用來定義T0,高4位用來定義T1D7

D7D6 D5 D4 D3 D2 D1D0

GATE C/T M1 M0 GATE C/T M1 M0

GATE

C/T

M1

M0

GATE

C/T

M1

M0

|

T1 | T0 |

各位的意義如下:

1、 GATE——門控位。

GATE=1時,由外部中斷引腳、和TR0、TR1共同來啟動定時器。當引腳為高電平時,TR0置位啟動定時器T0;當引腳為高電平時,TR1置位,啟動定時T1。

GATE=0時,僅由TR0和TR1置位來啟動定時器T0和T1。

下載