AVR單片機(jī)數(shù)字電子鐘_第1頁
AVR單片機(jī)數(shù)字電子鐘_第2頁
AVR單片機(jī)數(shù)字電子鐘_第3頁
AVR單片機(jī)數(shù)字電子鐘_第4頁
AVR單片機(jī)數(shù)字電子鐘_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 單片機(jī)技術(shù)課程設(shè)計(jì)說明書 數(shù)字電子鐘 院 、 部: 電氣與信息工程學(xué)院 學(xué)生姓名: 楊超 指導(dǎo)教師: 凌云 職稱 講師 專 業(yè): 通信工程 班 級: 通信1201 完成時(shí)間: 2014年12月29日 湖南工學(xué)院課程設(shè)計(jì)任務(wù)書 課 程: 單片機(jī)技術(shù) 課程設(shè)計(jì)題目: 數(shù)字電子鐘 數(shù)字頻率計(jì) 數(shù)字電壓表 交通燈 搶答器 密碼鎖 波形發(fā)生器 數(shù)字溫度計(jì) 計(jì)算器 數(shù)字式秒表 適 用 班 級: 通信工程1201 時(shí) 間: 20142015學(xué)年第一學(xué)期 指 導(dǎo) 教 師: 凌 云 單片機(jī)技術(shù)課程設(shè)計(jì)任務(wù)書一、設(shè)計(jì)題目:數(shù)字電子鐘、數(shù)字頻率計(jì)、數(shù)字電壓表、交通燈、搶答器、密碼鎖、波形發(fā)生器、數(shù)字溫度計(jì)、計(jì)算器

2、、數(shù)字式秒表。二、適用班級:通信工程1201三、指導(dǎo)教師:凌云四、設(shè)計(jì)目的與任務(wù):學(xué)生通過理論設(shè)計(jì)和實(shí)物制作解決相應(yīng)的實(shí)際問題,鞏固和運(yùn)用在單片機(jī)技術(shù)中所學(xué)的理論知識和實(shí)驗(yàn)技能,掌握單片機(jī)應(yīng)用系統(tǒng)的一般設(shè)計(jì)方法,提高設(shè)計(jì)能力和實(shí)踐動(dòng)手能力,為以后從事電子電路設(shè)計(jì)、研發(fā)電子產(chǎn)品打下良好的基礎(chǔ)。五、設(shè)計(jì)內(nèi)容與要求 設(shè)計(jì)內(nèi)容1、數(shù)字電子鐘設(shè)計(jì)一個(gè)具有特定功能的電子鐘。該電子鐘上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P.”, 進(jìn)入時(shí)鐘準(zhǔn)備狀態(tài);第一次按電子鐘啟動(dòng)/調(diào)整鍵,電子鐘從0時(shí)0分0秒開始運(yùn)行,進(jìn)入時(shí)鐘運(yùn)行狀態(tài);再次按電子鐘啟動(dòng)/調(diào)整鍵,則電子鐘進(jìn)入時(shí)鐘調(diào)整狀態(tài),此時(shí)可利用各調(diào)整鍵調(diào)整時(shí)間,調(diào)整結(jié)

3、束后可按啟動(dòng)/調(diào)整鍵再次進(jìn)入時(shí)鐘運(yùn)行狀態(tài)。2、數(shù)字頻率計(jì)設(shè)計(jì)一個(gè)能夠測量周期性矩形波信號的頻率、周期、脈寬、占空比的頻率計(jì)。該頻率計(jì)上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P.”, 進(jìn)入測量準(zhǔn)備狀態(tài)。按頻率測量鍵則測量頻率;按周期測量鍵則測量周期;按脈寬測量鍵則測量脈寬;按占空比測量鍵則測量占空比。3、數(shù)字電壓表設(shè)計(jì)一個(gè)能夠測量直流電壓的數(shù)字電壓表。測量電壓范圍05V,測量精度小數(shù)點(diǎn)后兩位。該電壓表上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P.”, 進(jìn)入測量準(zhǔn)備狀態(tài),按測量開始鍵則開始測量,并將測量值顯示在顯示器上,按測量結(jié)束鍵則自動(dòng)返回“P.”狀態(tài)。4、交通燈設(shè)計(jì)一個(gè)具有特定功能的十字路口交通燈。

4、該交通燈上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P.”, 進(jìn)入準(zhǔn)備工作狀態(tài)。按開始鍵則開始工作,按結(jié)束鍵則返回“P.”狀態(tài)。要求甲車道和乙車道兩條交叉道路上的車輛交替運(yùn)行,甲車道為主車道,每次通車時(shí)間為60秒,乙車道為次車道,每次通車時(shí)間為30秒,要求黃燈亮3秒,并且1秒閃爍一次。有應(yīng)急車輛出現(xiàn)時(shí),紅燈全亮,應(yīng)急車輛通車時(shí)間10秒,同時(shí)禁止其他車輛通過。5、搶答器設(shè)計(jì)一個(gè)具有特定功能的搶答器。該搶答器上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P.”, 進(jìn)入準(zhǔn)備工作狀態(tài)。主持人按下開始按鈕后,搶答開始并限定時(shí)間30S;10S內(nèi)無人搶答,蜂鳴器發(fā)出音響;主持人按下開始按鈕之前有人按下?lián)尨鹌?,搶答違規(guī),顯

