單片機(jī)原理與應(yīng)用課程設(shè)計數(shù)字電子鐘課程設(shè)計_第1頁
單片機(jī)原理與應(yīng)用課程設(shè)計數(shù)字電子鐘課程設(shè)計_第2頁
單片機(jī)原理與應(yīng)用課程設(shè)計數(shù)字電子鐘課程設(shè)計_第3頁
單片機(jī)原理與應(yīng)用課程設(shè)計數(shù)字電子鐘課程設(shè)計_第4頁
單片機(jī)原理與應(yīng)用課程設(shè)計數(shù)字電子鐘課程設(shè)計_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 數(shù)字電子鐘課程設(shè)計重慶機(jī)電職業(yè)技術(shù)學(xué)院課程設(shè)計說明書設(shè)計名稱: 單片機(jī)原理與應(yīng)用課程設(shè)計 題 目: 數(shù)字電子鐘課程設(shè)計 學(xué)生姓名: 專 業(yè): 09電氣自動化技術(shù) 班 級: 091001 學(xué) 號: 指導(dǎo)教師: 日 期: 2011 年 6 月 20 日重慶機(jī)電職業(yè)技術(shù)學(xué)院課程設(shè)計任務(wù)書 電氣自動化技術(shù) 專 業(yè) 2009 年級 一 班一、設(shè)計題目數(shù)字電子時鐘設(shè)計二、主要內(nèi)容1、利用cpu的定時器定時,設(shè)計一個電子時鐘,使七段數(shù)碼管輸出記時值,格式如下:xx xx xx 由左向右分別為:時、分、秒2、利用蜂鳴器實現(xiàn)整點報時功能3、利用an1an4實現(xiàn)時,分的分別加減。三、具體要求1、硬件電路實驗連線

2、板上已經(jīng)接好,無需另外接線。本課程設(shè)計中要把跳線jp1(板子右上角,led燈正上方)跳到dig上,j23(在黃色繼電器右上方)接到右端。本課程設(shè)計中要把跳線j9(緊貼51插座右方,蜂鳴器下方,rst復(fù)位鍵上方)跳到右端本課程設(shè)計要把跳線j6跳到an端,an1(p0.0) an4(p0.4),j6在51插座右下方,44鍵盤左上方。2、課程設(shè)計說明 與定時器有關(guān)的寄存器有工作方式寄存器tmod和控制寄存器tcon。tmod用于設(shè)置定時器計數(shù)器的工作方式0-3,并確定用于定時還是用于計數(shù)。tcon主要功能是為定時器在溢出時設(shè)定標(biāo)志位,并控制定時器的運行或停止等。本課程設(shè)計中用定時器t0產(chǎn)生1秒鐘基本

3、時間單位,本系統(tǒng)fosc=11.0592mhz,當(dāng)定時器t0工作在方式1(16位)時,最大定時時間為: 216* 0.9216s= 60397.9776s再利用軟件記數(shù),當(dāng)t0中斷17次時,所用時間為60397.9776*17=1026765.6192s1s因此在t0中斷處理程序中,要判斷中斷次數(shù)是否到17次,若不到17次,則只使中斷次數(shù)加1,然后返回,若到了17次,則使電子秒表記時值加1(十進(jìn)制),請參考硬件實驗四有關(guān)內(nèi)容。 電路中共陰極數(shù)碼管的段碼a、b、c、d、e、f、g、dp分別與單片機(jī)的p20 p27依次相連,控制數(shù)碼管中顯示的字型;6個數(shù)碼管的位選通信號由6個非門控制,分別接到單片

