微控制器課程設計報告
學院:專業:
班級:學號:
姓名:指導老師:
實習時間:
多功能電子鐘設計
一、設計任務
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...