電子時(shí)鐘設(shè)計(jì)_第1頁
電子時(shí)鐘設(shè)計(jì)_第2頁
電子時(shí)鐘設(shè)計(jì)_第3頁
電子時(shí)鐘設(shè)計(jì)_第4頁
電子時(shí)鐘設(shè)計(jì)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計(jì)(論文) 題 目 名 稱 電子時(shí)鐘設(shè)計(jì) 課 程 名 稱 單片機(jī)原理與接口技術(shù) 學(xué) 生 姓 名 學(xué) 號(hào) 系 、專 業(yè) 電氣工程系電氣類 指 導(dǎo) 教 師 2009 年 7 月 2 日 課程設(shè)計(jì)(論文)任務(wù)書 年級(jí)專業(yè)學(xué)生姓名學(xué) 號(hào) 題目名稱電子時(shí)鐘設(shè)計(jì)時(shí)間2009-6.87.2 課程名稱單片機(jī)原理及接口技術(shù)課程編號(hào)設(shè)計(jì)地點(diǎn) 單片機(jī)實(shí)驗(yàn) 室 一、課程設(shè)計(jì)(論文)目的 通過課程設(shè)計(jì),使學(xué)生鞏固和加深對單片機(jī)基本知識(shí)的理解,學(xué)會(huì)查尋資料、方案設(shè)計(jì)、 方案比較,以及單元電路設(shè)計(jì)計(jì)算等環(huán)節(jié),進(jìn)一步提高學(xué)生綜合運(yùn)用所學(xué)知識(shí)的能力,提高分 析解決實(shí)際問題的能力。鍛煉分析、解決電子電路問題的實(shí)際本領(lǐng),通過

2、此綜合訓(xùn)練,為以后 畢業(yè)設(shè)計(jì)打下一定的基礎(chǔ)。 二、已知技術(shù)參數(shù)和條件 (1)8031 集成定時(shí)器 (2)led 七段數(shù)碼顯示器 (3)89c51 多功能接口芯片 (4)0.125w、8 歐姆的揚(yáng)聲器 (5) 電阻箱,5v 電源, 電阻若干 ,導(dǎo)線若干 (6)keil 軟件 (7)thkscm-1 型單片機(jī)實(shí)驗(yàn)系統(tǒng) 三、任務(wù)和要求 1. 設(shè)計(jì)一個(gè)基于單片機(jī)的電子時(shí)鐘,并且能夠?qū)崿F(xiàn)時(shí)分秒的現(xiàn)實(shí)和調(diào)節(jié)。 2. 設(shè)計(jì)出硬件電路; 3. 設(shè)計(jì)出軟件編程方法,并寫出源代碼; 4. 用 proteus 進(jìn)行仿真; 5用匯編語言編實(shí)現(xiàn)程序設(shè)計(jì)。 6利用查表,中斷等方式實(shí)現(xiàn)目的。 7系統(tǒng)的各各功能模塊要清楚,有

3、序。 8程序運(yùn)行時(shí)有友好的用戶界面. 四、參考文獻(xiàn) 1、李朝青. .單片機(jī)原理及接口技術(shù)(簡明修訂版). .杭州:北京航空航天大學(xué)出版社,1998 2、thkscm-1 型單片機(jī)實(shí)驗(yàn)系統(tǒng)實(shí)驗(yàn)指導(dǎo)書、keil 軟件,wave 軟件 3、數(shù)字控制與 plc 實(shí)驗(yàn)室”thkscm-1 型單片機(jī)實(shí)驗(yàn)系統(tǒng)”。 4、李光才. 單片機(jī)課程設(shè)計(jì) 實(shí)例指導(dǎo). 北京 北京航空航天大學(xué)出版社 2004 五、進(jìn)度安排 2009 年 6 月 8 日-14 日:收集和課程設(shè)計(jì)有關(guān)的資料,熟悉課題任務(wù)何要求 2009 年 6 月 15 日-16 日:總體方案設(shè)計(jì) 2009 年 6 月 17 日-19 日:硬件電路設(shè)計(jì) 20

4、09 年 6 月 20 日-23 日:軟件設(shè)計(jì) 2009 年 6 月 24 日-25 日:系統(tǒng)調(diào)試改進(jìn) 2009 年 6 月 26 日-28 日:整理書寫設(shè)計(jì)說明書 2009 年 6 月 29 日-7 月 1 日:答辯 六、教研室審批意見 教研室主任(簽字): 年 月 日 七|、主管教學(xué)主任意見 主管主任(簽字): 年 月 日 八、備注 指導(dǎo)教師(簽字): 學(xué)生(簽字): 課程設(shè)計(jì)(論文)評閱表 學(xué)生姓名 學(xué) 號(hào) 系 別 電氣工程系 專業(yè)班級(jí) 題目名稱 電子時(shí)鐘 課程名稱 單片機(jī)原理與接口技術(shù) 一、學(xué)生自我總結(jié) 通過這次單片機(jī)課程設(shè)計(jì),我感覺到自己知識(shí)的嚴(yán)重不足。很多方面都沒能很好的掌握,在