4、機(jī)的p10 p15端口上。程序中通過p10 p15輸出高低電平控制數(shù)碼管的顯示和關(guān)閉,高電平時對應(yīng)數(shù)碼管顯示,顯示內(nèi)容由p20 p27輸出的段碼控制。要將實時時鐘值送到6個共陰極數(shù)碼管中顯示,這可通過調(diào)用編寫的顯示子程序來實現(xiàn),實現(xiàn)過程是:先將(時、分、秒)3個記時值按個位和十位拆開成6個數(shù)字,然后查(09)段碼表,再將段碼分別送到顯示緩沖區(qū)(片內(nèi)數(shù)據(jù)存儲30h35h設(shè)定為顯示緩沖區(qū), 用于存放段碼)中去,最調(diào)用顯示子程序送到6個共陰極數(shù)碼管中顯示。 蜂鳴器由單片機(jī)的p0.7口控制:當(dāng)p0.7輸出高電平時,三極管截止,沒有電流流過線圈,蜂鳴器不發(fā)聲;當(dāng)p0.7輸出低電平時,三極管導(dǎo)通,有電流流

5、過線圈,蜂鳴器發(fā)出聲音。 使用獨立式按鍵an1(p0.0)an4(p0.3)時要注意采用軟件消抖動的方法,一般采用軟件延時(10ms)的方法,通過p0.0p0.4的變化控制時,分的分別加減(手動調(diào)整時間)。3、實驗儀器和設(shè)備:pc機(jī)、wave軟件、proteus軟件、51超級板等。4、參考資料見附件四、進(jìn)度安排第1天:查閱資料,繪制硬件電路原理圖;第2天:編寫顯示子程序; 第3天:編寫主程序和t0中斷子程序第4天:完成硬件仿真調(diào)試第5天:實現(xiàn)課程設(shè)計題目要求,完成課程設(shè)計五、成績評定 指導(dǎo)教師 簽名 日期 年 月 日系主任 審核 日期 年 月 日 目 錄1、 設(shè)計任務(wù)分析 12、 總體方案設(shè)計

6、 1三、數(shù)字電子鐘硬件方案的設(shè)計 13. 1時鐘電路的設(shè)計 13. 2復(fù)位電路的設(shè)計 23. 3按鍵電路的設(shè)計 2 3. 4蜂鳴報時電路的計 2 3. 5顯示電路的設(shè)計 34、 數(shù)字電子鐘軟件件方案的設(shè)計34、1軟件內(nèi)容34、2按鍵程序設(shè)計44、3顯示程序設(shè)計44、4蜂鳴報時程序設(shè)計5五、數(shù)字電子鐘的系統(tǒng)調(diào)試5六、設(shè)計總結(jié)及心得5 參考文獻(xiàn) 5 附件一 6 附件二 6 xiv 一、設(shè)計任務(wù)分析1、本課題主要的目的是本課題主要的目的是為了通過親自的實踐,深入的了解單片機(jī)程序設(shè)計的方法,提高同學(xué)的思維和創(chuàng)新能力,讓同學(xué)在做的過程中進(jìn)一步掌握理論知識。在實踐中運用理論知識,同時提高我們的動手能力。

7、1、通過本次課程設(shè)計加深對單片機(jī)課程的全面認(rèn)識復(fù)習(xí)、了解和掌握。 2、掌握定時器、外部中斷的設(shè)置和編程原理。 3、通過此次課程設(shè)計能夠?qū)纹瑱C(jī)軟硬件結(jié)合起來,對程序進(jìn)行編輯,校驗。4、學(xué)會畫單片機(jī)程序設(shè)計流程圖。5、能夠熟練的用proteus或者multisim仿真軟件的使用。2、本課題的內(nèi)容分析1、利用cpu的定時器定時,設(shè)計一個電子時鐘,使七段數(shù)碼管輸出記時值,格式如下:xx xx xx 由左向右分別為:時、分、秒2、利用蜂鳴器實現(xiàn)整點報時功能3、利用an1an4實現(xiàn)時,分的分別加減。二、總體方案設(shè)計 本次設(shè)計時鐘電路,使用了at89c51單片機(jī)芯片控制電路,單片機(jī)控制電路簡單且省去了很多

