51單片機課程設(shè)計AD轉(zhuǎn)換_第1頁
51單片機課程設(shè)計AD轉(zhuǎn)換_第2頁
51單片機課程設(shè)計AD轉(zhuǎn)換_第3頁
51單片機課程設(shè)計AD轉(zhuǎn)換_第4頁
51單片機課程設(shè)計AD轉(zhuǎn)換_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

.成績.課程設(shè)計報告華中師范大學武漢傳媒學院傳媒技術(shù)學院電子信息工程2011僅公布,版權(quán)全部....AD變換要求:A.使用單片機實現(xiàn)AD變換B.能夠?qū)崿F(xiàn)一位AD變換,并顯示(保存4位數(shù)字)設(shè)計框圖:外面模擬電模數(shù)變換辦理器壓信號(STC89C52)外面顯示器...方案設(shè)計:AD變換時單片機設(shè)計比較重要的實驗。模數(shù)變換芯片種類多,能夠知足不一樣用途和不一樣精度功耗等。外面模擬量選擇的是簡單的電位器,經(jīng)過控制電位器來改變模擬電壓。顯示電壓值采納一般的四位七段數(shù)碼管。而AD變換芯片采納使用最廣的ADC0809ADC0809芯片有28條引腳,采納雙列直插式封裝,如下圖。?????

下邊說明各引腳功能:IN0~IN7:8路模擬量輸入端。2-1~2-8:8位數(shù)字量輸出端。ADDA、ADDB、ADDC:3位地點輸入線,用于選通8路模擬輸入中的一路。ALE:地點鎖存同意信號,輸入端,高電平有效。START:A/D變換啟動脈沖輸入端,輸入一個正脈沖(起碼100ns寬)使其啟動(脈沖上漲沿使0809復位,降落沿啟動A/D變換)。??

EOC:A/D變換結(jié)束信號,輸出端,當A/D變換結(jié)束時,此端輸出一個高電平(變換時期向來為低電平)。OE:數(shù)據(jù)輸出同意信號,輸入端,高電平有效。當A/D變換結(jié)束時,此端輸入一個高電平,才能翻開輸出三態(tài)門,輸出數(shù)字量。?CLK:時鐘脈沖輸入端。要求時鐘頻次不高于640KHz。...???

