課程設計論文基于51單片機的搶答器設計_第1頁
課程設計論文基于51單片機的搶答器設計_第2頁
課程設計論文基于51單片機的搶答器設計_第3頁
課程設計論文基于51單片機的搶答器設計_第4頁
課程設計論文基于51單片機的搶答器設計_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1. 系統(tǒng)設計1.1設計要求1、 需要自己設計電路并焊接電路板。2、 基本要求:有一個主持人控制開關和6路搶答按扭,當主持人允許搶答時才能進行搶答操作,并用一個數碼管顯示搶答選手的號碼,同時其他選手不能再搶答。3、 當主持人允許搶答后倒計時5秒時間,在這5秒內搶答有效,過后就不能進行搶答了。4、 電路上要加個蜂鳴器的電路,當有選手搶答時蜂鳴器響一下。5、 當有選手搶答后,進行倒計時20秒作為選手回答問題時間,用兩個數碼管顯示,倒計時時間到時有聲光提示。6、 畫電路板時要增加下載接口,方便調試程序。7、 擴展功能(選做),8、 用按鍵可設置倒計時的時間,范圍在5秒到30秒之間。1.2設計原理1.

2、3總體思路 以at89s52單片機為核心的單片機,通過相應的程序,并且通過按鍵來進行電平識別,再由單片機輸出相應的程序,并將相應數值通過數碼管來顯示。1.4設計方案通過平時所學知識、查找資料和老師的答疑。我得到了正確的交通燈原理圖,在正確的電路圖前提下進行編程把程序燒到52芯片里,再把芯片連接到電路板上通過52芯片實現程序功能,實現步驟如下:通過p1.0到p1.7分別控制按鍵一到八,p0控制位選,p2.3控制段選,這樣就能基本達到了老師給我們搶答器 的要求了。2、模塊電路的設計2.1 2.1 數碼管顯示模塊 由于單片機的p0口沒有上拉電阻,當它做為輸出時,需要對其接上拉電阻。因為p0口做為數碼

3、管的段選輸出,所以要在p0口接一個1k的排阻。p2口做為數碼管的位選,任選其4個io口接線,就可以了,然后利用軟件來控制四個數碼管的亮滅。2.2 八個選手按鍵輸入 當按鍵按下時,對p1口輸入低電平,通過程序讀取低電平的io口,然后進行鎖存,對數碼管做相應的輸出,提供搶答選手號數。2.3 蜂鳴器輸出 蜂鳴器電路是利用npn開關電路,當基極為高電平時,三極管導通;當為低電平時,三極管截止。利用這一特性,可以畫出蜂鳴器的電路圖3、程序編寫調試過程 #include <reg52.h>#define uchar unsigned char#define uint unsigned int位

4、定義sbit s1=p30; sbit led=p33;sbit fmq=p34;段碼表 uchar tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; 定義字符型變量uchar flag1,flag2,num,m1,m,m2,t;延時程序void ys(uchar z) uchar i,j;for(i=z;i>0;i-)for(j=0;j<150;j+);void uinit()/初始化fmq = 0;tmod=0x01; th0=(65536-50000)/256;tl0=(65536-50000)%256;ea=1;e

5、t0=1;num=0;m2=0;m1=0;led=0;flag2=1;void timer0() interrupt 1th0=(65536-50000)/256;tl0=(65536-50000)%256;t+;if(t=20&&flag2=0) t=0;if(m1=0) tr0=0; flag2=1; /flag1=0; led=1; fmq=1;else m1-; if(t=20&&flag1=1&&flag2=1) t=0;m1=m%10;m2=m/10;if(m=0) m=0;led=1;fmq=1; else m-;led=0;fmq

6、=0; void key() if(s1=0) ys(10); if(s1=0) flag1=1;m1=5;flag2=0;num=0;led=0;m2=0;tr0=1;fmq=0; if( flag2=0) switch(p1) case 0xfe:tr0=0;num=1;flag2=1;m=20;led=1;fmq=1;tr0=1;break; case 0xfd:tr0=0;num=2;flag2=1;m=20;led=1;fmq=1;tr0=1;break; case 0xfb:tr0=0;num=3;flag2=1;m=20;led=1;fmq=1;tr0=1;break; case

