電子日曆課程設計實訓報告

2021-07-31 20:16:18 字數 5729 閱讀 4629

廣東技術師範學院

設計說明書

電子與資訊學院

2023年12月30日

目錄1 課題描述 1

2 設計過程 2

2.1硬體電路原理 2

2.2.1.軟體設計思想 3

2.2.2 程式設計模組 4

2.2.3彙編源程式 7

3 總結 11

隨著科技的快速發展,時間的流逝,至從觀太陽、擺鐘到現在電子鐘,人類不斷研究,不斷創新紀錄。美國dallas公司推出的具有涓細電流充電能的低功耗實時時鐘電路ds1302。它可以對年、月、日、週日、時、分、秒進行計時,還具有閏年補償等多種功能,而且ds1302的使用壽命長,誤差小。

對於數字電子萬年曆採用直觀的數字顯示,可以同時顯示年、月、日、週日、時、分、秒等資訊,還具有時間校準等功能。該電路採用at89s52微控制器作為核心,功耗小,能在3v的低壓工作,電壓可選用3~5v電壓供電。 綜上所述此萬年曆具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優點,符合電子儀器儀表的發展趨勢,具有廣闊的市場前景。

本設計是基於51系列的微控制器進行的電子萬年曆設計,可以顯示年月日時分秒及周資訊,具有可調整日期和時間功能。在設計的同時對微控制器的理論基礎和外圍擴充套件知識進行了比較全面準備。在硬體與軟體設計時,沒有良好的基礎知識和實踐經驗會受到很大限制,每項功能實現時需要那種硬體,程式該如何編寫,演算法如何實現等,沒有一定的基礎就不可能很好的實現。

具體實現功能:(1) 顯示年月日時分秒及星期資訊(2) 具有可調整日期和時間功能(3) 與即時時間同步。

2 設計過程

2.1.2 電路原理設計

電路原理圖

程式的設計主要有t0中斷服務程式,動態顯示程式,數字分離程式,鍵盤掃瞄程式,鍵處理程式,設定時間,設定年月日初值,判閏年程式,清除顯示緩衝區程式這幾個功能模組。

運用組合語言,設計乙個簡單的電子日曆,在6位led七段顯示器動態的顯示出來年、月、日、和時、分、秒,實現計時,秒到60,分加1分到60,時加1 在通過鍵盤按鍵的切換小時到24時天加1,由於公曆是比較有規律的,1、3、5、7、8、10、12月為大月,每月31天;4、6、9、11月為小月,每月只有30天;而2月份,則要根據當前的年份來決定,平年,2月份有28天,閏年,2月份有29天。所以處理2月份天數前要先判斷是平年還是閏年。因為每個月份的天數不同,則需要設定乙個月值表,通過查表找到相應月的天數,先判斷到哪個月份,再從月份表中查出此月份的天數值。

實現月加1,月到12時候年再加1.,還需請注意:平年與閏年的二月份的天數不同,平年二月28天,閏年的二月29天。

1.本程式採用模組化設計的方法,主要由主函式,顯示模組,判斷是否閏年模組,提取系統日期模組組成。

如圖所示:

2.主要模組流程圖

2-1 主程式流程圖

3.數字分離程式

r0為計時單元位址,r1為顯示緩衝區位址。因為時分秒,都需分離,則設定r2的迴圈次數為3。先將41h單元內的時傳送給累加器a,再與0f與,保留低四位,這樣就使得時的低位被分離出來了。

分離後送與顯示緩衝區r1的50h單元。再將41h單元內的時傳送給累加器a ,使高低位交換。交換之後,再與0f進行與運算。

使時的高位也分離出來 ,並送給顯示緩衝區的51h單元內。分和秒的分離方法與時一樣,最終的分離結果為:時分秒在50h—55h內顯示。

同理,年月日,其分離方法也是同時分秒的分離原理一樣。

其分離程式的流程圖如下所示:

2-2 數字分離流程圖

4.動態顯示程式

動態顯示程式實現的功能是將年月日,時分秒在led管中顯示出來。使用第一組工作暫存器組,再呼叫數字分離程式,數字分離程式能將鍵如的數值在led數碼管正確顯示出來。然後設定迴圈次數為6再將其存入r2中,,再將r3,r0分別指向位址為01h和50h。

將顯示管字體表首址放如dptr中再將50h單元的內容送到a中,接著r0加1,查字型碼表。迴圈6次查字型碼表即可在led上顯示出時分秒,年月日。

2-3動態顯示程式流程圖

主程式lp1:

mov ah,1 ;從鍵盤輸入單個字元

int 21h

cmp al,'m' ;al='m'?

jne lp5

call date ;顯示系統日期

lp2: mov ah,1 ;從鍵盤輸入單個字元

int 21h

cmp al,'m' ;al='m'?

jne lp5

call time ;顯示系統時間

lp3: mov ah,1 ;從鍵盤輸入單個字元

int 21h

cmp al,'m' ;al='m'?

jne lp4

call stopwatch ;顯示秒錶

lp4: mov ah,1 ;從鍵盤輸入單個字元

int 21h

cmp al,'m' ;al='m'?

jne lp5

call ring

lp5: cmp al,'q' ;al='q'?

jne lp1

mov ah,4ch ;返回dos狀態

int 21h

;顯示日期子程式

date proc near

display:

mov ah,2ah ;取日期cx:dh:dl=年:月:日 al=星期

int 21h

mov si,0

mov ax,cx

mov bx,100

div bl

mov bl,ah

call bcdasc1 ;日期數值轉換成相應的ascii碼字元

mov al,bl

call bcdasc1

inc si

mov al,dh

call bcdasc1

inc si

mov al,dl

call bcdasc1

mov bp,offset dbuffer1

mov dx,0c0dh

