版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 智能儀表綜合訓(xùn)練課程設(shè)計(jì)報(bào)告</p><p><b> 題 目:</b></p><p><b> 學(xué)生姓名:</b></p><p><b> 學(xué) 號(hào):</b></p><p> 專(zhuān) 業(yè):測(cè)控技術(shù)與儀器</p>&
2、lt;p><b> 班 級(jí):</b></p><p><b> 指導(dǎo)教師:</b></p><p><b> 目 錄</b></p><p> 1.1 設(shè)計(jì)意義2</p><p> 1.2 設(shè)計(jì)目的3</p><p> 1.
3、3 設(shè)計(jì)內(nèi)容3</p><p> 2.1 功能的實(shí)現(xiàn)3</p><p> 2.2 方案論證3</p><p> 2.2.1 單片機(jī)的選擇4</p><p> 2.2.2 A/D模數(shù)轉(zhuǎn)換器選擇4</p><p> 2.2.3 串行口的選擇4</p><p> 2.2.4 顯
4、示單元選擇4</p><p> 3.1 硬件系統(tǒng)原理5</p><p> 3.2 電路設(shè)計(jì)6</p><p> 3.2.1 單片機(jī)選型6</p><p> 3.2.2 模數(shù)轉(zhuǎn)換電路6</p><p> 3.2.3 顯示電路7</p><p> 3.2.4 串口電路7&l
5、t;/p><p> 3.2.5 晶振電路8</p><p> 3.2.6 硬件原理圖仿真9</p><p> 4.1 Keil4簡(jiǎn)介9</p><p> 4.2 程序設(shè)計(jì)9</p><p> 4.2.1主程序設(shè)計(jì)10</p><p> 4.2.2 A/D轉(zhuǎn)換程序設(shè)計(jì)10<
6、;/p><p> 4.2.3 LCD顯示程序設(shè)計(jì)10</p><p> 5.1 程序調(diào)試11</p><p> 5.1.1 硬件調(diào)試11</p><p> 5.1.2 軟件調(diào)試11</p><p> 5.2 程序下載11</p><p><b> 5.3 總結(jié)12&
7、lt;/b></p><p><b> 第一章 概述</b></p><p><b> 1.1 設(shè)計(jì)意義</b></p><p> 隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展和普及,數(shù)據(jù)采集系統(tǒng)也迅速地得到應(yīng)用。在生產(chǎn)過(guò)程中,應(yīng)用這一系統(tǒng)可對(duì)生產(chǎn)現(xiàn)場(chǎng)的工藝參數(shù)進(jìn)行采集,監(jiān)視和記錄,為提高產(chǎn)品質(zhì)量,降低成本提供信息和手段。在科
8、學(xué)研究中,應(yīng)用數(shù)據(jù)采集系統(tǒng)可獲得大量的動(dòng)態(tài)信息,是研究瞬間物理過(guò)程的有力工具,也是獲取科學(xué)奧秘的重要手段之一??傊?,不論在哪個(gè)應(yīng)用領(lǐng)域中,數(shù)據(jù)采集與處理越及時(shí),工作效率就越高,取得的經(jīng)濟(jì)效益也越高。</p><p> 電子計(jì)算機(jī)的發(fā)展對(duì)通信起了巨大的推動(dòng)作用.計(jì)算機(jī)和通信緊密結(jié)合可以構(gòu)成靈活多樣的通信控制系統(tǒng)也可以構(gòu)成強(qiáng)有力的信息處理系統(tǒng),這樣對(duì)社會(huì)的發(fā)展產(chǎn)生深刻的影響.數(shù)據(jù)通信是電子計(jì)算機(jī)廣泛應(yīng)用的必然產(chǎn)物.
9、計(jì)算機(jī)與它的終端之間需要數(shù)據(jù)通信,計(jì)算機(jī)與計(jì)算機(jī)之間更需要數(shù)據(jù)通信.此處在遙測(cè),遙感,雷達(dá),自動(dòng)控制等系統(tǒng)中都要用到計(jì)算機(jī),因而都需要數(shù)據(jù)通信. </p><p> 數(shù)據(jù)采集系統(tǒng),從嚴(yán)格的意義上來(lái)說(shuō),應(yīng)該是用計(jì)算機(jī)控制的多路數(shù)據(jù)自動(dòng)檢測(cè)或巡回檢測(cè),并且能夠?qū)?shù)據(jù)實(shí)行存儲(chǔ)、處理、分析計(jì)算以及檢測(cè)的數(shù)據(jù)中提取可用的信息,供顯示、記錄、打印或描繪的系統(tǒng)。 數(shù)據(jù)采集系統(tǒng)一般由數(shù)據(jù)輸入系統(tǒng),數(shù)據(jù)存儲(chǔ)與
10、管理,數(shù)據(jù)處理,數(shù)據(jù)輸出及顯示這四個(gè)部分組成。輸入通道要實(shí)現(xiàn)對(duì)被測(cè)對(duì)象的檢測(cè),采樣和信號(hào)轉(zhuǎn)換工作。數(shù)據(jù)存儲(chǔ)與管理要用存儲(chǔ)器把采集到的數(shù)據(jù)存儲(chǔ)起來(lái),建立相應(yīng)的數(shù)據(jù)庫(kù),并進(jìn)行管理和調(diào)用。數(shù)據(jù)處理就是從采集到的原始數(shù)據(jù)中,刪除有關(guān)干擾噪聲,無(wú)關(guān)信息和必要的信息,提取出反映被測(cè)對(duì)象特征的重要信息。另外,就是對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,以便于檢索;或者把數(shù)據(jù)恢復(fù)成原來(lái)的物理量形式,以可輸出的形態(tài)在輸出設(shè)備上輸出,例如打印,顯示,繪圖等。數(shù)據(jù)輸出及顯示就是
11、把數(shù)據(jù)以適當(dāng)?shù)男问竭M(jìn)行輸出和顯示。</p><p> 數(shù)據(jù)采集對(duì)可調(diào)電位器的模擬信號(hào)進(jìn)行測(cè)量和處理,以微型計(jì)算機(jī)技術(shù)為基礎(chǔ)而形成的一門(mén)綜合應(yīng)用技術(shù)。數(shù)據(jù)采集也是從一個(gè)或多個(gè)信號(hào)獲取對(duì)象信息的過(guò)程。隨著微型計(jì)算機(jī)技術(shù)的飛速發(fā)展及普及,數(shù)據(jù)采集檢測(cè)已成為日益重要的檢測(cè)技術(shù),廣泛應(yīng)用與工農(nóng)也等需要同時(shí)檢測(cè)溫度、濕度和壓力的場(chǎng)合。數(shù)據(jù)采集是工業(yè)控制等系統(tǒng)中的重要環(huán)節(jié),通常采用一些功能相對(duì)獨(dú)立的單片機(jī)系統(tǒng)來(lái)實(shí)現(xiàn),作為測(cè)控
12、系統(tǒng)不可或缺的部分,數(shù)據(jù)采集的性能特點(diǎn)直接影響到整個(gè)系統(tǒng)。</p><p><b> 1.2 設(shè)計(jì)目的</b></p><p> 本設(shè)計(jì)的主要目的是實(shí)現(xiàn)單片機(jī)的數(shù)據(jù)采集,顯示功能及上位機(jī)通訊。為實(shí)現(xiàn)這些功能,進(jìn)行了有關(guān)的硬件電路原理圖設(shè)計(jì)與軟件編程設(shè)計(jì)。硬件電路設(shè)計(jì)中,運(yùn)用PROTEL99SE,在已給實(shí)驗(yàn)板和實(shí)驗(yàn)原理圖的基礎(chǔ)上,選擇實(shí)驗(yàn)板上所用于本設(shè)計(jì)的器件,并進(jìn)
13、行了涉及硬件原理圖的設(shè)計(jì)以及實(shí)驗(yàn)的硬件連接。軟件編程設(shè)計(jì)中,運(yùn)用KEIL4編程環(huán)境,對(duì)設(shè)計(jì)要實(shí)現(xiàn)的功能進(jìn)行編程,整體程序可分為一個(gè)主程序和多個(gè)子程序,子程序有基于ADC0832的A/D轉(zhuǎn)換程序、基于AT89C51的標(biāo)度轉(zhuǎn)換程序和基于LCD1602的液晶顯示程序。通過(guò)四個(gè)人完成的設(shè)計(jì),讓我們對(duì)數(shù)據(jù)采集有了清晰的認(rèn)識(shí),對(duì)單片機(jī)數(shù)據(jù)采集及處理數(shù)據(jù)的原理有了更深的了解,達(dá)到學(xué)習(xí)和實(shí)踐相結(jié)合,學(xué)以致用的目的。</p><p&g
14、t;<b> 1.3 設(shè)計(jì)內(nèi)容</b></p><p> 本設(shè)計(jì)運(yùn)用單片機(jī)STC89C52進(jìn)行數(shù)據(jù)采集的設(shè)計(jì),讓電壓模擬量(0-5V)通過(guò)模擬量/數(shù)字量轉(zhuǎn)換芯片(ADC0832),送入單片機(jī),進(jìn)行數(shù)據(jù)處理之后,通過(guò)移位寄存器(74LS164),并在LCD1602上顯示。實(shí)驗(yàn)的模擬量數(shù)據(jù)是通過(guò)一個(gè)可調(diào)電位器輸出0-5V的模擬量,顯示的是溫度。</p><p> 第
15、二章 總體方案設(shè)計(jì)</p><p><b> 2.1 功能的實(shí)現(xiàn)</b></p><p> 本系統(tǒng)采用A/D轉(zhuǎn)換器送入模擬信號(hào),而單片機(jī)扶著處理接受過(guò)來(lái)的數(shù)字量的處理和顯示電腦和單片機(jī)之間用RS-232進(jìn)行通信。這樣就可以在計(jì)算機(jī)上編程序,然后下載到單片機(jī)內(nèi)部進(jìn)行處理。系統(tǒng)框圖如圖2.1所示。</p><p><b> 圖2
16、.1系統(tǒng)框圖</b></p><p><b> 2.2 方案論證</b></p><p> 2.2.1 單片機(jī)的選擇</p><p> 單片機(jī)是一種面向大規(guī)模的集成電路芯片,是微型計(jì)算機(jī)中的一個(gè)重要的分支。此系統(tǒng)是有CPU、隨機(jī)存取數(shù)據(jù)存儲(chǔ)器、只讀程序存儲(chǔ)器。輸入輸出電路(I/O口),還包括串行通信口、顯示驅(qū)動(dòng)電路(LCD驅(qū)動(dòng)
17、電路)、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器及A/D轉(zhuǎn)換器等集成到一個(gè)單塊芯片上,構(gòu)成一個(gè)最小但完善的計(jì)算機(jī)系統(tǒng)。單片機(jī)要使用特定的組譯和編譯軟件編譯程序,再用KEIL4把程序下載到單片機(jī)內(nèi)部。</p><p> 而本設(shè)計(jì)選用的是STC89C42。</p><p> 2.2.2 A/D模數(shù)轉(zhuǎn)換器選擇</p><p> A/D轉(zhuǎn)換器是將模擬量轉(zhuǎn)換成數(shù)字量的器件,A/D轉(zhuǎn)
18、換器的種類(lèi)很多,就位數(shù)來(lái)說(shuō),可以分為8位、10位、12位和16位等。位數(shù)越高其分辨率就越高,價(jià)格就越貴。A/D轉(zhuǎn)換器的型號(hào)很多,而其轉(zhuǎn)換時(shí)間和轉(zhuǎn)換誤差也各不相同。</p><p> ?、?逐漸逼近式A/D轉(zhuǎn)換器:它是一種速度快、精度較高、成本較低的直接式轉(zhuǎn)換器,其轉(zhuǎn)換時(shí)間在幾微秒到幾百微秒之間。 </p><p> ⑵ 雙積分A/D轉(zhuǎn)換器:它是一種間接式的A/D轉(zhuǎn)換器,優(yōu)點(diǎn)是抗
19、干擾能力強(qiáng),精度比較高,缺點(diǎn)是數(shù)度很慢,適用于對(duì)轉(zhuǎn)換數(shù)度要求不高的系統(tǒng)。 </p><p> (3)并行式A/D轉(zhuǎn)換器:它又被稱為flash(快速)型,它的轉(zhuǎn)換數(shù)度很高,但她采用了很多個(gè)比較器,而n位的轉(zhuǎn)換就需要2n-1個(gè)比較器,因此電路規(guī)模也極大,價(jià)格也很貴,只適用于視頻A/D轉(zhuǎn)換器等數(shù)度特別高的領(lǐng)域。 </p><p> 鑒于上面三種方案,在價(jià)格、轉(zhuǎn)換速度等多種
20、標(biāo)準(zhǔn)下,在本設(shè)計(jì)選用的是逐漸逼近式A/D轉(zhuǎn)換器——ADC0832。</p><p> 2.2.3 串行口的選擇</p><p> 該串行口選用了標(biāo)準(zhǔn)RS-232接口,常用的芯片是MAX232,MAX232的優(yōu)點(diǎn)是:</p><p> ?、?一片芯片可以完成發(fā)送和接受功能</p><p><b> 單一電源+5V供電</b
21、></p><p> 它的電路設(shè)計(jì)與連接比較簡(jiǎn)單而且功能齊全</p><p> 2.2.4 顯示單元選擇</p><p> 液晶顯示模塊是一種專(zhuān)門(mén)用于顯示字母、數(shù)字、符號(hào)等點(diǎn)陣式LCD,目前常用16*1,16*2,20*2和40*2行等的模塊。1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用
22、中并無(wú)差別。本實(shí)驗(yàn)采用的是2行16字的LCD1602液晶顯示模塊。</p><p> 2.2.5 按鍵的選擇</p><p> 鍵盤(pán)是一種常見(jiàn)的輸入設(shè)備,用戶可以向計(jì)算機(jī)輸入數(shù)據(jù)或命令。根據(jù)按鍵的識(shí)別方法分類(lèi),有編碼鍵盤(pán)和非編碼鍵盤(pán)兩種。通過(guò)硬件識(shí)別的鍵盤(pán)稱編碼鍵盤(pán);通過(guò)軟件識(shí)別的鍵盤(pán)稱為非編碼鍵盤(pán)。非編碼鍵盤(pán)有兩種接口方法:一種是獨(dú)立按鍵接口;另一種是矩陣式按鍵接口。</p&g
23、t;<p> 在單片機(jī)中,如果所需的按鍵較少,可采用獨(dú)立式鍵盤(pán)。每只按鍵接單片機(jī)的一條I/O線,通過(guò)對(duì)線的查詢,即可識(shí)別各按鍵的狀態(tài)。如圖3-7所示。4只按鍵分別接單片機(jī)的P1.4~P1.7I/O線上。無(wú)按鍵按下時(shí),P1.4~P1.7線上均輸入高電平。當(dāng)某按鍵按下時(shí),與其相連的I/O線將得到低電平輸入。</p><p> 本設(shè)計(jì)采用的是獨(dú)立鍵盤(pán)。</p><p><
24、b> 獨(dú)立按鍵接口</b></p><p> 第三章 硬件設(shè)計(jì)與仿真</p><p> 3.1 硬件系統(tǒng)原理</p><p> 該系統(tǒng)主要原理如下圖所示,它有STC89C52、RS232、LCD1602等組成。</p><p> 圖3.1 硬件原理圖</p><p><b>
25、 3.2 電路設(shè)計(jì)</b></p><p> 3.2.1 單片機(jī)選型</p><p> 該系統(tǒng)所用單片機(jī)型號(hào)為STC89C52,該芯片由8位通用CPU、程序存儲(chǔ)器、隨機(jī)讀寫(xiě)數(shù)據(jù)存儲(chǔ)器及常用外設(shè)電路組成。在芯片中,P0、P2口可作為一般的I/O口使用,當(dāng)需要再擴(kuò)展外部存儲(chǔ)器時(shí),P0口將作為低8位地址總線或數(shù)據(jù)總線使用,P2口作為高8位地址總線使用。由于定時(shí)/計(jì)數(shù)器、串行通信、
26、中斷控制器等外圍電路集成在CPU芯片內(nèi),因而STC89C52的芯片內(nèi)部也包含了這些外圍電路的控制寄存器、狀態(tài)寄存器以及數(shù)據(jù)輸入/輸出寄存器,這些外圍電路的接口寄存器構(gòu)成了STC89C52的特殊功能寄存器。</p><p> 在本設(shè)計(jì)中,ADC0832的片選端接單片機(jī)的P1.0口,時(shí)鐘脈沖端接單片機(jī)的P1.7端。其他端則是數(shù)據(jù)輸入和輸出端。</p><p> 3.2.1 單片機(jī)芯片<
27、;/p><p> 3.2.2 模數(shù)轉(zhuǎn)換電路</p><p> ADC0832的輸入通道是CH0和CH1,本設(shè)計(jì)模擬信號(hào)從CH0通道送入,所以CH0和CH1短接在一起連到電位器;CS為片選使能,低電平芯片使能,連接STC89C52的P1.0;CLK芯片時(shí)鐘輸入,DI數(shù)據(jù)信號(hào)輸入端,DO數(shù)據(jù)信號(hào)輸出端,但由于DO端和DI端在通信時(shí)并未同時(shí)有效并與單片機(jī)的接口是雙向的,所以電路設(shè)計(jì)時(shí)將DO和DI
28、并聯(lián)在一根數(shù)據(jù)線上使用。</p><p> 模數(shù)轉(zhuǎn)換電路如下圖所示:</p><p> 3.2.2 模數(shù)轉(zhuǎn)換電路</p><p> 3.2.3 顯示電路</p><p> 因?yàn)橐壕Р牧媳旧聿⒉话l(fā)光,所以在顯示屏兩邊都設(shè)有作為光源的燈管,同時(shí)在液晶顯示屏背面有一塊背光板(或稱勻光板)和反光膜,背光板是由熒光物質(zhì)組成的,可以發(fā)射光線,其作
29、用主要是提供均勻的背景光源。在這里,背光板發(fā)出的光線在穿過(guò)第一層偏振過(guò)濾層(也就是上文中提到的夾層)之后進(jìn)入包含成千上萬(wàn)水晶液滴的液晶層,液晶層中的水晶液滴都被包含在細(xì)小的單元格結(jié)構(gòu)中,一個(gè)或多個(gè)單元格構(gòu)成屏幕上的一個(gè)像素,而這些像素可以是亮的,也可以是不亮的,大量排列整齊的像素中亮與不亮便形成了單色的圖像。</p><p> 本設(shè)計(jì)采用的是LCD1602液晶顯示屏。原理圖如下圖所示:</p>&
30、lt;p> 3.2.3 顯示電路</p><p> 3.2.4 串口電路</p><p> 計(jì)算機(jī)與計(jì)算機(jī)或計(jì)算機(jī)與終端之間的數(shù)據(jù)傳送可以采用串行通訊和并行通訊兩種方式。由于串行通訊具有線路少、成本低,特別是在遠(yuǎn)程傳輸時(shí),避免了多條線路特性的不一致而被廣泛使用。在串行通訊時(shí),要求通訊雙方都采用一個(gè)標(biāo)準(zhǔn)接口,使不同的設(shè)備可以方便地連接起來(lái)進(jìn)行通訊.,RS232接口是目前最常用的一
31、種串行通訊接口。由于PC機(jī)RS232C串行通信接口和AT89S52單片機(jī)的信號(hào)電平不一致,所以在PC機(jī)RS-232C串口和單片機(jī)串口應(yīng)具有1個(gè)電平轉(zhuǎn)換裝置,而MAX232就可以完成這一功能,因此采用3線制雙工通信連接方式,即單片機(jī)串行口的TXD、RXD和GND經(jīng)電平轉(zhuǎn)換分別與PC機(jī)的RXD、TXD和SG相連。此方式省去了9線的連接,這種方式完全可以進(jìn)行數(shù)據(jù)的傳輸。</p><p> 3.2.4 串口電路<
32、/p><p> 3.2.5 晶振電路</p><p> 當(dāng)使用片內(nèi)振蕩電路時(shí),X1、X2與晶振及電容C1、C2的連接方式構(gòu)成晶振電路。在該電路中,晶振、電容C1、C2以及片內(nèi)與非門(mén)構(gòu)成了電容三點(diǎn)式振蕩器。振蕩電容C1和C2的取值范圍與晶振的種類(lèi)和頻率有關(guān)。為了減少寄生電容對(duì)振蕩頻率的影響,在印制板上電容C1、C2應(yīng)盡可能靠近CPU芯片的X1和X2引腳,必要時(shí)可以采用溫度系數(shù)較小的NPO電容
33、。</p><p><b> 3.2.5晶振電路</b></p><p> 3.2.6 硬件原理圖仿真</p><p> 仿真結(jié)果如下圖所示:</p><p> 3.2.6硬件原理仿真圖</p><p><b> 第4章 軟件設(shè)計(jì)</b></p>&l
34、t;p> 4.1 Keil4簡(jiǎn)介</p><p> Keil4提供了包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境(UVISION)將這些組合在一起。 </p><p> Keil4有以下幾個(gè)特點(diǎn): 1、 全功能的源代碼編輯器; 2、 器件庫(kù)用來(lái)配置開(kāi)發(fā)工具設(shè)置;
35、0;3、 項(xiàng)目管理器用來(lái)創(chuàng)建和維護(hù)用戶的項(xiàng)目; 4、 集成的MAKE工具可以匯編、編譯和連接用戶嵌入式應(yīng)用; 5、 所有開(kāi)發(fā)工具的設(shè)置都是對(duì)話框形式的; 6、 真正的源代碼級(jí)的對(duì)CPU和外圍器件的調(diào)試器; 7、 高級(jí)GDI(AGDI)接口用來(lái)在目標(biāo)硬件上進(jìn)行軟件調(diào)試以及和Monitor-51進(jìn)行通信。</p><p><
36、;b> 4.2 程序設(shè)計(jì)</b></p><p> 整個(gè)程序設(shè)計(jì)分為三大塊,A/D轉(zhuǎn)換程序、LCD1602顯示程序、主程序。按設(shè)計(jì)方法的思路將A/D轉(zhuǎn)換程序以子程序調(diào)用的形式出現(xiàn),LCD顯示程序設(shè)為庫(kù)文件,然后由主程序調(diào)用子程序和頭文件完成設(shè)計(jì)功能。</p><p> 4.2.1主程序設(shè)計(jì)</p><p> 主程序只做調(diào)用別的程序作用,其流
37、程圖如下圖所示。主程序一開(kāi)始就進(jìn)入循環(huán)狀態(tài),首先調(diào)用A/D轉(zhuǎn)換程序,接收轉(zhuǎn)換數(shù)字信號(hào),進(jìn)行數(shù)據(jù)處理,然后調(diào)用LCD初始化程序。 </p><p> 圖4.2.1主程序流程圖</p><p> 4.2.2 A/D轉(zhuǎn)換程序設(shè)計(jì)</p><p> A/D轉(zhuǎn)換程序的功能是:當(dāng)通過(guò)電位器將模擬信號(hào)送入ADC0832后,ADC0832將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),通過(guò)程
38、序?qū)⒌玫降臄?shù)字信號(hào)返回,以便主程序調(diào)用。在程序中應(yīng)依照ADC0832芯片的管腳功能以及單片機(jī)對(duì)它的控制原理,使能芯片產(chǎn)生時(shí)鐘信號(hào),設(shè)置好通道選擇,以便芯片正確轉(zhuǎn)換數(shù)據(jù),流程圖如圖4.2所示:</p><p> 4.2.2 A/D轉(zhuǎn)換流程圖</p><p> 4.2.3 LCD顯示程序設(shè)計(jì)</p><p> LCD顯示程序功能是將經(jīng)過(guò)單片機(jī)處理過(guò)的信號(hào)實(shí)時(shí)顯示出
39、來(lái),程序流程圖如圖4.3所示:</p><p> 圖4.3LCD顯示流程圖</p><p> 第五章 調(diào)試與總結(jié)</p><p><b> 5.1 程序調(diào)試</b></p><p> 5.1.1 硬件調(diào)試</p><p> 硬件調(diào)試的主要任務(wù)是排除硬件故障,其中包括設(shè)計(jì)的錯(cuò)誤和工藝性
40、故障等。檢查所設(shè)計(jì)的硬件電路板所有的引腳是否正確,尤其是電源的連接是否正確;檢查各總線是否有短路的故障。檢查開(kāi)關(guān)/按鍵是否正常,是否連接正確,為了保護(hù)芯片,應(yīng)先對(duì)各IC座電位進(jìn)行檢查,確認(rèn)無(wú)誤后再插入芯片。將芯片的仿真插頭插入單片機(jī)插座進(jìn)行調(diào)試,檢查各接口是否滿足設(shè)計(jì)要求,用正常的程序測(cè)試硬件電路的好壞。</p><p> 5.1.2 軟件調(diào)試</p><p> 軟件調(diào)試的任務(wù)是利用開(kāi)
41、發(fā)工具進(jìn)行在線仿真調(diào)試,發(fā)現(xiàn)和糾結(jié)程序的錯(cuò)誤,同時(shí)也能發(fā)現(xiàn)硬件故障。軟件調(diào)試是每個(gè)模塊進(jìn)行的。首先單獨(dú)調(diào)試各子程序是否能達(dá)到預(yù)期的功能,接口電路的控制是否正常。尤其是注意各模塊間能否正確的傳遞參數(shù)。</p><p><b> 5.2 程序下載</b></p><p> 啟動(dòng)程序STC-ISP后,第一步就是選擇器件。軟件支持STC全系列的51單片機(jī)芯片,因此,第一步
42、必須選擇相對(duì)應(yīng)的型號(hào)。</p><p> 第二步就應(yīng)該選擇將要被燒寫(xiě)的HEX文件。HEX文件由單片機(jī)開(kāi)發(fā)環(huán)境輸入、編輯代碼、最后編譯產(chǎn)生。</p><p> 選好了文件后,可以發(fā)現(xiàn)“文件校驗(yàn)”中的數(shù)據(jù)發(fā)生了變化??梢酝ㄟ^(guò)留意這個(gè)數(shù)據(jù)是否變化來(lái)確定打開(kāi)文件是否成功。</p><p> 第三步就是設(shè)置串口。選擇適當(dāng)?shù)拇趨?shù)后就是下載,如圖5.3所示:</p
43、><p> 第四步就是下載觀察現(xiàn)象是否正確。</p><p><b> 5.3 總結(jié)</b></p><p> 經(jīng)過(guò)這次畢業(yè)設(shè)計(jì),我在用專(zhuān)業(yè)知識(shí)、專(zhuān)業(yè)技能分析和解決問(wèn)題的能力得到全面系統(tǒng)的鍛煉。而且在單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程、單片機(jī)的基本原理,以及常用編程設(shè)計(jì)思路技巧方面都向前邁了一大步,為以后成為合格的人才打下堅(jiān)實(shí)的基礎(chǔ)。</p>
44、<p> 同時(shí),我也發(fā)現(xiàn)了很多不足之處,這需要在實(shí)踐中進(jìn)一步完善。在此次設(shè)計(jì)的整體過(guò)程中,我始終保持積極態(tài)度和韌性。其中在硬件電路設(shè)計(jì)的時(shí)候碰到了很大的阻力,通過(guò)耐心并且細(xì)致的深入的研究,找出了許多問(wèn)題的出處,雖然最終沒(méi)有完全盡善盡美,但是這樣的一個(gè)過(guò)程,同樣使我得到了很多的磨練,受益良多。</p><p><b> 參考文獻(xiàn)</b></p><p>
45、; [1] 閻石. 數(shù)字電子技術(shù)基礎(chǔ). 高等教育出版社</p><p> [2] 徐愛(ài)均. 智能化測(cè)量控制儀表原理與設(shè)計(jì). 北京航空航天大學(xué)出版社</p><p> [3] 張友德. 單片微型機(jī)原理、應(yīng)用與實(shí)驗(yàn). 復(fù)旦大學(xué)出版社</p><p> [4] 楊記文. 匯編語(yǔ)言程序設(shè)計(jì)教程. 清華大學(xué)出版社</p><p> 附錄A:基
46、于LCD的數(shù)據(jù)采集系統(tǒng)原理圖</p><p><b> 附錄B:源程序</b></p><p> #include<reg52.h></p><p> #include<intrins.h></p><p> #define uchar unsigned char</p>&
47、lt;p> #define uint unsigned int</p><p> uchar code L0[]={"0123456789-"};</p><p> uchar code L1[]={"WENDU:"};</p><p> uchar code L2[]={"."};</
48、p><p> uchar code L3[]={"cent"};</p><p> uchar code L4[]={"please key in "};</p><p> uchar code L5[]={"password "};</p><p> uchar KeyCtl[
49、4];</p><p> sbit RS=P1^0;</p><p> sbit RW=P1^1;</p><p> sbit E=P1^2;</p><p> sbit BF=P0^7;</p><p> sbit cs=P2^0;</p><p> sbit clk=
50、P3^6;</p><p> sbit dodi=P3^7;</p><p> sbit key1 = P1^4;</p><p> sbit key2 = P1^5;</p><p> sbit key3 = P1^6;</p><p> sbit key4 = P1^7;</p>
51、<p> uchar flag;</p><p> void delay(uchar x){ </p><p><b> uint i,j;</b></p><p> for(i=100;i>0;i--)</p><p> for(j=x;j>0;j--);</p><
52、;p><b> }</b></p><p> bit cmxh(void){ </p><p><b> bit mxh;</b></p><p><b> RS=0;</b></p><p><b> RW=1;</b><
53、/p><p><b> E=1;</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b&g
54、t; _nop_();</b></p><p><b> mxh=BF;</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b>
55、;</p><p><b> _nop_();</b></p><p><b> E=0;</b></p><p> return mxh;</p><p><b> }</b></p><p> void write_zl(uchar x)
56、</p><p><b> { </b></p><p> while(cmxh()==1);</p><p><b> RS=0;</b></p><p><b> RW=0;</b></p><p><b> E=0;&l
57、t;/b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p> _nop_(); </p><p><b&g
58、t; P0=x;</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b>&
59、lt;/p><p><b> E=1;</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><
60、b> _nop_();</b></p><p><b> E=0;</b></p><p><b> }</b></p><p> void write_date(uchar y)</p><p><b> { </b></p>
61、<p> while(cmxh()==1);</p><p><b> RS=1;</b></p><p><b> RW=0;</b></p><p><b> E=0;</b></p><p><b> _nop_();</b>
62、</p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> P0=y;</b></p><p>&l
63、t;b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> E=1;</b&
64、gt;</p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p
65、><b> E=0;</b></p><p><b> }</b></p><p> void writeAdress(uchar Ad)</p><p><b> { </b></p><p> write_zl(Ad|0x80);</p&
66、gt;<p><b> }</b></p><p> void LCDINT() </p><p><b> { </b></p><p> delay(15);</p><p> write_zl(0x38);</p><p>
67、<b> delay(5);</b></p><p> write_zl(0x38);</p><p> delay(5); </p><p> write_zl(0x38);</p><p><b> delay(5);</b></p><p> w
68、rite_zl(0x0c);</p><p><b> delay(5);</b></p><p> write_zl(0x06);</p><p><b> delay(5);</b></p><p> write_zl(0x01);</p><p><b&g
69、t; delay(5);</b></p><p><b> }</b></p><p> uchar readadc0832(bit ch)</p><p><b> {</b></p><p> uchar i,data1=0,data2=0;</p><
70、;p><b> clk=0;</b></p><p><b> dodi=1;</b></p><p><b> cs=0;</b></p><p><b> clk=1;</b></p><p><b> clk=0;</
71、b></p><p><b> dodi=1;</b></p><p><b> clk=1;</b></p><p><b> clk=0;</b></p><p><b> dodi=ch;</b></p><p>
72、;<b> clk=1;</b></p><p> clk=0; dodi=1;</p><p> for(i=0;i<8;i++) </p><p><b> {</b></p><p><b> clk=1;</b></p>&
73、lt;p><b> clk=0;</b></p><p> if(dodi)data1|=0x80>>i;</p><p><b> }</b></p><p> for(i=0;i<8;i++)</p><p><b> {</b><
74、;/p><p> if(dodi)data2|=0x01<<i;</p><p><b> clk=1;</b></p><p><b> clk=0;</b></p><p><b> }</b></p><p><b>
75、cs=1;</b></p><p><b> dodi=1;</b></p><p><b> clk=1;</b></p><p> if(data1==data2)return(data1);</p><p><b> }</b></p>
76、<p> void xsL1()</p><p><b> { </b></p><p><b> uchar i;</b></p><p><b> delay(5);</b></p><p> writeAdress(0x00);</
77、p><p><b> i=0;</b></p><p> while(L1[i]!='\0')</p><p><b> { </b></p><p> write_date(L1[i]);</p><p><b> i++; </
78、b></p><p> delay(200);</p><p><b> }</b></p><p><b> }</b></p><p> void xsL2()</p><p><b> { </b></p
79、><p> uchar i; </p><p><b> delay(5);</b></p><p> writeAdress(0x09);</p><p><b> i=0;</b></p><p> while(L3[i]!='\0
80、9;)</p><p><b> { </b></p><p> write_date(L3[i]);</p><p><b> i++; </b></p><p> delay(200);</p><p><b> }</b></
81、p><p><b> }</b></p><p> void xsL3() //</p><p><b> { </b></p><p> writeAdress(0x49);</p><p> write_date('.');</
82、p><p> delay(200);</p><p><b> }</b></p><p> void xsL4()//</p><p><b> { </b></p><p> uchar i; </p>&l
83、t;p><b> delay(5);</b></p><p> writeAdress(0x00);</p><p><b> i=0;</b></p><p> while(L4[i]!='\0')</p><p><b> { </b>&
84、lt;/p><p> write_date(L4[i]);</p><p><b> i++; </b></p><p> delay(200);</p><p><b> }</b></p><p><b> }</b></p>
85、<p> void xsL5()//</p><p><b> { </b></p><p> uchar i; </p><p><b> delay(5);</b></p><p> writeAdress(0x40);</p
86、><p><b> i=0;</b></p><p> while(L5[i]!='\0')</p><p><b> { </b></p><p> write_date(L5[i]);</p><p><b> i++; </b
87、></p><p> delay(200);</p><p><b> }</b></p><p><b> }</b></p><p> void deplay_templ1(uint x)</p><p><b> { </b>
88、</p><p> uint j,k,l;</p><p><b> j=x/100;</b></p><p> k=(x%100)/10;</p><p><b> l=x%10;</b></p><p> writeAdress(0x06);</p>
89、<p> if(flag==1)</p><p><b> { </b></p><p> write_date(L0[10]);</p><p><b> }</b></p><p><b> else</b></p><p>
90、;<b> {</b></p><p> write_date(L0[j]);</p><p> delay(700);</p><p><b> }</b></p><p> write_date(L0[k]);</p><p> write_date(L0[l
91、]);</p><p> delay(50);</p><p><b> }</b></p><p> void deplay_templ2(uchar x)</p><p><b> { </b></p><p> writeAdress(0x4a);&l
92、t;/p><p> write_date(L0[x]);</p><p> delay(50);</p><p><b> }</b></p><p> void Init_Uart()</p><p><b> {</b></p><p>
93、TMOD=0x20;</p><p> TH1=TL1=0xFD;</p><p> SCON=0x50;</p><p> PCON=0x00;</p><p><b> TR1=1;</b></p><p><b> }</b></p><p
94、> void send_char(unsigned char txd)</p><p><b> { </b></p><p><b> SBUF=txd;</b></p><p> while(!TI);</p><p><b> TI=0;</b>
95、</p><p><b> }</b></p><p> void main()</p><p><b> {</b></p><p> uint temp,Data,shu = 3;</p><p> uchar KeyZhi=0,count=0,i;</p
96、><p><b> while(1)</b></p><p><b> {</b></p><p> if((KeyCtl[0]== 0x01)&(KeyCtl[1]== 0x02)&(KeyCtl[2]== 0x03)&(KeyCtl[3]== 0x03))</p><p&g
97、t;<b> {</b></p><p><b> xsL1();</b></p><p><b> xsL2();</b></p><p> deplay_templ1(Data);</p><p><b> } </b></p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- STC89C52單片機(jī).doc
- STC89C52單片機(jī).doc
- STC89C52單片機(jī).doc
- stc89c52單片機(jī).pdf
- stc89c52單片機(jī).pdf
- STC89C52單片機(jī).doc
- stc89c52單片機(jī).pdf
- STC89C52單片機(jī).doc
- 單片機(jī)課程設(shè)計(jì)---基于stc89c52的旋轉(zhuǎn)led時(shí)鐘
- STC89C52單片機(jī).doc
- STC89C52單片機(jī).doc
- STC89C52單片機(jī).doc
- STC89C52單片機(jī).doc
- stc89c52單片機(jī).pdf
- STC89C52單片機(jī).doc
- stc89c52單片機(jī).pdf
- 單片機(jī)課程設(shè)計(jì)報(bào)告--基于stc89c52單片機(jī)的實(shí)驗(yàn)平臺(tái)開(kāi)發(fā)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告--基于stc89c52單片機(jī)的實(shí)驗(yàn)平臺(tái)開(kāi)發(fā)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---基于stc89c52的溫度測(cè)控系統(tǒng)設(shè)計(jì)
- 基于stc89c52單片機(jī)的智能回收箱設(shè)計(jì).doc
評(píng)論
0/150
提交評(píng)論