5、制作過程中,經(jīng)常遇到自己不理解的問題,當(dāng)然,在同學(xué)的幫助下,我還是把那些疑難的問題給 解決啦。 在這次學(xué)習(xí)中,讓我更深刻的了解啦 at89c51 芯片在電氣控制方面的廣泛運(yùn)用和重大作用, 所以我們一定要認(rèn)真。扎實(shí)。深入的了解。掌握好 at89c51 芯片。 學(xué)生簽名: 2009 年 7 月 2 日 二、指導(dǎo)教師評定 評分項(xiàng)目平時(shí)成績論文答辯綜合成績 權(quán) 重304030 單項(xiàng)成績 指導(dǎo)教師評語: 指導(dǎo)教師(簽名): 年 月 日 注:1、本表是學(xué)生課程設(shè)計(jì)(論文)成績評定的依據(jù),裝訂在設(shè)計(jì)說明書(或論文)的“任務(wù)書”頁后面; 2、表中的“評分項(xiàng)目”及“權(quán)重”根據(jù)各系的考核細(xì)則和評分標(biāo)準(zhǔn)確定: 摘

6、要 單片計(jì)算機(jī)即單片微型計(jì)算機(jī)。由 ram ,rom,cpu構(gòu)成,定時(shí),計(jì)數(shù)和 多種接口于一體的微控制器。它體積小,成本低,功能強(qiáng),廣泛應(yīng)用于智能產(chǎn)業(yè)和 工業(yè)自動(dòng)化上。而51系列單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。這 次課程設(shè)計(jì)通過對它的學(xué)習(xí),應(yīng)用,從而達(dá)到學(xué)習(xí)、設(shè)計(jì)、開發(fā)軟、硬的能力。 本設(shè)計(jì)主要設(shè)計(jì)了一個(gè)基于at89c51單片機(jī)的電子時(shí)鐘。并在數(shù)碼管上顯 示相應(yīng)的時(shí)間。并通過一個(gè)控制鍵用來實(shí)現(xiàn)時(shí)間的調(diào)節(jié)和是否進(jìn)入省電模式的轉(zhuǎn)換。 應(yīng)用proteus的isis軟件實(shí)現(xiàn)了單片機(jī)電子時(shí)鐘系統(tǒng)的設(shè)計(jì)與仿真。該方法仿真 效果真實(shí)、準(zhǔn)確,節(jié)省了硬件資源。 關(guān)鍵字:單片機(jī);子時(shí)鐘;鍵盤控制。

7、目 錄 摘 要.4 1 電子時(shí)鐘.6 1.1 電子時(shí)鐘簡介.6 1.2 電子時(shí)鐘的基本特點(diǎn).6 1.3 電子時(shí)鐘的原理.6 2 單片機(jī)識(shí)的相關(guān)知識(shí).6 2.1 單片機(jī)簡介.6 2.2 單片機(jī)的發(fā)展史.7 2.3 單片機(jī)的特點(diǎn).8 2.4 89c51 單片機(jī)介紹.8 3 控制系統(tǒng)的硬件設(shè)計(jì).10 3.1 單片機(jī)型號(hào)的選擇.10 3.2 數(shù)碼管顯示工作原理.10 3.3 鍵盤電路設(shè)計(jì).11 3.4 整個(gè)電路原理圖.12 4 控制系統(tǒng)的軟件設(shè)計(jì).12 4.1 程序設(shè)計(jì).12 4.2 程序流程圖.15 4.3 仿真圖.18 4.4 仿真結(jié)果分析.19 5 結(jié)束語.19 6 附錄.20 參考文獻(xiàn).28

8、1電子時(shí)鐘 1.1 電子時(shí)鐘簡介 1957年,ventura發(fā)明了世界上第一個(gè)電子表,從而奠定了電子時(shí)鐘的基礎(chǔ), 電子時(shí)鐘開始迅速發(fā)展起來?,F(xiàn)代的電子時(shí)鐘是基于單片機(jī)的一種計(jì)時(shí)工具,采用 延時(shí)程序產(chǎn)生一定的時(shí)間中斷,用于一秒的定義,通過計(jì)數(shù)方式進(jìn)行滿六十秒分鐘 進(jìn)一,滿六十分小時(shí)進(jìn)一,滿二十四小時(shí)小時(shí)清零。從而達(dá)到計(jì)時(shí)的功能,是人民 日常生活補(bǔ)課缺少的工具。 1.2 電子時(shí)鐘的基本特點(diǎn) 現(xiàn)在高精度的計(jì)時(shí)工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘、石英鐘、 石英表都采用了石英技術(shù),因此走時(shí)精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào) 試,數(shù)字式電子鐘用集成電路計(jì)時(shí)時(shí),譯碼代替機(jī)械式傳動(dòng),用led顯

9、示器代替 指針顯示進(jìn)而顯示時(shí)間,減小了計(jì)時(shí)誤差,這種表具有時(shí)、分、秒顯示時(shí)間的功能, 還可以進(jìn)行時(shí)和分的校對,片選的靈活性好。 1.3 電子時(shí)鐘的原理 該電子時(shí)鐘由89c51,button,六段數(shù)碼管等構(gòu)成,采用晶振電路作為驅(qū) 動(dòng)電路,由延時(shí)程序和循環(huán)程序產(chǎn)生的一秒定時(shí),達(dá)到時(shí)分秒的計(jì)時(shí),六十秒為一 分鐘,六十分鐘為一小時(shí),滿二十四小時(shí)為一天。而電路中唯一的一個(gè)控制鍵卻擁 有多種不同的功能,按下又松開,可以實(shí)現(xiàn)屏蔽數(shù)碼管顯示的功能,達(dá)到省電的目 的;直接按下不松開,則可以通過按鍵實(shí)現(xiàn)分鐘的累加,每按一次分鐘加一;而連 續(xù)兩次按下按鍵不放松,則可實(shí)現(xiàn)小時(shí)的調(diào)節(jié),同樣每按一次小時(shí)加一。 2 單片機(jī)

