微控制器多功能電子鐘設計

2023-02-06 13:15:04 字數 4907 閱讀 6646

微控制器課程設計報告

學院:專業:

班級:學號:

姓名:指導老師:

實習時間:

多功能電子鐘設計

一、設計任務

1.基本任務:利用定時器/計數器中斷和靜態顯示或動態顯示,實現電子鐘的時分秒精確走時和校準。

時間顯示用四個數碼管分別顯示時和分,秒用點表示,在時和分的中間閃動時間顯示格式:如下圖所示:

時間校準用2個鍵實現:乙個鍵k1做移位選擇鍵(選中要修改的位,選中的位用閃爍指示),乙個鍵k2做加1鍵(對選中的位進行加1修改)。

2.功能增強型任務:在基本任務的基礎上實現日曆功能、準點報時功能和跑錶功能:

(1)日曆功能:能夠實現時分秒和年日的計時,增加乙個按鍵控制分3個螢幕顯示,例如開始的第一屏預設顯示時分秒四位加秒點,按下k3鍵顯示月和日四位,再按下k3鍵顯示年份四位,再按下k3鍵顯示時分秒,以此類推程式要求能處理閏年閏月的功能

(2)準點報時功能:可增加乙個k4鍵設計具有鬧鐘功能,實現定點報時,具體操作是:按下k4鍵,進入鬧鐘設定功能,再通過k1、k2來完成定點報警時間設定。

(3)跑錶功能:增加乙個k5鍵設計跑錶功能,實現啟動毫秒計數,相當於田徑運動比賽的跑錶工作。

二、設計要求

1.基本任務要求:

(1)時間走時準確,每天誤差不能超過5秒。

(2)仿照電子錶的校時功能,校時修改時,被修改為能閃爍顯示,按鍵要靈敏。

(3)若最高位為0,高位能滅零顯示。

2.增強性功能要求:

(1)跑錶計數誤差1ms

(2)日曆程式要能處理閏年閏月功能

(3)準點報時功能人工解除和自動解除

三、程式設計方法

(1)先做資源分配,實現顯示時間儲存單元的預設數字。

(2)增加定時器./計數器中斷服務子程式,定時器/計數器工作是能正確改變時間儲存器的值並實現顯示。

(3)增加按鍵子程式,按鍵要能準確修改時間儲存單元。

四、實驗電路

(1)實驗電路包括顯示、鍵盤和報警喇叭三個部分電路

(2)可用靜態顯示或動態顯示電路(本次實驗採用用靜態顯示電路)

(3)鍵盤電路可採用4*4矩陣鍵盤電路連線,也可用獨立鍵盤(本次實驗採用獨立鍵盤連線方式)

(4)報警喇叭電路採用p1口控制三極體的基極通斷來產生報警

proteus**電路:

五、軟體流程圖

(1)主程式流程圖

程式設計思路:分三大部分處理第一部分是主程式,利用定時器定時產生1秒中斷,每中斷1秒,對秒加1實現時間走時的相應處理;第二部分按鍵處理,每當檢測到有鍵按下,就進行時間的調整處理;第三部分顯示處理,通過每次改變送出的筆形碼以及筆形碼控制相應段的位使「靜態」顯示來實現秒點「閃爍」及時間「動態」顯示。

(2)秒點閃爍及顯示處理程式

程式設計思路:由於使用靜態顯示,四位筆形碼傳送出去後,數碼管小數點不亮,因此可以重新傳送一次筆形碼,當傳送到第三個筆形碼時(即時的低位),對筆形碼所控制的秒的那一位清零,實現低電平點亮秒點(dp),相應的定義一位標誌位,每隔一秒鐘,就對標誌位判斷,當標誌位為「1」時,就給筆形碼置「1」處理,秒點不亮;當標誌位為「0」,就對筆形碼置「0」處理,秒點亮,如此迴圈,實現秒點閃爍。

(3)按鍵處理程式

程式設計思路:本實驗以p1.6和p1.

4作為獨立式按鍵,按鍵1,2。先再判斷是否有鍵按下,若有,修改時間顯示模式標誌位,進入時間設定模式,再判斷是哪個鍵,若是修改時間位選鍵按下,記錄按下次數,並與相應位數比較,相等則時間相應位閃爍,此時,若時間調整鍵按下,則相應位加「1」(修改時高位的時候,高位不能大於「3」,若高位為「2」,則時低位不能大於「5」,修改時低位的時候也要考慮時高位是否為「2」的情形;分高位不能大於「6」,分低位不能大於「9」)。位選鍵按完4次後,恢復時間正常顯示,再按一次,則重複上述過程。

如果是調整鍵按下,則顯示「動態」的秒,再按一次,恢復正常時間顯示。

1、按鍵主程式流程圖2、位選鍵程式流程圖

3、調整鍵流程圖

六、心得體會

通過這次為期一周的微控制器課程設計,讓我收穫頗多。在設計程式時,首先要有總體思路,然後再去想用什麼方法實現,選用正確的指令等。寫程式的時候,要一步一步的寫,一不小心,就容易在細節上出錯。

本次課程設計,讓我感覺到微控制器和c語言上存在很大的不同,微控制器是硬體與軟體的結合使用。如果硬體固定了,那麼就只能在軟體設計的時候改良,就這次設計來說,用靜態電路去實現時鐘顯示,尤其是秒點的閃爍,一開始根據硬體原理,確實沒想到該如何讓秒點閃爍,後來網上查閱相關資料,才有了思路,隨之也明白了靜態顯示「動態」的原理。本次設計,也在proteus上**過,但效果不佳,數碼管顯示不全,後來才知道軟體**和硬體**還存在著區別,軟體很難**視覺暫留效應,硬體因為人眼分辨不夠,所以可以直**到靜態裡的「動態」。

