激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

大連海事大學(xué)畢業(yè)設計

時(shí)間:2024-08-13 09:14:28 計算機應用畢業(yè)論文 我要投稿
  • 相關(guān)推薦

大連海事大學(xué)畢業(yè)設計

  1引言

  1.1 設計的目及意義

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

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

  本文將論述在VB 環(huán)境下PC 機與單片機之間實(shí)現串行通訊的軟硬件方案。實(shí)現單片機與 PC 機的相互通信。單片機部分由匯編實(shí)現,PC 機的通訊程序使用Visual Basic 編寫(xiě),VB 是Microsoft 公司推出的Windows 應用程序開(kāi)發(fā)工具,因其具有界面友好,編程簡(jiǎn)便等優(yōu)點(diǎn)而受到廣泛的使用,而且Visual Basic 6.0 版本帶有專(zhuān)門(mén)實(shí)現串行通訊的MSCOMM 控件。因此如何實(shí)現PC 機與單片機之間的通訊具有非常重要的現實(shí)意義。

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

  1.2 設計實(shí)現的功能

  實(shí)現單片機與 PC 機的相互通信。具體要求有以下兩點(diǎn):

 、賳纹瑱C發(fā)固定編好的代碼,在用 VB 編好的界面上接收;

 、谠 VB 編好的界面上發(fā)送數字,在單片機板上的數碼管上顯示出來(lái)。

  2 硬件設計方案

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

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

2.1 AT89S51單片機

2.1.1 AT89S51單片機簡(jiǎn)介

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

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

  2.1.2  AT89S51單片機的功能

AT89S51主要功能列舉如下:

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

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

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

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

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

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

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

2.1.3 AT89S51各引腳功能介紹:

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

VSS:電源地端。

XTAL1:?jiǎn)涡酒到y時(shí)鐘的反相放大器輸入端。

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

 RESET:AT89S51的重置引腳,高電平動(dòng)作。

EA/Vpp:存取外部程序代碼,低電平動(dòng)作。

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

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

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

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

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

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

其引腳分配如下:

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

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

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

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

   

  2.1.4 AT89S51 ISP

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

下載線(xiàn)插接說(shuō)明:兩排十針下載口,板圖上都有一個(gè)小方框,為1號引角;下載線(xiàn)的凸口為正方向,凸口的右側邊的第一個(gè)插孔為1號引角,這一點(diǎn)一定要切記,不然的話(huà)程序下載不進(jìn)去。

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

                         AT89S51 ISP

  2.2串行通訊

  2.2.1串行通訊的概念

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

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

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

  2.2.2 RS-232C 串口通訊原理

  RS-232C是目前最常用的串行接口標準,用來(lái)實(shí)現與計算機之間,計算機與外設之間的數據。

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

  1) RS-232C接口信號

  一個(gè)完整的RS-232C接口有22根線(xiàn),采用標準的25芯連接器。

  2) RS-232C 典型應用

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

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

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

(a)直接連接

(b)最簡(jiǎn)單的RS-232C數據通信連接

  3) RS-232C接口電平轉換

  RS-232C是早期為促進(jìn)公用電話(huà)網(wǎng)絡(luò )進(jìn)行數據而制定的標準,其電平對地是對稱(chēng)的,完全與TTL、CMOS邏輯電平不同。

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

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

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

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

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

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

(d) RS-232C接口電路

MAX232芯片

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

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

  第二部分是數據轉換通道。由7、8、9、10、11、12、13、14腳構成兩個(gè)數據通道。其中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 串行接口

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

  1)PCON中的波特率選擇位

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

            D7                                               D0

 SMOD

波特率選擇位        |                   無(wú)定義位                          |

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

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

              位    D7    D6    D5    D4    D3    D2    D1     D0

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

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

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

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

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

TI   發(fā)送中斷標志。

RI   接收中斷標志。

串行接口工作方式

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

串行接口方式選擇

2.2.4 TMOD介紹

定時(shí)器/計數器T0、T1 的方式寄存器TMOD

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

      D7    D6      D5      D4      D3      D2       D1    D0 

|               T1                 |              T0              |

各位的意義如下:

1、  GATE——門(mén)控位。

GATE=1時(shí),由外部中斷引腳、和TR0、TR1共同來(lái)啟動(dòng)定時(shí)器。當引腳為高電平時(shí),TR0置位啟動(dòng)定時(shí)器T0;當引腳為高電平時(shí),TR1置位,啟動(dòng)定時(shí)T1。  