8、復(fù)雜的線路,使得電路簡明易懂, 使用鍵盤上的按鍵來調(diào)整時鐘的時、分加減,用一蜂鳴器來進(jìn)行定時提醒,同時使用匯編語言程序來控制整個時鐘顯示,這樣通過五個模塊:按鍵電路、復(fù)位電路、時鐘電路、蜂鳴電路、顯示電路即可滿足設(shè)計要求。系統(tǒng)框圖如下: 軟件程序包含:中斷程序、定時程序、查表程序、顯示程序、判斷程序、 計數(shù)程序、延時程序等。三、數(shù)字電子鐘硬件方案的設(shè)計31時鐘電路的設(shè)計 時鐘是單片機(jī)的心臟,單片機(jī)個功能部件的運行都是以時鐘頻率為基準(zhǔn),有條不紊的一拍一拍的工作。因此,時鐘頻率直接影響到單片機(jī)的運行速度,時鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。常用的時鐘電路有兩種方式:一種是內(nèi)部時鐘方式,另一

9、種為外部時鐘方式。本次設(shè)計用的是內(nèi)部時鐘方式。電路圖如下: 單片機(jī)內(nèi)部有一個用于構(gòu)成振蕩器的高增益反向放大器,該反向放大器的輸入端為芯片引腳xtal1,輸出端為引腳xtal2 。這兩個引腳跨接石英晶體振蕩器和微調(diào)電容,構(gòu)成一個穩(wěn)定的自激振蕩器。32復(fù)位電路的設(shè)計 單片機(jī)的復(fù)位電路分為上電復(fù)位和手動復(fù)位,本次設(shè)計采用的是上電復(fù)位。上電復(fù)位:上電復(fù)位電路是一種簡單的復(fù)位電路,只要在rst復(fù)位引腳接一個電容到vcc,接一個電阻到地就可以了。上電復(fù)位是指在給系統(tǒng)上電時,復(fù)位電路通過電容加到rst引腳一個短暫的高電平信號,這個信號隨著vcc對電容的充電過程而回落,所以rst引腳復(fù)位的高電平維持時間取決于

10、電容的充電時間。為了保證系統(tǒng)安全可靠的復(fù)位,rst引腳的高電平必須維持足夠長的時間。電路圖如下: 33按鍵調(diào)時電路的設(shè)計 按鍵的開關(guān)狀態(tài)通過一定的電路轉(zhuǎn)換為高、低電平狀態(tài)。按鍵閉合過程在相應(yīng)的i/o端口形成一個負(fù)脈沖。為了避免cpu多次處理按鍵的一次閉合,應(yīng)采用措施消除抖動。本次設(shè)計采用的是獨立式按鍵,直接用i/o口線構(gòu)成單個按鍵電路,每個按鍵占用一條i/o口線,每個按鍵的工作狀態(tài)不會產(chǎn)生相互影響。當(dāng)需要計時暫停又或者計時的數(shù)值與實際的時間不同時,就可以通過按按鍵調(diào)節(jié)校準(zhǔn)時間,本電路可以進(jìn)行小時和分鐘的加減極具人性化;按鍵與單片機(jī)連接的一端是由上拉電阻構(gòu)成的高電平,然后通過按鍵,將另一端接到地

11、(低電平)當(dāng)按下按鍵,按鍵將單片機(jī)的一端強(qiáng)制為低低電平,然后按鍵恢復(fù),又恢復(fù)高電位,這就單片機(jī)接收到一個負(fù)脈沖。電路圖如下: 34蜂鳴報時電路的設(shè)計 使用蜂鳴器來實現(xiàn)報時,蜂鳴器的原理就是電流通過電磁線圈,使電磁線圈產(chǎn)生磁場來驅(qū)動振動膜發(fā)聲。 該電路有p0.7口外接20歐,2.2k電阻,三極管以及蜂鳴器組成。當(dāng)p0.7輸出高電平時,三極管截止,沒有電流流過線圈,蜂鳴器不發(fā)聲;當(dāng)p0.7輸出低電平時,三極管導(dǎo)通,有電流流過線圈,蜂鳴器發(fā)出聲音。電路圖如下: 3.5顯示電路設(shè)計 本次設(shè)計選用的是六位數(shù)碼管的動態(tài)顯示驅(qū)動。通過單片機(jī)對數(shù)碼管位選通com端電路的控制,只要將需要顯示的數(shù)碼管的選通控制打

