


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、電子科技大學微電子與固體電子學院實驗報告實驗名稱現代電子技術綜合實驗:詹朋璇 學號:24 評分:教師簽字電子科技大學教務處制電子科技大學實驗報告學生:詹朋璇學號:24指導教師:熊萬安實驗地點:211大樓308實驗時間:2014. 6. 30晚一、實驗室名稱:單片機技術綜合實驗室S實驗項目名稱:數碼管顯示A/D轉換的電壓值&數碼管顯 示秒表三、實驗學時: 12四、實驗目的與任務:1、熟悉系統設計與實現原理2、掌握KEIL C51的基本使用方法3、熟悉實驗板的應用4、連接電路,編程調試,實現各部分的功能5、完成系統軟件的編寫與調試五、實驗器材1、PC機一臺2、實驗板一塊六、實驗原理、步驟及
2、容試驗要求:數碼管的第1位顯示任務號1,第3位到第5位顯示、A/D轉換的電壓值,可調節電壓,第7、8位顯示兩位學號;數碼管第2位和第6位顯示“-”號;按按鍵keyl進行切換,此時數碼管第1位顯示任務號2,第7、 8位顯示循環倒計時的秒表,圍為08秒到01秒后,再過01秒,秒 表又顯示為08秒;(單片機系統中利用定時器/計數器計數秒表的值: 利用定時器T0延時1秒進行計數。),其它位顯示不變,按按鍵key2 時,秒表停止計數,再按按鍵key2時,秒表繼續計數,按keyl鍵, 又回到任務1的顯示狀態。當電壓值大于2伏時,按按鍵不起作用。1、 硬件設計(可打印)VCC5A實驗原理圖;TLC549串行
3、ADC2、各部分硬件原理(可打印)OSCWLW osczo:LMaur咧ow rawjm gfAta用仔RA3fAN?A4=申RA4?T0CW_RC-CV7 1 OSOTT5CMREOf/W而FE2W<75U1PIC1C-F37?RCDT1OSUCCP2 fierce P1 RCd恪 CKXR8 憐!X) RtejrxAix:RGRXrtiYI/OCLKtsu(3>csDITA OUTRBonwr RB1 RB2 RB3 丿 POM RB* RB5 RSXC RB7WDfWPKRMfPSFIRWfPSttW3fPSP3 RVKP6P牛 mfP6F3 R?flfPS« R財
4、計數碼管動態掃描iP ;4 p b 丁 8vJinrLLnnnAccessCycle BSsnip 1 c yclc Riconu(sec X&te A)tsw(CS)SampCycli5侮)Hi-Z StatetenA 7 Previous Conversion Uaia A LSB MSBConversion t>ata B*廠MSB(see Note B)tenMSBTLS549ADC工作時序圖3.軟件設計開始思考題:按鍵改用外部中斷模式,電路如何修改(畫示意圖)?程序如何修改,寫出中斷服務程序。答:將KEY1與KEY2鍵通過跳線分別接到INTO與INT1接口上。開啟中斷:
5、Syslnit ()EA=O; /禁止總中斷EX1=1; 使能/INT1中斷EXO=1; 使能/INTO中斷EA=1; /使能總中斷中斷服務程序:void INTOSVC () interrupt 0if (cnt<=31)t+;void INTISVC () interrupt 2if (cnt>=17)t一;七、總結及心得體會1.利用單片機開發板上豐富的資源可以實現一個有一定功能的系統。2.懂得利用中斷可以使單片機的效率提髙。八、對本實驗過程及方法、手段的改進建議 實在是沒有,都挺好的。九、附錄1、程序/*利用TLC549 A/D轉換器實現電壓測量與顯示#include <
6、;reg5lh> 件Jtinclude <absacc h> 問庫函數#defineLED dig XBYTE0x9000#define LED seg XBYTE0x8000 出控制包含8051的SFR寄存器定義頭文擴展并行接口所需的絕對地址訪/8位數碼管顯示器的位選輸出控制/8位數碼管顯示器的段碼(字形碼)輸itdefine KEY IN XBYTE0x8000定義TLC549操作接口 sbit ADC.CS = P7; sbit ADC DATA = P6; sbit ADC.CLK = P5;code unsigned char disp_seg=/顯示段碼0x3Fr
7、 0x06,0x5Bt 0x4Ft0x66,0x6D.0x7D,0x07,0x7F.0x6F,0x77.0x7c,0x39.0x5f, 0x79,0x7110x40,0x00.Oxff:/ 0123456789abcblank,全亮unsigned char DispBuf 8: 定義顯示緩沖區(由定時中斷程序自動掃描) unsigned char key_value. flag;/定義鍵盤返回值,任務標志unsigned char ylOOO, y 100, y 10,y;/定義秒表的個位,十分位,百分位,千分位 unsigned short mbiao;/定義秒表計數單元void dela
8、y(int ms);/延時大約1msunsigned char ReadAdc (void) ;/讀取 A/D 轉換結果void Adclnit (void) ;/初始化 ADC 接口void key_scan(void):void mainOunsigned char i=0;unsigned char volt, xlOO, xlO, x;TMOD &= OxOf;TMOD |= 0x10;TH1 = OxFC;TL1 = 0x66;TRI = 1;ET1 = 1;TMOD &= OxfO;TMOD |= 0x01;THO = OxFC;TLO = 0x66;TRO = 1
9、;ETO = 1;EA =1;Adclnit ();for(i=0; i<8; i+)DispBuf i = 17;/全部8位顯示滅y1000=9;yl00-9;ylO二9;y=9;mbino二9999;flag=0;whi le(l)while(flag =0)(volt = ReadAdc():/得到 A/D 轉換結果的數字量(OxOO'Oxff)volt = volt 250/256; 轉換成電壓值,其中 Vr=2. 5VxlOO = volt/100;xlO = (volt - xl00*100)/10;x = (volt 一 xl00*100)%10;DispBuf0
10、= 4;DispBufEl = 2;DispBuf2 = 16;DispBuf3 = x;DispBuf4 = xlO;DispBuf5 = xlOO;DispBuf6 = 16;8&&volt<=200)flagDispBuf7 = 1; delay(100); if(keyvalue l;mbiao=9000:while(key_value = 8): while (flag=l)TRO二1;volt = Read/dc():volt = volt * 250/256;/轉換成電壓值,其中 Vr=2. 5V xlOO = volt/100;xlO = (volt -
11、xl00*100)/10;x = (volt - xl00*100)%10;DispBuf0 = ylOOO;DispBuftl = 0;DispBuf2 = 16;DispBuf3 = x;DispBuf4 = xlO;DispBuf5 = xlOO;DispBuf6=16;DispBuf7=2;if(key_value = 8&&volt<=200)flag = 0;while(key value = 8); else if(key. value = 7&&volt<=200)flag = 2;while(key value = 7);while
12、(flag=2)TRO二!TRO;if(keyvalue = 7)flag = 1;while(key_value = 7): /函數:T1INTSVC0功能:定時器T1的中斷服務函數/void T1INTSVCO interrupt 3(code unsigned char = 0x01,0x02,0x04,0x081Ox1010x20,0x40,0x80: static unsigned char n = 0;TRI = 0;TH1 = OxFC;TL1 = 0x66;TRI = 1;LED dig = OxFF;/暫停顯示if(flag=0)if (n=5)LED seg = (disp
13、 segtDispBufnJ 0x80):elseLED seg =isp_segDispBuf n ; /更新掃描數據if(flag=l)if(n=5)LED seg = (disp_segDispBufn 0x80):elseif(n=4)更新掃描數據,/更新掃描數據/更新掃描數掲LED seg 二 ( disp segDispBufn); elseLED seg = disp_segDispBufn:if(flag=2)LED seg = 、disp segtDispBufn:LED_dig = 'nJ;/重新顯示key_scan(); n+; n &二 0x07;voi
14、d delay(int ms)unsigned int i,j;for (i=0; i<ms; i+)/延時大約 Ims (fosc=ll. 0592MHz)for(j=0; j<100; j卄)/*函數:ReadAdc ()功能:讀取A/D轉換結果返回:8位ADC代碼/unsigned char ReadAdc (void)unsigned char d;/讀取得 ADC 結果unsigned char n; /ADC bit 位計數ADC CS = 0;n = 5;whi le ( -n != 0 ) ;/模擬 tsu 時間n = 8;dod «= 1;if ( AD
15、C_DATA )d = d 0x01;/或 d+;ADC_CLK = 1;ADC_CLK = 0;whi1e ( -n != 0 );ADC CS = 1;return d;/函數:Adclnit ()功能:初始化ADC接口/void Adclnit(void)ADC_CS = 1;ADC_CLK = 0;ADC.DATA = 1;ReadAdc() ;/空讀一次,用于啟動一次A/D轉換過程void key scan(void)(unsigned char key in;key_in = KEY_IN;switch(key_in)case Oxff:key value = 0;break;ca
16、se '0x01:key_value = 1;break;case '0x02:key_value = 2;break;case '0x04:key_value = 3;break;case '0x08:keyvalue = 4;break;case '0x10:key_value = 5;break;case '0x20:keyvalue = 6;break;case '0x40:keyvalue = 7;break;case '0x80:key_value = 8;break;default:break;/函數:T1INTSVC0功能:定時器TO的中斷服務函數/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論