單片機課程設(shè)計報告_第1頁
單片機課程設(shè)計報告_第2頁
單片機課程設(shè)計報告_第3頁
單片機課程設(shè)計報告_第4頁
單片機課程設(shè)計報告_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

單片機課程設(shè)計14級單片機課程設(shè)計報告題目簡單數(shù)字電壓表專業(yè)班級通信工程1班學(xué)號1404200622學(xué)生姓名XXXX指導(dǎo)教師XXXX學(xué)院名稱電氣信息學(xué)院完成日期:2016年12月25日目錄1.設(shè)計要求及方案 11.1設(shè)計要求 11.2方案論證及選擇 11.2.1主要設(shè)計圖 11.2.2主控芯片 11.2.3顯示部分 12.主要器件 22.151單片機 22.2ADC模數(shù)轉(zhuǎn)換芯片 32.3數(shù)碼管 43.設(shè)計原理 53.1設(shè)計思路 53.2設(shè)計模塊 63.2.1模數(shù)轉(zhuǎn)換模塊 63.2.2數(shù)據(jù)處理及控制模塊 74.硬件電路設(shè)計 74.1單片機接入的電路 74.2晶振電路 84.3復(fù)位電路 84.4模擬輸入電路 94.5ADC芯片與單片機接口電路 94.6顯示電路 105.軟件設(shè)計 115.1程序流程圖 115.2程序設(shè)計 116.心得體會 147.指導(dǎo)老師意見 14附錄 15PAGE151.設(shè)計要求及方案1.1設(shè)計要求采用51系列單片機和ADC設(shè)計一個數(shù)字電壓表,采用了數(shù)字芯片A/D轉(zhuǎn)換、單片機控制的數(shù)碼管顯示、單片機的數(shù)據(jù)處理,輸入為0~5V線性模擬信號,輸出通過LED顯示,要求顯示兩位小數(shù)。1.2方案論證及選擇1.2.1主要設(shè)計圖電壓采集模數(shù)轉(zhuǎn)換單片機處理數(shù)碼管顯示電壓采集模數(shù)轉(zhuǎn)換單片機處理數(shù)碼管顯示圖1-2-11.2.2主控芯片選用單片機AT89C51和A/D轉(zhuǎn)換芯片ADC0809實現(xiàn)電壓的轉(zhuǎn)換和控制,用四位數(shù)碼管顯示出最后的轉(zhuǎn)換電壓結(jié)果。缺點是價格稍貴;優(yōu)點是轉(zhuǎn)換京都高,且轉(zhuǎn)換的過程和控制、顯示部分可以控制。1.2.3顯示部分方案1:選用4個單體的共陰極數(shù)碼管。優(yōu)點是價格比較便宜;缺點是焊接時比較麻煩,容易出錯。方案2:選用一個四聯(lián)的共陰極數(shù)碼管,外加四個三極管驅(qū)動。這個電路幾乎沒有缺點;優(yōu)點是便于控制,價格低廉,焊接簡單?;谡n程設(shè)計的要求和實驗室所能提供的儀器,選用了:方案2。2.主要器件2.151單片機圖2-1AT89C51單片機AT89C51是51系列單片機的一個型號,它是ATMEL公司生產(chǎn)的。AT89C52是一個低電壓、高性能CMOS8為單片機。將通用的微處理器和Flash存儲器結(jié)合在一起,可反復(fù)擦寫的Flash存儲器可有效地降低開發(fā)成本。AT89C51有PDIP、PQFP/TQFP及PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。主要功能特性:低功耗空閑和掉電模式,軟件設(shè)置睡眠和喚醒功能。兼容MCS51指令系統(tǒng),8K可反復(fù)擦寫(>1000次)FlashROM。3個16位可編程定時/計數(shù)器中斷,時鐘頻率0-24MHz。32個雙向I/O口,256B內(nèi)部RAM。2個串行中斷,可編程UART串行通道。2個外部中斷源,共6個中斷源。2個讀寫中斷口線,3級加密位。2.2ADC模數(shù)轉(zhuǎn)換芯片圖2-2ADC0808圖ADC0808是采樣分辨率為8位的、以逐次逼近原理進行模/數(shù)轉(zhuǎn)換的器件。其內(nèi)部有一個8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進行A/D轉(zhuǎn)換。ADC0808是ADC0809的簡化版本,功能基本相同。一般在硬件仿真時采用ADC0808進行A/D轉(zhuǎn)換,實際使用時采用ADC0809進行A/D轉(zhuǎn)換。引腳功能(外部特性)ADC0808芯片有28條引腳,采用雙列直插式封裝,如右圖所示。各引腳功能如下:1~5和26~28(IN0~IN7):8路模擬量輸入端。8、14、15和17~21:8位數(shù)字量輸出端。22(ALE):地址鎖存允許信號,輸入,高電平有效。6(START):A/D轉(zhuǎn)換啟動脈沖輸入端,輸入一個正脈沖(至少100ns寬)使其啟動(脈沖上升沿使0809復(fù)位,下降沿啟動A/D轉(zhuǎn)換)。7(EOC):A/D轉(zhuǎn)換結(jié)束信號,輸出,當A/D轉(zhuǎn)換結(jié)束時,此端輸出一個高電平(轉(zhuǎn)換期間一直為低電平)。9(OE):數(shù)據(jù)輸出允許信號,輸入,高電平有效。當A/D轉(zhuǎn)換結(jié)束時,此端輸入一個高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。10(CLK):時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ。12(VREF(+))和16(VREF(-)):參考電壓輸入端11(Vcc):主電源輸入端。13(GND):地。23~25(ADDA、ADDB、ADDC):3位地址輸入線,用于選通8路模擬輸入中的一路。2.3數(shù)碼管圖2-3共陰極四位數(shù)碼管數(shù)碼管有兩種:一種共陰極、另一種為共陽極,本次課程設(shè)計用的是共陰極。下面比較詳細說明共陰極與共陽極的共同點與區(qū)別:圖2-4共陰極與共陽極區(qū)別圖圖2-4中(b)的左邊為共陰極數(shù)碼管,也就是數(shù)碼管的陰極管接地。那時某段亮,這段就必須接高電平。共陰極數(shù)碼管0~9的C51編碼為:ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x7f,0x6f};ucharcodetable[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};其中1不帶小數(shù)點,2帶小數(shù)點。共陽極就是數(shù)碼管的每段都接高電平,這樣要是哪段亮就這段就得接地。3.設(shè)計原理3.1設(shè)計思路模擬電壓經(jīng)過檔位切換到不同的分壓電路篩減后,經(jīng)隔離干擾送到A/D轉(zhuǎn)換器進行A/D轉(zhuǎn)換。然后送到單片機中進行數(shù)據(jù)處理。處理后的數(shù)據(jù)送到LED中顯示。同時通過串行通訊與上位通信。硬件電路及軟件程序。而硬件電路又大體可分為A/D轉(zhuǎn)換電路、LED顯示電路,各部分電路的設(shè)計及原理將會在硬件電路設(shè)計部分詳細介紹;程序的設(shè)計使用匯編語言編程,利用Keil和PROTEUS軟件對其編譯和仿真。一般I/O接口芯片的驅(qū)動能力是很有限的,在LED顯示器接口電路中,輸出口所能提供的驅(qū)動電流一般是不夠的尤其是設(shè)計中需要用到多位LED,此時就需要增加LED驅(qū)動電路。驅(qū)動電路有多種,常用的是TTL或MOS集成電路驅(qū)動器,在本設(shè)計中采用了74LS244驅(qū)動電路。本實驗采用AT89C51單片機芯片配合ADC0808模/數(shù)轉(zhuǎn)換芯片構(gòu)成一個簡易的數(shù)字電壓表。該電路通過ADC0808芯片采樣輸入口IN0輸入的0~5V的模擬量電壓,經(jīng)過模/數(shù)轉(zhuǎn)換后,產(chǎn)生相應(yīng)的數(shù)字量經(jīng)過其輸出通道D0~D7傳送給AT89C51芯片的P0口。AT89C51負責(zé)把接收到的數(shù)字量經(jīng)過數(shù)據(jù)處理,產(chǎn)生正確的7段數(shù)碼管的顯示段碼,并通過其P1口傳送給數(shù)碼管。同時它還通過其三位I/O口P1.0、P1.1、P1.2、P1.3產(chǎn)生位選信號,控制數(shù)碼管的亮滅。另外,AT89C51還控制著ADC0808的工作。其ALE管腳為ADC0808提供了1MHz工作的時鐘脈沖;P2.4控制ADC0808的地址鎖存端(ALE);P2.1控制ADC0808的啟動端(START);P2.3控制ADC0808的輸出允許端(OE);P2.0控制ADC0808的轉(zhuǎn)換結(jié)束信號(EOC),總體思路如下圖3-1。圖3-1設(shè)計思路圖3.2設(shè)計模塊3.2.1模數(shù)轉(zhuǎn)換模塊電路原理圖如下所示,三個地址位ADDA,ADDB,ADDC均接高電平+5V電壓,因而所需測量的外部電壓可由ADC0808的IN7端口輸入。由于ADC0808在進行A/D轉(zhuǎn)換時需要有CLK信,本設(shè)計中利用AT89C51的定時中斷產(chǎn)生一個100KHZ的脈沖,由P1.4口送給ADC0808的時鐘端,通過軟件給其輸入一個正脈沖,可立即啟動A/D轉(zhuǎn)換。在軟件設(shè)計中,由于我們對單片機知識還沒能很熟練的掌握,用中斷方式較復(fù)雜,且這個程序CPU工作量不大,查詢方式對速度不會產(chǎn)生影響,所以我們采用查詢方式,確保仿真的進度和準確度。圖3-2系統(tǒng)原理圖在A/D轉(zhuǎn)換開始之前,逐次逼近寄存器的SAR的內(nèi)容為0,在A/D轉(zhuǎn)換過程中,SAR存放“試探”數(shù)字量,在轉(zhuǎn)換完畢后,它的內(nèi)容即為A/D轉(zhuǎn)換的結(jié)果數(shù)字量。邏輯控制與定時電路在START正脈沖啟動后工作,沒來一個CLK脈沖,該電路就可能告知向SAR中傳送一次試探值,對應(yīng)輸出U0與U1比較,確定一次逼近值,經(jīng)過8次逼近,即可獲得最后轉(zhuǎn)換的結(jié)果數(shù)字量。此處,EOC端口的信號顯示ADC0808的狀態(tài),開始A/D轉(zhuǎn)換時,EOC為低電平,轉(zhuǎn)換結(jié)束后,輸出高電平。3.2.2數(shù)據(jù)處理及控制模塊A/D轉(zhuǎn)換完畢后,單片機的P1.6口接收到一高電平,立馬通過P2將OE置1,ADC0808的三態(tài)輸出鎖存器被打開,轉(zhuǎn)換完的數(shù)字信號經(jīng)過與D0~D7相連的P0口進入AT89C51。AT89C51根據(jù)公式1-1將數(shù)字信號轉(zhuǎn)換為模擬量,然后利用程序獲取模擬量的每一位,分別通過P2口輸出到LED上。與此同時,AT89C另外,AT89C51一旦獲得了數(shù)據(jù)后便會將ST置0,即模數(shù)轉(zhuǎn)換器停止轉(zhuǎn)換,知道LED獲得新的數(shù)據(jù)并顯示出來,ST才會重新置1.由于AT89C51轉(zhuǎn)換速率很快(微妙量級),所以不會影響其接收新的數(shù)據(jù)。4.硬件電路設(shè)計4.1單片機接入的電路圖4-1單片機電路AT89C51單片機芯片接受ADC0808模/數(shù)轉(zhuǎn)換芯片把模擬量電壓轉(zhuǎn)換后產(chǎn)生相應(yīng)的數(shù)字量送入P0口,然后AT89C51把接收到的數(shù)字量經(jīng)過數(shù)據(jù)處理,產(chǎn)生正確的7段數(shù)碼管的顯示段碼,并通過其P1口傳送給數(shù)碼管。同時它還通過其三位I/O口P1.0、P1.1、P1.2、P1.34.2晶振電路圖4-2晶振電路接12MHz晶振,根據(jù)芯片手冊,適合并聯(lián)30pf微調(diào)電容,從而構(gòu)成并聯(lián)諧振,幫助和穩(wěn)定輸出波形。4.3復(fù)位電路圖4-3復(fù)位電路AT89C51單片機要求至少兩個高電平,以便單片機做好準備工作。當上電時,由于電容的電壓不能突變,會輸出高電平,當電容充電到一定程度,就會輸出低電平,單片機利用輸出高電平的這段時間復(fù)位。電阻和電容的值選擇要合適。在這要求R1<<R2,所以選取R1=1,R2=10。4.4模擬輸入電路圖4-4模擬輸入電路通過可變電阻一端接電源+5v,一端接地GND,通過改變電阻的阻值,從而改變所測電壓值,實現(xiàn)電壓的模擬信號輸入。4.5ADC芯片與單片機接口電路圖4-5ADC芯片與單片機接口電路ADC0808的輸出接到P1口,OUT1對應(yīng)的是最高位,START與ALE可以接在一起。在這里,START接P3.0,OE接P3.1,EOC接P3.2,ClOCK接P3.4。4.6顯示電路圖4-6顯示電路通過P0口控制四位共陰極數(shù)碼管段選,通過P2口的低四位控制位選。值得注意的是P0需要接上拉電阻,否則P0會處于高阻態(tài)。設(shè)計原理:將模擬量通過IN0輸入,經(jīng)過ADC0808芯片轉(zhuǎn)換,得到數(shù)字量輸出到單片機P0口,經(jīng)過單片機處理后,送到四位共陰極數(shù)碼管上顯示。仿真圖如圖4-7圖4-7仿真圖5.軟件設(shè)計5.1程序流程圖圖5-1程序流程圖5.2程序設(shè)計#include<AT89X51.H>unsignedcharcodedispbitcode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//定義顯示用的段碼unsignedcharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};//定義數(shù)碼管位選碼unsignedchardispbuf[8]={10,10,10,10,10,0,0,0};//顯示碼數(shù)組10對應(yīng)與段碼0x00,表示不亮unsignedchardispcount;//掃描位的記錄unsignedchargetdata;unsignedinttemp;longinti;unsignedintR1;sbitST=P3^0;sbitOE=P3^1;sbitEOC=P3^2;sbitCLK=P3^3;voidmain(void)//主函數(shù){ST=0;OE=0;ET0=1;//開定時器中斷ET1=1;EA=1;//開總中斷TMOD=0x12;//定義定時器0為計數(shù)方式,定時器1為記時方式,均工作在方式1TH0=216;定時器0初值高8位為216TL0=216;//定時器0初值低8位為216TH1=(65536-5000)/256;//定時器1初值高8位TL1=(65536-5000)%256;//定時器1初值低8位,即定時5msTR1=1;//啟動定時器1TR0=1;//開定時器0ST=1;ST=0;while(1){if(EOC==1)//判斷eoc口的按鍵是否按下{OE=1;getdata=P0;OE=0; i=getdata*1960; dispbuf[5]=i/10000; i=i%10000; dispbuf[6]=i/1000; i=i%1000; dispbuf[7]=i/100;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論