




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、作者:jungle目 錄摘要 1前言 1設計任務及要求1方案設計與論證 1單元電路的設計、參數計算和器件選擇 2電路原理分析3組裝調試過程9總結收獲、體會10參考文獻 10附錄 111 / 30摘要單片計算機即單片微型計算機。(Single-Chip Microcomputer),是集 CPU ,RAM ,ROM ,定時,計數和多種接口于一體的微控制器。他體積小,成本低,功能強,廣泛應用于智能產品和工業(yè)自動化上。而 51 單片機是各單片機中最為典型和最有代表性的一種。這次課程設計通過對它的學習,應用,從而達到學習、設計、開發(fā)軟、硬的能力。關鍵字:51單片機,4-16線譯碼器,定時器,中斷,模擬
2、時鐘,動態(tài)顯示前言本文通過對一個能實現時鐘時間設置,鬧鈴時間設置,實時時間顯示,整點報時等功能的時間系統(tǒng)的設計學習,簡單介紹了 51單片機應用中的單片機的定時器、中斷原理,數碼管顯示原理,LED燈顯示原理,動態(tài)掃描顯示原理,蜂鳴器工作原理,從而達到學習,了解單片機相關指令在各方面的應用。系統(tǒng)由 AT89C52、4線16線譯碼器、LED燈、數碼管、 按鍵、二極管,三極管、蜂鳴器等部分構成。能實現的功能:能進行時、分、秒的顯示。也具有時鐘時間的校準、鬧鈴定時時間的設定,整點報時,開啟或關閉響鈴等功能。文章后附有電路原理圖 ,電路PCB圖,程序清單。一、設計任務及要求以單片機為控制核心,設計用LED
3、燈表示時、分、秒的無表針鐘表,要求有整點報時、可設置開啟/停止報時功能、可設置修改時分數值及具有鬧鐘等功能。鍵盤輸入80C52單片機譯碼器74LS154報時/鬧鈴電路模擬LED燈表盤秒閃爍電路分閃爍電路圖1-系統(tǒng)框圖二、方案論證和選擇,畫出系統(tǒng)框圖方案1:對課題的初步認識:既然是模擬時鐘,那么想完整顯示小時、分鐘、秒數是不現實的,因此只用12個LED燈分別表示小時數,而對分鐘、秒數暫不考慮。對整點報時的理解是:一但到達整點則用蜂鳴器鳴45S來表示,而對點數沒有區(qū)分。對設置開啟/停止報時功能的理解:對一個管腳(Bell-EN)進行循環(huán)檢測,當電平為真/假時則開啟/停止報時功能。對設置修改時分數值
4、及具有鬧鐘功能的理解:當要進行時鐘時間修改時,通過時鐘使能端(Time-EN電平方式)進入時間設置狀態(tài)(Time-SET電平方式);當要進行鬧鈴時間修改時,通過鬧鈴使能端(Ring-EN)進入時間設置狀態(tài)(Time-SET)。方案2:對題目的最終認識:12個LED燈在需要的時候可用來顯示大概的分鐘數(誤差5min)、秒數(誤差5S)。蜂鳴器對不同的整點數鳴對應的聲數。對設置開啟/停止報時功能時,直接采用撥動開關斷掉電源來實現,如此省了一個I/O管腳。采用按鍵的多功能復用方式,SW2小時累加/時鐘使能端(Time-EN邊沿觸發(fā)方式),SW3分鐘十位累加/鬧鈴使能端(Ring-EN邊沿觸發(fā)方式),
5、SW4分鐘個位累加/表盤顯示當前分鐘數(誤差5min),SW5確認鍵/表盤顯示當前秒數(誤差5S)。按鍵SW2/P0.4SW3/P0.5SW4/P0.6SW5/0.7第一功能時鐘使能端鬧鈴使能端長按時顯示分鐘數長按時顯示秒數第二功能小時加1鍵分鐘十位加1鍵分鐘個位加1鍵時間設置確認鍵對方案的更進一步認識:模擬表盤顯示方式與數字顯示方式的區(qū)別就是在時間的顯示、讀取方式上。本質都是數字時鐘,只是在表達數字的方式上有區(qū)別,因此必須想到在時間的顯示上不應該有太大的誤差。有12個LED燈足夠分別顯示時、分、秒數了。如此對顯示的最終方式是:正常情況下12個LED燈顯示的是對應的小時數,在需要的時候可采用-
6、“分”-顯示方式或-“秒”-顯示方式。三、單元電路的設計、參數計算和器件選擇。1 . 單元電路設計:數碼管指示電路由于所用的80C51的I/O口輸出電流較小,無法驅動LED數碼管正常顯示。因此必須加上拉電阻對數碼管進行驅動。模擬鐘盤電路針對表盤顯示的唯一性,采用74LS154(4線-16線譯碼器)設計電路,譯碼器的輸出電流足夠驅動LED燈,不用再進行驅動,同時串聯一個限流電阻,保護LED燈。按鍵電路采用獨立鍵盤方式,外加上拉電阻以確定管腳電平。蜂鳴器電路采用NPN二極管驅動蜂鳴器工作,二極管工作在開關狀態(tài)?;鶚Ob為高電平時二極管導通蜂鳴器響起,為低電平時截止蜂鳴器不響。2 . 參數計算:發(fā)光二
7、極管的工作電流一般為520mA,按課設板工作電壓5V計算,LED工作壓降為3V、工作電流10mA算,則限流電阻的取值為:R=(5-3)V/10mA=200。四、電路原理分析一 . 顯示原理1 . 模擬表盤的顯示電路原理圖見附錄的原理圖。P0口的低4位作為4-16線74LS154譯碼器的譯碼地址輸入端,譯碼器的前12個輸出端對應接LED燈。小時顯示:用12個LED燈分別對應小時數。分鐘顯示:在SW4長按情況下,采用動態(tài)顯示,長亮的燈表示分鐘的十位數值,閃爍或微亮的燈表示分鐘的個位數值。秒數顯示:在SW5長按情況下,采用動態(tài)顯示,長亮的燈表示秒數的十位數值,移動的燈表示秒數的個位數值。(表1)74
8、LS154真值表輸 入輸 出OE1'+OE2'DCBAY0'Y1'Y2'Y3'Y4'Y5'Y6'Y7'Y8'Y9'Y10'Y11'1xxxx111111111111000000111111111110000110111111111100010110111111111000111110111111110010011110111111100101111110111111001101111110111110011111111110111101000111111110111010011111
9、1111101101010111111111101010111111111111102 . 系統(tǒng)相關的輔助指示方法 數碼管在顯示“_”時表示進入時間校對,定時器調整狀態(tài);顯示“=”時表示進入鬧鈴設定調整狀態(tài);顯示“三”時表示進入鬧鈴響鈴狀態(tài);顯示“.”時表示非以上狀態(tài)。 分鐘指示LED燈(MINUTE),其工作方式為:亮1分鐘>暗1分鐘>亮1分鐘。 秒指示LED燈(SECOND),其工作方式為:亮1秒鐘>暗1秒鐘>亮1秒鐘。二 . 鍵盤及讀數原理1 . 獨立式按鍵的使用:圖二為按鍵與單片機的連接圖。機械式按鍵在按下或釋放時,由于機械彈性作用的影響,通常伴隨有一定時間的觸
10、點機械抖動,然后其觸點才穩(wěn)定下來。其抖動過程如圖二所示,抖動時間的長短與開關的機械特性有關,一般為510ms。在觸點抖動期間檢測按鍵的通與斷狀態(tài),可能導致判斷出錯。即按鍵一次按下或釋放被錯誤地認為是多次操作,這種情況是不允許出現的。為了克服按鍵觸點機械抖動所致的檢測誤判,必須采取去抖動措施,可從硬件、軟件兩方面予以考慮。本課設中采用軟件去抖方式。按鍵與單片機連接圖按鍵被按下時電壓的變化按鍵去抖開始按鍵按下?延時10ms按鍵還按下?按鍵釋放了?進行相應操作按鍵去抖結束NoYesYesYesNoNo鍵盤去抖流程框圖圖二-鍵盤相關原理圖2 . 系統(tǒng)的功能選擇由 SW2、SW3、SW4、SW5 完成。
11、如下表-1所示(表-2)按鍵SW2/P0.4SW3/P0.5SW4/P0.6SW5/0.7第一功能時鐘使能端鬧鈴使能端長按時顯示分鐘數長按時顯示秒數第二功能小時加1鍵分鐘十位加1鍵分鐘個位加1鍵時間設置確認鍵相關說明:在按鍵第一功能下SW2為時間校對,定時器調整功能鍵,按SW2進入時鐘時間調整狀態(tài),之后啟用按鍵的第二功能對時間進行調整;SW3為鬧鈴設定功能鍵,按SW3進入鬧鈴時間調整狀態(tài),之后啟用按鍵的第二功能對時間進行調整。長按SW4時選擇“分”顯示方式,長按SW5時選擇“秒”顯示方式。在按鍵第二功能下SW2按一次小時計數器加1,SW3按一次分鐘的十位計數器加1,SW4按一次分鐘個位計數器加
12、1,SW5作為本輪時間設置確認鍵,按下則返回主程序。三 . 程序設計思想1 . 整體簡單思路本次課設的課題既然是關于時鐘,那么首先想到的定是要保證時間的準確性,因此肯定首選定時器作為時間的其準。再考慮到時鐘時間的獨立性,宜用中斷進行計時、分、秒的累加計數。2 . 時鐘時間累加原則為了保證時鐘時間的獨立性、實時性,都在中斷中對時間進行處理。每夠50ms就進入中斷服務程序,50ms累加器加1,夠20個50ms則50ms累加器清零、1s累加器加1。夠60s則秒計數器清零、分計數器加1。夠60Min則分計數器清零、小時累加器加1。夠12個小時則小時累加器清零。3 . 整點報時和鬧鈴工作方式蜂鳴器對不同
13、的整點數時鳴對應的聲數。當到達定時時間點時,蜂鳴器響60s作為鬧鈴方式。若整點報時與定時響鈴重疊,處理方式為:整點報時具有優(yōu)先權。4 . 實時時間校準,定時設置為保證系統(tǒng)時間校準,定時設置的快速、準確、穩(wěn)定,在主程序中采用不斷的對鍵盤進行掃描檢測,對不同的觸發(fā)響應不同的功能。 按SW2?長按SW5?開始初始化(I/O口、定時器、中斷設置)時鐘時間設置按SW3?鬧鈴時間設置鬧鈴時間到?響鈴1min整點時間到?整點報時長按SW4?“分鐘”顯示方式“秒數”顯示方式YesYesYesYesYesYesNoNoNoNoNoNo圖三-主程序流程圖中斷開始T0定時器重新賦初值50ms個數加150ms個數夠2
14、0?50ms個數計數器清零秒計數器加1秒計數器夠60?秒計數器清零分計數器加1分計數器夠60?分計數器清零小時計數器加1小時計數器夠12?小時計數器清零整點報時使能端置1中斷返回YesNoYesYesYesNoNoNo圖四-中斷服務程序流程圖鍵盤子程序按SW2?小時計數器加1數碼管顯示相應值按SW3?分鐘的十位計數器加1數碼管顯示相應值按SW4?分鐘的個位計數器加1數碼管顯示相應值按SW5?鍵盤返回YesYesYesYesNoNoNoNo圖五-鍵盤處理子程序流程圖二 . 軟件調試首先用PROTUES仿真軟件來對程序進行驗證,大概確定數據結構、算法分析的正確性。圖六-用PROTUES進行仿真的簡
15、易原理圖三 . 軟硬件聯合調試1 . 為了達到動態(tài)顯示分鐘、秒數,必須嘗試給定不同的延時時間來保證,十位數字的長亮,個位數字的閃爍狀態(tài)來區(qū)別。2 . 要驗證系統(tǒng)的時間邏輯性,就要運行整體程序,在關鍵點試驗操作的實際工作方式,是否為預期的效果。六、總結收獲、體會一 . 方案、電路優(yōu)缺點1 . 基于單片機的時鐘不管是模擬時鐘,還是數字時鐘,本質上都是數字時鐘,只是在顯示方式上有區(qū)別。數字時鐘采用的是數碼管或液晶的直接數字顯示方式。模擬時鐘采用的是發(fā)光二極管模擬機械式的時鐘表盤來達到模擬時鐘的效果。如此他們的本質上都是數字時鐘。2. . 本系統(tǒng)采用定時器中斷方式來確定時間,這樣能保證時鐘時間的獨立性
16、、實時性,與主函數具體操作占用的時間無關。3 . 本系統(tǒng)能隨時進行時鐘時間,鬧鈴時間的設定。能進行時、分、秒的顯示。也具有整點報時,開啟或關閉響鈴等功能。實時性,穩(wěn)定性高。七、參考文獻【1】 白駒珩, 雷曉平編著. 單片計算機及其應用(第二版). 北京:高等教育出版社;成都:電子科技大學出版社,2005.9【2】 康華光等編著. 電子技術基礎(第五版). 北京:高等教育出版社,2006.1 【3】 趙建領,薛圓圓等編著. 51單片機開發(fā)與應用技術詳解. 北京:電子工業(yè)出版社,2009.1【4】 吳曉蘇, 張中明編著. 單片機原理與接口技術. 北京:人民郵電出版社,2009【5】 湯競南,沈國琴
17、編著. 51單片機c語言開發(fā)與實例. 北京:中國電力出版社,2008.2【6】 閻石編著. 數字電子技術基礎(第五版). 北京:高等教育出版社2006.5八、附錄1. 程序/*-作者:黃俞舒*/*-0700820119-*/#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit key2=P04; /定義"小時"按鈕sbit key3=P05; /定義"分鐘-10"按鈕sbit key4=P06; /定義"分鐘-1"按鈕sbit k
18、ey5=P07; /定義"確認"按鈕sbit bell=P12;sbit min=P13;sbit sec=P14;uchar hour,minute,second; /實時時間變量uchar Rhour,Rminute; /鬧鈴時間變量uchar shi,fen10,fen1; /中間時間變量uchar Misec,k;bit BellEN; /整點鬧鈴使能-軟件unsigned char code table= /共陰極數碼管編碼0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0
19、x79,0x71 ;void keyexam(); void delay(uint z); /聲明延時子函數void init(); /聲明初始化函數void main() init(); /調用初始化子程序while(1)if(key2=0) delay(10); if(key2=0) while(!key2); /-時鐘設置P3=0x08;keyexam();hour=shi;P0=hour|0xf0;minute=fen10*10+fen1;shi=0;fen10=0;fen1=0;elseP3=0x80;if(key3=0) delay(10); if(key3=0) while(!k
20、ey3); /-鬧鈴時間設置P3=0x48;keyexam();Rhour=shi;Rminute=fen10*10+fen1;shi=0;fen10=0;fen1=0;if(Rhour=hour && Rminute=minute)/-鬧鈴報時 bell=1;else bell=0; if(BellEN=1) /-整點報時P3=0x49;k=hour;if (k=0)k=12;for(;k>0;k-)bell=1;delay(700);bell=0;delay(700);BellEN=0;while(!key4) /-分-顯示方式P0=(minute/10)|0xf0;
21、delay(50);P0=(minute%10)|0xf0;delay(5);while(!key5) /-秒-顯示方式P0=(second/10)|0xf0;delay(8);P0=(second%10)|0xf0;delay(8);P0=hour|0xf0; /返回-小時-顯示方式void delay(uint z) /延時子函數uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void init() /初始化子程序hour=0;minute=0;second=0;Rhour=0;Rminute=0;shi=0;fen10=0;fen1=0;M
22、isec=0;k=0; BellEN=0;P0=0xff;P3=0x00;bell=0;sec=0;min=0;TMOD=0x01; /使用定時器T0的方式1TH0=(65536-50000)/256;TL0=(65536-50000)%256; /定時50ms中斷一次EA=1; /中斷總允許ET0=1; /允許定時器T0中斷TR0=1; /啟動定時器開始工作void timer0() interrupt 1TH0=(65536-50000)/256; /重新賦初值TL0=(65536-50000)%256;Misec+; /中斷一次50ms計數器的值加1if(Misec>=20) /中
23、斷20次后,定時時間為20*50ms=1000ms=1sMisec=0;second+; /秒second的值加1sec=sec; / *取反*if(second>=60) /秒表到達60s后秒計數器清零second=0;minute+;min=min; /*取反*BellEN=0;if(minute>=60) /秒表到達60分鐘后分計數器清零minute=0;hour+;if(hour>=12) /秒表到達12小時后小時計數器清零hour=0;P0=hour|0xf0;BellEN=1;void keyexam() /鍵盤檢測子函數while(1) if(key2=0) /檢測"小時"按鈕是否按下delay(10); /延時去抖動if(key2=0)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新疆兵團八師一四三團一中2025年高二物理第二學期期末教學質量檢測模擬試題含解析
- 長沙市重點中學2025屆高二下物理期末綜合測試試題含解析
- 創(chuàng)新型綠色住宅買賣合同范本:環(huán)保生活承諾
- 食品企業(yè)食品安全應急處理采購合同
- 2025幼兒園后勤年度工作總結(17篇)
- 2025小學教師述職報告怎么寫(15篇)
- 公路養(yǎng)護稽查管理制度
- 醫(yī)院院外器械管理制度
- 電子屏合同(3篇)
- 出讓國有土地使用權合同書(4篇)
- JJF 2096-2024 軟包裝件密封性試驗儀校準規(guī)范
- 300MW汽輪機熱力計算
- 消防安全保密協議
- 2024年甘肅省特崗教師理科綜合真題
- 工業(yè)自動化中的人機協同生產與智能制造
- 鱗片防腐操作技術方案
- 消化性潰瘍基層診療指南(2023年)重點內容
- 員工用餐登記表
- 設備安裝調試記錄表
- 歐松板墻面施工方案
- 小學升初中階段的語文教學銜接
評論
0/150
提交評論