10、識(shí)的相關(guān)知識(shí) 2.1 單片機(jī)簡介 單片機(jī)全稱為單片機(jī)微型計(jì)算機(jī)(single chip microsoftcomputer)。從應(yīng)用 領(lǐng)域來看,單片機(jī)主要用來控制,所以又稱為微控制器(microcontroller unit) 或嵌入式控制器。單片機(jī)是將計(jì)算機(jī)的基本部件微型化并集成在一塊芯片上的微型 計(jì)算機(jī)。 2.2 單片機(jī)的發(fā)展史 1 . 4位單片機(jī) 1975年,美國德克薩斯儀器公司首次推出4位單片機(jī)tms-1000;此后,各 個(gè)計(jì)算機(jī)公司競相推出四位單片機(jī)。日本松下公司的mn1400系列,美國洛克威 爾公司的pps/1系列等。四位單片機(jī)的主要應(yīng)用領(lǐng)域有:pc機(jī)的輸入裝置,電池 充電器,運(yùn)動(dòng)

11、器材,帶液晶顯示的音/視頻產(chǎn)品控制器,一般家用電器的控制及遙控 器,電子玩具,鐘表,計(jì)算器,多功能電話等。 2 . 8位單片機(jī) 1972年,美國intel公司首先推出8位微處理器8008,并于1976年9月 率先推出mcs-48系列單片機(jī)。在這以后,8位單片機(jī)紛紛面市。例如,莫斯特克 和仙童公司合作生產(chǎn)的3870系列,摩托羅拉公司生產(chǎn)的6801系列等。隨著集成 電路工藝水平的提高,一些高性能的8位單片機(jī)相繼問世。例如,1978年摩托羅 拉公司的mc6801系列及齊洛格公司的z8系列,1979年nec公司的 upd78xx系列。這類單片機(jī)的尋址能力達(dá)64kb,片內(nèi)rom容量達(dá)4-8kb, 片內(nèi)除

12、帶有并行io口外,還有串行io口,甚至還有ad轉(zhuǎn)化器功能。8位單 片機(jī)由于功能強(qiáng),被廣泛用于自動(dòng)化裝置、智能儀器儀表、智能接口、過程控制、 通信、家用電器等各個(gè)領(lǐng)域。 3 . 16位單片機(jī) 1983年以后,集成電路的集成度可達(dá)幾十萬只管/片,各系列16位單片機(jī)紛 紛面市。這一階段的代表產(chǎn)品有1983年intel公司推出的mcs-96系列,1987 年intel推出了80c96,美國國家半導(dǎo)體公司推出的hpc16040,nec公司推出 的783xx系列等。16位單片機(jī)主要用于工業(yè)控制,智能儀器儀表,便攜式設(shè)備等 場合。 4 . 32位單片機(jī) 隨著高新技術(shù)只智能機(jī)器人,光盤驅(qū)動(dòng)器,激光打印機(jī),圖像

13、與數(shù)據(jù)實(shí)時(shí)處理, 復(fù)雜實(shí)時(shí)控制,網(wǎng)絡(luò)服務(wù)器等領(lǐng)域的應(yīng)用與發(fā)展,20世紀(jì)80年代末推出了32位 單片機(jī),如motorlora公司的mc683xx系列,intel的80960系列,以及近年 來流行的arm系列單片機(jī)。32位單片機(jī)是單片機(jī)的發(fā)展趨勢,隨著技術(shù)的發(fā)展 及開發(fā)成本和產(chǎn)品價(jià)格的下降,將會(huì)與8位單片機(jī)并駕齊驅(qū)。 5 . 64位單片機(jī) 近年來,64位單片機(jī)在引擎控制,智能機(jī)器人,磁盤控制,語音圖像通信, 算法密集的實(shí)時(shí)控制場合已有應(yīng)用,如英國inmos公司的transputer t800是高 性能的64位單片機(jī)。 2.3 單片機(jī)的特點(diǎn) 1 . 單片機(jī)的存儲(chǔ)器rom和ram時(shí)嚴(yán)格區(qū)分的。rom稱

14、為程序存儲(chǔ)器 ,只存放程序,固定常數(shù),及數(shù)據(jù)表格。ram則為數(shù)據(jù)存儲(chǔ)器,用作工作區(qū)及存 放用戶數(shù)據(jù)。 2 . 采用面向控制的指令系統(tǒng)。為滿足控制需要,單片機(jī)有更強(qiáng)的邏輯控制能 力,特別是單片機(jī)具有很強(qiáng)的位處理能力。 3 . 單片機(jī)的i/o口通常時(shí)多功能的。由于單片機(jī)芯片上引腳數(shù)目有限,為了解決 實(shí)際引腳數(shù)和需要的信號(hào)線的矛盾,采用了引腳功能復(fù)用的方法,引腳處于何種功 能,可由指令來設(shè)置或由機(jī)器狀態(tài)來區(qū)分。 4 . 單片機(jī)的外部擴(kuò)展能力很強(qiáng)。在內(nèi)部的各種功能部件不能滿足應(yīng)用的需求時(shí), 均可在外部進(jìn)行擴(kuò)展,與許多通用的微機(jī)接口芯片兼容,給應(yīng)用系統(tǒng)設(shè)計(jì)帶來了很 大的方便。 2.4 89c51 單片機(jī)