GATE=0時(shí),僅由TR0和TR1置位來(lái)啟動(dòng)定時(shí)器T0和T1。

2、  C/T——功能選擇位。

C/T=1時(shí),選擇計數功能;

C/T=0時(shí),選擇定時(shí)功能。

T0、T1 的計數、定時(shí)功能是通過(guò)TMOD中的位來(lái)選擇的。

3、  M1、M0——工作方式選擇位。

由于有M1和M0兩位,可以有四種工作方式,如下表所示。

定時(shí)器/計數器的工作方式

  3 串行數據程序設計

  3.1 通信協(xié)議

  本系統串行通信采用異步通信方式。協(xié)議如下:

  1.一幀數據由1位起始位、8位數據位、無(wú)奇偶校驗位、1位停止位共10位組成。

  2.波特率設為9600bps。單片機串行口按方式1工作,波特率由定時(shí)器T1控制,PC機串口波特率通過(guò)VB通訊控件的Settings屬性設置,為保證數據傳送的準確性,兩者的波特率必須一致。

  本次通訊中,我們以一個(gè)測控系統的上位機和下位機之間的通信為背景,給出單片機部分和VB 下的通信程序實(shí)例,系統中單片機負責數據采集、處理和控制,上位機進(jìn)行現場(chǎng)可視化檢測,通信協(xié)議采用異步串行通信方式,通過(guò)RS232 的RTS 信號進(jìn)行收發(fā)轉換,傳輸數據采用二進(jìn)制數據,上位機與下位機之間采用主從式通訊。

  3.2 下位機(單片機)串行通信及程序設計

  平臺介紹及編程方法

  匯編

  匯編語(yǔ)言是針對一類(lèi)(甚至幾類(lèi)),抽象出來(lái)的一種符號語(yǔ)言并把這些符號加以統一規定,使得使用同類(lèi)計算機的人都了解這些符號的意義,這樣,使得用匯編語(yǔ)言編寫(xiě)的程序可以在這一類(lèi)型的任何一臺計算機上使用。這就有了極大的靈活性,當然不同類(lèi)型的計算機的匯編語(yǔ)言也不同。它們都必須由生產(chǎn)廠(chǎng)家提供的匯編語(yǔ)言來(lái)編寫(xiě)。另外.匯編語(yǔ)言還增加了宏指令的功能。匯編語(yǔ)言是計算機衛程控制中最常用的語(yǔ)言。

  匯編語(yǔ)言的主要優(yōu)點(diǎn)就是可以直接控制計算機硬件,可以編寫(xiě)在時(shí)間和空間兩方面更有效的程序。這些優(yōu)點(diǎn)使得匯編語(yǔ)言在程序設計中占有重要的地位。是不可取代的。

  但匯編語(yǔ)言的缺點(diǎn)也是明顯的,它與處理器密切相關(guān),要求程序員熟悉計算機硬件系統,考慮許多細節問(wèn)題,所以程序繁瑣,調試、維護、交流和移植困難。因此,有時(shí)可以采用高級語(yǔ)言和匯編語(yǔ)言混合編程的方怯,互相取長(cháng)補短,更好地解決實(shí)際間題。

  匯編語(yǔ)言生要應用場(chǎng)合有以下幾種:

  l)程序要具有較短的運行時(shí)問(wèn),或者只能占用較小的存儲客量。例如操作系統的核心 程序段,實(shí)時(shí)控制系統的軟件等。

  2)程序與計算機硬件密切相關(guān),程序要直接控制硬件。例如to接口電路的初始化程序段,外部設備的底層驅動(dòng)程序等。

  3)大型軟件需要提高性能、優(yōu)化處理的部分。例如計算機系統頻繁調用的子程序、動(dòng)態(tài)鏈接庫等。

  4)沒(méi)有適合的高級語(yǔ)言的時(shí)候。例如開(kāi)發(fā)最新的處理器程序時(shí)。

  偉福軟件介紹:

  偉福系列仿真器偉福仿真品種多、功能強,特點(diǎn)如下:

  1)主機+POD組合,通過(guò)更換POD,可以對各種CPU進(jìn)行仿真。

  2) 雙平臺:DOS版本,WINDOWS版本。其中WINDOWS版本功能強大。

  3) 雙工作模式:a.軟件模擬仿真(不要仿真器也能模擬仿真)。 硬件仿真。

  4) 雙CPU結構,100% 不占用戶(hù)資源。

  5) 雙集成環(huán)境:編輯、編譯、下載、調試全部集中在一個(gè)環(huán)境下。多種仿真器,多類(lèi)CPU仿真全部集成在一個(gè)環(huán)境下?煞抡51系列,196系列,PIC系列,飛利蒲公司的552、LPC764、DALLAS320,華邦438等51增強型CPU。為了跟上形勢,現在很多工程師需要面對和掌握不同和項目器、編輯器、編譯器。偉福 WINDOWS調試軟件為您提供了一個(gè)全集成環(huán)境,統一的界面,包含一個(gè)項目管理器,一個(gè)功能強大的編輯器,匯編Make、Build和調試工具并提供一個(gè)與第三方編譯器的接口。

  6) 強大的分析儀綜合調試功能:隨著(zhù)科學(xué)技術(shù)的發(fā)展,單片機通訊方面的運用越來(lái)越多。有了邏輯儀,用它可以分別或者同時(shí)對發(fā)送方、接收方的輸入或者輸出波形進(jìn)行記錄、存儲、對比、測量等各種直觀(guān)的分析,可以將實(shí)際輸出通訊報文的波形與源程序相比較,可立即發(fā)現問(wèn)題所在。從而極大地方便了調試。

  7) 強大的追蹤器功能:追蹤功能以總線(xiàn)周期為單位,實(shí)時(shí)記錄仿真過(guò)程中CPU發(fā)生的總線(xiàn)事件,其觸發(fā)條件方式同邏輯分析儀。追蹤窗口在仿真停止時(shí)可收集顯示追蹤的CPU指令記憶信息,可以以總線(xiàn)反匯編碼模式、源程序模式對應顯示追蹤結果。屏幕窗口顯示波形圖最多追蹤記憶指令32K并通過(guò)仿真器的斷點(diǎn)、單步、全速運行或各種條件組合斷點(diǎn)來(lái)完成追蹤功能?偩(xiàn)跟蹤可以跟蹤程序的運行軌跡?梢攒浖\行時(shí)間。

  編程方法

  本系統中傳輸協(xié)議為9600,8,N,1,即波特率為9600b/s,傳送8個(gè)數據位。沒(méi)有校驗位,一個(gè)停止位。在PC機中也設置為相同的協(xié)議。1)控制寄存器SCON的設置為:SM0、SM1為0、1,即為串行工作方式1,REN為1,即允許接收。這樣SCON中的值是0X50H,(使用匯編語(yǔ)言是MOV SCON,#50H。)2)TMOD寄存器的設置為:使用定時(shí)器1。M0=0,M1=1,工作于方式2,自動(dòng)重新載入計數值。TMOD=0X20H。(使用匯編語(yǔ)言是MOV TMOD,#20H)3) 波特率的設置:本系統上的工作時(shí)鐘為11.0592MHz, 波特率為9600b/s,對TH1的重載入計數器值由下式計算可得:TH1=256-11059200/384*9600=253=FDH TH1=0XFDH(使用匯編語(yǔ)言是MOV TH1,#0FDH)。

 流程圖如右:


根據以上設置匯編編寫(xiě)串行端口的初始化程序:

接收程序:

 MAIN:   MOV    TMOD,#20H ;

MOV    TH1,#0FDH;

MOV    TL1,#0FDH;

SETB   TR1;

MOV    SCON,#50H;

LOOP:   JBC    RI,DISP

SJMP    LOOP

DISP:   MOV    A,SBUF

MOV    DPTR,#TAB

MOVC  A,@A+DPTR

MOV   P2,A

SJMP   LOOP

TAB:   DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

END

發(fā)送程序:

          ORG 0000H

START:   MOV    TMOD,#20H;

MOV     TL1,#0FDH

MOV     TH1,#0FDH;

SETB     TR1 

MOV     SCON,#40H  

MOV     R0,#20H

MOV     R7,#32 

MOV     A,#40  

LOOP1:  

MOV     @R0,A

INC      A

INC      R0

DJNZ     R7,LOOP1

MOV     R0,#20H

MOV     R7,#32

LOOP:    MOV     A,@R0

ACALL   YANSHI

ACALL   SPOUT

INC      R0

DJNZ     R7,LOOP 

SJMP     START

SPOUT:  

MOV     SBUF,A

JNB      TI,$

CLR      TI

RET

YANSHI: MOV      R6,#250

D1:      MOV      R5,#250

DJNZ     R5,$

DJNZ     R6,D1

RET

END 

  3.3上位機(PC機)串行及程序設計

  3.3.1 平臺介紹及編程方法

  VB語(yǔ)言簡(jiǎn)介

  在本系統中PC機采用Visual Basic(簡(jiǎn)稱(chēng)VB)編程。VB已成為WINDOWS系統開(kāi)發(fā)的主要語(yǔ)言,以其高效、簡(jiǎn)單易學(xué)及功能強大的特點(diǎn)越來(lái)越為廣大程序設計人員及用戶(hù)所青睞。VB支持面向對象的程序設計,具有結構化的事件驅動(dòng)編程模式并可以使用無(wú)限擴增的控件,而且可以十分簡(jiǎn)便地作出良好的人機界面。

  用VB6.0開(kāi)發(fā)串行通信程序有兩種法,一種是利用Windows的API函數;另一種是采用VB6.0的通信控件MSComm。利用API函數編寫(xiě)串行通信程序較為復雜,需要掌握大量的通信知識,其優(yōu)點(diǎn)是可實(shí)現的功能更豐富、應用面更廣泛,適合于編寫(xiě)較為復雜的低層次通信程序。而VB6.0的MSComm通信控件提供了標準的事件處理函數、事件、方法,并通過(guò)控件屬性對串口參數進(jìn)行設置,比較容易地解決了串口通信問(wèn)題。該控件可設置串行通信的數據發(fā)送和接收,對串口狀態(tài)及串口通信的信息格式和協(xié)議進(jìn)行設置。這是一個(gè)標準的十位串口通信,包括8位標準數據和數據的起始位和停止位。在發(fā)送或接收數據過(guò)程中觸發(fā)OnComm事件,通過(guò)編程訪(fǎng)問(wèn) CommEvent屬性了解通信事件的類(lèi)型,分別進(jìn)行各自的處理。每個(gè)通信控件對應一個(gè)串口,可以設計多個(gè)通信控件來(lái)訪(fǎng)問(wèn)多個(gè)通信口。

PC機程序設計流程圖如下示


                            

                                                  NO


                                     YES

                                           

                                  

                                              

                                                            NO


                                       YES

                                      

                                               

                                         

 


  3.3.2 VB6.0的控件及通信方式

    MSComm通訊控件簡(jiǎn)介

MSComm是VB6.0提供的ActiveX控件,使用前需將該控件添加到VB工具   欄。MSComm控件串口具有完善的串口數據的發(fā)送和接收功能。通過(guò)此控件,PC機可以利用串行口與其它設備實(shí)現輕松連接,簡(jiǎn)單高效地實(shí)現設備之間的通訊。此控件的事件響應有兩種處理方式,事件驅動(dòng)方式:由MSComm控件的OnComm事件捕獲并處理通訊錯誤及事件;查詢(xún)方式:通過(guò)檢查CommEvent屬性的值來(lái)判斷事件和錯誤。

1)MSComm控件的主要屬性和方法