12、開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的com端,是各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。動態(tài)顯示可以大幅度地降低硬件成本和電源的功耗。動態(tài)顯示方式設(shè)計上如果處理不當(dāng),易造成亮度低,閃爍問題。因此合理的設(shè)計既要保護(hù)驅(qū)動電路易實現(xiàn),又要保證顯示后的數(shù)據(jù)穩(wěn)定,無閃爍。 電路中共陰極數(shù)碼管的段碼a、b、c、d、e、f、g、dp分別與單片機(jī)的p20 p27依次相連,控制數(shù)碼管中顯示的字型;6個數(shù)碼管的位選通信號由6個非門控制,分別接到單片機(jī)的p10p15端口上。程序中通過p10p15輸出高低電平控制數(shù)碼管的顯示和關(guān)閉,高電平時對應(yīng)數(shù)碼管顯示,顯示內(nèi)容由p20 p2

13、7輸出的段碼控制。要將實時時鐘值送到6個共陰極數(shù)碼管中顯示,這可通過調(diào)用編寫的顯示子程序來實現(xiàn),實現(xiàn)過程是:先將(時、分、秒)3個記時值按個位和十位拆開成6個數(shù)字,然后查(09)段碼表,再將段碼分別送到顯示緩沖區(qū)(片內(nèi)數(shù)據(jù)存儲30h35h設(shè)定為顯示緩沖區(qū), 用于存放段碼)中去,最調(diào)用顯示子程序送到6個共陰極數(shù)碼管中顯示。部分電路圖如下: 四、數(shù)字電子鐘的軟件設(shè)計方案4、1軟件程序內(nèi)容本設(shè)計的軟件程序包括主程序、定時中斷程序、蜂鳴報時程序、時鐘顯示子程序、延時子程序等。另外,由于電路中有四個按鍵,用來調(diào)整時、分的加減。下圖是總程序流程圖 總程序流程圖4、2按鍵中斷程 序(含定時)中斷定時用來判斷

14、按鍵是否按下,然后做出反應(yīng)調(diào)時還是調(diào)分。具體首先判斷是否按下,然后再定時,開定時器。作出相應(yīng)輸出,最后中斷返回。按鍵處理是可以調(diào)試,如果檢測到分按鍵的加按下,分就加1,如果檢測到時按鍵的加按下,時就加1。4、3 顯示程序設(shè)計顯示程序在程序中期著非常重要的作用,它是數(shù)碼管能否正確顯示的保證,此程序首先是初始化,賦值為零點。然后還有建立存儲單元將要顯示的數(shù)值放入其中,再將這些數(shù)分出來,最后送入與數(shù)碼管連接的口。4、4整點報時程序設(shè)計每到了整點就讓蜂鳴器響,此程序是先判斷是否是整點,如果到了整點,則判斷是,則執(zhí)行相應(yīng)的命令。部分程序如下:baoshi: cjne r4,#1,tiaoshi clr