5、示器顯示違規(guī)臺(tái)號,違規(guī)指示燈亮,其它按鈕不起作用;正常搶答,顯示器顯示臺(tái)號,蜂鳴器發(fā)出音響,其它搶答按鈕無效;正常搶答下,從按下?lián)尨鸢粹o開始30S內(nèi),答完按鈕沒按下,則作超時(shí)處理,超時(shí)處理時(shí),違規(guī)指示燈亮,顯示器顯示違規(guī)臺(tái)號。蜂鳴器發(fā)出音響;各臺(tái)數(shù)字顯示的消除,蜂鳴器音響及違規(guī)指示燈的關(guān)斷,都要通過主持人按復(fù)位按鈕。6、密碼鎖設(shè)計(jì)一個(gè)具有特定功能的密碼鎖。該密碼鎖上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P.”, 進(jìn)入準(zhǔn)備工作狀態(tài)。該密碼鎖具有系統(tǒng)原始密碼888888,用戶可以設(shè)定并存儲(chǔ)用戶密碼,密碼輸入時(shí)應(yīng)處于保密顯示狀態(tài),密碼輸入正確時(shí)應(yīng)顯示密碼輸入正確提示信息,否則,顯示密碼輸入錯(cuò)誤提示信息

6、。7、波形發(fā)生器設(shè)計(jì)一個(gè)具有特定功能的波形發(fā)生器。該波形發(fā)生器上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P.”, 進(jìn)入準(zhǔn)備工作狀態(tài)。該波形發(fā)生器可以分別產(chǎn)生幅值05V、頻率100Hz100KHz范圍內(nèi)的三角波、鋸齒波、方波、梯形波和正弦波。8、數(shù)字溫度計(jì)設(shè)計(jì)一個(gè)具有特定功能的數(shù)字溫度計(jì)。該數(shù)字溫度計(jì)上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P.”,進(jìn)入準(zhǔn)備工作狀態(tài)。測量溫度范圍099,測量精度小數(shù)點(diǎn)后兩位,可以通過開始和結(jié)束鍵控制數(shù)字溫度計(jì)的工作狀態(tài)。9、計(jì)算器君設(shè)計(jì)一個(gè)具有特定功能的計(jì)算器。該計(jì)算器上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P.”,進(jìn)入準(zhǔn)備工作狀態(tài)。能實(shí)現(xiàn)(1)基本的加、減、乘、除、平方

7、、開方;(2)三角函數(shù)運(yùn)算;(3)十進(jìn)制、十六進(jìn)制轉(zhuǎn)換運(yùn)算;(4)其他功能。10、數(shù)字式秒表設(shè)計(jì)一個(gè)具有特定功能的數(shù)字式秒表。該數(shù)字式秒表上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P.”,進(jìn)入準(zhǔn)備工作狀態(tài)。該數(shù)字式秒表應(yīng)具有開始、暫停、連續(xù)、清零和停止功能。設(shè)計(jì)要求1、以上課題可以任選其一或多選,學(xué)生也可以自擬課題;2、編程語言:匯編或C51;3、計(jì)算機(jī)打印單片機(jī)技術(shù)課程設(shè)計(jì)說明書一份;4、設(shè)計(jì)時(shí)間:一周;5、實(shí)物制作;6、人員分組:一人一組一實(shí)物。六、單片機(jī)技術(shù)課程設(shè)計(jì)說明書正文主要內(nèi)容參照“單片機(jī)技術(shù)課程設(shè)計(jì)說明書正文主要內(nèi)容”文件。七、單片機(jī)技術(shù)課程設(shè)計(jì)說明書書寫規(guī)范格式 參照“單片機(jī)技術(shù)課

8、程設(shè)計(jì)說明書書寫規(guī)范格式”文件。八、參考資料1、馬忠梅,單片機(jī)的C語言Windows環(huán)境編程寶典M, 北京:北京航空航天大學(xué)出版社,2003.6; 2、李光飛,單片機(jī)C程序設(shè)計(jì)指導(dǎo)M,北京:北京航空航天大學(xué)出版社,2003.01 ;3、李光飛,單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo)M,北京:北京航空航天大學(xué)出版社,2004.9。電氣自動(dòng)化教研室 2014年9月10日IV摘 要 數(shù)字電子鐘由于它的的簡單方便受到人們的歡迎,所以設(shè)計(jì)一個(gè)簡易數(shù)字電子鐘很有必要。本電子鐘采用ATMEL公司的ATMEGA16單片機(jī)為核心,使用12MHz 晶振與單片機(jī)ATMEGA16相連接,通過軟件編程的方法實(shí)現(xiàn)以24小時(shí)為一個(gè)周期,同

9、時(shí)8位7段LED數(shù)碼管(兩個(gè)四位一體數(shù)碼管)顯示小時(shí)、分鐘和秒的要求,并在計(jì)時(shí)過程中具有定時(shí)功能,當(dāng)時(shí)間到達(dá)提前定好的時(shí)間進(jìn)行蜂鳴報(bào)時(shí)。 AVR系列單片機(jī)片內(nèi)資源豐富,接口強(qiáng)大,同時(shí)還具有電路簡單,故障率低,可靠性高,成本低廉等優(yōu)點(diǎn)。 本次課程設(shè)計(jì)是應(yīng)用單片機(jī)芯片ATMEGA16設(shè)計(jì)出的數(shù)字時(shí)鐘電路,整個(gè)系統(tǒng)以單片機(jī)作為中央控制器,硬件電路主要由三個(gè)部分構(gòu)成,即:單片機(jī)最小系統(tǒng)、數(shù)碼管顯示電路、鍵盤控制電路。數(shù)字鐘的精度、穩(wěn)定度遠(yuǎn)遠(yuǎn)超過老式機(jī)械鐘,且顯示直觀,無機(jī)械傳動(dòng)裝置,因而得到廣泛的應(yīng)用。設(shè)計(jì)完成的作品具有時(shí)間顯示、校正功能,走時(shí)準(zhǔn)確、顯示直觀、運(yùn)行穩(wěn)定等優(yōu)點(diǎn),達(dá)到課程設(shè)計(jì)的性能指標(biāo)。

