51單片機課程設計AD轉換_第1頁
51單片機課程設計AD轉換_第2頁
51單片機課程設計AD轉換_第3頁
51單片機課程設計AD轉換_第4頁
51單片機課程設計AD轉換_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

REF(+)、REF(-):基準電壓。Vcc:電源,單調+5V。GND:地工作原理:第一輸入3位地點,并使ALE=1,將地點存入地點鎖存器中。此地點經譯碼選通8路模擬輸入之一到比較器。START上漲沿將逐次迫近存放器復位。降落沿啟動A/D變換,以后EOC輸出信號變低,指示變換正在進行。直到A/D變換達成,EOC變成高電平,指示A/D變換結束,結果數據已存入鎖存器,這個信號可用作中止申請。當OE輸入高電平時,輸出三態門翻開,變換結果的數字量輸出到數據總線上。本次實驗采納中止方式把表示變換達成的狀態信號(EOC)作為中止懇求信號,以中止方式進行數據傳遞。不論使用上述哪一種方式,只需一旦確立變換達成,即可經過指令進行數據傳遞。第一送出口地點并以信號有效時,OE信號即有效,把變換數據奉上數據總線,供單片機接受。采納中止能夠減少單片機負擔。并能夠使程序有更多的空間作二次開發。...硬件原理圖:...程序流程圖:開始初始化啟動AD變換有中止懇求是接受并分解電壓數據數碼管顯示電壓值...仿真圖:制作實物圖:AD變換模塊:...最小系統及顯示:整體成效:...調試:調試最多的是數碼管顯示問題掃描太慢顯示會太暗和有閃耀問題,經過不停改變延緩來調整達到最正確狀態。心得領會:經過此次的實驗設計特別是先期的電路設計,和芯片選擇以及后期的實物焊接。對我們專業的電路認識了好多,學到了好多。做一個東西要選擇你要的芯片的,你一定要先認識一些大概的東西當你選擇好后你更要全面認識它的性能。關于單片機硬件來說要認識芯片,你要怎樣去驅動他來知足你的要求。這關于編程和看懂芯片的時序有著高要求。畢竟此刻硬件更新換代太快,一定要學習怎么去設計去編寫你要的程序來控制它。這是我此次實驗最深刻的理解。此次實驗也培育了我團隊合作能力踴躍主動交流,碰到問題一同解決。關于此刻的我們馬上走出校門的人來說意義重要。同時此次實驗也大大拓寬了我的視線我還有好多東西要去理解去學習。...原程序:#include<reg51.h>//引用標準庫的頭文件#include<intrins.h>#include<stdio.h>#defineucharunsignedchar#defineuintunsignedintuinttemp=0;sbitST=P3^6;//啟動信號sbitEOC=P3^3;//變換結束信號,連到外面中止1口,變換結束后進入外面中止sbitOE=P3^7;//輸出使能//sbitls=P2^7;sbitdig_hc595_sh_dr=P1^7;//數碼管的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位數碼管要顯示的內容//unsignedcharucDigShow7;//第7位數碼管要顯示的內容//unsignedcharucDigShow6;//第6位數碼管要顯示的內容//unsignedcharucDigShow5;//第5位數碼管要顯示的內容unsignedcharucDigShow4;//第4位數碼管要顯示的內容unsignedcharucDigShow3;//第3位數碼管要顯示的內容unsignedcharucDigShow2;//第2位數碼管要顯示的內容unsignedcharucDigShow1;//第1位數碼管要顯示的內容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;//動向掃描數碼管的步驟變量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;*/}}}數碼管的74HC595驅動函數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引腳的上漲沿把數據送入存放器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引腳的上漲沿把數據送入存放器delay_short(1);dig_hc595_sh_dr=1;delay_short(1);ucTempData=ucTempData<<1;}dig_hc595_st_dr=0;//ST引腳把兩個存放器的數據更新輸出到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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論