15、baojing ;開啟蜂鳴器 mov a,miao1 cjne a,#2,tiaoshi ;報時2秒 setb baojing ;關(guān)閉蜂鳴器 mov r4,#05、 數(shù)字電子鐘的系統(tǒng)調(diào)試軟件調(diào)試的調(diào)試一般可以重點放在分模塊調(diào)試上,統(tǒng)調(diào)試最后一個環(huán)節(jié)。軟件調(diào)試可以采取離線調(diào)試和在線調(diào)試兩種方式。前者不需要硬件仿真器,可借助于軟件仿真器即可;后者一般需要仿真系統(tǒng)的支持。本次設(shè)計中,選用keil軟件來調(diào)試程序通過的單步或跟蹤調(diào)試,使程序逐漸滿足要求。仿真部分采用protus7.5軟件,打開protus7.5軟件后,在元件中找到要用的所有元件,然后進(jìn)行原理圖的繪制;繪制好以后在選擇keil中已經(jīng)編譯好

16、的*.hex文件,選擇運行,觀察結(jié)果,根據(jù)顯示的結(jié)果和課題的要求在修改程序,在運行檢查,直到滿足要求為止。6、 設(shè)計總結(jié)和心得通過一周的實訓(xùn),才深深感到自己單片機(jī)知識的匱乏,有一種書到用時方恨少的感覺。雖然在研究室比起其他同學(xué)先接觸單片機(jī),但是也只是皮毛。開始接觸的時候覺得好耍,可能是對單片機(jī)的了解不多,才會產(chǎn)生相對不難的錯誤認(rèn)識?,F(xiàn)在用它來設(shè)計自己的電路,才知道知識的欠缺。也許對某些同學(xué)來說已經(jīng)是輕車熟路了,可是對于初學(xué)硬件設(shè)計的同學(xué)來說,相對在選擇的思路上走的彎路多些,也許我們到最后可能沒有終點,但這對我們是一筆難能可貴的財富,因為我們在曲折中學(xué)到的不僅僅是書本上的知識,更多的是我們與硬件

17、設(shè)計比較好的同學(xué)交流之間的思考。在別人的原有的程序設(shè)計上添加自己的成分,并不是一件易事,我們要對原有電路十分了解。題目要求的嚴(yán)格性才出現(xiàn)了比較困難的局面,不的不像他人和老師請教。一周的實習(xí)雖然出現(xiàn)了不少問題,感覺到自己不論是做電路,還是調(diào)試程序都能在犯錯后學(xué)到不少知識,這與老師的諄諄教誨分不開的。參考文獻(xiàn)1 單片機(jī)原理及應(yīng)用教材及單片機(jī)實驗教程2 keil軟件、protus7.5軟件、億圖軟件的使用說明3 7404非門資料、學(xué)習(xí)電路圖的方法與技巧附件一 硬件原理圖附件二 源程序miao1 data 30h miao2 data 31hfen1 data 32hfen2 data 33hshi1

18、 data 34hshi2 data 35hshuju_0 data 36hxian_zhi equ p2baojing equ p0.7xian_kai equ p1 k1 bit p0.0k2 bit p0.1k3 bit p0.2k4 bit p0.3org 0000hjmp mainorg 000bhjmp dingshimain: mov p1,#0 setb baojing mov r2,#0 ;r2決定是調(diào)時 還是調(diào)分 mov r3,#0 ;r3決定k1是否按下 mov r4,#0 ;r4用于報時控制 mov r5,#0 ;r5為定時器17次判斷 mov dptr,#tab mo

19、v miao1,#0 ;上電顯示00:00:00 mov miao2,#0 mov fen1,#0 mov fen2,#0 mov shi1,#0 mov shi2,#0 mov tmod,#01h ;16位定時 mov tl0,#3ch mov th0,#2ch mov ie,#82h setb tr0 ;開定時器kaitou: mov a,#1 ;顯示程序 mov shuju_0,a mov r0,#35h xian_1: mov a,r0 movc a,a+dptr mov r1,shuju_0 cjne r1,#02h,xian_2 orl a,#80h xian_2: cjne r1