REF(+)、REF(-):基準電壓。Vcc:電源,單調(diào)+5V。GND:地工作原理:第一輸入3位地點,并使ALE=1,將地點存入地點鎖存器中。此地點經(jīng)譯碼選通8路模擬輸入之一到比較器。START上漲沿將逐次迫近存放器復位。降落沿啟動A/D變換,以后EOC輸出信號變低,指示變換正在進行。直到A/D變換達成,EOC變成高電平,指示A/D變換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中止申請。當OE輸入高電平時,輸出三態(tài)門翻開,變換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。本次實驗采納中止方式把表示變換達成的狀態(tài)信號(EOC)作為中止懇求信號,以中止方式進行數(shù)據(jù)傳遞。不論使用上述哪一種方式,只需一旦確立變換達成,即可經(jīng)過指令進行數(shù)據(jù)傳遞。第一送出口地點并以信號有效時,OE信號即有效,把變換數(shù)據(jù)奉上數(shù)據(jù)總線,供單片機接受。采納中止能夠減少單片機負擔。并能夠使程序有更多的空間作二次開發(fā)。...硬件原理圖:...程序流程圖:開始初始化啟動AD變換有中止懇求是接受并分解電壓數(shù)據(jù)數(shù)碼管顯示電壓值...仿真圖:制作實物圖:AD變換模塊:...最小系統(tǒng)及顯示:整體成效:...調(diào)試:調(diào)試最多的是數(shù)碼管顯示問題掃描太慢顯示會太暗和有閃耀問題,經(jīng)過不停改變延緩來調(diào)整達到最正確狀態(tài)。心得領(lǐng)會:經(jīng)過此次的實驗設(shè)計特別是先期的電路設(shè)計,和芯片選擇以及后期的實物焊接。對我們專業(yè)的電路認識了好多,學到了好多。做一個東西要選擇你要的芯片的,你一定要先認識一些大概的東西當你選擇好后你更要全面認識它的性能。關(guān)于單片機硬件來說要認識芯片,你要怎樣去驅(qū)動他來知足你的要求。這關(guān)于編程和看懂芯片的時序有著高要求。畢竟此刻硬件更新?lián)Q代太快,一定要學習怎么去設(shè)計去編寫你要的程序來控制它。這是我此次實驗最深刻的理解。此次實驗也培育了我團隊合作能力踴躍主動交流,碰到問題一同解決。關(guān)于此刻的我們馬上走出校門的人來說意義重要。同時此次實驗也大大拓寬了我的視線我還有好多東西要去理解去學習。...原程序:#include<reg51.h>//引用標準庫的頭文件#include<intrins.h>#include<stdio.h>#defineucharunsignedchar#defineuintunsignedintuinttemp=0;sbitST=P3^6;//啟動信號sbitEOC=P3^3;//變換結(jié)束信號,連到外面中止1口,變換結(jié)束后進入外面中止sbitOE=P3^7;//輸出使能//sbitls=P2^7;sbitdig_hc595_sh_dr=P1^7;//數(shù)碼管的74HC595程序sbitdig_hc595_st_dr=P1^6;sbitdig_hc595_ds_dr=P1^5;voidinitial_myself( );voidinitial_peripheral( );voiddelay_short(unsignedintuiDelayShort);voiddelay_long(unsignedintuiDelayLong);//voiddisplay_service( );voiddisplay_drive( );voiddis_service(inttemp);//unsignedcharucDigShow8;//第8位數(shù)碼管要顯示的內(nèi)容//unsignedcharucDigShow7;//第7位數(shù)碼管要顯示的內(nèi)容//unsignedcharucDigShow6;//第6位數(shù)碼管要顯示的內(nèi)容//unsignedcharucDigShow5;//第5位數(shù)碼管要顯示的內(nèi)容unsignedcharucDigShow4;//第4位數(shù)碼管要顯示的內(nèi)容unsignedcharucDigShow3;//第3位數(shù)碼管要顯示的內(nèi)容unsignedcharucDigShow2;//第2位數(shù)碼管要顯示的內(nèi)容unsignedcharucDigShow1;//第1位數(shù)碼管要顯示的內(nèi)容unsignedcharcodedig_table[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的顯示碼unsignedcharucDigShowTemp=0;//暫時中間變量unsignedcharucDisplayDriveStep=1;//動向掃描數(shù)碼管的步驟變量voiddig_hc595_drive(unsignedcharucLedStatusTemp16_09,unsignedcharucLedStatusTemp08_01);...main( ){initial_myself( );//初始化單片機delay_long(100);initial_peripheral( );//初始化外頭while(1){P0=0xff;ST=0;ST=1;ST=0;啟動A/D變換while(EOC==0);OE=1;//EA=0;//temp=0xff;dis_service(temp);//EA=0;display_drive( );//顯示電壓值//delay_long(1);//EA=1;OE=0;}}voiddis_service(inttemp){intTp=0;Tp=temp*1.0/255*500;ucDigShow1=dig_table[Tp/1000];ucDigShow2=dig_table[Tp%1000/100]|0x80;ucDigShow3=dig_table[Tp%100/10];ucDigShow4=dig_table[Tp%10/1];}voiddisplay_drive( )//顯示電壓值...{uchari=1;for(i=1;i<5;i++){switch(i){case1://顯示第1位ucDigShowTemp=ucDigShow1;dig_hc595_drive(ucDigShowTemp,0xfe);break;case2://顯示第2位ucDigShowTemp=ucDigShow2;dig_hc595_drive(ucDigShowTemp,0xfd);break;case3://顯示第3位ucDigShowTemp=ucDigShow3;dig_hc595_drive(ucDigShowTemp,0xfb);break;case4://顯示第4位ucDigShowTemp=ucDigShow4;dig_hc595_drive(ucDigShowTemp,0xf7);break;/*case5://顯示第5位ucDigShowTemp=ucDigShow5;dig_hc595_drive(ucDigShowTemp,0xef);break;case6://顯示第6位ucDigShowTemp=ucDigShow6;dig_hc595_drive(ucDigShowTemp,0xdf);break;case7://顯示第7位ucDigShowTemp=ucDigShow7;dig_hc595_drive(ucDigShowTemp,0xbf);break;...case8://顯示第8位ucDigShowTemp=ucDigShow8;dig_hc595_drive(ucDigShowTemp,0x7f);break;*/}}}數(shù)碼管的74HC595驅(qū)動函數(shù)voiddig_hc595_drive(unsignedcharucDigStatusTemp16_09,unsignedcharucDigStatusTemp08_01){unsignedchari;unsignedcharucTempData;dig_hc595_sh_dr=0;dig_hc595_st_dr=0;ucTempData=ucDigStatusTemp16_09;//先送高8位for(i=0;i<8;i++){if(ucTempData>=0x80)dig_hc595_ds_dr=1;elsedig_hc595_ds_dr=0;dig_hc595_sh_dr=0;//SH引腳的上漲沿把數(shù)據(jù)送入存放器delay_short(1);dig_hc595_sh_dr=1;delay_short(1);ucTempData=ucTempData<<1;}ucTempData=ucDigStatusTemp08_01;//再先送低8位for(i=0;i<8;i++){if(ucTempData>=0x80)dig_hc595_ds_dr=1;elsedig_hc595_ds_dr=0;dig_hc595_sh_dr=0;//SH引腳的上漲沿把數(shù)據(jù)送入存放器delay_short(1);dig_hc595_sh_dr=1;delay_short(1);ucTempData=ucTempData<<1;}dig_hc595_st_dr=0;//ST引腳把兩個存放器的數(shù)據(jù)更新輸出到74HC595的輸出引腳上并且鎖存起來delay_short(1);...dig_hc595_st_dr=1;delay_short(1);dig_hc595_sh_dr=0;//拉低,抗擾亂就加強dig_hc595_st_dr=0;dig_hc595_ds_dr=0;}voiddelay_short(unsignedintuiDelayShort){unsignedinti;for(i=0;i<uiDelayShort;i++){;}}voiddelay_long(unsignedintuiDelayLong){unsignedinti;unsignedintj;for(i=0;i<uiDelayLong;i++){for(j=0;j<500;j++){;}}}voidinitial_myself( ){P0=0xff;P1=0xff;P2=0xff;P3=0xff;TMOD=0x02;//T1工作模式2TH0=0x14;TL0=0x00;}voidinitial_pe

溫馨提示

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

評論

0/150

提交評論