15、介紹 vcc:電源。 gnd:接地。 p0口:p0口為一個(gè)8位漏級(jí)開路雙向i/o口,每腳可吸收8ttl門電 流。當(dāng)p1口的管腳第一次寫1時(shí),被定義為高阻輸入。p0能夠用于外部程 序數(shù) 據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時(shí),p0 口作為原 碼輸入口,當(dāng)fiash進(jìn)行校驗(yàn)時(shí),p0輸出原碼,此時(shí)p0外部必須被拉高。 p1口:p1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器 能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作 輸入, p1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在flash 編程和校驗(yàn)時(shí),p1口作為第八位地址接

16、收。 p2口:p2口為一個(gè)內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接 收,輸出4個(gè) ttl 門電流,當(dāng)p2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻 拉高,且 作為輸入。并因此作為輸入時(shí),p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi) 部上拉的緣故。p2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存 儲(chǔ)器進(jìn)行存 取時(shí),p2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外 部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),p2口輸出其特殊功能寄存器 的內(nèi)容。p2口 在flash編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 xtal2 18 xtal1 19 ale 30 ea 31 psen 29

17、rst 9 p0.0/ad0 39 p0.1/ad1 38 p0.2/ad2 37 p0.3/ad3 36 p0.4/ad4 35 p0.5/ad5 34 p0.6/ad6 33 p0.7/ad7 32 p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 p3.0/rxd 10 p3.1/txd 11 p3.2/int0 12 p3.3/int1 13 p3.4/t0 14 p3.7/rd 17 p3.6/wr 16 p3.5/t1 15 p2.7/a15 28 p2.0/a8 21 p2.1/a9 22 p2.2/a10 23 p2

18、.3/a11 24 p2.4/a12 25 p2.5/a13 26 p2.6/a14 27 u4 at89c51 圖 2.1 89c51 單片機(jī) p3口:p3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4 個(gè)ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作 為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。 p3口也可作為at89c51的一些特殊功能口,如下表所示: 口管腳 備選功能 p3.0 rxd(串行輸入口) p3.1 txd(串行輸出口) p3.2 /int0(外部中斷0) p3.3 /int1(外部中斷1) p3.4 t0(

19、記時(shí)器0外部輸入) p3.5 t1(記時(shí)器1外部輸入) p3.6 /wr(外部數(shù)據(jù)存儲(chǔ)器寫選通) p3.7 /rd(外部數(shù)據(jù)存儲(chǔ)器讀選通) p3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。 rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持rst腳兩個(gè)機(jī)器周期的高 電平時(shí)間。 ale/prog:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址 的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時(shí),ale 端 以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對 外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器 時(shí), 將跳過一個(gè)ale脈沖。如

20、想禁止ale的輸出可在sfr8eh地址上置0。此時(shí), ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微 拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。 psen:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每 個(gè)機(jī)器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/psen 信號(hào)將不出現(xiàn)。 ea/vpp:當(dāng)/ea保持低電平時(shí),則在此期間外部程序存儲(chǔ)(0000h- ffffh),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí), /ea將內(nèi)部鎖定為 reset;當(dāng)/ea端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在flash編程期間, 此引腳也用于施加

21、12v編程電源(vpp)。 3 控制系統(tǒng)的硬件設(shè)計(jì) 3.1 單片機(jī)型號(hào)的選擇 通過對多種單片機(jī)性能的分析,最終認(rèn)為89c51是最理想的電子時(shí)鐘開發(fā)芯 片。89c51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能 cmos8位微處理器,器件采用atmel高密度非易失存儲(chǔ)器制造技術(shù)制造,與 工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存 儲(chǔ)器組合在單個(gè)芯片中,atmel的89c51是一種高效微控制器,而且它與 mcs-51兼容,且具有4k字節(jié)可編程閃爍存儲(chǔ)器和1000寫/擦循環(huán),數(shù)據(jù)保留時(shí) 間為10年等特點(diǎn),是最好的選擇。 3.2 數(shù)碼管顯示工作原理 數(shù)碼

22、管是一種把多個(gè)led顯示段集成在一起的顯示設(shè)備。有兩種類型,一種 是共陽型,一種是共陰型。共陽型就是把多個(gè)led顯示段的陽極接在一起,又稱 為公共端。共陰型就是把多個(gè)led顯示段的陰極接在一起,即為公共商。陽極即 為二極管的正極,又稱為正極,陰極即為二極管的負(fù)極,又稱為負(fù)極。通常的數(shù)碼 管又分為8段,即8個(gè)led顯示段,這是為工程應(yīng)用方便如設(shè)計(jì)的,分別為 a、b、c、d、e、f、g、dp,其中dp 是小數(shù)點(diǎn)位段。而多位數(shù)碼管,除某一 位的公共端會(huì)連接在一起,不同位的數(shù)碼管的相同端也會(huì)連接在一起。即,所有的 a段都會(huì)連在一起,其它的段也是如此,這是實(shí)際最常用的用法。數(shù)碼管顯示方法 可分為靜態(tài)顯示

