版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于AT89C52的電子秒表設(shè)計報告 所 在 學(xué) 院 :微電子與固體電子學(xué)院 所 在 專 業(yè):固體電子工程 小 組 成 員:余希猛衡相文何彬德完 成 日 期:2013年4月20日摘要隨著計算機在社會領(lǐng)域的滲透,單片機的應(yīng)用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測技術(shù)不斷更新。單片機是指集成在一個芯片上的微型計算機,主要包括CPU、隨機存儲器、只讀存儲器、基本輸入/輸出接口電路、定時器/計數(shù)器等部件。本文設(shè)計的主要思路是采用ATMEL公司的AT89C52單片機作為中央處理器,LED數(shù)碼顯示器,ISD1420語音芯片,設(shè)計具有計時和鬧鈴以及語音播報功能的電子秒表。正文中首先介紹了系統(tǒng)硬件的設(shè)計思路
2、以及工作原理,電子秒表按鍵功能,其次簡單闡述了程序的流程、程序各功能模塊的分析和實現(xiàn)過程,最后簡單總結(jié)了本次設(shè)計的難點、關(guān)鍵點以及收獲的經(jīng)驗。關(guān)鍵詞:單片機,LED數(shù)碼管顯示器 ,AT89C52目 錄1 緒論41.1 引言41.2 器件選擇41.3 設(shè)計方案41.4 方案論證52 功能概述63 硬件設(shè)計83.1處理器設(shè)計83.2 電路設(shè)計94 軟件設(shè)計105 測試數(shù)據(jù)與理論分析-156 總結(jié)161緒論1.1 引言單片機自問世以來,以其良好性能,價格低廉等特點。越來越被人們重視。此次的電子秒表設(shè)計,我們決定采用STC系類的52單片機,作為電路的中央處理芯片。1.2 器件選擇中央處理芯片:STC8
3、9C52RC。顯示器:8段數(shù)碼管。語音芯片:ISD1420。以及各種電阻,電容,74系列芯片。1.3 設(shè)計方案方案一:采用PIC單片機控制數(shù)碼管。Microchip公司PIC系列單片機是近年來重點發(fā)展的單片機系列產(chǎn)品,品種最為豐富,其性能比低檔產(chǎn)品有所提高,增加了中斷功能,帶A/D,內(nèi)部E2PROM數(shù)據(jù)存儲器,雙時鐘工作,比較輸出,捕捉輸入,PWM輸出, LCD驅(qū)動等等,其封裝從8腳到68腳,可用于高、中、低檔的電子產(chǎn)品設(shè)計中,價格適中,廣泛應(yīng)用在各類電子產(chǎn)品中。方案二:采用C52單片機控制數(shù)碼管。為了使電子秒表功能更好。我們決定采用8個8段數(shù)碼管,這樣做使得電子秒表更加美觀,對時間的讀取更加
4、方便明了。同時對時間精確更提高一步,精確到1毫秒。電路外設(shè)置8個按鍵,起到控制電子秒表實現(xiàn)不同功能。另外添加了幾個LED二極管,用來提示使用者當(dāng)前電子秒表處于什么狀態(tài)。鬧鈴方面,除了使用者自己定下的時間外,電路本身會在整時自動報時,例如,當(dāng)電子秒表計時到10-00-00,即10分鐘時。鬧鈴響起,LED燈點亮。方案三:采用555定時器控制數(shù)碼管。由555定時器構(gòu)成的多諧振蕩器,是一種信號比較好的時鐘發(fā)生器。主要由555定時器,電容,電阻構(gòu)成。調(diào)節(jié)電位器,就可以獲得一定頻率的波信號。然后輸入計數(shù)器,使計數(shù)器開始計數(shù)。1.4 方案論證方案一:使用PIC單片機控制數(shù)碼管。PIC系列單片機的性能雖然比其
5、他的系列單片機更好,但是由于我們小組本來一直在使用C51的開發(fā)板,而沒有PIC的開發(fā)板。并且再次學(xué)習(xí)PIC的開發(fā)板,時間上也有些緊急。所以我們最終就決定還是使用C51單片機來完成本次的設(shè)計。方案二:使用C52單片機控制數(shù)碼管。使用C52單片機需要用C語言編程序,考慮到我們上學(xué)期對C語言有了初步的學(xué)習(xí),有一定的基礎(chǔ)。所以這個方案一開始就吸引了我們。然后我們正好也有C51單片機的開發(fā)板,這讓我們再一次中意這個方案。排除這些因素,C51單片機本身的一些優(yōu)勢也是不錯的。通過外接兩個74HC573芯片,可以很好的方便控制8個數(shù)碼管。而且在硬件電路的焊接方面也是很方便的。所以我們通過比較論證,最終還是決定
6、采用方案二。方案三:使用555定時器控制數(shù)碼管。555定時器通過外部電容與電阻的搭配產(chǎn)生固定的頻率,來控制計數(shù)器實現(xiàn)電子秒表功能。使用此方案能夠獲得較精確的計數(shù)時間,使得電子秒表的精確度能更好。但是經(jīng)過我們小組的商議,一致認(rèn)為該方案的硬件方面有較大的難度。每個數(shù)碼管都需要一個555定時電路。在焊電路時容易發(fā)生一些意想不到的問題。所以我們決定不采用此方案。2功能概述此次設(shè)計的功能實現(xiàn)主要依靠電路外圍的8個輸入按鍵?,F(xiàn)在主要對這8個按鍵的各自功能,以及先后按下的不同現(xiàn)象進行敘述。(1)當(dāng)電路接通電源后,將有一段音樂:世上只有媽媽好。大概10秒鐘會結(jié)束音樂播放,音樂結(jié)束后,8段數(shù)碼管將顯示 “HEL
7、LO”字符。提醒使用人員進入操作任務(wù)。此時可有兩種選擇:a按下K2鍵,或者b按下K1鍵。其中K1是進入計時狀態(tài),K2是進入調(diào)用數(shù)據(jù)狀態(tài)。(注:若想要調(diào)用數(shù)據(jù),需要在計時前執(zhí)行。)a 當(dāng)使用人員按下k2鍵時:數(shù)碼管進入調(diào)用數(shù)據(jù)狀態(tài)。由于在單片機程序中,秒表存儲了5組數(shù)據(jù),分別為10-10-00 , 20-20-00 ,30-30-00 ,40-40-00 ,50-50-00.所以當(dāng)按下k2鍵一次時,調(diào)用出 10-10-00,當(dāng)按下兩次時,調(diào)用出 20-20-00,以此類推。當(dāng)調(diào)出50-50-00后,再按兩次,調(diào)用數(shù)據(jù)重新回到10-10-00,依次循環(huán)。調(diào)用完成后。按下k1鍵確認(rèn)。此時可以再用K5
8、,K6,K7,K8來調(diào)節(jié)時間。然后再按下k3鍵,計時開始。b 當(dāng)使用人員不想調(diào)用數(shù)據(jù)時,可以按下K1鍵:數(shù)碼管顯示 00-00-00,此時使用人員可根據(jù)自己意愿,選擇定下鬧鈴時間,或者進入計時開始。若想要定下鬧鈴時間,就可以按下k2鍵。紅燈提示進入設(shè)置鬧鈴狀態(tài)。然后通過k5,k6,k7,k8四個鍵調(diào)節(jié)鬧鈴時間。其中k5鍵是使秒鐘數(shù)遞減,即每按一下k5,就使秒鐘數(shù)減1;k6鍵是使秒鐘數(shù)遞增;k7鍵是使分鐘數(shù)遞減;k8鍵是使分鐘數(shù)遞增。當(dāng)使用者確定好鬧鈴時間后,再按下k1鍵,數(shù)碼管清零。此時鬧鈴時間就設(shè)置好了。然后按下k3鍵。計時開始。計時到達(dá)鬧鈴時間時,蜂鳴器鳴叫0.5秒,同時黃燈亮起。語音播報
9、鬧鈴時間。(2) 當(dāng)數(shù)碼管處于計時狀態(tài)時。按下k4鍵時,計時停止,并保留當(dāng)前的時間。再按下k3鍵時,計時重新從保留的時間處開始??煞磸?fù)操作。無論數(shù)碼管是處于計時狀態(tài),還是暫停狀態(tài),只要按下k1鍵,數(shù)碼管就會全部清零。下面再對八個按鍵進行歸納說明一下:K1鍵:主要起到清零的作用,當(dāng)調(diào)用數(shù)據(jù)完畢,定時完畢后,也需要按下K1鍵,然后再執(zhí)行計時或設(shè)置計時起點的功能。K2鍵:主要起到調(diào)用數(shù)據(jù)與定鬧鈴的作用。在數(shù)碼管顯示“HELLO“字樣時按K2鍵進入調(diào)用數(shù)據(jù)狀態(tài),在數(shù)碼管顯示”00-00-00“字樣時按K2鍵進入定鬧鈴狀態(tài)。K3鍵:起到開始計時的作用。即在一定情況下,按下K3鍵就可以進入計時狀態(tài)。K4鍵
10、:起到暫停計時的作用。即當(dāng)電子秒表正在計時時,按下K4鍵就可以使計數(shù)暫停。K5鍵:設(shè)置時間,使秒鐘數(shù)遞減。K6鍵:設(shè)置時間,使秒鐘數(shù)遞增。K7鍵:設(shè)置時間,使分鐘數(shù)遞減。K8鍵:設(shè)置時間,使分鐘數(shù)遞增。硬件按鍵的連接及布局:K7 K5 K3 K1K8 K6 K4 K23硬件設(shè)計3.1 處理器設(shè)計(a)AT89SC52的最基本電路圖。(b)AT89SC52的其他引腳連接。 P0口:連接到兩個74HC573上,起到控制數(shù)碼管的段選和位選的作用。 P1口:連接到兩個74HC377上,起到控制錄放音芯片的作用。 P3口:連接到8個按鍵。用來控制秒表的工作。(c)注意問題。 上拉電阻的連接。STC系列芯
11、片中,有的IO口需要接上拉電阻,而有的IO口就不需要。比如P1口作為輸出端口時必須接上拉電阻。這種小問題是必須要注意的。不然會很難檢測出問題的。(a)放音電路圖(b)數(shù)碼管電路圖4 軟件設(shè)計調(diào)用數(shù)據(jù)程序 if(key1=0) DelayMs(20); while(p) if(key0=0) a=0;n=1;m=0;p=0;d=1; diaoyong(); switch(e) case 2: hour=10;minute=10;second=0;break; case 3: hour=20;minute=20;second=0;break; case 4: hour=30;minute=30;s
12、econd=0;break; case 5: hour=40;minute=40;second=0;break; case 6: hour=50;minute=50;second=0;break; default:break; TempData0=dofly_DuanMahour/10; TempData1=dofly_DuanMahour%10; TempData2=0x40; TempData3=dofly_DuanMaminute/10; TempData4=dofly_DuanMaminute%10; TempData5=0x40; TempData6=dofly_DuanMaseco
13、nd/10; TempData7=dofly_DuanMasecond%10; 鬧鐘程序while(n) if(key1=0) ding2=0; while(d) H=hour;M=minute; TempData0=dofly_DuanMahour/10; TempData1=dofly_DuanMahour%10; TempData2=0x40; TempData3=dofly_DuanMaminute/10; TempData4=dofly_DuanMaminute%10; TempData5=0x40; TempData6=dofly_DuanMasecond/10; TempData
14、7=dofly_DuanMasecond%10; Display(0,8);if(key0=0)d=0;hour=0;minute=0;second=0;ding2=1;num=KeyScan(); switch(num) case 1:hour+;if(hour=60)hour=0; break; case 2:hour-;if(hour=255)hour=59; break; case 3:minute+; if(minute=60)minute=0; break; case 4:minute-; if(minute=255)minute=59; break; default:break;
15、 計數(shù)程序while (m) unsigned int i; extern unsigned char hour,minute,second;i+; if(i=5) i=0;UpdateTimeFlag=1; num+; if(num=77) num=0;second+;if(second=100) second=0; minute+; if(minute=60) minute=0; hour+; if(hour=60) hour=0;其他子程序void Display(unsigned char FirstBit,unsigned char Num) static unsigned char
16、 i=0; DataPort=0; LATCH1=1; LATCH1=0; DataPort=dofly_WeiMai+FirstBit; LATCH2=1; LATCH2=0; DataPort=TempDatai; LATCH1=1; LATCH1=0; i+; if(i=8)i=0;unsigned char KeyScan(void)unsigned char keyvalue; if(KeyPort!=0xff) DelayMs(10); if(KeyPort!=0xff) keyvalue=KeyPort; while(KeyPort!=0xff)Display(0,8); ;sw
17、itch(keyvalue) case 0xfe:return 1;break; case 0xfd:return 2;break; case 0xfb:return 3;break; case 0xf7:return 4;break; case 0xef:return 5;break; case 0xdf:return 6;break; case 0xbf:return 7;break; case 0x7f:return 8;break; default:return 0;break; return 0;5 測試數(shù)據(jù)與理論分析1.1 問題:當(dāng)數(shù)碼管顯示數(shù)字時,其中的3,5,9最下面的一橫不亮
18、,但 是2,6,8的時候它又亮了。分析:一開始,我們都很糾結(jié),百思不得其解。但是后來,我們認(rèn)為,像這種情況,一定不會是電路原理,或者是LED燈的問題。因為如果是這些類似問題,當(dāng)顯示2,6,8時它也應(yīng)該不亮。后來,我們把這些數(shù)對應(yīng)的P0口輸出數(shù)據(jù)列出,對比它們的不同。如下, :0101 1011 3 : 0100 1111 5 : 0110 11016 : 0111 1101 8 : 0111 1111 9 : 0110 1111 經(jīng)過對比可以發(fā)現(xiàn),凡是不亮的數(shù)值,第五位前的第四位都是0;凡是亮的數(shù)值,第五位前的第四位都是1。既是第五位受到了第四位的影響,應(yīng)該是兩條線相連了。于是我們用萬用表測試發(fā)現(xiàn),果真如此。重新焊接后,再測試發(fā)現(xiàn)它就好了。1.2 問題:當(dāng)蜂鳴器在時間達(dá)到設(shè)置的鬧鈴時間時,響了0.5秒之后.不會停止,而是繼續(xù)鳴響。 分析:在開發(fā)板上測試程序時,蜂鳴器是按照要求鳴聲的。所以我們在一開始就認(rèn)為是在焊電路時出現(xiàn)了虛焊。于是我們用萬用表進行了檢測.但是發(fā)現(xiàn)實際電路并沒出錯。排出了這種可能。我們認(rèn)為可能是電路原理或是元件選擇出了錯。比如分壓電阻阻值太小或則太大,使三極管不能達(dá)到響應(yīng)值。為此我們重新測量數(shù)據(jù).確實是電阻的選擇出了錯
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣西玉林市福綿區(qū)2021-2022學(xué)年六年級上學(xué)期英語期末試卷
- IT行業(yè)人事工作總結(jié)
- 《獼猴桃病蟲害防治》課件
- 《認(rèn)識水果蔬菜》課件
- 2024年江蘇省無錫市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2024年山東省聊城市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2021年甘肅省平?jīng)鍪泄_招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2024年福建省龍巖市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2023年山東省濱州市公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- “異地戀更能考驗?zāi)猩€是女生”辯論賽策劃書
- 2023北師大版六年級上冊數(shù)學(xué)期末試卷(共8套)
- 企業(yè)的涉稅風(fēng)險
- 武漢大學(xué)抬頭信簽紙
- 新人教版七年級下冊生物每課知識點總結(jié)
- 印刷作業(yè)指導(dǎo)書
- 浙江產(chǎn)業(yè)帶分布情況
- 2022年農(nóng)業(yè)示范基地建設(shè)工作總結(jié)
- 硬筆書法比賽方案精選
- 火力發(fā)電廠山谷型干貯灰場設(shè)計
- 柳宗元毛筆楷書字帖
- 電伴熱帶熱計算表xls
評論
0/150
提交評論