編寫程式的時候,更加體會到每寫一條指令,都要明白該條指令的原理,能實現什麼功能,又有什麼缺點。比如在修改時低位時,如果高位已經是「2」,那麼低位就不能超過3,在時間調整的時候難免會出現先調了時高位,而在調之前,低位已經超過3的情況,如18.49,

由於每調一次時間都是加1,若在加之前就已經大於3,用比較不相等指令進行跳轉處理,會出現程式無法對高地位置「0」操作,因此要用上減法指令,判斷借位去跳轉處理。

除錯程式的時候,有時候會出現編譯錯誤,在提示視窗中,會顯示錯誤在第幾行,以及錯誤的原因等,都是英文顯示,讓我覺得英語也是很重要的。同時找錯誤的時候,最好在編寫程式的時候加上注釋,這樣思路就更清晰明了,查詢起錯誤來也更快。

本次設計,有了老師的細心指導和同學的相互合作,才順利完成,讓我的專業知識技能有了一定的提高,也提高了我的自學能力,一些硬體上的介面電路和軟體上的程式編寫有了更入的了解,學到了許多程式設計時應當注意的問題。在完成微控制器課程設計後,我發現我們還有許多不足,所學到的知識還遠遠不夠,以至於還有一些功能不能被動完成。但通過學習這一次實踐,增強了我們的動手能力,提高和鞏固了微控制器方面的知識,特別是軟體方面。

從中增強了我們的團隊合作精神,並讓我們認識到把理論應用到實踐中去是多麼重要。

七、實驗程式

主程式定義標誌位: point bit 08h ;"秒"點閃爍標誌位

mode bit 09h ;系統模式標誌位,「0」顯示時間,「1進入設定」

flag bit 10h ;"秒"顯示的標誌位

zero bit 11h ;時高位滅零控制位,0為滅零,1為不滅零

hh bit 12h

程式起始位址: org 0000h

ljmp main

org 000bh

ljmp intp0定時器t0中斷入口

org 0030h

main: mov sp,#7fh

mov tmod,#01h設定定時器工作方式為方式1

mov 30h,#10轉入t0中斷次數

clr hh

clr a

mov 36h,a修改時間位記數清0

mov 31h,a時"單元清0

mov 32h,a分"單元清0

mov 33h,a秒"單元清0

clr flag秒"顯示的標誌位為低電平

clr mode系統模式標誌位為低電平

clr point秒"點閃爍標誌位為低電平

setb et0允許定時器0申請中斷

setb eacpu開中總斷

mov th0,#3ch給t0裝入記數初值(計數100ms)

mov tl0,#0b0h

setb tr0啟動定時器t0

mov p1,#0ffhp1口初始化(按鍵初始化)

按鍵判斷程式

jkey: mov a,p1判斷是否有鍵按下

cpl a

jz kend

acall kdely

mov a,p1

cpl a

jz kend沒有,則返回

jb p1.6,keyb有,判斷key1是否按下

jnb p1.6等待key1鬆開

lcall keya_deal呼叫key1處理程式

keyb: jb p1.4,kend判斷key2是否按下

jnb p1.4等待key2鬆開

lcall keyb_deal呼叫key2處理程式

kend: sjmp jkey跳回繼續查鍵

按鍵去抖延時程式

kdely: mov r7,#20

l1_lp1: mov r6,#250

djnz r6,$

djnz r7,l1_lp1

ret按鍵1處理子程式 (數碼管位選)

keya_deal: setb mode系統模式標誌位置位

clr flag秒"顯示的標誌位清0

inc 36h修改時間位記數增1

clr zero

mov a,36h

cjne a,#01,keya_b

setb zero高位滅「0」處理

keya_b: cjne a,#05,keya_end

mov 36h,#00修改時間位歸0

mov 33h,#00秒"單元清0

clr mode系統模式標誌位清零

keya_end: ret

按鍵2處理子程式 (相應位調整)

keyb_deal: jb mode,keyb_a判斷處於何種系統模式

cpl flag秒"顯示的標誌位取反

ljmp keyb_end

微控制器實習報告 電子鐘

電氣資訊工程學院 課題名稱 電子鐘設計 專業 自動化 姓名 曾濤 班級學號 08 1 33 指導教師 劉海波 成績二 一一年七月九日 目錄一 實驗介紹 3 二 題目及設計要求 3 三 實驗內容 3 四 實驗原理 4 1 at89c51介紹 4 2 4 4鍵盤原理 6 3 led顯示原理 7 五 pr...

基於微控制器的數字電子鐘及波形發生器設計報告

數字電子鐘及波形發生器實驗報告 1.設計題目 led顯示器件顯示的電子時鐘 2.設計要求 要求電子鐘有復位功能,整點報時,六隻led數碼管顯示當前的時分秒,並且具有鬧鐘功能。3.所用裝置與器材 電子鐘有以下幾個部件組成 微控制器89c51等,電源,時分秒顯示部件。4.硬體方案 時分秒顯示採用動態掃瞄...

數字電子鐘設計報告

系別 電子資訊工程技術 專業班級 電信s09 3 學生姓名李泓卓 指導教師李佳老師 1 課程設計目的 掌握數字電子鐘的組裝與除錯方法 進一步鞏固所學的理論知識,提高運用所學知識分析和解決實際問題的能力 培養書寫綜合實驗報告的能力。2.實訓器材及主要器件 3.實訓內容及步驟 3.1數字電子鐘電路圖 3...