23、和動(dòng)態(tài)顯示兩種。靜態(tài)顯示就是數(shù)碼管的8段輸入及其公共端電平 一直有效。動(dòng)態(tài)顯示的原理是,各個(gè)數(shù)碼管的相同段連接在一起,共同占用8 位段 引管線;每位數(shù)碼管的陽極連在一起組成公共端。利用人眼的視覺暫留性,依次給 出各個(gè)數(shù)碼管公共端加有效信號(hào),在此同時(shí)給出該數(shù)碼管加有效的數(shù)據(jù)信號(hào),當(dāng)全 段掃描速度大于視覺暫留速度時(shí),顯示就會(huì)清晰顯示出來。 圖 3.1 共陰數(shù)碼管 3.3 鍵盤電路設(shè)計(jì) 該設(shè)計(jì)只用了一個(gè)鍵盤,但實(shí)現(xiàn)的功能卻是比較完善,減少了硬件資源的損耗, 該鍵盤可以實(shí)現(xiàn)小時(shí)和分鐘的調(diào)節(jié)以及控制是否進(jìn)入省電模式。當(dāng)按鍵按下又松開, 可以實(shí)現(xiàn)屏蔽數(shù)碼管顯示的功能,達(dá)到省電的目的;直接按下不松開,則可以

24、通過 按鍵實(shí)現(xiàn)分鐘的累加,每按一次分鐘加一;而連續(xù)兩次按下按鍵不放松,則可實(shí)現(xiàn) 小時(shí)的調(diào)節(jié),同樣每按一次小時(shí)加一。達(dá)到時(shí)間調(diào)節(jié)的目的。 圖 3.2 多功能控制鍵 3.4整個(gè)電路原理圖整個(gè)電路原理圖 圖 3.3 系統(tǒng)電路原理圖 4 控制系統(tǒng)的軟件設(shè)計(jì) 4.1 程序設(shè)計(jì) 本系統(tǒng)的軟件系統(tǒng)主要可分為主程序、定時(shí)計(jì)數(shù)中斷程序、時(shí)間調(diào)整程序、 延時(shí)程序四大模塊。在程序設(shè)計(jì)過程中,加強(qiáng)了部分軟件抗干擾措施,下面對部分 模塊作介紹。 定時(shí)計(jì)數(shù)中斷程序: mov tmod,#00h ;寫控制字 mov th0,#0f0h ;寫定時(shí)常數(shù) mov tlo,#0ch setb tr0 ;啟動(dòng)t0 setb eto

25、;允許t0中斷 setb ea ;開放cpu中斷 ajmp $ 時(shí)間調(diào)整程序: setmm: clr et0 ;關(guān)定時(shí)器t0中斷 clr tr0 ;關(guān)閉定時(shí)器t0 lcall dl1s ;調(diào)用1秒延時(shí)程序 jb p3.7,closedis ;鍵按下時(shí)間小于1秒,關(guān)閉顯 示(省電) mov r2,#06h ;進(jìn)入調(diào)時(shí)狀態(tài),賦閃爍定時(shí)初值 setb et1 ;允許t1中斷 setb tr1 ;開啟定時(shí)器t1 set2: jnb p3.7,set1 ;p3.7口為0(鍵未釋放),等待 setb 00h ;鍵釋放,分調(diào)整閃爍標(biāo)志置1 set4: jb p3.7,set3 ;等待鍵按下 lcall dl

26、05s ;有鍵按下,延時(shí)0.5秒 jnb p3.7,sethh ;按下時(shí)間大于0.5秒轉(zhuǎn)調(diào)小時(shí)狀態(tài) mov r0,#77h ;按下時(shí)間小于0.5秒加1分鐘操作 lcall add1 ;調(diào)用加1子程序 mov a,r3 ;取調(diào)整單元數(shù)據(jù) clr c ;清進(jìn)位標(biāo)志 cjne a,#60h,hhh ;調(diào)整單元數(shù)據(jù)與60比較 hhh: jc set4 ;調(diào)整單元數(shù)據(jù)小于60轉(zhuǎn)set4循環(huán) lcall clr0 ;調(diào)整單元數(shù)據(jù)大于或等于60時(shí)清0 clr c ;清進(jìn)位標(biāo)志 ajmp set4 ;跳轉(zhuǎn)到set4循環(huán) closedis:setb et0 ;省電(led不顯示)狀態(tài)。開t0 中斷 setb t

27、r0 ;開啟t0定時(shí)器(開時(shí)鐘) close: jb p3.7,close ;無按鍵按下,等待。 lcall display ;有鍵按下,調(diào)顯示子程序延時(shí)削抖 jb p3.7,close ;是干擾返回close等待 waith: jnb p3.7,waith ;等待鍵釋放 ljmp start1 ;返回主程序(led數(shù)據(jù)顯示亮) sethh: clr 00h ;分閃爍標(biāo)志清除(進(jìn)入調(diào)小時(shí)狀 態(tài)) sethh1: jnb p3.7,set5 ;等待鍵釋放 setb 01h ;小時(shí)調(diào)整標(biāo)志置1 set6: jb p3.7,set7 ;等待按鍵按下 lcall dl05s ;有鍵按下延時(shí)0.5秒 j

28、nb p3.7,setout ;按下時(shí)間大于0.5秒退出時(shí)間調(diào) 整 mov r0,#79h ;按下時(shí)間小于0.5秒加1小時(shí)操作 lcall add1 ;調(diào)加1子程序 mov a,r3 ; clr c ; cjne a,#24h,houu ;計(jì)時(shí)單元數(shù)據(jù)與24比較 houu: jc set6 小于24轉(zhuǎn)set6循環(huán) lcall clr0 ;大于或等于24時(shí)清0操作 ajmp set6 ; 跳轉(zhuǎn)到set6循環(huán) setout: jnb p3.7,setout1 ;調(diào)時(shí)退出程序。等待 鍵釋放 lcall display ;延時(shí)削抖 jnb p3.7,setout ;是抖動(dòng),返回setout再等待 cl

