




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、2009 屆本科畢業(yè)設(shè)計(jì) 基于單片機(jī)設(shè)計(jì)的多路數(shù)據(jù)采集系統(tǒng) 姓 名: 系 別: 物理與信息工程系 專 業(yè): 電子信息工程 學(xué) 號(hào): 指導(dǎo)教師: 2009年 03 月 日基于單片機(jī)設(shè)計(jì)的多路數(shù)據(jù)采集系統(tǒng)摘要:本文介紹一種基于AT89S52單片機(jī)設(shè)計(jì)的多路數(shù)據(jù)采集系統(tǒng),本設(shè)計(jì)采用上位機(jī)軟件顯示單片機(jī)采集的多路數(shù)據(jù),并可直接通過上位機(jī)軟件按鈕對(duì)單片機(jī)硬件系統(tǒng)進(jìn)行控制,軟硬件構(gòu)成與用戶之間的信息交換界面。正文著重給出了硬件系統(tǒng)的各部分電路,介紹了AD檢測器件的控制原理、AT89S52的功能與應(yīng)用、串口通信的電路原理應(yīng)用、24C存儲(chǔ)器實(shí)際應(yīng)用等部分內(nèi)容。該電路設(shè)計(jì)實(shí)用性強(qiáng)、應(yīng)用領(lǐng)域廣、可擴(kuò)展性強(qiáng)。關(guān)鍵詞
2、:MAX232,AT89S52,24C02,ADC0832,MC34063Abstract : Key Words : MAX232,AT89S52,24C02,ADC0832,MC34063一、 前言多路數(shù)據(jù)采集系統(tǒng)()下文中簡稱Mcdas,它是采用數(shù)字監(jiān)測技術(shù),把用戶需要檢測的信息(模擬量)轉(zhuǎn)換成數(shù)字形式并加以顯示的硬件系統(tǒng),硬件系統(tǒng)所采集的數(shù)據(jù)通過自編特定的PC軟件來進(jìn)行顯示與數(shù)據(jù)交換,并可進(jìn)行對(duì)硬件的實(shí)時(shí)控制。本系統(tǒng)在工控領(lǐng)域應(yīng)用寬廣,在制造業(yè)上亦可用到多路數(shù)據(jù)監(jiān)測系統(tǒng)中,方便用戶的生產(chǎn)與管理。下文中將詳細(xì)解說本系統(tǒng)的各部分設(shè)計(jì)要點(diǎn)。二、 系統(tǒng)基本框圖及設(shè)計(jì)原理1、系統(tǒng)基本方框圖如圖1
3、.1所示,Mcdas的原理框圖,總體規(guī)劃了整個(gè)系統(tǒng)的各部分電路所需要實(shí)現(xiàn)的功能,以及擴(kuò)展部分的功能。兩路AD采集單片機(jī)AT89S52模擬量1單片機(jī)模擬量2示溫度采集24C02數(shù)據(jù)存儲(chǔ)RS232串口通信上位機(jī)軟件PC機(jī) LED1、2、3指示燈受控設(shè)備1兩路繼電器控制擴(kuò)展接口,可擴(kuò)展液晶顯示器、按鍵和其它電路MC34063 5V升12V備用電源受控設(shè)備2系統(tǒng)+5V供電接口ISP程序升級(jí)接口圖1.1系統(tǒng)基本方框圖2、硬件設(shè)計(jì)原理.下面將結(jié)合元器件的應(yīng)用來詳細(xì)說明系統(tǒng)各部分硬件的控制原理。(1)、單片機(jī)AT89S52的簡介。 對(duì)單片機(jī)的要求:能夠方便地?cái)U(kuò)展AD檢測、數(shù)據(jù)存儲(chǔ)、串行通信以及輸出控制IO等
4、外設(shè)即可。常見的單片機(jī)有8051系列的單片機(jī)、8096系列的單片機(jī)、SPCE061A的凌陽單片機(jī)。8位的8051單片機(jī)比較普遍用于電子制作方面,且初學(xué)者均能快速掌握指令并能夠熟練使用,故本Mcdas選擇8051系列的AT89S52為主芯片, 該芯片具有低功耗、高性能的特點(diǎn),是采用CMOS工藝的8位單片機(jī).如下圖2.1為AT89S52單片機(jī)的引腳說明圖。圖2.1.1 AT89S52引腳說明 AT89S52性能兼容同系列的AT89C52,而且具有在線下載代碼的功能,簡稱為ISP下載功能,芯片不用撥離所連接的電路即可通過規(guī)定的幾只引腳進(jìn)行代碼的燒錄,在產(chǎn)品的調(diào)試以及生產(chǎn)時(shí)使用此方法燒寫代碼極為方便。
5、ISP下載電路需使用上位機(jī)軟件通過PC的并口(25針打印機(jī)接口)進(jìn)行控制才能向芯片燒錄代碼。如圖2.2為ISP與單片機(jī)的連接電路圖。圖2.1.2 ISP下載電路與單片機(jī)的連接ISP下載電路使用了一片74HC373鎖存器芯片,PC上的軟件控制并口輸出的信號(hào)通過鎖存器進(jìn)行鎖存,再由單片機(jī)讀取,而單片機(jī)發(fā)出的控制請(qǐng)求信號(hào)同樣由74HC373鎖存后再傳送到PC,由此形成一個(gè)雙向通信電路,用特定的命令完成對(duì)芯片的燒錄。(2)、LED指示燈電路LED指示燈電路是許多電子產(chǎn)品上不可缺少的一部分,因?yàn)檫@是智能化產(chǎn)品與人之間的信息交互的重要途徑之一,LED指示燈電路比較簡單,只要單片機(jī)的IO給予LED一個(gè)高或低
6、電平就能使它亮或滅,在設(shè)計(jì)中用戶可以選擇不同顏色光以及不同規(guī)格大小的LED,如下圖2.2.1給出這部分電路與單片機(jī)之間的連接方法。 圖2.2.1 LED指示電路連接圖LED指示燈在實(shí)際應(yīng)用中應(yīng)該串聯(lián)一只100歐-1K歐的電阻進(jìn)行分流,以防止單片機(jī)IO口的灌電流過大將LED損壞。本系統(tǒng)的LED指示燈可通過PC上位機(jī)控制亮與滅,下文中將陳述串行通信部分內(nèi)容。(3)、繼電器控制電路。繼電器的參數(shù)特點(diǎn)在此處不再作多余的陳述。本Mcdas中的兩路繼電器可用于控制外部設(shè)備線路的電源或信號(hào)的通斷,以達(dá)到自動(dòng)化效果(通過PC軟件定時(shí)輸出控制)。實(shí)際電路中因多種繼電器的工作參數(shù)不同而對(duì)驅(qū)動(dòng)的電流需求也不同,在保
7、證繼電器工作穩(wěn)定之下需采用三極管作擴(kuò)流驅(qū)動(dòng),下圖2.3.1中采用了兩只PNP三極管,由AT89S52單片機(jī)的IO電平拉低控制三極管以驅(qū)動(dòng)繼電器工作。圖2.3.1 繼電器驅(qū)動(dòng)電路連接圖(4)、鐵電存儲(chǔ)器24C02的應(yīng)用。 在電子儀器設(shè)備上我們常見到的數(shù)據(jù)設(shè)置與數(shù)據(jù)采集,這些數(shù)據(jù)可以直接用液晶屏或LED數(shù)碼管顯示出來,便于用戶了解儀器設(shè)備的工作狀態(tài),但用戶需要在下一次開機(jī)時(shí)得到上一次運(yùn)行的數(shù)據(jù)狀態(tài),那么這里面就涉及到數(shù)據(jù)的存儲(chǔ)功能了。本Mcdas采用了最常見的低成本串行鐵電存儲(chǔ)器24C02(128Bye),它具有128位存儲(chǔ)地址0X00-0X7F,可以通過串行控制信號(hào)把數(shù)據(jù)寫入指定的存儲(chǔ)地址,在下
8、一次開機(jī)時(shí)再將指定地址的數(shù)據(jù)讀出賦值給軟件的一些變量,后面的函數(shù)體將說明對(duì)存儲(chǔ)器的控制步驟。24C02與單片機(jī)的連接如下圖2.4.1 。圖2.4.1 24C02與單片機(jī)的連接圖(5)、ADC檢測器件ADC0832的應(yīng)用電路。本系統(tǒng)硬件設(shè)定了兩路AD檢測輸入,通過單片機(jī)處理采集到的數(shù)據(jù)后再發(fā)送到上位機(jī)軟件顯示出來,同時(shí)也通過軟件對(duì)被采集的模擬量進(jìn)行監(jiān)測。在要求精度不高的場合可以采集國家半導(dǎo)體設(shè)計(jì)的串行接口8位精度ADC檢測器件:ADC0832,它可以同時(shí)從兩個(gè)通道輸入0-5V電壓,并通過片選信號(hào)決定采集哪一通道的電壓數(shù)據(jù),在數(shù)據(jù)鎖存后以串行的方式傳輸給單片機(jī)處理,它的參考電壓以VCC為基準(zhǔn),無負(fù)
9、壓檢測功能,故在模擬量輸入時(shí)需要注意電壓極性。下圖為ADC0832與AT89S52的連接圖。圖2.5.1 ADC0832與AT89S52的連接圖(6)、RS232串行通信硬件電路。AT89S52單片機(jī)內(nèi)部有一個(gè)全雙工的串行通信口,即串行接收和發(fā)送緩沖器(SBUF),這兩個(gè)在物理上獨(dú)立的接收發(fā)送器,既可以接收數(shù)據(jù)也可以發(fā)送數(shù)據(jù)。但接收緩沖器只能讀出不能寫入,而發(fā)送緩沖器則只能寫入不能讀出,它們的地址為99H。這個(gè)通信口既可以用于網(wǎng)絡(luò)通信,亦可實(shí)現(xiàn)串行異步通信,還可以構(gòu)成同步移位寄存器使用。如果在傳行口的輸入輸出引腳上加上電平轉(zhuǎn)換器,就可方便地構(gòu)成標(biāo)準(zhǔn)的RS-232接口。AT89S52的串行口有4
10、種工作方式,1種同步方式,3種異步方式。本方式選方式1,一幀數(shù)據(jù)有10位,包括起始位0、8位數(shù)據(jù)位和1位停止位1。串行口電路在發(fā)送時(shí)能自動(dòng)加入起始位和停止位。在接收時(shí),停止位進(jìn)入SCON中的RB8位。方式1的波特率是可變的,由定時(shí)器1的溢出率決定。由定時(shí)器1最好工作在方式2上(自動(dòng)重裝載模式),這樣只需對(duì)TH1設(shè)置一次即可。數(shù)據(jù)通過TXD輸出,在8個(gè)位輸出完畢后,SCON寄存器的TI位被設(shè)為1,CPU只要判斷TI是1,接著發(fā)送下一個(gè)字節(jié)。波特率的設(shè)定:定時(shí)器T1工作在方式2的初值為:(1.1)為了減小誤差,時(shí)鐘振蕩頻率采用11.0592MHz,選用定時(shí)器T1工作在方式2作波特率發(fā)生器,波特率為
11、4800,設(shè)SMOD為0,依公式(1.1)得初值為:FAH所以TH1 = TL1 = FAH TMOD =0x20; TIME1工作在方式2上 SCON =0x50; URAT工作在方式1上 TH1 =0xFa; 設(shè)置波特率為4800 TL1 =0XFa; 串行信號(hào)的電平轉(zhuǎn)換主要由MAX232A電路完成,如下圖2.6.1。 ( 注:可將MAX232芯片資料寫詳細(xì),比如:產(chǎn)生正負(fù)電壓,電平轉(zhuǎn)換的方式,硬件中電容的取值與傳輸速率的關(guān)系等。)圖2.6.1 串口電平轉(zhuǎn)換芯片MAX232A與AT89S52的連接圖 (7)、系統(tǒng)電源電路 1)、硬件采用USB供電插口,可直接在PC機(jī)的USB插座取電,也可使
12、用外部+5VDC適配器連接供電給系統(tǒng)。適配器的電源次級(jí)以最常見的三端穩(wěn)壓模塊LM7805構(gòu)成一個(gè)+5V的電源,它的輸入與輸出端分別并接一個(gè)0.1uF的瓷片電容,防止電源中的高頻進(jìn)入到單片機(jī)電路中造成干擾,同時(shí)ADC檢測器件以VCC的5V為基準(zhǔn)源,為了AD采集數(shù)據(jù)的準(zhǔn)確性,其它外掛大電流設(shè)備不可直接由此電源提供,需要另設(shè)電源。 電路如下圖2.7.1。 圖2.7.1 適配器的+5V電源電路2)、硬件上設(shè)計(jì)了12VDC備用電源,由系統(tǒng)的VCC+5V電源升壓所得,電流限制在100Ma以下,可供給AD檢測的前端輸入比較器電路使用,或作其它用途,升壓器件使用低功耗(空載耗電流為3Ma)的MC34063,電
13、路如下圖2.7.2。圖2.7.2 MC34063升壓電路(8)、系統(tǒng)整體電路本電路圖由電路仿真軟件Proteus 6繪制完成。圖2.8.1 系統(tǒng)整體電路3、系統(tǒng)軟件的設(shè)計(jì) 軟件代碼使用KEIL編譯器進(jìn)行編寫,程序由數(shù)個(gè)電路的控制函數(shù)組成,下面逐個(gè)函數(shù)作詳細(xì)分析,先給出主程序的流程框圖,如圖3.0。程序開始初始化端口進(jìn)入循環(huán)體AD采集溫度采集中斷接收初始化定時(shí)器Intbufer=1/2,LED1亮/滅Intbufer=5/6,LED3亮/滅Intbufer=3/4,LED2亮/滅Intbufer=7/8,JK1通/斷Intbufer=9/10,JK2通/斷Intbufer=11,發(fā)送電壓和溫度數(shù)
14、據(jù)Intbufer=12,寫24C數(shù)據(jù)Intbufer=13,讀24C數(shù)據(jù)圖3.0 系統(tǒng)主程序流程框圖 (1)、頭文件的定義。 本系統(tǒng)程序采用了模塊化設(shè)計(jì),首先將主程序調(diào)用到的內(nèi)容定義在一個(gè)特定的文件里,然后在主程序運(yùn)行之前聲明這部分定義的內(nèi)容,那么程序就能遵循從上到下去執(zhí)行用戶賦予的命令了。先了解下面這段特定的頭文件dyio.h。#include "reg52.h" /調(diào)用C51庫文件#include <intrins.h> /調(diào)用此文件主要是應(yīng)用內(nèi)部的_nop_();函數(shù)#define uint unsigned int /聲明變量類型轉(zhuǎn)義符,文中用uint
15、代替int#define uchar unsigned char/同上#define delayNOP(); _nop_();_nop_();_nop_();_nop_();/聲明延時(shí)函數(shù)/一些控制IO定義/sbit sda= P24; /24C02數(shù)據(jù)線5sbit scl= P23; /24C02時(shí)鐘線6/LED控制IO定義/sbit LED1= P20; /狀態(tài)指示燈1sbit LED2= P21; /狀態(tài)指示燈2sbit LED3= P22; /狀態(tài)指示燈3/繼電器控制IO定義/sbit j1 =P36;sbit j2 =P37;/ADC0832控制IO定義/sbit ADCS =P35
16、; /ADC0832 chip seclect片選sbit ADDI =P34; /ADC0832 k in 數(shù)據(jù)輸入sbit ADDO =P34; /ADC0832 k out 數(shù)據(jù)輸出sbit ADCLK =P33; /ADC0832 clock signal 時(shí)鐘/一些變量定義/uchar x=0;uint vol,vol1,vol2,temp;/電壓變量uchar buffer8; /發(fā)送數(shù)據(jù)組uint inbuffer10; /接收數(shù)據(jù)組/調(diào)用一些驅(qū)動(dòng)模塊/#include "24C02.h" /調(diào)用24C02讀寫模塊#include "ADC0832.
17、h" /調(diào)用ADC0832轉(zhuǎn)換模塊(2)、上面頭文件除了IO的定義和一些全局變量定義之外,還有調(diào)用到外部驅(qū)動(dòng)模塊,下面列出被調(diào)用的兩個(gè)模塊內(nèi)部函數(shù)內(nèi)容,并以簡單的注釋說明各函數(shù)的作用。 1)、24C02讀寫模塊 24C02.H,內(nèi)部綜合了單片機(jī)與24C02器件串行通信的所需步驟,比如檢測24C02器件忙狀態(tài)、向24C02寫入一個(gè)字節(jié)數(shù)據(jù)、從24C02讀取一個(gè)字節(jié)數(shù)據(jù),具體如下程序語句。 將24C02.H內(nèi)容拷入此位置 2)、ADC0832轉(zhuǎn)換模塊ADC0832.H,主程序通過調(diào)用此模塊內(nèi)部的電壓轉(zhuǎn)換函數(shù)來控制ADC檢測器件,轉(zhuǎn)換函數(shù)中包含控制ADC檢測器件的時(shí)鐘信號(hào)、串行數(shù)據(jù)讀取以及
18、轉(zhuǎn)換后的數(shù)據(jù)鎖存等操作,詳細(xì)如下程序段:將ADC0832.H內(nèi)容拷入此位置(3)、由于C程序使用了模塊化設(shè)計(jì),所以主程序代碼比較簡練,只須負(fù)責(zé)聲明一下頭文件和幾個(gè)刷新數(shù)據(jù)的操作,如VB232.C。#include <dyio.h>/調(diào)用頭文件/*/void UART_init() /被始化串行通信所須寄存器 TMOD =0x20; SCON =0x50; TH1 =0xFa; TL1 =0XFa; TR1 =1; ET1 =0; ES=1; PS=1; EA =1; /*/void FW() /發(fā)送數(shù)據(jù)刷新函數(shù)buffer0=vol/128; /電壓1數(shù)據(jù)高位buffer1=vol
19、%128; /電壓1數(shù)據(jù)低位buffer2=vol1/128; /電壓2數(shù)據(jù)高位buffer3=vol1%128; /電壓2數(shù)據(jù)低位buffer4=vol2/128; /溫度數(shù)據(jù)高位buffer5=vol2%128; /溫度數(shù)據(jù)低位 /*/void send() /向串口發(fā)送一串?dāng)?shù)據(jù) uint i; for(i=0;i<=8;i+) /循環(huán)i次發(fā)送數(shù)組,8位<=128數(shù)據(jù) SBUF=bufferi;/發(fā)送數(shù)據(jù) while(TI=0); /等待發(fā)送完畢 TI=0; /標(biāo)志清0 /*/ void uart_isr() interrupt 4 /中斷接收 uint i,ll,pp; fo
20、r(i=0;i<=9;i+) /循環(huán)接收數(shù)組 while(!RI); /等待接收結(jié)束,未結(jié)束繼續(xù)接收下一位數(shù)據(jù) RI=0; /標(biāo)志清0 inbufferi=SBUF;/接收數(shù)據(jù) FW(); /刷新將要發(fā)送的變量數(shù)值 if(inbuffer0=1)LED1=0; /LED1 if(inbuffer0=2)LED1=1; if(inbuffer1=3)LED2=0; /LED2 if(inbuffer1=4)LED2=1; if(inbuffer2=5)LED3=0; /LED3 if(inbuffer2=6)LED3=1; if(inbuffer3=7)j1=0; /j1 if(inbuffer3=8)j1=1; if(inbuffer4=9)j2=0; /j2 if(inbuffer4=10)j2=1; if(inbuffer5=11)send(); /向串口發(fā)送電壓和溫度數(shù)據(jù) pp= inbuffer8*127+inbuffer9; /計(jì)算接收到的24C地址 if(inbuffer6=12)write(inbuffer7,pp); /將接收到的數(shù)據(jù)寫入計(jì)算到的24C地址if(inbuffer6=13)ll=read(inbuffer7);buffer6=ll/128;buffer7=ll%128;/讀出指定地址的數(shù)據(jù) /*/void main
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 狗狗褥瘡的護(hù)理
- 供熱單位行政工作總結(jié)和工作打算
- 車庫認(rèn)購定金協(xié)議書
- 酒店廚房合同協(xié)議書
- 龍蝦攤位承包協(xié)議書
- 飾品木條轉(zhuǎn)讓協(xié)議書
- 酒店寄存免責(zé)協(xié)議書
- 包子鋪股份合同協(xié)議書
- 道路安全運(yùn)輸協(xié)議書
- 個(gè)體戶餐飲股東協(xié)議書
- 前列腺增生癥患者圍手術(shù)期的護(hù)理
- 五防系統(tǒng)調(diào)試報(bào)告
- 日語綜合教程第六冊 單詞表
- 市委政研室主任關(guān)于如何寫稿子的講話
- 在建項(xiàng)目雨季施工(防汛)安全隱患排查表
- 《廣東省普通高中學(xué)生檔案》模板
- YY/T 1064-2022牙科學(xué)牙科種植手術(shù)用鉆頭通用要求
- GB/T 40848-2021飼料原料壓片玉米
- GB/T 12237-2021石油、石化及相關(guān)工業(yè)用的鋼制球閥
- GB/T 1094.11-2007電力變壓器第11部分:干式變壓器
- 水利水電土建工程施工合同(通用合同條款) 14300字
評(píng)論
0/150
提交評(píng)論