10、關(guān)鍵詞: 電子鐘;ATMEGA16;AVR;定時(shí)目 錄1 設(shè)計(jì)課題任務(wù)、功能要求說明及方案介紹11.1 設(shè)計(jì)課題任務(wù)11.2 功能要求說明11.3 設(shè)計(jì)課題總體方案介紹及工作原理說明12 設(shè)計(jì)課題硬件系統(tǒng)的設(shè)計(jì)32.1 設(shè)計(jì)課題硬件系統(tǒng)各模塊功能簡要介紹32.2 設(shè)計(jì)課題元器件清單43 設(shè)計(jì)課題軟件系統(tǒng)的設(shè)計(jì)53.1 設(shè)計(jì)課題使用單片機(jī)資源的情況53.2 設(shè)計(jì)課題軟件系統(tǒng)個(gè)模塊功能簡要介紹53.3 設(shè)計(jì)課題軟件系統(tǒng)程序流程框圖63.4 設(shè)計(jì)課題軟件程序清單134 設(shè)計(jì)結(jié)論、仿真結(jié)果、誤差分析、教學(xué)建議144.1 設(shè)計(jì)課題的設(shè)計(jì)結(jié)論及使用說明144.2 設(shè)計(jì)課題的仿真結(jié)果144.3 設(shè)計(jì)課題的實(shí)

11、物結(jié)果144.4 設(shè)計(jì)課題的誤差分析144.5 設(shè)計(jì)體會(huì)154.6 教學(xué)建議15結(jié)束語16致謝17參考文獻(xiàn)18附錄19附錄A: 電路原理圖19附錄B:PCB圖20附錄C:元器件清單21附錄D:Proteus仿真圖22附錄E:實(shí)物圖23附錄F:程序清單24I1 設(shè)計(jì)課題任務(wù)、功能要求說明及方案介紹1.1 設(shè)計(jì)課題任務(wù)設(shè)計(jì)一個(gè)具有特定功能的電子鐘。具有時(shí)間顯示、報(bào)時(shí)等功能。并有時(shí)間設(shè)定,通過指示燈,來進(jìn)行時(shí)間調(diào)整。1.2 功能要求說明設(shè)計(jì)一個(gè)具有特定功能的電子鐘。該電子鐘上電或按鍵復(fù)位后能自動(dòng)在數(shù)碼管最右邊顯示系統(tǒng)提示符“P.”, 進(jìn)入時(shí)鐘準(zhǔn)備狀態(tài);第一次按電子鐘啟動(dòng)/暫停鍵,電子鐘從0時(shí)0分0秒

12、開始運(yùn)行,進(jìn)入時(shí)鐘運(yùn)行狀態(tài);再次按電子鐘啟動(dòng)/暫停鍵,則電子鐘進(jìn)入時(shí)鐘調(diào)整狀態(tài),按選擇鍵來選擇調(diào)時(shí)、調(diào)分、調(diào)秒,選擇該位時(shí),該位閃動(dòng),此時(shí)可利用各調(diào)整鍵調(diào)整時(shí)間,調(diào)整結(jié)束后可按啟動(dòng)/調(diào)整鍵再次進(jìn)入時(shí)鐘運(yùn)行狀態(tài)。1.3 設(shè)計(jì)課題總體方案介紹及工作原理說明本設(shè)計(jì)基于單片機(jī)技術(shù)原理,以單片機(jī)芯片ATMEGA16作為核心控制器,基于單片機(jī)ATMEGA16自身具有的定時(shí)資源,通過硬件電路的制作以及軟件程序的編制,利用單片機(jī)的控制作用,通過八位七段式數(shù)碼顯示管直接顯示“時(shí)-分-秒”時(shí)間信息,來實(shí)現(xiàn)相關(guān)的功能。并能對其進(jìn)行相應(yīng)的設(shè)置,修改。ATMEGA16定時(shí)器有多個(gè)寄存器,包括計(jì)數(shù)寄存器、控制寄存器、中斷

13、屏蔽寄存器、中斷標(biāo)志寄存器、匹配比較寄存器。T1是16位的定時(shí)器,T0/T2都是8位。所以T1的計(jì)數(shù)寄存器是16位的,分高字節(jié)(H)低字節(jié)(L)。所以T1是TCNT1H 和TCNT1L。而T0是TCNT0,8位的計(jì)數(shù)寄存器通過使用定時(shí)器1方式1產(chǎn)生1秒的標(biāo)準(zhǔn)時(shí)間,定時(shí)時(shí)間計(jì)算公式為: 分頻值 * 計(jì)數(shù)值 = 總計(jì)數(shù)值  總計(jì)數(shù)值 * 計(jì)數(shù)單位時(shí)間 = 延時(shí)時(shí)間本設(shè)計(jì)中,采用中斷方式定時(shí)50毫秒,使其循環(huán)計(jì)時(shí)20次則達(dá)到標(biāo)準(zhǔn)時(shí)間1秒。本設(shè)計(jì)中的數(shù)碼管是共陽接法,低電平可驅(qū)動(dòng)數(shù)碼管。動(dòng)態(tài)顯示,延時(shí)時(shí)間為10毫秒,由于視