29、r 01h ;清調(diào)小時(shí)標(biāo)志 clr 00h ;清調(diào)分標(biāo)志 clr 02h ;清閃爍標(biāo)志 clr tr1 ;關(guān)閉定時(shí)器t1 clr et1 ;關(guān)定時(shí)器t1中斷 setb tr0 ;開啟定時(shí)器t0 setb et0 ;開定時(shí)器t0中斷(計(jì)時(shí)開始) ljmp start1 ;跳回主程序 set1: lcall display ;鍵釋放等待時(shí)調(diào)用顯示程序(調(diào) 分) ajmp set2 ;防止鍵按下時(shí)無時(shí)鐘顯示 set3: lcall display ;等待調(diào)分按鍵時(shí)時(shí)鐘顯示用 ajmp set4 set5: lcall display ;鍵釋放等待時(shí)調(diào)用顯示程序(調(diào) 小時(shí)) ajmp sethh1 ;

30、防止鍵按下時(shí)無時(shí)鐘顯示 set7: lcall display ;等待調(diào)小時(shí)按鍵時(shí)時(shí)鐘顯示用 ajmp set6 setout1: lcall display ;退出時(shí)鐘調(diào)整時(shí)鍵釋放等待 ajmp setout ;防止鍵按下時(shí)無時(shí)鐘顯示 延時(shí)程序: 1ms延時(shí)程序,led顯示程序用 dl1ms: mov r6,#14h dl1: mov r7,#19h dl2: djnz r7,dl2 djnz r6,dl1 ret 20ms延時(shí)程序,采用調(diào)用顯示子程序以改善led 的顯示閃爍現(xiàn)象 ds20ms: acall display acall display acall display ret 4.

31、2 程序流程圖 系統(tǒng)的流程圖如圖4.1和圖4.2所示: 圖 4.1 主程序流程圖 圖 4.2 中斷處理流程圖 4.3 仿真結(jié)果仿真結(jié)果 圖 4.3 開始運(yùn)行程序仿真圖 圖 4.4 運(yùn)行一段時(shí)間后仿真圖 4.4 仿真結(jié)果分析 功能太過單調(diào),只能實(shí)現(xiàn)時(shí)分秒的顯示,設(shè)計(jì)比較簡單。電路圖的設(shè)計(jì)過于單 調(diào),用的器件太少,實(shí)現(xiàn)調(diào)節(jié)時(shí)間的按鈕太少,不能很好的實(shí)現(xiàn)時(shí)間的調(diào)節(jié)。在測 試過程中,六位數(shù)碼顯示管只顯示五位數(shù)字,有一位數(shù)字不亮,通過多次的修改程 序并在proteus軟件環(huán)境中進(jìn)行仿真,最終解決了這個(gè)問題,同時(shí)也透露出本 人在單片機(jī)電路設(shè)計(jì)和程序設(shè)計(jì)方面的不足。不過最后的仿真效果非常好,實(shí)現(xiàn)了 預(yù)期的效

32、果,能過通過多功能控制鍵調(diào)節(jié)時(shí)間和是否進(jìn)入省電模式,是一個(gè)比較令 人滿意的設(shè)計(jì)。 5 結(jié)束語 在李凱南老師耐心的指導(dǎo)下,我順利完成了這次單片機(jī)課程設(shè)計(jì)課題中的電子 時(shí)鐘設(shè)計(jì),通過這次的設(shè)計(jì)使我認(rèn)識(shí)到本人對單片機(jī)方面的知識(shí)知道的太少了,對 于書本上的很多知識(shí)還不能靈活運(yùn)用,尤其是對程序設(shè)計(jì)語句的理解和運(yùn)用,不能 夠充分理解每個(gè)語句的具體含義,導(dǎo)致編程的程序過于復(fù)雜,使得需要的存儲(chǔ)空間 增大。損耗了過多的內(nèi)存資源。 本次的設(shè)計(jì)使我從中學(xué)到了一些很重要的東西,那就是如何從理論到實(shí)踐的轉(zhuǎn) 化,怎樣將我所學(xué)到的知識(shí)運(yùn)用到我以后的工作中去。在大學(xué)的課堂的學(xué)習(xí)只是在 給我們灌輸專業(yè)知識(shí),而我們應(yīng)把所學(xué)的用到

33、我們現(xiàn)實(shí)的生活中去,此次的電子時(shí) 鐘設(shè)計(jì)給我奠定了一個(gè)實(shí)踐基礎(chǔ),我會(huì)在以后的學(xué)習(xí)、生活中磨練自己,使自己適 應(yīng)于以后的競爭,同時(shí)在查找資料的過程中我也學(xué)到了許多新的知識(shí),在和同學(xué)協(xié) 作過程中增進(jìn)同學(xué)間的友誼,使我對團(tuán)隊(duì)精神的積極性和重要性有了更加充分的理 解。 最后,感謝李凱南老師對我的細(xì)心的指導(dǎo),正是由于李老師的細(xì)心的輔導(dǎo)和他 提供給我們的參考資料,使得我的課程設(shè)計(jì)能夠順利的完成,同時(shí)在課程設(shè)計(jì)過程 中,我們鞏固和學(xué)習(xí)了我們的單片機(jī)知識(shí)。相信這對我以后的課程設(shè)計(jì)和畢業(yè)設(shè)計(jì) 將會(huì)有很大的幫助! 6 附錄 org 0000h ;程序執(zhí)行開始地址 ljmp start ;跳到標(biāo)號(hào)start執(zhí)行 o