a.    CommPort:設置或返回串行端口號,其取值范圍為1—99,缺省為1

b.    Setting: 設置或返回串行端口的波特率、奇偶校驗位、數據位數、停位。如:MSComm.Setting="9600, n, 8, 1”。

c.    PortOpen:打開(kāi)或關(guān)閉串行端口。

d.    RThreshold:該屬性為一閥值,它確定當接收緩沖區內字節個(gè)數達到或超過(guò)該值后就產(chǎn)生MSComml--OnComm事件。

e.    Input:從接收緩沖區移走一串字符。

f.    Output:向發(fā)送緩沖區傳送一字符串。

2)CommEvent屬性 :

如果在通訊過(guò)程中發(fā)生錯誤或事件,就會(huì )引發(fā)OnComm事件并由CommEvent   屬性代碼反映錯誤類(lèi)型,可根據該屬性值來(lái)執行不同的程序操作或數據處理。以下是部分屬性常數值及其含義:

a.    ComEvSend:其值為1,發(fā)送緩沖區的內容少于SThreshold指定的值。

b.    ComEvReceive:其值為2,接收緩沖區內字符數達到RThreshold值,該事件在緩沖區中數據被移走前將持續產(chǎn)生。

c.    ComEventRxParity:其值為1009,奇偶校驗。

