




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于AT89C52的電子秒表設計報告 所 在 學 院 :微電子與固體電子學院 所 在 專 業:固體電子工程 小 組 成 員:余希猛衡相文何彬德完 成 日 期:2013年4月20日摘要隨著計算機在社會領域的滲透,單片機的應用正在不斷地走向深入,同時帶動傳統控制檢測技術不斷更新。單片機是指集成在一個芯片上的微型計算機,主要包括CPU、隨機存儲器、只讀存儲器、基本輸入/輸出接口電路、定時器/計數器等部件。本文設計的主要思路是采用ATMEL公司的AT89C52單片機作為中央處理器,LED數碼顯示器,ISD1420語音芯片,設計具有計時和鬧鈴以及語音播報功能的電子秒表。正文中首先介紹了系統硬件的設計思路
2、以及工作原理,電子秒表按鍵功能,其次簡單闡述了程序的流程、程序各功能模塊的分析和實現過程,最后簡單總結了本次設計的難點、關鍵點以及收獲的經驗。關鍵詞:單片機,LED數碼管顯示器 ,AT89C52目 錄1 緒論41.1 引言41.2 器件選擇41.3 設計方案41.4 方案論證52 功能概述63 硬件設計83.1處理器設計83.2 電路設計94 軟件設計105 測試數據與理論分析-156 總結161緒論1.1 引言單片機自問世以來,以其良好性能,價格低廉等特點。越來越被人們重視。此次的電子秒表設計,我們決定采用STC系類的52單片機,作為電路的中央處理芯片。1.2 器件選擇中央處理芯片:STC8
3、9C52RC。顯示器:8段數碼管。語音芯片:ISD1420。以及各種電阻,電容,74系列芯片。1.3 設計方案方案一:采用PIC單片機控制數碼管。Microchip公司PIC系列單片機是近年來重點發展的單片機系列產品,品種最為豐富,其性能比低檔產品有所提高,增加了中斷功能,帶A/D,內部E2PROM數據存儲器,雙時鐘工作,比較輸出,捕捉輸入,PWM輸出, LCD驅動等等,其封裝從8腳到68腳,可用于高、中、低檔的電子產品設計中,價格適中,廣泛應用在各類電子產品中。方案二:采用C52單片機控制數碼管。為了使電子秒表功能更好。我們決定采用8個8段數碼管,這樣做使得電子秒表更加美觀,對時間的讀取更加
4、方便明了。同時對時間精確更提高一步,精確到1毫秒。電路外設置8個按鍵,起到控制電子秒表實現不同功能。另外添加了幾個LED二極管,用來提示使用者當前電子秒表處于什么狀態。鬧鈴方面,除了使用者自己定下的時間外,電路本身會在整時自動報時,例如,當電子秒表計時到10-00-00,即10分鐘時。鬧鈴響起,LED燈點亮。方案三:采用555定時器控制數碼管。由555定時器構成的多諧振蕩器,是一種信號比較好的時鐘發生器。主要由555定時器,電容,電阻構成。調節電位器,就可以獲得一定頻率的波信號。然后輸入計數器,使計數器開始計數。1.4 方案論證方案一:使用PIC單片機控制數碼管。PIC系列單片機的性能雖然比其
5、他的系列單片機更好,但是由于我們小組本來一直在使用C51的開發板,而沒有PIC的開發板。并且再次學習PIC的開發板,時間上也有些緊急。所以我們最終就決定還是使用C51單片機來完成本次的設計。方案二:使用C52單片機控制數碼管。使用C52單片機需要用C語言編程序,考慮到我們上學期對C語言有了初步的學習,有一定的基礎。所以這個方案一開始就吸引了我們。然后我們正好也有C51單片機的開發板,這讓我們再一次中意這個方案。排除這些因素,C51單片機本身的一些優勢也是不錯的。通過外接兩個74HC573芯片,可以很好的方便控制8個數碼管。而且在硬件電路的焊接方面也是很方便的。所以我們通過比較論證,最終還是決定
6、采用方案二。方案三:使用555定時器控制數碼管。555定時器通過外部電容與電阻的搭配產生固定的頻率,來控制計數器實現電子秒表功能。使用此方案能夠獲得較精確的計數時間,使得電子秒表的精確度能更好。但是經過我們小組的商議,一致認為該方案的硬件方面有較大的難度。每個數碼管都需要一個555定時電路。在焊電路時容易發生一些意想不到的問題。所以我們決定不采用此方案。2功能概述此次設計的功能實現主要依靠電路外圍的8個輸入按鍵。現在主要對這8個按鍵的各自功能,以及先后按下的不同現象進行敘述。(1)當電路接通電源后,將有一段音樂:世上只有媽媽好。大概10秒鐘會結束音樂播放,音樂結束后,8段數碼管將顯示 “HEL
7、LO”字符。提醒使用人員進入操作任務。此時可有兩種選擇:a按下K2鍵,或者b按下K1鍵。其中K1是進入計時狀態,K2是進入調用數據狀態。(注:若想要調用數據,需要在計時前執行。)a 當使用人員按下k2鍵時:數碼管進入調用數據狀態。由于在單片機程序中,秒表存儲了5組數據,分別為10-10-00 , 20-20-00 ,30-30-00 ,40-40-00 ,50-50-00.所以當按下k2鍵一次時,調用出 10-10-00,當按下兩次時,調用出 20-20-00,以此類推。當調出50-50-00后,再按兩次,調用數據重新回到10-10-00,依次循環。調用完成后。按下k1鍵確認。此時可以再用K5
8、,K6,K7,K8來調節時間。然后再按下k3鍵,計時開始。b 當使用人員不想調用數據時,可以按下K1鍵:數碼管顯示 00-00-00,此時使用人員可根據自己意愿,選擇定下鬧鈴時間,或者進入計時開始。若想要定下鬧鈴時間,就可以按下k2鍵。紅燈提示進入設置鬧鈴狀態。然后通過k5,k6,k7,k8四個鍵調節鬧鈴時間。其中k5鍵是使秒鐘數遞減,即每按一下k5,就使秒鐘數減1;k6鍵是使秒鐘數遞增;k7鍵是使分鐘數遞減;k8鍵是使分鐘數遞增。當使用者確定好鬧鈴時間后,再按下k1鍵,數碼管清零。此時鬧鈴時間就設置好了。然后按下k3鍵。計時開始。計時到達鬧鈴時間時,蜂鳴器鳴叫0.5秒,同時黃燈亮起。語音播報
9、鬧鈴時間。(2) 當數碼管處于計時狀態時。按下k4鍵時,計時停止,并保留當前的時間。再按下k3鍵時,計時重新從保留的時間處開始。可反復操作。無論數碼管是處于計時狀態,還是暫停狀態,只要按下k1鍵,數碼管就會全部清零。下面再對八個按鍵進行歸納說明一下:K1鍵:主要起到清零的作用,當調用數據完畢,定時完畢后,也需要按下K1鍵,然后再執行計時或設置計時起點的功能。K2鍵:主要起到調用數據與定鬧鈴的作用。在數碼管顯示“HELLO“字樣時按K2鍵進入調用數據狀態,在數碼管顯示”00-00-00“字樣時按K2鍵進入定鬧鈴狀態。K3鍵:起到開始計時的作用。即在一定情況下,按下K3鍵就可以進入計時狀態。K4鍵
10、:起到暫停計時的作用。即當電子秒表正在計時時,按下K4鍵就可以使計數暫停。K5鍵:設置時間,使秒鐘數遞減。K6鍵:設置時間,使秒鐘數遞增。K7鍵:設置時間,使分鐘數遞減。K8鍵:設置時間,使分鐘數遞增。硬件按鍵的連接及布局:K7 K5 K3 K1K8 K6 K4 K23硬件設計3.1 處理器設計(a)AT89SC52的最基本電路圖。(b)AT89SC52的其他引腳連接。 P0口:連接到兩個74HC573上,起到控制數碼管的段選和位選的作用。 P1口:連接到兩個74HC377上,起到控制錄放音芯片的作用。 P3口:連接到8個按鍵。用來控制秒表的工作。(c)注意問題。 上拉電阻的連接。STC系列芯
11、片中,有的IO口需要接上拉電阻,而有的IO口就不需要。比如P1口作為輸出端口時必須接上拉電阻。這種小問題是必須要注意的。不然會很難檢測出問題的。(a)放音電路圖(b)數碼管電路圖4 軟件設計調用數據程序 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、 計數程序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 測試數據與理論分析1.1 問題:當數碼管顯示數字時,其中的3,5,9最下面的一橫不亮
18、,但 是2,6,8的時候它又亮了。分析:一開始,我們都很糾結,百思不得其解。但是后來,我們認為,像這種情況,一定不會是電路原理,或者是LED燈的問題。因為如果是這些類似問題,當顯示2,6,8時它也應該不亮。后來,我們把這些數對應的P0口輸出數據列出,對比它們的不同。如下, :0101 1011 3 : 0100 1111 5 : 0110 11016 : 0111 1101 8 : 0111 1111 9 : 0110 1111 經過對比可以發現,凡是不亮的數值,第五位前的第四位都是0;凡是亮的數值,第五位前的第四位都是1。既是第五位受到了第四位的影響,應該是兩條線相連了。于是我們用萬用表測試發現,果真如此。重新焊接后,再測試發現它就好了。1.2 問題:當蜂鳴器在時間達到設置的鬧鈴時間時,響了0.5秒之后.不會停止,而是繼續鳴響。 分析:在開發板上測試程序時,蜂鳴器是按照要求鳴聲的。所以我們在一開始就認為是在焊電路時出現了虛焊。于是我們用萬用表進行了檢測.但是發現實際電路并沒出錯。排出了這種可能。我們認為可能是電路原理或是元件選擇出了錯。比如分壓電阻阻值太小或則太大,使三極管不能達到響應值。為此我們重新測量數據.確實是電阻的選擇出了錯
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 呼倫貝爾人口管理辦法
- 部編版八年級下冊道德與法治思想政治教學計劃
- 2025-2031年中國自動門控制器行業發展全景監測及投資前景展望報告
- 學校疫情期間衛生保健計劃
- 財務部稅務籌劃工作總結與改進計劃
- 2025年中國大功率電子鎮流器市場深度分析及投資戰略咨詢報告
- 2025年中國兔養殖行業市場深度評估及投資戰略規劃報告
- 2025年中國土壤污染修復行業發展監測及投資戰略研究報告
- 2025年環衛服務市場調研報告
- 防撞彈力柱行業深度研究分析報告(2024-2030版)
- 傲鵬ERP應付會計操作培訓課件
- 催收投訴防控預警處理流程(含投訴預警報備臺賬)
- 榮格心理類型理論課件
- 硬筆書法:幼小銜接識字寫字教學課件
- 公開招聘校長后備人選理論考試題庫
- 機械優化設計_經典實例PPT課件
- 新人教版八年級物理(下冊) 第十一章 功和機械能 第十一章 功與機械能復習課
- 東方航空無成人陪伴兒童乘機申請書
- 火針操作規范
- 智慧工廠解決方案—燈塔工廠引領制造業數字化轉型-白皮書
- 2019-2020學年廣東省廉江市實驗學校北師大版五年級下冊期末復習數學試卷2
評論
0/150
提交評論