14、覺暫留效應(yīng),人眼觀測出的數(shù)碼管一直處于亮狀態(tài)。 CPU通過調(diào)用掃描鍵盤按鍵情況,再調(diào)用相應(yīng)的鍵功能函數(shù)實(shí)現(xiàn)時(shí)間的調(diào)整。設(shè)計(jì)課題的硬件系統(tǒng)框圖如圖1所示: 圖1 數(shù)字電子時(shí)鐘硬件框圖2 設(shè)計(jì)課題硬件系統(tǒng)的設(shè)計(jì)2.1 設(shè)計(jì)課題硬件系統(tǒng)各模塊功能簡要介紹本電子鐘主要由單片機(jī)芯片ATMEGA16、4*1獨(dú)立鍵盤、下載口電路、晶振電路、電源電路、數(shù)碼管顯示電路和復(fù)位電路構(gòu)成。 2.1.1 單片機(jī)最小系統(tǒng)單片機(jī)最小系統(tǒng)主要由電源、復(fù)位、振蕩電路以及擴(kuò)展部分等部分組成。(1) 電源電路對于一個(gè)完整的電子設(shè)計(jì)來講,首要問題就是為整個(gè)系統(tǒng)提供電源供電模塊,電源模塊的穩(wěn)定可靠是系統(tǒng)平穩(wěn)運(yùn)行的前提和基礎(chǔ)。ATMEG

15、A16單片機(jī)雖然使用時(shí)間最早、應(yīng)用范圍最廣,但是在實(shí)際使用過程中,一個(gè)和典型的問題就是相比其他系列的單片機(jī),ATMEGA16單片機(jī)更容易受到干擾而出現(xiàn)程序跑飛的現(xiàn)象,克服這種現(xiàn)象出現(xiàn)的一個(gè)重要手段就是為單片機(jī)系統(tǒng)配置一個(gè)穩(wěn)定可靠的電源供電模塊。此最小系統(tǒng)中的電源供電模塊的電源可以通過計(jì)算機(jī)的USB口供給,也可使用外部穩(wěn)定的5V電源供電模塊供給。電源電路中一般接入了電源指示LED。(2) 復(fù)位電路單片機(jī)的置位和復(fù)位,都是為了把電路初始化到一個(gè)確定的狀態(tài),一般來說,單片機(jī)復(fù)位電路作用是把一個(gè)例如狀態(tài)機(jī)初始化到空狀態(tài),而在單片機(jī)內(nèi)部,復(fù)位的時(shí)候單片機(jī)是把一些寄存器以及存儲(chǔ)設(shè)備裝入廠商預(yù)設(shè)的一個(gè)值。單

16、片機(jī)復(fù)位電路原理是在單片機(jī)的復(fù)位引腳RST上外接電阻和電容,實(shí)現(xiàn)上電復(fù)位。當(dāng)復(fù)位電平持續(xù)兩個(gè)機(jī)器周期以上時(shí)復(fù)位有效。復(fù)位電平的持續(xù)時(shí)間必須大于單片機(jī)的兩個(gè)機(jī)器周期。具體數(shù)值可以由RC電路計(jì)算出時(shí)間常數(shù)。復(fù)位電路由按鍵復(fù)位和上電復(fù)位兩部分組成。A.上電復(fù)位:ATMEGA16系列單片及為高電平復(fù)位,通常在復(fù)位引腳RST上連接一個(gè)電容到VCC,再連接一個(gè)電阻到GND,由此形成一個(gè)RC充放電回路保證單片機(jī)在上電時(shí)RST腳上有足夠時(shí)間的高電平進(jìn)行復(fù)位,隨后回歸到低電平進(jìn)入正常工作狀態(tài),這個(gè)電阻和電容的典型值為10K和10uF。B.按鍵復(fù)位:按鍵復(fù)位就是在復(fù)位電容上并聯(lián)一個(gè)開關(guān),當(dāng)開關(guān)按下時(shí)電容被放電、R

17、ST也被拉到高電平,而且由于電容的充電,會(huì)保持一段時(shí)間的高電平來使單片機(jī)復(fù)位。(3) 晶振電路單片機(jī)系統(tǒng)里都有晶振,在單片機(jī)系統(tǒng)里晶振作用非常大,全程叫晶體振蕩器,他結(jié)合單片機(jī)內(nèi)部電路產(chǎn)生單片機(jī)所需的時(shí)鐘頻率,單片機(jī)晶振提供的時(shí)鐘頻率越高,那么單片機(jī)運(yùn)行速度就越快,單片接的一切指令的執(zhí)行都是建立在單片機(jī)晶振提供的時(shí)鐘頻率。在通常工作條件下,普通的晶振頻率絕對精度可達(dá)百萬分之五十。高級的精度更高。有些晶振還可以由外加電壓在一定范圍內(nèi)調(diào)整頻率,稱為壓控振蕩器(VCO)。晶振用一種能把電能和機(jī)械能相互轉(zhuǎn)化的晶體在共振的狀態(tài)下工作,以提供穩(wěn)定,精確的單頻振蕩。晶振通常與鎖相環(huán)電路配合使用,以提供系統(tǒng)所

18、需的時(shí)鐘頻率。如果不同子系統(tǒng)需要不同頻率的時(shí)鐘信號,可以用與同一個(gè)晶振相連的不同鎖相環(huán)來提供。ATMEGA16使用12MHz的晶體振蕩器作為振蕩源,由于單片機(jī)內(nèi)部帶有振蕩電路,所以外部只要連接一個(gè)晶振和兩個(gè)電容即可,電容容量一般在15pF至50pF之間。(4) 數(shù)碼管控制電路本設(shè)計(jì)采用的是LED數(shù)碼管動(dòng)態(tài)顯示方式。采用八個(gè)共陽的數(shù)碼管顯示器進(jìn)行顯示,加上一個(gè)74HC573作為驅(qū)動(dòng)和8個(gè)470的電阻起限流的作用。將位控口接在P2口上,段控口接在P0口上,實(shí)現(xiàn)對顯示的控制。LED動(dòng)態(tài)顯示方式。將LED顯示器各位數(shù)碼管的所有段控端(adp)相應(yīng)地并聯(lián)在一起,由一個(gè)8位I/O口(P0口)控制,而各位數(shù)