mov cx,20

mov bx,004eh

mov ax,1301h

int 10h

mov ah,02h ;設定游標位置

mov dx,0300h

mov bh,0

int 10h

mov bx,0018h

repea:mov cx,0ffffh ;延時

repeat:loop repeat

dec bx

jnz repea

mov ah,01h ;讀鍵盤緩衝區字元到al暫存器

int 16h

je display

jmp lp2

mov ax,4c00h

int 21h

retdate endp

;顯示時間子程式

time proc near

display1:

mov si,0

mov bx,100

div bl

mov ah,2ch ;取時間ch:cl=時:分 dh:dl=秒:1/100秒

int 21h

mov al,ch

call bcdasc ;將時間數值轉換成ascii碼字元

inc si

mov al,cl

call bcdasc

inc si

mov al,dh

call bcdasc

mov bp,offset dbuffer

mov dx,0c0dh

mov cx,20

mov bx,004eh

mov ax,1301h

int 10h

mov ah,02h

mov dx,0300h

mov bh,0

int 10h

mov bx,0018h

re: mov cx,0ffffh

rea: loop rea

dec bx

jnz re

mov ah,01h

int 16h

je display1

jmp lp3

mov ax,4c00h

int 21h

rettime endp

;顯示秒錶子程式

stopwatch proc near

display2:

pusha

mov si,0

mov bx,100

div bl

;call watch

disp3:

mov ax,data

mov ds,ax

mov al,whour

call bcdasc2 ;將時間數值轉換成ascii碼字元

inc si

mov al,wmin

call bcdasc2

inc si

mov al,wsec

call bcdasc2

mov al,wmsec

inc si

call bcdasc2

mov bp,offset dbuffer2

mov dx,0c0dh

mov cx,20

mov bx,004eh

mov ax,1301h

int 10h

mov ah,02h

mov dx,0300h

mov bh,0

int 10h

mov bx,0018h

re2: mov cx,0ffffh

rea2: loop rea2

dec bx

jnz re2

mov ah,01h

int 16h

je display2

popa

jmp lp4

mov ax,4c00h

int 21h

retstopwatch endp

3總結 「紙上得來終覺淺,心中感悟方能深」, 作為一種實踐取向和經驗取向的課程,綜合實踐活動比其他任何形式的課程都注重過程的教育價值。從某種意義上說,綜合實踐活動的設計與實施反映了一種「實踐哲學」或「過程哲學」。因此,處理好過程與結果的關係,是綜合實踐活動的基本要求。

實踐中自主地提出問題,運用已有的知識和經驗來嘗試問題解決,獲得豐富的經驗,體驗問題解決的基本方法,發展實踐能力和良好的情感態度及個性。綜合實踐活動為學生的發展提供一種開放的發展空間和發展機會。這種發展空間和機會是開放的經過此次綜合實踐設計過程,收穫了不少東西,要認真理解課本上的程式與知識點,課下也經常需要上機實踐,這樣才能使諸多理論實踐,實踐成功才是真正的理解與領會。

這次硬體部件設計與除錯實踐,使我學習了很多的東西。通過兩個禮拜的學習和實踐,使我對所學的知識進行了系統的複習和鞏固,同時,通過課設,培養和鍛鍊了我的動手能力,這一點非常重要,不僅對我以後的學習有幫助,還可以為以後的工作打下一定的基礎。這一次的課設對我的幫助很大,使我真正的認識到了理論與實際的區別,這將成為我的學習目標和動力,更進一步的挖掘自己的能力,使自己獲得進一步的提高。

這段時間的學習,使我了解到了理論和實際之間的差別,第一次真正接觸到了實際中的問題,並通過和老師、同學交流,加強了自身的分析問題、解決問題的能力。同時,我也發現了自己在某些方面的不足,這是我以後要加以改進的方面。

在組織電路圖的過程中使我也學會了如何搭建微控制器的硬體電路,如何根據硬體電路圖來編制相誤碼的程式,使我對硬體課程的學習有了更濃的興趣,使我對我所學的這個方向服了更濃的興趣。雖然在做課設的過程中遇到過許多困難,猶其是思路一開始不正確的時候也產生過放棄的念頭,但最終還是堅持了下來,終於把這個課設完整圓滿的做完了。

經過這次的練習,我會更加嚴格要求自己,認真對待每乙個課設,認真學好計算機控制這門課,爭取有乙個新的提高。

數位電路課程設計電子日曆

數位電路綜合設計報告 電子日曆 一 設計要求 1 能顯示年 月 日,星期 2 年月日,星期可調 3 不考慮閏年。二 題目分析 題目可概括如下 通過乙個時鐘訊號計時,電路需要按照曆法規則準確計數,並將年月日星期顯示出來,此外還要求可以人工調整日期。為了實現功能,主要需搭設出乙個可靠的時鐘訊號發生器,用...

網頁設計與程式設計實訓 課程設計 報告

報告人 06計算機應用班 號 二 設計任務 要求 內容格式為宋體小四 三 軟體環境及工具 內容格式為宋體小四 四 的規劃 的規劃及簡要說明,包括 風格 特點 色彩 內容 草圖 檔案構成和頁面構成 任務分解 技術 參照 或參考書籍 所需資料等。內容格式為宋體小四 五 欄目介紹 站內欄目簡介,包括 的欄...

電子課程設計報告

荊楚理工學院 報告題目 作者所在系部 作者所在專業 作者所在班級 作者姓名 作者學號 指導教師姓名 完成時間 內容摘要 在電子技術中,頻率是最基本的引數之一,並且與許多電參量的測量方案 測量結果都有十分密切的關係,因此頻率的測量就顯得更為重要。測量頻率的方法有多種,其中電子計數器測量頻率具有精度高 ...