




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上目錄1、 設計內容和要求.22、 系統總體結構.3 2.1、系統總體設計.3 2.2、主控部分的選擇.43、 最小系統.64、 硬件設計.641 總體設計框圖.642 電壓測量的設計.74.3 模數ADC轉換的設計.7 4.4 液晶顯示電路的設計.85、 輸入、輸出部分.96、 軟件設計.10 6.1主控程序流程.10 6.2軟件仿真.117、 實物制作與仿真.128、 總結.139、 參考文獻.14附錄1 原件清單.15附錄2 原理圖.16附錄3 程序.17附錄4 實物圖.31第1章 設計內容和要求 隨著現代科技的飛速發展,生產生活中人們對工具的要約越來越高。其中我
2、日常所使用的電阻表的精度和性能也要求越來越高。并且電阻表完全可以通過現代科技來實現智能化,智能化即不需要人工來調節檔位,測量不同阻值的電阻時,可以自動更換檔位。并且同時顯示出阻值和量程。這次課程設計我的課題就是基于單片機芯片STC89C52設計一個三檔位的電阻表,第一檔位:1-100歐,第二檔:1-5k歐,第三檔:1-10k歐。電阻表能自動轉換量程,測量結果使用LCD顯示,誤差小于5%。設計內容包括:1、單片機最小系統2、模數轉換3、電阻電壓轉換4、顯示測得的電阻阻值設計原理為通過伏安法測出電阻的阻值,經過模數轉換,將測得的阻值顯示到LCD上。 第二章 系統總體結構2.1系統總體設計 系統共分
3、為四個部分:電阻電壓轉換、模數轉換器、單片機、LCD顯示。2.2主控部分的選擇進行深入的分析和思考,將本次設計系統分為一下幾個部分:A/D轉換電路、被測電阻、單片機系統、顯示電路、電機控制電位器電路。電源電路檔位選擇電路檔位電路顯示電路控制電路被測電阻A / D 轉 換 電 路 自動測量電阻表系統框圖電阻的測量電路:電阻電壓轉換測量法,采用R/U轉換器將被測電阻轉換成電壓,經轉換后得到的直流電壓經A/D轉換器轉換為數字信號,由單片機控制輸出顯示被測電阻值到LCD。電機控制電位器電路:采用繼電器作為檔位開關控制,繼電器是一種電控制器件。它具有控制系統(又稱輸入回路)和被控制系統(又稱輸出回路)之
4、間的互動關系。通常應用于自動化的控制電路中,它實際上是用小電流去控制大電流的一種“自動開關”。故在電路中起著自動調節、安全保護、轉換電路等作用。采用2個繼電器分別控制不同電阻測試檔位??刂葡到y由單片機系統控制。A/D轉換器:選用ADC0832;ADC0832芯片是生產的一種8 、A/D轉換芯片。由于它體積小,兼容性,性價比高而深受單片機愛好者及企業歡迎,其目前已經有很高的普及率。其具有以下特點: 雙通道A/D轉換; 輸入輸出電平與TTL/CMOS相兼容; 5V電源供電時輸入電壓在05V之間; 工作頻率為250KHZ,轉換時間為32S; 一般功耗僅為15mW; 8P、14PDIP(雙列直插)、P
5、ICC 多種封裝; 商用級芯片溫寬為0C to +70C,工業級芯片溫寬為40C to +85C;芯片接口說明: CS_使能,低電平芯片使能。CH0 模擬輸入通道0,或作為IN+/-使用。 CH1 模擬輸入通道1,或作為IN+/-使用。 GND 芯片參考0 電位(地)。 DI 數據信號輸入,選擇通道控制。 DO 數據信號輸出,轉換。 CLK 芯片時鐘輸入。 Vcc/REF 電源輸入及參考電壓輸入(復用)。 ADC0832 為8A/D轉換芯片,其最高分辨可達256級,可以適應一般的模擬量轉換要求。其內部電源輸入與參考電壓的復用,使得芯片的模擬電壓輸入在05V之間。芯片轉換時間僅為32S,據有雙可
6、作為,以減少數據誤差,轉換速度快且穩定性能強。獨立的芯片使能輸入,使多器件掛接和處理器控制變的更加方便。通過DI 數據輸入端,可以輕易的實現通道功能的選擇。單片機:AT89C52;顯示器:選用LCD1602。工業字符型液晶,能夠同時顯示16x02即32個字符。1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數字、符號等的型液晶模塊。它由若干個5X7或者5X11等字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形。特性:3.3V或5V工作電壓,對比度可調;內含復位電路;提供各種控
7、制命令,如:清屏、字符閃爍、光標閃爍、顯示移位等多種功能;有80顯示數據存儲器;內建有192個5X7的字型的字符發生器;8個可由用戶自定義的5X7的字符發生器CGRAM;微功耗、體積小、顯示內容豐富、超薄輕巧,常用在袖珍式儀表和低功耗應用系統中。操作控制。第三章最小系統由STC89C52,復位電路,時鐘產生電路組成。其原理圖如下: 最小系統電路原理圖第4章 硬件設計本系統是一個簡單的單回路控制系統。為了實現對電阻的精確測量和測量檔位自動切換,本系統采用了AT89C52單片機作為系統的控制中心,在測試電阻阻值時,有信號測試端將所測信號送入A/D轉換器ADC0832,經A/D轉換后將數據送入單片機
8、進行數據處理,實時將所測電阻阻值經液晶顯示模塊顯示。在進行檔位切換時。由單片機控制的繼電器構成檔位開關,對檔位進行正確切換??傮w設計框圖如圖AT89C52(CPU)阻值信號采集數據顯示A/D轉換分頻電路電源電路檔位切換總體設計框圖42 電壓測量的設計 如圖2所示為被測電阻電壓測量。電壓經過已知電阻R1和被測電阻Rx接到地。通過OUT輸出被測電阻Rx上的電壓。送到ADC0832的CH0口。圖3 被測電阻電壓測量圖4.3 模數ADC轉換的設計由電壓測量得到的電壓經過ADC模數轉換可得到8位的電壓值,經過歐姆定律(即電壓之比等于電阻之比)可得到被測電阻的阻值的大小。公式如下錯誤!未找到引用源。本設計
9、用到的R1的阻值為200、20k和200k。由被測電阻得到的電壓值經ADC0832的2腳CH0輸入,經過內部的AD轉換,在DO 6輸出數字電壓量,經過上述公式的轉變,在P1.1口上的顯示的數字量為被測電阻的阻值數字量。如圖3所示為被測電阻電壓量轉換為阻值量。P1.1P1.1OUTCH0 ADC0832 DO 被測電阻電壓量轉換為阻值量圖4.4 液晶顯示電路的設計經過ADC0832模數轉換得到的電阻值數字量,在MCU的P1.1口輸入,MCU系統處理后在P0口由LCD1602顯示出來該被測電阻的阻值。如圖4所示為被測電阻阻值顯示。 P0 單片機P1.1D0D7 LCD1602OUT 被測電阻阻值顯
10、示圖第5章 輸入、輸出部分電阻表主控制部分電源需要用5V直流電源供電,把頻率為50Hz、有效值為220V的單相交流電壓轉換為幅值穩定的5V直流電壓。其主要原理是把單相電經過電源變壓器、整流電路、濾波電路、穩壓電路轉換成穩定的直流電壓。由于輸入電壓為電網電壓,一般情況下所需直流電壓的數值和電網電壓的有效值相差較大,因而電源變壓器的作用顯現出來起到降壓作用。降壓后還是交流電壓,所以需要整流電路把交流電壓轉換成直流電壓。由于經整流電路整流后的電壓含有較大的交流分量,會影響到負載電路的正常工作。需通過低通濾波電路濾波,使輸出電壓平滑。穩壓電路的功能是使輸出直流電壓基本不受電網電壓波動和負載電阻變化的影
11、響,從而獲得穩定性足夠高的直流壓。本電路使用充電器解決電源穩壓問題。我們使用的是經過特殊加工過的電路板,在板的內部已經將整流、變壓的線路連好了。各原件所用的5V直流電源在電路板內部連成了幾條線路,使用起來很方便。電阻輸入則是通過將不同阻值的電阻接在表的兩端,阻值范圍是1-10K歐姆。當接入時電阻表的液晶顯示屏上會自動顯示出當前所接入的電阻的阻值和量程(檔位)。當所接電阻超出量程時,LCD顯示ERROR。時序參數表時序參數符號極限值單位測試條件最小值典型值最大值E信號周期tc400-ns引腳EE脈沖寬度tpw ,tF150-nsE上升/下降沿時間tR-25ns地址建立時間tsp130-ns引腳E
12、、RS、R/W地址保持時間tHD110-ns數據建立時間(讀操作)tD-100ns引腳DB0DB7數據保持時間(讀操作)tHD220-ns數據建立時間(寫操作)tsp240-ns數據保持時間(寫操作)tHD210-ns第六章 軟件設計6.1主控程序流程 程序機構主要包括:主控程序模塊、LCD1602液晶顯示程序、阻值數據顯示處理子程序、標志符號顯示子程序、延時子程序等幾個部分組成。主控程序流程圖:開始設定初始化獲取IntIntP16=0;P17=1;Data=200從新獲取IntP16=0;P17=1;Data=200從新獲取IntP16=0;P17=1;Data=200從新獲取Int顯示In
13、t值6.2軟件仿真本設計通過利用Proteus仿真,將所編寫的程序用Keil軟件編譯,所仿真原理圖見第七章。在實驗調試過程中每個測量量程檔選用2個電阻進行測量,下表就是我們測試的實際電阻值和測量電阻值數據,以及測量誤差。量程檔實際電阻值仿真測量電阻值誤差1K7.37-4.10%15.215-1.31%52.7530.57%2002010.5%5005081.6%7507621.6%9009080.89%9509531.4%5K1.5K15181.2%2K20162.46%2.5K2481-3.1%3k2940-2%3.5K35090.76%4K40190.61%4.3k4283-3.36%4.
14、5K45181.23%10k5K50120.81%5.5k55610.92%6K60220.28%6.5K6478-1.84% 7K6983-1.62%8k7903-3.3%9.5k96796%在調試時發現當所測電阻阻值接近量程時測得的值不夠精確。第7章 實物制作與仿真正面圖與反面圖 未開啟時的電路測量電阻時的仿真圖總結我設計的自動測量電阻表能夠完成基本部分和部分發揮部分的要求,即能夠完成測量量程為 1k、5k、10k三檔,測量準確度為5%;能自動顯示單位,這三檔量程具有自動量程轉換功能。這個基于單片機設計的電阻表具有智能化的功能如果投入生產可以增加量程以便于使用。這種電阻表成本低且實用性、可
15、操作性都很強。 通過本次課設,我知道了怎么去買器材,不僅僅要知道自己所需要的器材名稱還要知道型號。遇到問題我們要學會通過另一種途徑解決問題,比如本次課設,我使用的是ADC0832芯片而在電子市場的時候拿到的卻是DAC0832,這與賣家的粗心有關,但是根本問題還在我自身,沒有看清元器件的型號。下次做每一次失敗都是下次成功的基礎。感謝學校給我們這次機會,鍛煉了我們的動手能力及運用專業軟件的能力。通過這次課設讓我明白了理論和實際操作之間差距,而且也讓我很明確得意識到自己在數電上有很多的知識漏洞,以后應該多鉆研一下。這次課程設計我主要負責文論撰寫,在寫論文過程中積極和同組同學探討電梯的基本原理,每個模
16、塊的功能及如何實現。對Office套件的使用更熟悉,為以后畢業論文的撰寫奠定了一定基礎。最后再次感謝這次課程設計。參考文獻【1】 陳舜青 C語言程序設計 南京大學出版社 【2】 張齊 朱西寧 單片機應用系統設計技術 第五版 電子工業出版社 【3】 王敬棟 單片機C語言應用100例 電子工業出版社【4】 李群芳 單片機原理接口與應用 北京:清華大學出版社附錄1元器件清單:1、 STC89C52 X 12、LCD1602 X 13、電路板X14、排阻(10k)X15、12M晶振X16、 電位器X17、 40腳管座X18、 8腳管座X19、 自鎖開關X110、 復位開關X111、 整流橋X112、
17、30pf瓷片電容X213、 排針若干14、 排座若干15、 轉換開關X316、 各個阻值電阻若干17、 排線若干總計成本 80元附錄2 原理圖附錄3主程序:#include#include#includevoid get_liangcheng(void);void handle_code(void);void dis_code(void);void dis_dw_lc(void);unsigned char code mes1=Resistors:;unsigned char code digit=;unsigned char code mes=2001K5K10K;unsigned char
18、 res5,temp_0=0,temp_1=0;unsigned char t=0,sign=7;unsigned int R=0;unsigned char DIY_1602=/*- 電阻符號 -*/0x00,0x00,0x0E,0x11,0x11,0x0A,0x1B,0x00;/*函數功能:延時若干毫秒 */ void delaynms(unsigned char n) unsigned char i,j,k;delaynms(100);for(i=0;in;i+) for(j=0;j10;j+) for(k=0;k33;k+); /*主函數*/ void main(void) unsig
19、ned char j,T1=0,T2=0,k=1; delaynms Init_LCD1602(); Write_DIY1602(DIY_1602); WriteAdd_1602(0x00); j=0; while(mes1j!=0) WriteData_1602(mes1j+);while(1) get_liangcheng(); handle_code();/處理AD讀取到的數據 dis_code();/顯示四位數字和一個小數點 dis_dw_lc(); /顯示電阻單位和量程。 delaynms(1000); void get_liangcheng(void) /判斷用哪一個量程 unsi
20、gned char i;for(i=0;i5;i+) P3=(P3&0xf0)+i;delaynms(50);temp_0=GetAD_code(0);sign=7;switch(i)case 0:if(0x05temp_0)&(temp_0=0x4f)/200 sign=0;break; /中斷switch;case 1:if(0x20temp_0)&(temp_0=0x99)/500 sign=1;break;case 2:if(0x30temp_0)&(temp_0=0xa9)/1k sign=2;break;case 3:if(0x2btemp_0)&(temp_0=0xb0) /5K
21、 sign=3;break;case 4:if(0x2btemp_0)&(temp_00xb0) /10k sign=4;break; if(sign!=7)/中斷for循環 break; /*處理AD讀出的數*/ void handle_code(void) /處理AD讀出的數unsigned char i;P3=(P3&0xf0)+sign;delaynms(50);temp_0=GetAD_code(0); /AD讀取電壓,temp_1=GetAD_code(1);R=(100*temp_0)/(255-temp_1)*10; /轉換成電阻, for(i=0;i4;i+) /把處理后的前
22、四位數放進數組 res3-i=R%10;R=R/10;/*顯示讀數和小數點*/void dis_code(void)/顯示讀數和小數點unsigned char point=10,i;if(sign=0|sign=3)/判斷各量程的小數點放在第幾位point=3;elseif(sign=1|sign=4)point=1;elseif(sign=2)point=2;WriteAdd_1602(0x40); /顯示四個數學和一個小數點for(i=0;i4;i+)if(i=point)WriteData_1602(.);WriteData_1602(digitresi);/*顯示單位和量程*/voi
23、d dis_dw_lc(void) unsigned char i; WriteAdd_1602(0x46); /清除上次顯示的單位和量程。 for(i=0;i10;i+) WriteData_1602(0x20);switch(sign) case 0: /sign=0.200檔 顯示(o)WriteAdd_1602(0x46);WriteData_1602(0x00);WriteData_1602(/);WriteData_1602();WriteData_1602(2);WriteData_1602(0);WriteData_1602(0);WriteData_1602(0x00);Wr
24、iteData_1602();break;case 1:case 2:case 3: /2K/20K/200/檔顯示單位(Ko)WriteAdd_1602(0x46);WriteData_1602(k);WriteData_1602(0x00);if(sign=1)WriteData_1602(/);WriteData_1602();WriteData_1602(2);WriteData_1602(k);WriteData_1602(0x00);WriteData_1602();elseif(sign=2)WriteData_1602(/);WriteData_1602();WriteData
25、_1602(2);WriteData_1602(0);WriteData_1602(k);WriteData_1602(0x00);WriteData_1602();elseWriteData_1602(/);WriteData_1602();WriteData_1602(2);WriteData_1602(0);WriteData_1602(0);WriteData_1602(k);WriteData_1602(0x00);WriteData_1602();break;case 4: /10k檔位,顯示單位(ko)WriteAdd_1602(0x46);WriteData_1602(k);W
26、riteData_1602(0x00);WriteData_1602(/);WriteData_1602(10);WriteData_1602(k);WriteData_1602(0x00);break; ADC0832子程序:#include ADC0832.hunsigned char GetAD_code(unsigned char x) /x=0,選通通道0,反之選通1通道。 unsigned char i,dat;CS0832=1; /一個轉換周期開始 CLK0832=0; /為第一個脈沖作準備 CS0832=0; /CS置0,片選有效 DIO0832=1; /DIO置1,規定的起始
27、信號 CLK0832=1; /第一個脈沖 CLK0832=0; /第一個脈沖的下降沿,此前DIO必須是高電平 DIO0832=1; /DIO置1, 通道選擇信號 CLK0832=1; /第二個脈沖,第2、3個脈沖下沉之前,DI必須跟別輸入兩位數據用于選擇通道,這里選通道CH0 CLK0832=0; /第二個脈沖下降沿 DIO0832=x; /DI置x,選擇通道x CLK0832=1; /第三個脈沖 CLK0832=0; /第三個脈沖下降沿 DIO0832=1; /第三個脈沖下沉之后,輸入端DIO失去作用,應置1 CLK0832=1; /第四個脈沖for(i=0;i8;i+) /高位在前 CLK
28、0832=1; /第四個脈沖 CLK0832=0; dat=1; /將下面儲存的低位數據向右移dat|=(unsigned char)DIO0832; /將輸出數據DIO通過或運算儲存在dat最低位 CS0832=1; /片選無效 return dat; /將讀書的數據返回 LCD1602子程序:/*/#define LCD1602_GLOBALS#include LCD1602.h/*函數功能:延時若干毫秒入口參數:n*/ void LCD1602_delay(unsigned char n) unsigned char ii,i,j;for(ii=0;iin;ii+) for(i=0;i1
29、0;i+) for(j=0;j33;j+); /*函數功能:判斷液晶模塊的忙碌狀態返回值:result。result=1,忙碌;result=0,不忙*/ unsigned char BusyTest(void) bit result;RS=0; /根據規定,RS為低電平,RW為高電平時,可以讀狀態 RW=1; E=1; /E=1,才允許讀寫 _nop_(); /空操作 _nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應時間 result=BF; /將忙碌標志電平賦給result E=0; /將E恢復低電平 return result; /*函數功能:將模式
30、設置指令或顯示地址寫入液晶模塊入口參數:dictate*/void WriteCmd_1602 (unsigned char dictate) while(BusyTest()=1); /如果忙就等待 RS=0; /根據規定,RS和R/W同時為低電平時,可以寫入指令 RW=0; E=0; /E置低電平(根據表8-6,寫指令時,E為高脈沖, / 就是讓E從0到1發生正跳變,所以應先置0 _nop_(); _nop_(); /空操作兩個機器周期,給硬件反應時間 LCD1602_Port=dictate; /將數據送入P0口,即寫入指令或地址 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應時間 E=1; /E置高電平 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應時間 E=0; /當E由高電平跳變成低電平時,液晶模塊開始執行命令 /*函數功能:指定字符顯示的實際地址入口參數:x*/ void WriteAdd_1602(unsigned char x) Writ
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 光伏設備產業鏈環保法規遵守與執行考核試卷
- 3D打印在汽車設計中的生命周期評估應用考核試卷
- 2025年山東臨沂中考地理試卷真題及答案詳解(精校打印版)
- 刺繡藝術在商業空間中的可持續發展案例分析考核試卷
- 2025年中國PU塑膠材料數據監測研究報告
- 2025年中國PET電熱膜數據監測研究報告
- 2025年中國IDE轉接頭數據監測報告
- 2025年中國5-氯茚滿酮數據監測報告
- 2025至2030年中國高效變頻非真空管市場分析及競爭策略研究報告
- 2025至2030年中國鎂合金焊接車架市場分析及競爭策略研究報告
- 細集料篩分自動計算表格
- 15ZJ001 建筑構造用料做法
- 年產5萬噸趣味酥性餅干生產車間設計
- RFJ013-2010 人民防空工程防化設計規范
- 柳州某醫院空氣源熱泵熱水系統設計案例
- 西師大版六年級數學下冊第四單元 扇形統計圖 單元概述和課時安排
- 《中越傳統節日對比問題研究5100字【論文】》
- 《 民航服務心理學》考試題及參考答案
- 2021學堂在線網課《生活英語讀寫》課后作業單元考核答案
- 中國近現代史綱要超星爾雅答案貴州大學-
- Q∕GDW 12162-2021 隔離開關分合閘位置雙確認系統技術規范
評論
0/150
提交評論