19、碼管的共陽極分別由相應(yīng)的I/O口(P2口)線控制,實(shí)現(xiàn)各位的分時(shí)選通。由于各位數(shù)碼管的段選線并聯(lián),段選碼的輸出對各位數(shù)碼管的來說都是相同的。因此,同一時(shí)刻,如果各位的位選線都處于選通狀態(tài)的話,6位LED將顯示相同的字符。 (5)下載口電路用PC的USB口供電,通過下載口把程序?qū)雴纹瑱C(jī)芯片內(nèi)。下載口分別接在單片機(jī)的RST引腳以及P15、P16、P17口線上實(shí)現(xiàn)數(shù)據(jù)傳送。2.1.2 設(shè)計(jì)課題電路原理圖、PCB圖此處電路原理圖以及PCB原理圖的繪制均使用AD軟件完成,AD提供了一個(gè)集成的設(shè)計(jì)環(huán)境,包括了原理圖設(shè)計(jì)和PCB布線工具,集成的設(shè)計(jì)文檔管理,支持通過網(wǎng)絡(luò)進(jìn)行工作組協(xié)同設(shè)計(jì)功能。根據(jù)硬件接線

20、要求設(shè)計(jì)繪制電路原理圖及PCB。具體電路原理圖見附錄A。PCB圖見附錄B。2.2 設(shè)計(jì)課題元器件清單 見附錄C。3 設(shè)計(jì)課題軟件系統(tǒng)的設(shè)計(jì)3.1 設(shè)計(jì)課題使用單片機(jī)資源的情況設(shè)計(jì)課題使用單片機(jī)資源的情況如下:P0口輸出數(shù)碼管段控信號,P2口輸出數(shù)碼管位控信號;P1.0-P1.3接四個(gè)按鍵;晶振12MHz,接單片機(jī)X1和X2口;啟動(dòng)/暫停鍵(實(shí)物圖上為左起第一個(gè)鍵)P1.0;通過選擇鍵選擇調(diào)整位(實(shí)物圖上為左起第四個(gè)鍵);增加鍵(實(shí)物圖上為左起第二個(gè)鍵)P1.1,按一次使選中位加1,一直按著則一直加1;減少鍵(實(shí)物圖上為左起第三個(gè)鍵)P1.2;按一次使選中位減1;一直按著則一直減1。3.2 設(shè)計(jì)

21、課題軟件系統(tǒng)個(gè)模塊功能簡要介紹 圖2 軟件系統(tǒng)模塊框圖 本設(shè)計(jì)的軟件系統(tǒng)主要采用以下基本模塊來實(shí)現(xiàn),主程序、中斷服務(wù)程序、鍵盤輸入程序模塊、數(shù)碼管及其驅(qū)動(dòng)模塊和延時(shí)模塊。主程序:主要是用于對輸入信號的處理、輸出信號的控制和對各個(gè)功能程序模塊的運(yùn)用及其控制。中斷服務(wù)程序:主要是用于電子鐘的準(zhǔn)確功能。由于ATMEGA16芯片不能通過延時(shí)實(shí)現(xiàn)一秒計(jì)時(shí)功能,所以在本次設(shè)計(jì)中,采用中斷程序,利用定時(shí)器1用工作方式一工作實(shí)現(xiàn)一秒計(jì)時(shí)。鍵掃描與處理程序: 確認(rèn)鍵是否被按下,當(dāng)有鍵按下是,得到相應(yīng)的鍵值以便調(diào)用鍵功能程序。鍵功能程序:從鍵掃描程序得到相應(yīng)的鍵值后按照鍵值執(zhí)行相關(guān)的鍵功能程序。數(shù)碼管及其驅(qū)動(dòng)模塊

22、:主要是用于驅(qū)動(dòng)數(shù)碼管及利用數(shù)碼管顯示時(shí)間。延時(shí)模塊:由于本次設(shè)計(jì)采用的是數(shù)碼管共陽極動(dòng)態(tài)顯示,P2口位控信號與P0口段控信號要保持協(xié)調(diào)才能把時(shí)分秒的信息完整的顯示出來。由于視網(wǎng)膜暫留效應(yīng),通過調(diào)用10毫秒的延時(shí)程序,動(dòng)態(tài)逐個(gè)點(diǎn)亮數(shù)碼管。實(shí)現(xiàn)時(shí)間信息的顯示。3.3 設(shè)計(jì)課題軟件系統(tǒng)程序流程框圖3.3.1 主程序流程框圖 圖3 主函數(shù)流程圖3.3.2 鍵掃描與處理程序流程框圖圖4 鍵掃描與處理函數(shù)流程圖3.3.3 時(shí)分秒轉(zhuǎn)換程序流程框圖圖5 時(shí)分秒轉(zhuǎn)換函數(shù)流程圖3.3.4 顯示程序流程框圖圖6 顯示函數(shù)流程圖3.3.5 鍵功能程序流程框圖 圖7 鍵1功能函數(shù)流程圖 圖8 鍵2功能函數(shù)流程圖 圖9