7、 0xf7:tr0=0;num=4;flag2=1;m=20;led=1;fmq=1;tr0=1;break; case 0xef:tr0=0;num=5;flag2=1;m=20;led=1;fmq=1;tr0=1;break; case 0xdf:tr0=0;num=6;flag2=1;m=20;led=1;fmq=1;tr0=1;break; case 0xbf:tr0=0;num=7;flag2=1;m=20;led=1;fmq=1;tr0=1;break; case 0x7f:tr0=0;num=8;flag2=1;m=20;led=1;fmq=1;tr0=1;break; main

8、()uchar k;uinit();while(1) key();k=0;switch(k) case 0:p2=0xfe;p0=tabm2;ys(5);case 1:p2=0xfd;p0=tabm1;ys(5);case 2:p2=0xfb;p0=0x40;ys(5);case 3:p2=0xf7;p0=tabnum;ys(5); 4、焊接制作與調試過程 焊接制作過程:這次我們用的是萬用板,直接焊接。先把器件布局,布局好以后,再把各個幾件焊上去,最后再根據pcb圖用絕緣線或者焊錫把各個器件,芯片連接起來。調試過程:把程序燒進芯片后開始接電源,看看結果。如果出現亂碼 哪檢查線路沒問題后 就看看

9、程序的接口有沒有錯,主要問題就是在接口上。5、心得體會 通過這次實訓,我不僅提高了keil uvision3 , protel 99 se這些應用程序的運用,還讓我懂得了如何編寫一些簡單的程序,學會了如何制作單片機應用程序,還有焊接和程序固化,這幾天我經過老師耐心的講解和指導通過自己認真的動手操作,終于將一個完整的裝有程序的單片機芯片版制作出來了。但在實訓中間暴露出很多問題:對平時上課講的理論知識沒有完全掌握消化,到了實際操作中還得請教老師和同學,在焊接中焊接的基本工夫掌握不到家,手上工夫還是很欠缺的,使得電路板不是很美觀。這些問題的發(fā)現,有助于提高我在以后的工作和學習中對此類問題的認識,確保

10、不在同一問題上再次犯錯。給我的一個最大的感觸就是一個好的電工不應該只會接線,而是會發(fā)現錯誤,改正錯誤。這次實訓不僅加深了我們對知識的理解,更重要的是提高了我們的動手能力,增強了我對電工學習的熱愛,增加了學習的動力和興趣。6、參考文獻1.單片機c語言編程與實例趙亮、侯國瑞 人民郵電出版社 2.例說8051 張義和編著 人民郵電出版社 7附錄(程序和原理圖)1pcb圖2原理圖3 源程序#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit s1=p30;sbit led=p33;sbit fm

11、q=p34; uchar tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar flag1,flag2,num,m1,m,m2,t;void ys(uchar z) uchar i,j;for(i=z;i>0;i-)for(j=0;j<150;j+);void uinit()/初始化fmq = 0;tmod=0x01; th0=(65536-50000)/256;tl0=(65536-50000)%256;ea=1;et0=1;num=0;m2=0;m1=0;led=0;flag2=1;void timer0() i

12、nterrupt 1th0=(65536-50000)/256;tl0=(65536-50000)%256;t+;if(t=20&&flag2=0) t=0;if(m1=0) tr0=0; flag2=1; /flag1=0; led=1; fmq=1;else m1-; if(t=20&&flag1=1&&flag2=1) t=0;m1=m%10;m2=m/10;if(m=0) m=0;led=1;fmq=1; else m-;led=0;fmq=0; void key() if(s1=0) ys(10); if(s1=0) flag1=1;m

13、1=5;flag2=0;num=0;led=0;m2=0;tr0=1;fmq=0; if( flag2=0) switch(p1) case 0xfe:tr0=0;num=1;flag2=1;m=20;led=1;fmq=1;tr0=1;break; case 0xfd:tr0=0;num=2;flag2=1;m=20;led=1;fmq=1;tr0=1;break; case 0xfb:tr0=0;num=3;flag2=1;m=20;led=1;fmq=1;tr0=1;break; case 0xf7:tr0=0;num=4;flag2=1;m=20;led=1;fmq=1;tr0=1;break; case 0xef:tr0=0;num=5;flag2=1;m=20;led=1;fmq=1;tr0=1;break; case 0xdf:tr0=0;num=6;flag2=1;m=20;led=1;fmq=1;tr0=1;break; case 0xbf:tr0=0;num=7;flag2=1;m=20;led=1;fmq=1;tr0=1;break; case 0x7f:tr0=0;n

溫馨提示

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

評論

0/150

提交評論