d.    ComEvEOF:其值為7,接收數據中出現文件結束字符。

本系統采用事件驅動(dòng)方式進(jìn)行串口通信設計,下圖2為上位機通信界面,設計了2個(gè)命令按扭,分別為發(fā)送、清空數據;兩個(gè)文本框,Text1用于輸入需從下位機讀取的數,Text2用于顯示下位機發(fā)送來(lái)的數據;3個(gè)Frame控件,一個(gè)Label控件,當然還需要一個(gè)MSComm控件。

MSComm控件屬性設置如圖1示:

                                              

 

(圖2)          

 下面是MSComm控件的初始化程序、部分數據發(fā)送和接受程序

  4調試與結論

  該系統目前已調試成功,完成了PC機與51單片機之間的串行。并且實(shí)現了下列功能:1)在VB界面上發(fā)送任一數字在51單片機的數碼管上都能成功的接收 2)同樣通過(guò)向51單片機內寫(xiě)入的程序,在VB界面上可以接收到相對應的內容且運行良好。

調試過(guò)程如下:

硬件方面:

  該系統的硬件調試主要是排查單片機印刷電路板的問(wèn)題和連接上的一些問(wèn)題。在該系統中,首先通過(guò)了仔細地推敲系統原理,確認無(wú)誤;其次對照設計圖紙查印制電路板,看是否有粘接等工藝現象;最后,檢查外圍連接是否有誤,通過(guò)這幾個(gè)方面的反復調試,可確保電路板的無(wú)誤性。

  在本系統的硬件調試過(guò)程中,出現了下列兩種情況

  1)電壓不穩定而導致程序無(wú)法寫(xiě)入的情況,使電壓穩定的方法是改用新的電池,或者是再次設計電源方案,在這里是用電源接通教學(xué)實(shí)驗板,然后再把教學(xué)實(shí)驗板與本系統相    連接,這樣,就可以得到穩定的電壓了。

  2)還出現的一個(gè)問(wèn)題是數碼管不顯示,檢查后是焊接上出現了一點(diǎn)的失誤。

  軟件方面:

  本系統在軟件調試方面也沒(méi)有規律可循,調試時(shí)更多的是憑經(jīng)驗。軟件調試的主要任務(wù)是排查錯誤。通過(guò)在Wave E2000編譯器下調試程序,有兩種錯誤,一種錯誤,也就是語(yǔ)法錯誤,是很容易被發(fā)現的,另一種是功能錯誤,是指在沒(méi)有語(yǔ)法錯誤的基礎上,由于設計思想或算法的問(wèn)題導致不能實(shí)現軟件功能的一種錯誤。調試過(guò)程中出現的問(wèn)題主要有以下四個(gè)方面:

  1)用其它串口調試軟件能夠很好的實(shí)現兩者之間的串行通信,成功的接收和發(fā)送數據,但使用我們的VB程序卻不能實(shí)現,要么只能實(shí)現接收功能,要么只能實(shí)現發(fā)送功能。之后通過(guò)對VB程序做多次的改動(dòng)與測試才達到理想的結果。

  2)在VB界面上發(fā)送的數據與單片機的數碼管上顯示的數字不相符,這個(gè)問(wèn)題是我們匯編程序的問(wèn)題,由于匯編符號的繁多加上我們的粗心在輸入代碼的過(guò)程中難免出現一些看不見(jiàn)的問(wèn)題,造成調試過(guò)程中出現意外。借此我想提醒大家的是搞設計搞研究必須做到細心,要有一顆敬業(yè)的心對待我們接受的任務(wù),有耐心面臨出現的困難。

  3)由于要實(shí)現上下位機的串行通信,所以?xún)烧咧g的波特率是否一致也是一個(gè)不容忽視的問(wèn)題,在開(kāi)始我并沒(méi)有太注意這個(gè)方面的情況,到各方面的準備工作都做好要進(jìn)行調試的時(shí)候,才發(fā)現有個(gè)二者波特率設置是否相同將影響到整個(gè)通信過(guò)程,我趕緊作了修改才免遭一次調試失敗。

  4)還有最后一點(diǎn)注意的地方是,利用MSComm控件比較方便地開(kāi)發(fā)串行通信程序,實(shí)現串行通訊原理已經(jīng)得到實(shí)驗結果驗證,考慮到將來(lái)對系統實(shí)時(shí)性的要求,采用了MSComm控件的查詢(xún)處理機制,避免了中斷處理機制的不穩定和不連續性,而且還可以很方便地控制多個(gè)串口,只需插入多個(gè)MSComm控件,并為每個(gè)MSComm控件編寫(xiě)OnComm()函數。但是我們也清楚的體會(huì )到MSComm控件在VB中的使用較為復雜。這一點(diǎn)是我們以后在運用中需要加強的地方。

  伴隨著(zhù)單片微型機技術(shù)的發(fā)展,人們已越來(lái)越多地采用單片機來(lái)對一些控制系統中如溫度、流量和壓力等參數進(jìn)行檢測和控制。希望通過(guò)大家的共同努力能在PC機與單片機這方面取得新的成績(jì)有突出的表現,能夠很好的將學(xué)到知識運用到實(shí)際生活中,比如上面提到的利用單片機實(shí)現對溫度的實(shí)時(shí)檢測與控制已經(jīng)得到廣泛的應用。另外我們還可以在單片機的接口上再加接顯示器,這樣就更能方便的對系統進(jìn)行操作與控制。

  通過(guò)這次畢業(yè)設計,我深刻體會(huì )到專(zhuān)業(yè)知識、專(zhuān)業(yè)技能分析和解決問(wèn)題的能力在實(shí)際生活中是多么的重要,在完成設計任務(wù)的同時(shí)我這些方面的能力有了一個(gè)全面的提高和鍛煉。具體表現在對單片機與PC機的串行通信的基本原理、單片機應用系統開(kāi)發(fā)過(guò)程,以及在常用編程設計思路技巧(匯編語(yǔ)言與VB)的掌握方面都向前邁了一大步,為日后使我能成為合格的應用型人才打下了良好的基礎。

  采用本系統實(shí)現PC機與單片機串行通信與一般其它系統的比較:一般的PC機與單片機之間的串行通信,需要單片機采集數據,然后用異步串行通訊方式傳給PC機。相對而言通訊速率不是很理想,在一些要求通訊傳輸速率比較快的地方,普通的PC機與單片機之間的串行通信顯然是不能滿(mǎn)足其要求的。利用VB6.0 的事件驅動(dòng)方式可以很方便地開(kāi)發(fā)數據采集與監控系統,用單臺PC 機可以測量和監控多路控制信號,整控制系統設計方便,對小型測控系統的設計具有很大的實(shí)用性。且傳輸數據的速率要比普通的串行通信要快些。

  對于目前廣泛應用的Windows下實(shí)現PC機與單片機之間的通信問(wèn)題,希望大家能提出寶貴的意見(jiàn)。