34、rg 0003h ;外中斷0中斷程序入口 reti ;外中斷0中斷返回 org 000bh ;定時(shí)器t0中斷程序入口 ljmp intt0 ;跳至intto執(zhí)行 org 0013h ;外中斷1中斷程序入口 reti ;外中斷1中斷返回 org 001bh ;定時(shí)器 t1 中斷程序入口 ljmp intt1 ;跳至intt1執(zhí)行 org 0023h ;串行中斷程序入口地址 reti ;串行中斷程序返回 主程序開始; start: mov r0,#70h ;清70h-7ah共11個(gè)內(nèi)存單元 mov r7,#0bh ; cleardisp: mov r0,#00h ; inc r0 ; djnz r

35、7,cleardisp ; mov 20h,#00h ;清20h(標(biāo)志用) mov 7ah,#0ah ;放入熄滅符數(shù)據(jù) mov tmod,#11h ;設(shè)t0、t1為16位定時(shí)器 mov tl0,#0b0h ;50ms定時(shí)初值(t0計(jì)時(shí)用) mov th0,#3ch ;50ms定時(shí)初值 mov tl1,#0b0h ;50ms定時(shí)初值(t1閃爍定時(shí)用) mov th1,#3ch ;50ms定時(shí)初值 setb ea ;總中斷開放 setb et0 ;允許t0中斷 setb tr0 ;開啟t0定時(shí)器 mov r4,#14h ;1秒定時(shí)用初值(50ms20) start1: lcall display

36、;調(diào)用顯示子程序 jnb p3.7,setmm1 ;p3.7口為0時(shí)轉(zhuǎn)時(shí)間調(diào)整程序 sjmp start1 ;p3.7口為1時(shí)跳回start1 setmm1: ljmp setmm ;轉(zhuǎn)到時(shí)間調(diào)整程序setmm ; 1秒計(jì)時(shí)程序 ; intt0: push acc ;累加器入棧保護(hù) push psw ;狀態(tài)字入棧保護(hù) clr et0 ;關(guān)t0中斷允許 clr tr0 ;關(guān)閉定時(shí)器t0 mov a,#0b7h ;中斷響應(yīng)時(shí)間同步修正 add a,tl0 ;低8位初值修正 mov tl0,a ;重裝初值(低8位修正值) mov a,#3ch ;高8位初值修正 addc a,th0 ; mov th

37、0,a ;重裝初值(高8位修正值) setb tr0 ;開啟定時(shí)器t0 djnz r4, outt0 ;20次中斷未到中斷退出 addss: mov r4,#14h ;20次中斷到(1秒)重賦初值 mov r0,#71h ;指向秒計(jì)時(shí)單元(71h-72h) acall add1 ;調(diào)用加1程序(加1秒操作) mov a,r3 ;秒數(shù)據(jù)放入a(r3為2位十進(jìn)制數(shù)組合) clr c ;清進(jìn)位標(biāo)志 cjne a,#60h,addmm ; addmm: jc outt0 ;小于60秒時(shí)中斷退出 acall clr0 ;大于或等于60秒時(shí)對秒計(jì)時(shí)單元清0 mov r0,#77h ;指向分計(jì)時(shí)單元(76h

38、-77h) acall add1 ;分計(jì)時(shí)單元加1分鐘 mov a,r3 ;分?jǐn)?shù)據(jù)放入a clr c ;清進(jìn)位標(biāo)志 cjne a,#60h,addhh ; addhh: jc outt0 ;小于60分時(shí)中斷退出 acall clr0 ;大于或等于60分時(shí)分計(jì)時(shí)單元清0 mov r0,#79h ;指向小時(shí)計(jì)時(shí)單元(78h-79h) acall add1 ;小時(shí)計(jì)時(shí)單元加1小時(shí) mov a,r3 ;時(shí)數(shù)據(jù)放入a clr c ;清進(jìn)位標(biāo)志 cjne a,#24h,hour ; hour: jc outt0 ;小于24小時(shí)中斷退出 acall clr0 ;大于或等于24小時(shí)小時(shí)計(jì)時(shí)單元清0 outt0

39、: mov 72h,76h ;中斷退出時(shí)將分、時(shí)計(jì)時(shí)單元數(shù)據(jù)移 mov 73h,77h ;入對應(yīng)顯示單元 mov 74h,78h ; mov 75h,79h ; pop psw ;恢復(fù)狀態(tài)字(出棧) pop acc ;恢復(fù)累加器 setb et0 ;開放t0中斷 reti ;中斷返回 ; 閃動(dòng)調(diào)時(shí) 程 序 ; ;t1中斷服務(wù)程序,用作時(shí)間調(diào)整時(shí)調(diào)整單元閃爍指示 intt1: push acc ;中斷現(xiàn)場保護(hù) push psw ; mov tl1, #0b0h ;裝定時(shí)器t1定時(shí)初值 mov th1, #3ch ; djnz r2,intt1out ;0.3秒未到退出中斷(50ms中斷6次) m