23、 鍵3功能函數(shù)流程圖 圖10 鍵4功能函數(shù)流程圖3.4 設(shè)計(jì)課題軟件程序清單見附錄F。4 設(shè)計(jì)結(jié)論、仿真結(jié)果、誤差分析、教學(xué)建議4.1 設(shè)計(jì)課題的設(shè)計(jì)結(jié)論及使用說明本設(shè)計(jì)為基于單片機(jī)的電子鐘的設(shè)計(jì)。設(shè)計(jì)中有三個(gè)按鍵,其中S1為啟動(dòng)/暫停鍵,S2為加控制鍵 S3為減控制鍵,S4為調(diào)整選擇鍵。4.2 設(shè)計(jì)課題的仿真結(jié)果 圖11 “P.”運(yùn)行狀態(tài)仿真 圖12 啟動(dòng)仿真結(jié)果 圖13 時(shí)鐘運(yùn)行狀態(tài)仿真4.3 設(shè)計(jì)課題的實(shí)物結(jié)果 圖14 時(shí)鐘運(yùn)行狀態(tài)實(shí)物顯示4.4 設(shè)計(jì)課題的誤差分析本設(shè)計(jì)的誤差用肉眼是看不出來的,但通過理論分析,有三種誤差的可能:由計(jì)時(shí)方案產(chǎn)生的誤差:本設(shè)計(jì)采用中斷方式計(jì)時(shí)1秒,程序設(shè)計(jì)

24、中,T作為計(jì)時(shí)1秒的重要參數(shù),當(dāng)T滿20次時(shí)計(jì)時(shí)一秒。此過程中,T有0增加到20次,代碼執(zhí)行需要一定的機(jī)器周期,產(chǎn)生誤差。主程序調(diào)用顯示函數(shù),延時(shí)函數(shù),鍵掃描函數(shù),CPU執(zhí)行相關(guān)的函數(shù)時(shí)需要時(shí)間。造成誤差。硬件系統(tǒng):由于元器件的布局,PCB走線的不同,產(chǎn)生一定的干擾。特別是在晶振高頻信號的作用下,硬件系統(tǒng)可能隨之產(chǎn)生一定的誤差。4.5 設(shè)計(jì)體會(huì)本次課程設(shè)計(jì)經(jīng)歷了很長一段時(shí)間,從期初老師布置相關(guān)的任務(wù),到理論知識的學(xué)習(xí),再到單片機(jī)實(shí)驗(yàn)和最后的課程設(shè)計(jì),我深刻的明白了課本知識轉(zhuǎn)化為自我實(shí)踐能力的是需要多練習(xí)的。平時(shí)理論課的學(xué)習(xí)沒有注重程序的編寫與硬件的調(diào)試,所以在本次課程設(shè)計(jì)中,我遇到了很多困難。

25、出了課本的只是外,課外資料的查找起到了很大的作用。程序調(diào)試時(shí)出現(xiàn)的問題,我在網(wǎng)絡(luò)論壇上可以通過查找相關(guān)的帖子,慢慢的自己調(diào)試程序,最后實(shí)現(xiàn)相關(guān)的基本功能。4.6 教學(xué)建議一個(gè)學(xué)期的單片機(jī)學(xué)習(xí)結(jié)束后,課程設(shè)計(jì)是檢驗(yàn)我們所掌握知識的最佳手段。就本人而言,我認(rèn)為在教學(xué)上,凌云老師是一個(gè)經(jīng)驗(yàn)豐富的老師,對單片機(jī)的教學(xué)很熟練。課程上的理論知識比較多,剛剛開始時(shí)學(xué)起來比較抽象,所以在剛開始時(shí),如果多一些解釋單片機(jī)工作原理的動(dòng)畫展示會(huì)加快我們對其原理的理解,后階段程序的編寫應(yīng)該增加一些學(xué)時(shí),如果在課堂上有老師的知道編寫一個(gè)程序或者讓同學(xué)掌握一個(gè)典型的綜合程序,再多一些習(xí)題講解,我們對程序的編寫會(huì)掌握的更加深

26、刻。結(jié)束語 為期一學(xué)期的單片機(jī)課程學(xué)習(xí)就要結(jié)束了,經(jīng)過本次課程設(shè)計(jì)后,同時(shí)也發(fā)現(xiàn)自己所學(xué)習(xí)到的知識是多么的淺薄,轉(zhuǎn)眼間就快大四了,很多知識都需要運(yùn)用到實(shí)際中去,在實(shí)踐中成長,在實(shí)踐中學(xué)習(xí),學(xué)習(xí)單片機(jī)技術(shù)不光學(xué)習(xí)單片機(jī)的理論知識,更要將其運(yùn)用于生活實(shí)踐當(dāng)中。從當(dāng)初做試驗(yàn)板,再到單片機(jī)實(shí)驗(yàn),然后最后的電子鐘課程設(shè)計(jì)。本次的電子鐘的軟件設(shè)計(jì)中發(fā)現(xiàn)了很多問題。在按鍵調(diào)整時(shí)間時(shí),在沒有釋放鍵盤的狀態(tài)下,數(shù)碼管是滅的。在解決問題的過程中,我將問題定位在鍵掃描的缺陷。修改的方法是將鍵掃描程序中的延時(shí)函數(shù)用顯示函數(shù)代替。這樣,CUP在執(zhí)行鍵掃描時(shí)一直在調(diào)用顯示函數(shù),以免造成CPU不送有效地時(shí)間數(shù)據(jù),長按鍵盤數(shù)