參考文獻

[1]蔡美琴等.MCS-51系列單片機系統及其應用(第二版).高等出版社,2004.

[2]楊毓,李明.Visual Basic6.0實(shí)用開(kāi)發(fā)教程[M].成都:科技大學(xué)出版社,2001.

[3]劉新民,蔡瓊等.VB6.0程序設計.北京:清華大學(xué)大學(xué)出版社,2004.

[4]李華.單片機通用接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1999

[5]魏慶福,姚亦鳴,等STD總線(xiàn)工業(yè)控制機的設計與應用[M].北京:科學(xué)出版社,1992

[6]何立民,單片機應用系統設計.北京:航空航天大學(xué)出版社,1992

[7]美Jan Axelson 著(zhù),串行端口大全,精英科技譯,2001.5四

[8]劉瑞新等. Visual Basic程序設計教程,北京:工業(yè)出版社, 2002

[9]傅揚烈 單片機原理與應用教程,電子工業(yè)出版社, 2002.1

[10]余錫存 曹?chē)A.單片機原理及接口技術(shù)[M].陜西:西安電子科技大學(xué)出版社,2000.7

[11]David Jung等著(zhù).前導工作室譯. Visual Basic6.0開(kāi)發(fā)人員參考手冊. 北京:機械工業(yè)出版社, 2000

【大連海事大學(xué)畢業(yè)設計】相關(guān)文章:

論海事的法律沖突03-25

大學(xué)生畢業(yè)設計開(kāi)題報告范文03-27

海事審判實(shí)體正義的程序保障初探03-19

我國海事審判制度的改革與完善03-18

淺析我國海事訴訟推定過(guò)錯制度03-24

大學(xué)生畢業(yè)設計開(kāi)題報告怎么寫(xiě)02-23

大學(xué)生畢業(yè)設計與就業(yè)之間的矛盾分析03-02

XX大學(xué)畢業(yè)設計(論文)管理規定開(kāi)題報告03-22

蘭州交通大學(xué)畢業(yè)設計(論文)規范要求02-27

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频