20、,#08h,xian_3 orl a,#80h xian_3: mov xian_zhi,a mov xian_kai,shuju_0 call delay mov xian_kai,#0 mov a,shuju_0 rl a mov shuju_0,a dec r0 cjne a,#40h,xian_1 baoshi: cjne r4,#1,tiaoshi clr baojing ;開啟蜂鳴器 mov a,miao1 cjne a,#2,tiaoshi ;報時2秒 setb baojing ;關(guān)閉蜂鳴器 mov r4,#0tiaoshi: cjne r3,#0,tiao_1 ;r3為1的話就

21、不檢查 k1 jb k1,ll ;判斷是否按下 k1 call delay call delay jb k1,ll jmp qq ll:jmp kaitou qq: jnb k1,qq;判斷是否抬起 call delay call delay jnb k1,qq mov r3,#1 tiao_1: jb k2,tiao_2 ;判斷是否按下 k2 call delay call delay jb k2,tiao_2 yy: jnb k2,yy ;判斷是否抬起 call delay call delay jnb k2,yy mov r3,#1 mov a,r2 cpl a mov r2,a tia

22、o_2: cjne r2,#0,ww ;r2決定是調(diào)時 還是調(diào)分 jmp xx ww: jmp shi_tiao xx: call xian_fen ;分位調(diào)節(jié) jb k3,fen_2;判斷是否加1 call delay call delay jb k3,fen_2 ff: jnb k3,ff ;判斷是否抬起 call delay call delay jnb k3,ff fen_1: mov a,fen1 inc a cjne a,#10,fen_1_1 mov fen1,#0 mov a,fen2 inc a cjne a,#6,fen_1_2 mov fen2,#0 jmp jieshu

23、 fen_1_1: mov fen1,a jmp jieshu fen_1_2: mov fen2,a jmp jieshu fen_2: ;判斷是否減1 jb k4,kk call delay call delay jb k4,kk jmp ee kk: jmp jieshu ee: jnb k4,ee;判斷是否抬起 call delay call delay jnb k4,ee mov a,fen1 dec a cjne a,#0ffh,fen_2_1 mov fen1,#9 mov a,fen2 dec a cjne a,#0ffh,fen_2_2 mov fen2,#5 jmp jie

24、shu fen_2_1: mov fen1,a jmp jieshu fen_2_2: mov fen2,a jmp jieshu shi_tiao: ;時位調(diào)節(jié) call xian_shi jb k3,shi_jian ;判斷是否加1 call delay call delay jb k3,shi_jian gg: jnb k3,gg ;判斷是否抬起 call delay call delay jnb k3,gg mov a,shi2 cjne a,#2,shi_1 ;shi_1表十位不是2的數(shù)處理 mov a,shi1 inc a cjne a,#4,shi_0 ;shi_0表沒加到5 m

25、ov shi1,#0 mov shi2,#0 jmp jieshushi_0: mov shi1,a jmp jieshushi_1: mov a,shi1 inc a cjne a,#10,shi_1_1 ;shi_1_1是表個位沒加到10的 mov shi1,#0 mov a,shi2 inc a mov shi2,a jmp jieshushi_1_1: mov shi1,a jmp jieshushi_jian: jb k4,jieshu;判斷是否減1 call delay call delay jb k4,jieshu dd: jnb k4,dd ;判斷是否抬起 call delay

26、 call delay jnb k4,dd mov a,shi1 dec a cjne a,#0ffh,shijian_1 mov shi1,#9 mov a,shi2 dec a cjne a,#0ffh,shijian_0 mov shi1,#3 mov shi2,#2 jmp jieshu shijian_0: mov shi2,a jmp jieshu shijian_1: mov shi1,ajieshu:;調(diào)時結(jié)束判斷 jb k1,nn ;判斷是否按下 k1 call delay call delay jb k1,nn jmp tt nn: jmp tiaoshi tt: jnb k1,tt ;判斷是否抬起 call delay call delay jnb k1,tt mov r5,#0 mov r3,#0 mov r2,#0 jmp ka

溫馨提示

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

評論

0/150

提交評論