27、碼管不顯示的情況。初次調(diào)試時(shí),任意按鍵都不能控制開啟定時(shí)器,按鍵后依然顯示“P.”。此時(shí),顯示函數(shù)沒有問題,在查看鍵掃描程序時(shí),鍵值與0xff進(jìn)行邏輯“與”后得到的值沒有取反,鍵掃描返回的函數(shù)值在鍵掃程序中對應(yīng)的鍵值,所以一直顯示“P.”。取反的作用是消除鍵值與0xff時(shí)改變的高電平狀態(tài)與低電平狀態(tài)。有的知識,自己感覺已經(jīng)掌握得差不多了,但是實(shí)際操作起來就有問題出現(xiàn)了。我遇到了不少問題,花費(fèi)了很多的時(shí)間。這讓我重新反思我們的學(xué)習(xí),深刻領(lǐng)悟到我們這個(gè)專業(yè)動(dòng)手,實(shí)踐的重要性。理論不經(jīng)過實(shí)踐考驗(yàn),是沒法實(shí)施的,就像我們編的程序,很多方面考慮的都不夠,幾乎沒有涉及到實(shí)際應(yīng)用時(shí)的防范方法措施。致 謝在本

28、次課程設(shè)計(jì)過程中,感謝我的學(xué)校,給了我學(xué)習(xí)的機(jī)會(huì),在學(xué)習(xí)中,老師從選題指導(dǎo)、論文框架到細(xì)節(jié)修改,都給予了細(xì)致的指導(dǎo),提出了很多寶貴的意見與建議,老師以其嚴(yán)謹(jǐn)求實(shí)的治學(xué)態(tài)度、高度的敬業(yè)精神、兢兢業(yè)業(yè)、孜孜以求的工作作風(fēng)和大膽創(chuàng)新的進(jìn)取精神對我產(chǎn)生重要影響。凌云老師淵博的知識、開闊的視野和敏銳的思維給了我深深的啟迪。這次課程設(shè)計(jì)是在老師的精心指導(dǎo)和大力支持下才完成的。感謝所有授我以業(yè)的老師,沒有這些年知識的積淀,我沒有這么大的動(dòng)力和信心完成這篇論文。感恩之余,誠懇地請各位老師對我的論文多加批評指正。同時(shí),我感謝我身邊的同學(xué),朋友。在這個(gè)設(shè)計(jì)過程中,我遇到了很多困難,有了他們的幫助,我才能順利的完成

29、了相關(guān)的設(shè)計(jì)作業(yè)。謹(jǐn)以此致謝最后,我要向百忙之中抽時(shí)間對本文進(jìn)行審閱的凌云老師表示衷心的感謝。 參考文獻(xiàn)1代啟化.基于Proteus的電路設(shè)計(jì)與仿真J.現(xiàn)代電子技術(shù).2006,第19期. Dai QiHua.Proteus-based circuit design and simulation J. Modern electronic t echnology.2006,No.192劉文秀.單片機(jī)應(yīng)用系統(tǒng)仿真的研究J.現(xiàn)代電子技術(shù).2005, 第286 期.Liu WenXiu .Microcontroller Application System Simulation JModernelect

30、ronic technology.2005,No.2863曹巧媛.單片機(jī)原理及應(yīng)用M,北京:電子工業(yè)出版社,1997.7Cao QiaoYuan.Microcontroller Theory and Applications M, Beijing: Electronic Industry Press, 1997.74張洪潤.蘭清華,單片機(jī)應(yīng)用技術(shù)教程M,北京:清華大學(xué)出版社,1997.11Zhang Hongrun ,Lan Qinghua, MCU application technology tutorial M, Beijing: singhua University Press, 19

31、97.11附 錄附錄A:電路原理圖附錄B: PCB圖附錄C:元器件清單 表1 元器件清單 元器件名稱 規(guī)格 數(shù)目ATMEGA16單片機(jī)ATMEGA16單片機(jī)芯片鎖緊座ATMEGA16單片機(jī)轉(zhuǎn)接板四位一體共陽數(shù)碼管四位一體共陽數(shù)碼管插座74HC57374HC573芯片插座晶振發(fā)光二極管單排插針三極管蜂鳴器小按鍵下載口座子六腳按鍵電源開關(guān)USB電源線USB電源線插座電阻電阻電阻電解電容瓷片電容排阻排阻短路冒杜邦線8PPCB板子固定螺釘螺帽USB下載線 40P 40P 40P 40P 20P 20P 12MHz 40P 9012 200 470 1K 22uf 33pf 10k 470 3mm111

32、211119211101111184224141141附錄D:Proteus仿真附錄E:實(shí)物圖附錄F:程序清單/*/ ;項(xiàng)目名稱:數(shù)字式電子鐘的設(shè)計(jì);設(shè)計(jì)者: 楊超;設(shè)計(jì)日期:2014年12月28日;功 能 ;顯示系統(tǒng)提示符“P.”。在系統(tǒng)提示符狀態(tài)下,只有按啟動(dòng)鍵/停止鍵才能開啟電子鐘,電子鐘進(jìn)入運(yùn)行狀態(tài);再次按下啟動(dòng)鍵/停止鍵,電子鐘進(jìn)入調(diào)整狀態(tài),此時(shí),調(diào)時(shí)、調(diào)分、調(diào)秒鍵才可以工作。調(diào)整結(jié)束后,按下啟動(dòng)鍵/停止鍵。/*/#include <iom16v.h>#include<avrdef.h>#define uchar unsigned char#define ui