40、ov r2,#06h ;重裝0.3秒定時(shí)用初值 cpl 02h ;0.3秒定時(shí)到對閃爍標(biāo)志取反 jb 02h,flash1 ;02h位為1時(shí)顯示單元熄滅 mov 72h,76h ;02h位為0時(shí)正常顯示 mov 73h,77h ; mov 74h,78h ; mov 75h,79h ; intt1out: pop psw ;恢復(fù)現(xiàn)場 pop acc ; reti ;中斷退出 flash1: jb 01h,flash2 ;01h位為1時(shí),轉(zhuǎn)小時(shí)熄滅控制 mov 72h,7ah ;01h 位為0時(shí),熄滅符數(shù)據(jù)放入分 mov 73h,7ah ;顯示單元(72h-73h),將不顯示分?jǐn)?shù) 據(jù) mov 7

41、4h,78h ; mov 75h,79h ; ajmp intt1out ;轉(zhuǎn)中斷退出 flash2: mov 72h,76h ;01h位為1時(shí),熄滅符數(shù)據(jù)放 入小時(shí) mov 73h,77h ;顯示單元(74h-75h),小時(shí)數(shù)據(jù)將不顯示 mov 74h,7ah ; mov 75h,7ah ; ajmp intt1out ;轉(zhuǎn)中斷退出 ; 加1子 程 序 ; add1: mov a,r0 ;取當(dāng)前計(jì)時(shí)單元數(shù)據(jù)到a dec r0 ;指向前一地址 swap a ;a中數(shù)據(jù)高四位與低四位交換 orl a,r0 ;前一地址中數(shù)據(jù)放入a中低四位 add a,#01h ;a加1操作 da a ;十進(jìn)制調(diào)整

42、 mov r3,a ;移入r3寄存器 anl a,#0fh ;高四位變0 mov r0,a ;放回前一地址單元 mov a,r3 ;取回r3中暫存數(shù)據(jù) inc r0 ;指向當(dāng)前地址單元 swap a ;a中數(shù)據(jù)高四位與低四位交換 anl a,#0fh ;高四位變0 mov r0,a ;數(shù)據(jù)放入當(dāng)削地址單元中 ret ;子程序返回 ; 清零程序 ; ;對計(jì)時(shí)單元復(fù)零用 clr0: clr a ;清累加器 mov r0,a ;清當(dāng)前地址單元 dec r0 ;指向前一地址 mov r0,a ;前一地址單元清 0 ret ;子程序返回 ; 時(shí)鐘調(diào)整程序 ; ;當(dāng)調(diào)時(shí)按鍵按下時(shí)進(jìn)入此程序 setmm:

43、clr et0 ;關(guān)定時(shí)器t0中斷 clr tr0 ;關(guān)閉定時(shí)器t0 lcall dl1s ;調(diào)用1秒延時(shí)程序 jb p3.7,closedis ;鍵按下時(shí)間小于1秒,關(guān)閉顯示(省電) mov r2,#06h ;進(jìn)入調(diào)時(shí)狀態(tài),賦閃爍定時(shí)初值 setb et1 ;允許t1中斷 setb tr1 ;開啟定時(shí)器t1 set2: jnb p3.7,set1 ;p3.7口為0(鍵未釋放),等待 setb 00h ;鍵釋放,分調(diào)整閃爍標(biāo)志置1 set4: jb p3.7,set3 ;等待鍵按下 lcall dl05s ;有鍵按下,延時(shí)0.5秒 jnb p3.7,sethh ;按下時(shí)間大于0.5秒轉(zhuǎn)調(diào)小時(shí)狀

44、態(tài) mov r0,#77h ;按下時(shí)間小于0.5秒加1分鐘操作 lcall add1 ;調(diào)用加1子程序 mov a,r3 ;取調(diào)整單元數(shù)據(jù) clr c ;清進(jìn)位標(biāo)志 cjne a,#60h,hhh ;調(diào)整單元數(shù)據(jù)與60比較 hhh: jc set4 ;調(diào)整單元數(shù)據(jù)小于60轉(zhuǎn)set4循環(huán) lcall clr0 ;調(diào)整單元數(shù)據(jù)大于或等于60時(shí)清0 clr c ;清進(jìn)位標(biāo)志 ajmp set4 ;跳轉(zhuǎn)到set4循環(huán) closedis:setb et0 ;省電(led不顯示)狀態(tài)。開t0中斷 setb tr0 ;開啟t0定時(shí)器(開時(shí)鐘) close: jb p3.7,close ;無按鍵按下,等待。

45、lcall display ;有鍵按下,調(diào)顯示子程序延時(shí)削抖 jb p3.7,close ;是干擾返回close等待 waith: jnb p3.7,waith ;等待鍵釋放 ljmp start1 ;返回主程序(led數(shù)據(jù)顯示亮) sethh: clr 00h ;分閃爍標(biāo)志清除(進(jìn)入調(diào)小時(shí)狀態(tài)) sethh1: jnb p3.7,set5 ;等待鍵釋放 setb 01h ;小時(shí)調(diào)整標(biāo)志置1 set6: jb p3.7,set7 ;等待按鍵按下 lcall dl05s ;有鍵按下延時(shí)0.5秒 jnb p3.7,setout ;按下時(shí)間大于0.5秒退出時(shí)間調(diào)整 mov r0,#79h ;按下時(shí)間小于0.5秒加1小時(shí)操作 lcall add1 ;調(diào)加1子程序 mov a,r3 ; clr c ; cjne a,#24h,houu ;計(jì)時(shí)單元數(shù)據(jù)與24比較 houu: jc set6 ;小于24轉(zhuǎn)set6循環(huán) lcall clr0 ;大于或等于24時(shí)清0操作 ajmp set6 ;跳轉(zhuǎn)到set6循環(huán) setout: jnb p3.7,setout1

溫馨提示

  • 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

提交評論