33、nt unsigned intuchar find_code8;uchar sec=0,min=0,hour=0;uchar count=0,v,i,z,x,c,num;/* 共陽數(shù)碼管段控碼顯示數(shù)組(顯示數(shù)字09,P.) */Uchar disp_DK=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x0c,0x8C,0xff,0xbf;/* 共陽數(shù)碼管位控?cái)?shù)組,用來顯示哪一個(gè)數(shù)碼管進(jìn)行顯示 */uchar disp_WK=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;/* 定義緩沖數(shù)組 */uchar

34、find_code;/*延時(shí)函數(shù)*/void Delay_ms(uint xms)uchar i; while(xms-) for(i=0;i<120;i+);/*函數(shù)名: disp()功能: 8個(gè)共陽數(shù)碼管動(dòng)態(tài)掃描顯示調(diào)用函數(shù):Delay_ms(uint xms)調(diào)用數(shù)組: disp_DK,disp_WK輸入?yún)?shù): 無輸出參數(shù):無說明: 數(shù)碼管顯示函數(shù) */void disp(void)uchar i,k; for(i=0;i<8;i+) /掃描8次,將8數(shù)碼管掃描一遍PORTC=disp_WKi; /送P2口控制被選中的數(shù)碼管被點(diǎn)亮k=find_codei; PORTA=dis

35、p_DKk; /送到P0口顯示相應(yīng)的數(shù)字Delay_ms(10); /延時(shí)1mSPORTA=0XFF;uchar keychuli(void) uchar k; DDRB=0X00; PORTB=0XFF; PINB=0XFF; k=PINB; /P1口內(nèi)容送K k=k; /取反 return(k); /返回鍵值/*函數(shù)名: key()功能: 掃描是否有鍵按下調(diào)用函數(shù):keychuli() 輸入?yún)?shù): 無輸出參數(shù):keyzhi說明: */uchar key(void) uchar keyzhi,keyzhii; /鍵盤按鍵鍵值臨時(shí)存放 keyzhi=keychuli(); /調(diào)P1口處理函數(shù)

36、if(keyzhi!=0) /有鍵動(dòng)作延時(shí)去抖動(dòng),否則函數(shù)返回 disp(); disp(); keyzhi=keychuli(); /再次調(diào)P1口處理函數(shù) if(keyzhi!=0) /真正有鍵按下,取鍵值并暫存 keyzhii=keyzhi; while(keyzhi!=0) /判按鍵是否釋放,沒有釋放延時(shí)去抖動(dòng)等待釋放 disp(); disp(); keyzhi=keychuli(); keyzhi=keyzhii; /按鍵釋放后恢復(fù)按鍵鍵值 return(keyzhi); /返回按鍵鍵值/*/* 函數(shù)原型:keylianjia();* 功 能:鍵盤掃描函數(shù),函數(shù)返回值即鍵值。/*/u

37、char keylianjia(void) uint i; uchar keyzhi,keyzhii; /鍵盤按鍵鍵值臨時(shí)存放 keyzhi=keychuli(); /調(diào)P1口處理函數(shù) if(keyzhi!=0) /有鍵動(dòng)作延時(shí)去抖動(dòng),否則函數(shù)返回 disp(); disp(); keyzhi=keychuli(); /再次調(diào)P1口處理函數(shù) if(keyzhi!=0) /真正有鍵按下,取鍵值并暫存 for(i=0;i<20;i+) keyzhii=keyzhi;disp(); return(keyzhi); while(keyzhi!=0) /判按鍵是否釋放,沒有釋放延時(shí)去抖動(dòng)等待釋放

38、disp(); disp(); keyzhi=keychuli();keyzhi=keyzhii; /按鍵釋放后恢復(fù)按鍵鍵值 return 0; /返回按鍵鍵值/*以下是主函數(shù)*/void main(void) DDRA=0XFF; /A口輸出 DDRC=0XFF; /C口輸出 DDRB=0X00; /B口輸入 TCCR1B=0X03; TCNT1H=0xe7; TCNT1L=0x96;SREG|=BIT(7); /開啟中斷 while(1) find_code0=10; find_code1=12; /緩沖數(shù)組賦初值 find_code2=12; find_code3=12; find_co

39、de4=12; find_code5=12; find_code6=12; find_code7=12; disp(); v=key(); if(v=1) while(1) biaohao: /設(shè)定返回標(biāo)號 TIMSK|=BIT(2); /打開定時(shí)器1 find_code0=sec%10; /更新緩沖數(shù)組 find_code1=sec/10; find_code2=13; find_code3=min%10; find_code4=min/10; find_code5=13; find_code6=hour%10; find_code7=hour/10;disp();v=key();if(v=

40、1) /當(dāng)按鍵一按下 while(1) TIMSK&=BIT(2);/關(guān)閉定時(shí)器1 disp();v=key(); switch(v) case 0:disp();break; case 8:while(1) biaoji: /設(shè)定返回標(biāo)號值z=keylianjia(); find_code0=sec%10;find_code1=sec/10;find_code6=hour%10;find_code7=hour/10;for(i=0;i<62&&(z=0|z=16|z=32|z=64);i+) disp(); z=keylianjia(); find_code6=

41、12; find_code7=12;for(i=0;i<63&&(z=0|z=16|z=32|z=64);i+)disp(); z=keylianjia(); switch(z) case 0:disp();break; case 1:goto biaohao;/返回標(biāo)號值 case 2:find_code6=hour%10; find_code7=hour/10; if(hour>23) hour=0; hour+; /小時(shí)加1 disp();break;case 4:find_code6=hour%10;find_code7=hour/10;if(hour<0)hour=23; hour-;/小時(shí)減1disp();break;default: disp();break;case 8:while(1) x=keylianjia();find_code6=hour%10;find_code7=hour/10;find_cod

溫馨提示

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

評論

0/150

提交評論