基于單片機(jī)的數(shù)字鐘設(shè)計(jì)35699_第1頁(yè)
基于單片機(jī)的數(shù)字鐘設(shè)計(jì)35699_第2頁(yè)
基于單片機(jī)的數(shù)字鐘設(shè)計(jì)35699_第3頁(yè)
基于單片機(jī)的數(shù)字鐘設(shè)計(jì)35699_第4頁(yè)
基于單片機(jī)的數(shù)字鐘設(shè)計(jì)35699_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、泰山職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)(論文)題 目:基于單片機(jī)的數(shù)字時(shí)鐘系 部: 汽車(chē)電子工程系專 業(yè): 應(yīng)用電子技術(shù) 學(xué) 號(hào): 201103010103 學(xué)生姓名: 于 學(xué) 成指導(dǎo)教師: 宋 麗 玲 職 稱: 講 師 二O一四 年 六月 二十五 日泰山職業(yè)技術(shù)學(xué)院畢業(yè)論文(設(shè)計(jì))任務(wù)書(shū)課題名稱:基于單片機(jī)的數(shù)字時(shí)鐘系 部:汽 車(chē) 電 子 工 程 系專 業(yè):應(yīng) 用 電 子 技術(shù)姓 名:于學(xué)成學(xué) 號(hào): 指導(dǎo)老師:宋麗玲 二一四 年 六 月二十五日一、 畢業(yè)論文(設(shè)計(jì))的目的與要求:要求:采用單片機(jī)實(shí)現(xiàn)數(shù)字鐘的基本功能,要求采用4位數(shù)碼管,高兩位顯示小時(shí),低兩位顯示秒;采用開(kāi)關(guān)控制數(shù)字鐘的啟動(dòng)、停止、復(fù)位和調(diào)

2、整時(shí)間;時(shí)間顯示采用24小時(shí)制二、畢業(yè)論文(設(shè)計(jì))的內(nèi)容:內(nèi)容:1方案總體設(shè)計(jì)2控制系統(tǒng)硬件電路設(shè)計(jì)(顯示采用四位數(shù)碼管)3軟件流程圖設(shè)計(jì),匯編程序編寫(xiě)4電氣原理圖的繪制三、畢業(yè)論文(設(shè)計(jì))進(jìn)程的安排序 號(hào)論文(設(shè)計(jì))各階段名稱日 期備 注第一章 論文背景及設(shè)計(jì)任務(wù).第二章 系統(tǒng)方案設(shè)計(jì).第三章 硬件電路設(shè)計(jì).第四章 軟件系統(tǒng)設(shè)計(jì).第五章 電路調(diào)試.第六章 總結(jié).四、任務(wù)執(zhí)行日期:自年月日起,至年月日止。學(xué) 生(簽字)_指導(dǎo)教師(簽字)_系主任(簽字)_目錄摘 要錯(cuò)誤!未定義書(shū)簽。第一章 論文背景及設(shè)計(jì)任務(wù)81.1論文背景81.2課程設(shè)計(jì)題目描述和任務(wù)8第二章 系統(tǒng)方案設(shè)計(jì)92.1整體設(shè)計(jì)92

3、.2方案設(shè)計(jì)與論證9第三章 硬件電路設(shè)計(jì)103.1 AT89C51的單片機(jī)簡(jiǎn)介103.2 LED顯示電路123.3 鍵盤(pán)控制電路12第四章 軟件系統(tǒng)設(shè)計(jì)134.1程序編寫(xiě)設(shè)計(jì)流程圖134.2繪制數(shù)字時(shí)鐘電路Protues仿真原理圖14啟動(dòng)ISIS 7 Professional軟件14仿真電路繪制14電路檢測(cè)144.3軟件設(shè)計(jì)14運(yùn)行keil軟件編寫(xiě)程序并編譯、連接錯(cuò)誤!未定義書(shū)簽。將程序燒入單片機(jī)并運(yùn)行錯(cuò)誤!未定義書(shū)簽。運(yùn)行程序錯(cuò)誤!未定義書(shū)簽。第五章 電路調(diào)試155.1軟件與硬件調(diào)試155.2仿真結(jié)果分析15第六章 總結(jié)17附錄:18數(shù)字時(shí)鐘原理圖18數(shù)字時(shí)鐘源程序19參考文獻(xiàn):29 摘 要

4、近年來(lái)隨著計(jì)算機(jī)在社會(huì)領(lǐng)域的滲透和大規(guī)模集成電路的發(fā)展,單片機(jī)的應(yīng)用正在不斷地走向深入,由于它具有功能強(qiáng),體積小,功耗低,價(jià)格便宜,工作可靠,使用方便等特點(diǎn),因此特別適合于與控制有關(guān)的系統(tǒng),越來(lái)越廣泛地應(yīng)用于自動(dòng)控制,智能化儀器,儀表,數(shù)據(jù)采集,軍工產(chǎn)品以及家用電器等各個(gè)領(lǐng)域,單片機(jī)往往是作為一個(gè)核心部件來(lái)使用,在根據(jù)具體硬件結(jié)構(gòu),以及針對(duì)具體應(yīng)用對(duì)象特點(diǎn)的軟件結(jié)合,以作完善本次做的數(shù)字鐘是以單片機(jī)(AT89C51)為核心,結(jié)合相關(guān)的元器件(3個(gè)2位共陽(yáng)數(shù)碼管,一個(gè)發(fā)光二極管和一個(gè)蜂鳴器)和應(yīng)用程序(proteus軟件和KEIL編譯軟件),構(gòu)成相應(yīng)的應(yīng)用系統(tǒng)。關(guān)鍵詞:?jiǎn)纹瑱C(jī) AT89C51 共

5、陽(yáng)數(shù)碼管 發(fā)光二極管 蜂鳴器 proteus軟件 KEIL編譯軟件摘要翻譯:In recent years along with the computer in the social field of permeability and large scale integrated circuit of development, the application of s

6、ingle chip microcomputer, is continuously to further, because it has a strong function, small volume, low power consumption, the price is cheap, reliable work, use convenient&

7、#160;wait for a characteristic, therefore particularly suitable for related control and system, more and more widely used in automatic control, intelligent instrument, instrument, data&

8、#160;collection, military products and household electrical appliances, and other fields, microcontroller is often as a core component to use, in according to the specific hardware

9、 structure, and the view of the specific application of the characteristics of the object software combines to make perfectThis do digital clock is a single chip mic

10、rocomputer (AT89C51) as the core, combined with related components (3 two common Yang digital tube, a light emitting diode and a buzzer) and applications (proteus software

11、0;and KEIL compiler software), constitutes corresponding application system. Keyword: A single-chip microcomputer, AT89C51, total Yang digital tube, light emitting diode, buzzer, proteus software, KEIL compiler software基于單片機(jī)的數(shù)字時(shí)鐘第一章 論文背景及設(shè)計(jì)任務(wù)1.1論文背景數(shù)字電子鐘具有走時(shí)準(zhǔn)確,一鐘多用

12、等特點(diǎn),在生活中已經(jīng)得到廣泛的應(yīng)用。另外數(shù)字鐘還具備秒表和鬧鐘的功能,且鬧鐘鈴聲可自選,使一款電子鐘具備了多媒體的色彩。單片機(jī)STC89C51在Proteus軟件中實(shí)現(xiàn)數(shù)字時(shí)鐘的定時(shí)、時(shí)間調(diào)整、鬧正設(shè)置等功能。具有體積小、功能強(qiáng)可靠性高、價(jià)格低廉等一系列優(yōu)點(diǎn),不僅已成為工業(yè)測(cè)控領(lǐng)域普遍采用的智能化控制工具,而且已滲入到人們工作和和生活的各個(gè)角落,有力地推動(dòng)了各行業(yè)的技術(shù)改造和產(chǎn)品的更新?lián)Q代,應(yīng)用前景廣闊。時(shí)鐘電路在計(jì)算機(jī)系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎(chǔ)。在一個(gè)單片機(jī)應(yīng)用系統(tǒng)中,時(shí)鐘有兩方面的含義:一是指為保障系統(tǒng)正常工作的基準(zhǔn)振蕩定時(shí)信號(hào),主要由晶振和外圍電路組成,晶振頻率的

13、大小決定了單片機(jī)系統(tǒng)工作的快慢;二是指系統(tǒng)的標(biāo)準(zhǔn)定時(shí)時(shí)鐘,即定時(shí)時(shí)間。本文主要介紹用單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器來(lái)實(shí)現(xiàn)電子時(shí)鐘的方法,本設(shè)計(jì)由單片機(jī)AT89C51芯片和3個(gè)兩位一體的共陽(yáng)極的數(shù)碼管為核心,輔以必要的電路,構(gòu)成了一個(gè)單片機(jī)數(shù)字時(shí)鐘。單片機(jī)AT89S51可調(diào)數(shù)字鐘系統(tǒng)設(shè)計(jì)的核心是目前應(yīng)用極為廣泛的51系列單片機(jī),可調(diào)數(shù)字鐘配置了外圍設(shè)備,構(gòu)成了一個(gè)可編程的計(jì)時(shí)定時(shí)系統(tǒng),具有體積小,可靠性高,功能強(qiáng)等特點(diǎn)。不僅能滿足所需要求而且還有很多功能可供開(kāi)發(fā),有著廣泛的應(yīng)用領(lǐng)域。1.2課程設(shè)計(jì)題目描述和任務(wù)單片機(jī)控制的數(shù)字鐘的硬件結(jié)構(gòu)與軟件設(shè)計(jì),給出了匯編語(yǔ)言源程序。此數(shù)字鐘是一個(gè)將“時(shí)”、“分”

14、、“秒”顯示于人的視覺(jué)器官的計(jì)時(shí)裝置。顯示器件選用LED七段數(shù)碼管。在譯碼顯示電路輸出的驅(qū)動(dòng)下,顯示出清晰、直觀的數(shù)字符號(hào)。針對(duì)數(shù)字鐘會(huì)產(chǎn)生走時(shí)誤差的現(xiàn)象,在電路中就設(shè)計(jì)有有校準(zhǔn)時(shí)間功能的電路。使用動(dòng)態(tài)數(shù)碼顯示的方法,運(yùn)用獨(dú)立式按鍵識(shí)別過(guò)程,按“時(shí)”,“分”,“秒”數(shù)據(jù)送出顯示處理方法。(1)具有時(shí)、分、秒計(jì)數(shù)顯示功能,以24小時(shí)循環(huán)(2)LED數(shù)碼管顯示時(shí)、分、秒的個(gè)位和十位(3)可以在任意時(shí)刻校準(zhǔn)時(shí)間(4)能夠完成時(shí)間的顯示、定時(shí)鬧鐘、復(fù)位等功能第二章 系統(tǒng)方案設(shè)計(jì)2.1整體設(shè)計(jì)此次設(shè)計(jì)主要是應(yīng)用單片機(jī)來(lái)設(shè)計(jì)電子時(shí)鐘,硬件部分主要分以下電路模塊:顯示電路用8個(gè)共陰數(shù)碼管分別顯示,星期(年份

15、),小時(shí)、分鐘(月份)和秒(日),通過(guò)動(dòng)態(tài)掃描進(jìn)行顯示,從而避免了譯碼器的使用,同時(shí)節(jié)約了I/0端口,使電路更加簡(jiǎn)單。單片機(jī)采用AT89S51系列,這種單片機(jī)應(yīng)用簡(jiǎn)單,適合電子鐘設(shè)計(jì)整體設(shè)計(jì)框圖如圖2-1所示:圖2-1 數(shù)字時(shí)鐘整體電路2.2方案設(shè)計(jì)與論證方案一:采用各種純數(shù)字芯片實(shí)現(xiàn)數(shù)字時(shí)鐘的設(shè)計(jì)。優(yōu)點(diǎn):各個(gè)模塊功能清晰,電路易于理解實(shí)現(xiàn)。缺點(diǎn):各個(gè)模塊功能已定不能進(jìn)行智能化調(diào)整,整體電路太龐大。方案二:采用 FPGA模塊用硬件語(yǔ)言實(shí)現(xiàn)功能。優(yōu)點(diǎn):運(yùn)算速度快,走時(shí)精度高,算法簡(jiǎn)單。缺點(diǎn):成本高,大材小用。方案三:采用單片機(jī)最小系統(tǒng)實(shí)現(xiàn)功能。優(yōu)點(diǎn):電路簡(jiǎn)單,能通過(guò)程序進(jìn)行隨機(jī)調(diào)整并擴(kuò)展功能,成

16、本低,易于實(shí)現(xiàn)。缺點(diǎn):走時(shí)有一定的誤差。經(jīng)過(guò)綜合考慮成本問(wèn)題以及電路實(shí)現(xiàn)問(wèn)題,選擇第三種方案實(shí)現(xiàn)設(shè)計(jì)要求。第三章 硬件電路設(shè)計(jì)3.1 AT89C51的單片機(jī)簡(jiǎn)介(一)AT89C51的介紹AT89C51單片機(jī)是在一塊芯片中集成了CPU、RAM、ROM、定時(shí)器/計(jì)數(shù)器和多種功能的I/O接口電路等一臺(tái)計(jì)算機(jī)所需要的基本功能部件,AT89C51單片機(jī)內(nèi)包含下列幾個(gè)部件:(1) 一個(gè)8位CPU;(2)一個(gè)片內(nèi)振蕩器及時(shí)鐘電路;(3)4K字節(jié)ROM程序存儲(chǔ)器;(4)128字節(jié)RAM數(shù)據(jù)存儲(chǔ)器;(5)兩個(gè)16位定時(shí)器/計(jì)數(shù)器;(6)可尋址64K外部數(shù)據(jù)存儲(chǔ)器和64K外部程序存儲(chǔ)器空間的控制電路;(7)32條

17、可編程的I/O線(四個(gè)8位并行I/O端口);(8)一個(gè)可編程全雙工串行口;(9)具有五個(gè)中斷源、兩個(gè)優(yōu)先級(jí)嵌套中斷結(jié)構(gòu)。(二) AT89C51單片機(jī)的部分管腳說(shuō)明:AT89C51單片機(jī)采用40條引腳雙列直插式器件,引腳除5V( 40腳)和電源地( 20腳)外,其功能分為時(shí)鐘電路、控制信號(hào)、輸入/輸出三大部分,引腳圖如下圖:圖3-1 AT89C51引腳圖 Vcc40 電源端;GND20 接地端。工作電壓為5V 。 外接晶振引腳圖3-2 外接晶振引腳圖XTAL119 、XTAL218 :XTAL1是片內(nèi)振蕩器的反相放大器輸入端,XTAL2則是輸出端,使用外部振蕩器時(shí),外部振蕩信號(hào)應(yīng)直接加到XTAL

18、1,而XTAL2懸空。內(nèi)部方式時(shí),時(shí)鐘發(fā)生器對(duì)振蕩脈沖二分頻,如晶振為12MHz,時(shí)鐘頻率就為6MHz。晶振的頻率可以在1MHz-24MHz內(nèi)選擇。電容取30PF左右。系統(tǒng)的時(shí)鐘電路設(shè)計(jì)是采用的內(nèi)部方式,即利用芯片內(nèi)部的振蕩電路。復(fù)位RST9圖3-3 常用復(fù)位電路圖在振蕩器運(yùn)行時(shí),有兩個(gè)機(jī)器周期(24個(gè)振蕩周期)以上的高電平出現(xiàn)在此引腿時(shí),將使單片機(jī)復(fù)位,只要這個(gè)腳保持高電平,51芯片便循環(huán)復(fù)位。復(fù)位后P0P3口均置1引腳表現(xiàn)為高電平,程序計(jì)數(shù)器和特殊功能寄存器SFR全部清零。/EA=1 31腳當(dāng)/EA=1時(shí),訪問(wèn)內(nèi)部程序存儲(chǔ)器,當(dāng)PC值超過(guò)內(nèi)ROM范圍時(shí),自動(dòng)轉(zhuǎn)執(zhí)行外部程序存儲(chǔ)器的程序;當(dāng)/

19、EA=0時(shí),只訪問(wèn)外部程序存儲(chǔ)器。(三)另外介紹一下輸入輸出引腳(本系統(tǒng)只用到P0、P1、P2口):(1) P0端口P0.0-P0.7 是一個(gè)8位漏極開(kāi)路型雙向I/O端口,端口置1(對(duì)端口寫(xiě)1)時(shí)作高阻抗輸入端。作為輸出口時(shí)能驅(qū)動(dòng)8個(gè)TTL。對(duì)內(nèi)部Flash程序存儲(chǔ)器編程時(shí),接收指令字節(jié);校驗(yàn)程序時(shí)輸出指令字節(jié),要求外接上拉電阻。在訪問(wèn)外部程序和外部數(shù)據(jù)存儲(chǔ)器時(shí),P0口是分時(shí)轉(zhuǎn)換的地址(低8位)/數(shù)據(jù)總線,訪問(wèn)期間內(nèi)部的上拉電阻起作用。(2) P1端口P1.0P1.7是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/0端口。輸出時(shí)可驅(qū)動(dòng)4個(gè)TTL。端口置1時(shí),內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對(duì)內(nèi)部F

20、lash程序存儲(chǔ)器編程時(shí),接收低8位地址信息。(3) P2端口P2.0P2.7是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/0端口。輸出時(shí)可驅(qū)動(dòng)4個(gè)TTL。端口置1時(shí),內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對(duì)內(nèi)部Flash程序存儲(chǔ)器編程時(shí),接收高8位地址和控制信息。在訪問(wèn)外部程序和16位外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口送出高8位地址。而在訪問(wèn)8位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí)其引腳上的內(nèi)容在此期間不會(huì)改變。3.2 LED顯示電路本課程設(shè)計(jì)用到共陽(yáng)極數(shù)碼管通過(guò)其引腳圖,便可順利完成其連接。 圖3-4 共陽(yáng)數(shù)碼管內(nèi)部結(jié)構(gòu)圖3.3 鍵盤(pán)控制電路通過(guò)S1、S2、S3和S4四個(gè)按鍵,對(duì)時(shí)間進(jìn)行修改和鬧鐘的設(shè)置,S0控制鬧鐘的啟

21、動(dòng)和停止。按下S1鍵顯示鬧鐘,松開(kāi)后顯示時(shí)間;按下S4鍵進(jìn)入時(shí)間修改模式,再按S4鍵時(shí)間的時(shí)加1,按S2分加1,調(diào)整結(jié)束后按下S1恢復(fù)正常顯示;按下S3鍵進(jìn)入鬧鐘修改模式,再按S3鍵鬧鐘的時(shí)加1,按S2分加1,調(diào)整結(jié)束后按下S1恢復(fù)正常顯示。當(dāng)用手按下一個(gè)鍵時(shí),往往按鍵在閉合位置和斷開(kāi)位置之間跳幾下才穩(wěn)定到閉合狀態(tài)的情況;在釋放一個(gè)鍵時(shí),也會(huì)出現(xiàn)類(lèi)似的情況,這就是抖動(dòng)。抖動(dòng)的持續(xù)時(shí)間隨鍵盤(pán)材料和操作員而異,不過(guò)通??偸遣淮笥?0ms。很容易想到,抖動(dòng)問(wèn)題不解決就會(huì)引起對(duì)閉合鍵的識(shí)別。用軟件方法可以很容易地解決抖動(dòng)問(wèn)題,這就是通過(guò)延遲10ms來(lái)等待抖動(dòng)消失,這之后,再讀入鍵盤(pán)碼。第四章 軟件系統(tǒng)

22、設(shè)計(jì)4.1程序編寫(xiě)設(shè)計(jì)流程圖開(kāi)始初始化 主程序YS0閉合NN響鈴判斷Y顯示時(shí)間時(shí)間調(diào)整響鈴YS4按下NY鬧鐘調(diào)整S3按下NNS1按下Y顯示鬧鐘圖4-1 程序編寫(xiě)流程圖4.2繪制數(shù)字時(shí)鐘電路Protues仿真原理圖4.2.1啟動(dòng)ISIS 7 Professional軟件元件的加載:找到原件后雙擊原件即可完成加載原件。如圖4-2所示:圖 4-2 Protues加載原件圖4.2.2仿真電路繪制 放置元件調(diào)整原布局連線最后得到的原理圖如下:圖4-3 Protues仿真圖通過(guò)S1、S2、S3和S4四個(gè)按鍵,對(duì)時(shí)間進(jìn)行修改和鬧鐘的設(shè)置,S0控制鬧鐘的啟動(dòng)和停止。按下S1鍵顯示鬧鐘,松開(kāi)后顯示時(shí)間;按下S4

23、鍵進(jìn)入時(shí)間修改模式,再按S4鍵時(shí)間的時(shí)加1,按S2分加1,調(diào)整結(jié)束后按下S1恢復(fù)正常顯示;按下S3鍵進(jìn)入鬧鐘修改模式,再按S3鍵鬧鐘的時(shí)加1,按S2分加1,調(diào)整結(jié)束后按下S1恢復(fù)正常顯示。4.2.3電路檢測(cè)電路連接完畢后,單擊運(yùn)行按鈕(如下圖)檢測(cè)電路是否有誤, 如果電路如果無(wú)誤進(jìn)行軟件檢測(cè)。4.3軟件設(shè)計(jì)圖4-6 仿真結(jié)果圖第五章 電路調(diào)試5.1軟件與硬件調(diào)試單片機(jī)應(yīng)用系統(tǒng)的調(diào)試包括硬件和軟件兩部分,但是它們并不能完全分開(kāi)。一般的方法是排除明顯的硬件故障,再進(jìn)行綜合調(diào)試,排除可能的軟/硬件故障。軟件調(diào)試是指用仿真軟件進(jìn)行仿真調(diào)試,驗(yàn)證系統(tǒng)的各項(xiàng)功能;硬件調(diào)試即軟件調(diào)試成功后,將程序下載至AT

24、89C51芯片中,用焊接好的電路來(lái)進(jìn)行各項(xiàng)功能的驗(yàn)證與檢測(cè)。需要特別注意的是軟件調(diào)試與硬件調(diào)試的差異,軟件調(diào)試只是初步的估測(cè),硬件的調(diào)試才是最真實(shí)的5.2仿真結(jié)果分析按鍵問(wèn)題我的設(shè)計(jì)中,很多功能選擇是通過(guò)按鍵開(kāi)關(guān)實(shí)現(xiàn)的。在仿真中發(fā)現(xiàn),調(diào)整數(shù)值時(shí),有時(shí)按鍵反應(yīng)太快,按一次,跳了幾下,使設(shè)置時(shí)間,日期很不方便。但是仿真多了之后,找到了按鍵(實(shí)際上是按鼠標(biāo))的節(jié)奏,對(duì)按鍵的掌控力提高了不少,不怎么會(huì)出現(xiàn)跳變的情況了。有些開(kāi)關(guān)我采用了長(zhǎng)按鍵的方式來(lái)防抖,效果不錯(cuò),但是每次都要長(zhǎng)按鍵,調(diào)整效率太低,我沒(méi)有普及。本來(lái)想把所有的按鍵都加延時(shí)防抖電路,但仿真中感覺(jué)對(duì)鍵盤(pán)的控制力沒(méi)提高多少,有時(shí)還是會(huì)出問(wèn)題。

25、P0口開(kāi)關(guān)問(wèn)題P0口比較特殊,它存在高阻態(tài),要使其輸入不是高電平就是低電平,就要接上拉電阻,給其高電平輸入。中斷沖突問(wèn)題為了實(shí)現(xiàn)秒表,我在T0中斷嵌套了秒表相關(guān)進(jìn)位程序,由于秒表要求精度0.01秒,故我的T0中斷定時(shí)為就剛好0.01秒,中斷100次,剛好1秒。秒表確實(shí)實(shí)現(xiàn)了,但是我的鬧鈴音質(zhì)變差了。一開(kāi)始以為是鬧鈴程序存太多冗余環(huán)節(jié),影響了T1的音樂(lè)輸出中斷,但是檢查程序后,發(fā)現(xiàn)沒(méi)什么多余的,裁剪無(wú)從下手。在仿真中,添加T0中斷服務(wù)程序,但是將中斷進(jìn)入的間隔變大,即0.05秒進(jìn)入一次中斷,發(fā)現(xiàn)音質(zhì)有所下降,有滋滋聲,但比原來(lái)的好。最后認(rèn)定應(yīng)該是T0中斷過(guò)于頻繁,T1音樂(lè)頻率發(fā)生中斷被打破,當(dāng)單

26、位時(shí)間內(nèi)被打破的次數(shù)達(dá)到一定程度時(shí),音符和節(jié)拍的對(duì)應(yīng)發(fā)生紊亂,最終音質(zhì)變差。定時(shí)功能的實(shí)現(xiàn)過(guò)程定時(shí)功能運(yùn)用了一個(gè)內(nèi)存地址3CH為標(biāo)志位,只有3CH中所存值非0時(shí),在主程序中才判斷定時(shí)是否已到。3CH值初始化為0,程序開(kāi)始運(yùn)行時(shí)并不判斷定時(shí)是否已到。當(dāng)通過(guò)按鍵進(jìn)入定時(shí)初值設(shè)置,并開(kāi)始倒計(jì)時(shí),3CH的值被賦為1,當(dāng)?shù)褂?jì)時(shí)顯示到0時(shí),進(jìn)入閃爍提示,提示結(jié)束后3CH又被賦值為0,程序回到主程序后,不必判斷定時(shí)是否已到。但當(dāng)?shù)褂?jì)時(shí)未完,按返回鍵回到主程序時(shí),3CH的值為1,故在主程序判斷未完成的定時(shí)任務(wù),倒計(jì)時(shí)到0時(shí)調(diào)用同一個(gè)提示程序,最后仍可保證在主程序不再定時(shí)開(kāi)啟時(shí)去判斷定時(shí),從而節(jié)約資源。軟件消抖

27、消抖可以采用硬件(施密特觸發(fā)器)的方式,也可以采用軟件的方式。在此只討論軟件方式。軟件消抖有定時(shí)器定時(shí),和利用延時(shí)子程序兩種方式。一,定時(shí)器定時(shí)消抖可以不影響顯示模塊掃描速度,其實(shí)現(xiàn)方法是:設(shè)置標(biāo)志位,在定時(shí)器中斷中將其置位,然后在程序中查詢。將其中斷優(yōu)先級(jí)設(shè)置為低于時(shí)鐘定時(shí)中斷,那么它就可以完全不影響時(shí)鐘定時(shí)。二,在采用延時(shí)子程序時(shí),如果顯示模塊的掃描速度本來(lái)就不是很快,此時(shí)可能會(huì)影響到顯示的效果,一般情況下,每秒的掃描次數(shù)不應(yīng)小于50次,否則,數(shù)碼的顯示會(huì)出現(xiàn)閃爍的情況。因此,延時(shí)子程序的延時(shí)時(shí)間應(yīng)該小于20毫秒,如果采用定時(shí)器定時(shí)的方式,延時(shí)時(shí)間不影響時(shí)鐘。如果,設(shè)計(jì)時(shí)采用的是中斷的方式

28、來(lái)完成有關(guān)操作,同樣可以采用軟件的方式來(lái)消抖,其處理思想是:中斷不能連續(xù)執(zhí)行,兩次之間有一定的時(shí)間間隔。第六章 總結(jié) 首先,我要感謝宋麗玲老師在此次設(shè)計(jì)中給于我的幫助。我深刻地感受單片機(jī)不單是一門(mén)文化課程,更是一門(mén)科學(xué)技術(shù)。單片機(jī)課程設(shè)計(jì)則是人生課程,我們學(xué)到了很多課堂上無(wú)法學(xué)到的東西。從新奇好玩到失敗后的痛苦無(wú)助,從失敗中爬起,哪怕再失敗,也永不放棄。這就是單片機(jī)課程設(shè)計(jì)教會(huì)我們的最寶貴的知識(shí)。一分耕耘,一分收獲。經(jīng)過(guò)這次課程設(shè)計(jì),讓我獲得了很多知識(shí),進(jìn)一步加深了我對(duì)AT89C51單片機(jī)的掌握,另外也鞏固了我的編程思想和焊接技術(shù)。 本次的數(shù)字時(shí)鐘設(shè)計(jì),讓我對(duì)自己在大學(xué)三年的知識(shí)的到了回顧,例

29、如模電和數(shù)電以及做PCB的軟件。它也讓我充分發(fā)揮了對(duì)所學(xué)知識(shí)的理解和設(shè)計(jì)的書(shū)面表達(dá)能力。這為今后自己進(jìn)一步深化學(xué)習(xí),積累了一定的寶貴經(jīng)驗(yàn)。撰寫(xiě)報(bào)告的過(guò)程是對(duì)專業(yè)知識(shí)的學(xué)習(xí)過(guò)程,它使我運(yùn)用已有的專業(yè)基礎(chǔ)知識(shí),對(duì)其進(jìn)行設(shè)計(jì),分析和解決一個(gè)理論問(wèn)題或?qū)嶋H問(wèn)題,把知識(shí)轉(zhuǎn)化為能力的實(shí)際訓(xùn)練。 本次的課程設(shè)計(jì),讓我發(fā)現(xiàn)理論必須用于實(shí)踐,否則只是一張白紙。此外只有理論水平提高了,才能更好的運(yùn)用于實(shí)踐。另外,本次課程設(shè)計(jì)也考驗(yàn)了我的認(rèn)真的態(tài)度。只有做事?lián)碛姓J(rèn)真的態(tài)度與科學(xué)的方法,才能成功。 我認(rèn)為課程設(shè)計(jì)非常有必要,它能讓我們主動(dòng)去尋找遇到問(wèn)題的解決方法,同時(shí)也是對(duì)我們嚴(yán)謹(jǐn)認(rèn)真工作態(tài)度的考驗(yàn)與鍛煉,為以后我們

30、進(jìn)入社會(huì)參加工作是一個(gè)很好的培訓(xùn)與歷練。附錄:圖7-1 數(shù)字時(shí)鐘原理圖數(shù)字時(shí)鐘源程序 使用keil軟件編寫(xiě)源程序ORG 0000HLJMP STARTORG 000BHLJMP TIME;*初始化*START: MOV SP, #50H MOV 20H,#00H ;定義秒 MOV 21H,#00H ;定義分 MOV 22H,#00H ;定義時(shí) MOV 23H,#01H ;定義鬧鐘分鐘 MOV 24H,#01H ;定義鬧鐘小時(shí) MOV 25H,#00H MOV 26H,#01H MOV 30H,#00H ;BCD SECOND MOV 31H,#00H MOV 32H,#00H ;BCD MIN

31、UTE MOV 33H,#00H MOV 34H,#00H ;BCD HOUR MOV 35H,#00H MOV 36H,#01H MOV 37H,#00H MOV 38H,#01H MOV 39H,#00H MOV 50H,#00H ;按鍵次數(shù) MOV TMOD,#01H ;16位計(jì)數(shù)器 MOV TH0, #03CH ;賦初值 MOV TL0, #0B0H MOV IE, #87H ;中斷允許 SETB TR0 ;啟動(dòng)T0 MOV R2,#14H MOV P2,#0FFH;*主程序*MAIN: JB P1.4,GB LCALL TIMEPRO ;調(diào)用鬧鐘判斷GB: LCALL DISPLAY

32、1;調(diào)用時(shí)間顯示 JB P1.3,M1 ;P1.3=1時(shí)轉(zhuǎn)移 S4沒(méi)有按下 LCALL SETTIME ;調(diào)用SETTIME調(diào)時(shí)子程序 LJMP MAINM1: JB P1.2,M2 ;P1 g.2=1時(shí)轉(zhuǎn)移S3 LCALL SETATIME ;調(diào)用SETATIME子程序 LJMP MAINM2: JB P1.0,M4 ;P1.01時(shí)轉(zhuǎn)移 S1 LCALL LOOKATIME ;調(diào)用LOOKATIME顯示鬧鐘子程序M4: LJMP MAIN;*延時(shí)子程序*DELAY: MOV R4,#030HDL00: MOV R5,#0FFHDL11: MOV R6,#9HDL12: DJNZ R6,DL1

33、2 DJNZ R5,DL11 DJNZ R4,DL00 RET;*時(shí)間調(diào)整*SETTIME: ;設(shè)置時(shí)間L0: LCALL DISPLAY1MM1: JB P1.3,L1 ;P1.3=1時(shí)轉(zhuǎn)移 MOV C,P1.3 JC MM1 LCALL DELAY1 ;延時(shí) JC MM1MSTOP1: MOV C,P1.3 ;P1.3為0時(shí)轉(zhuǎn)移 JNC MSTOP1 LCALL DELAY1 ;延時(shí) MOV A,50H INC 50H CJNE A,#00H,HJ1 LJMP L0HJ1: MOV C,P1.3 JNC MSTOP1 INC 22H ;小時(shí)自加一 MOV A,22H CJNE A,#18H

34、,GO12 ;小時(shí)計(jì)數(shù)循環(huán) MOV 22H,#00H ;復(fù)位 MOV 34H,#00H MOV 35H,#00H LJMP L0L1: JB P1.1,L2 ;P1.1=1時(shí)轉(zhuǎn)移 MOV C,P1.1 JC L1 LCALL DELAY1 ;延時(shí) JC L1MSTOP2: MOV C,P1.1 ;P1.10時(shí)轉(zhuǎn)移 JNC MSTOP2 LCALL DELAY1 ;延時(shí) MOV C,P1.1 JNC MSTOP2 INC 21H ;分鐘加一 MOV A,21H CJNE A,#3CH,GO11 ;分鐘計(jì)數(shù)循環(huán) MOV 21H,#00H ; 復(fù)位 MOV 32H,#00H MOV 33H,#00H

35、 LJMP L0 GO11: MOV B,#0AH DIV AB MOV 32H,B ; 將A的低4位存入32單元 MOV 33H,A ; 將A的高4位存入33單元 LJMP L0GO12: MOV B,#0AH DIV AB MOV 34H,B ;將A的低4位存入34單元 MOV 35H,A ; 將A的高4位存入35單元 LJMP L0L2: JB P1.0,L0 ; P1.01時(shí)轉(zhuǎn)移 MOV C,P1.0 JC L2 LCALL DELAY1 ;延時(shí) MOV C,P1.0 JC L2STOP1: MOV C,P1.0 ; P1.00時(shí)轉(zhuǎn)移 JNC STOP1 LCALL DELAY1 ;延

36、時(shí) MOV C,P1.0 JNC STOP1 MOV 50H,#00H LJMP MAIN;*設(shè)置鬧鐘*SETATIME:LCALL DISPLAY2 ; 調(diào)用DISPLAY2顯示鬧鐘N0: LCALL DISPLAY2MM2: JB P1.2,N1 ;P1.2=1時(shí)轉(zhuǎn)移 MOV C,P1.2 JC MM2 LCALL DELAY1 ; 延時(shí) JC MM2MSTOP3: MOV C,P1.2 ; P1.20時(shí)轉(zhuǎn)移 JNC MSTOP3 LCALL DELAY1 ; 延時(shí) MOV A,50H INC 50H CJNE A,#00H,HJ2 LJMP N0HJ2: MOV C,P1.2 JNC M

37、STOP3 INC 24H ;小時(shí)加一 MOV A,24H CJNE A,#24,GO22 ;小時(shí)計(jì)數(shù)循環(huán) MOV 24H,#00H ;復(fù)位 MOV 38H,#00H MOV 39H,#00H LJMP N0N1: JB P1.1,N2 ;P1.11時(shí)轉(zhuǎn)移 MOV C,P1.1 JC N1 LCALL DELAY1 ;延時(shí) JC N1MSTOP4: MOV C,P1.1 ;P1.10時(shí)轉(zhuǎn)移 JNC MSTOP4 LCALL DELAY1 ;延時(shí) MOV C,P1.1 JNC MSTOP4 INC 23H ;分鐘加一 MOV A,23H CJNE A,#60,GO21 ;分鐘計(jì)數(shù)循環(huán) MOV 2

38、3H,#00H ;復(fù)位 MOV 36H,#00H MOV 37H,#00H LJMP N0GO21: MOV B,#0AH DIV AB MOV 36H,B ;將A的低4位存入36單元 MOV 37H,A ;將A的高4位存入37單元 LJMP N0GO22: MOV B,#0AH DIV AB MOV 38H,B ;將A的低4位存入38單元 MOV 39H,A ;將A的高4位存入39單元 LJMP N0N2: JB P1.0 ,N0 ;P1.01時(shí)轉(zhuǎn)移 MOV C,P1.0 JC N2 LCALL DELAY1 ;延時(shí) MOV C,P1.0 JC N2STOP2: MOV C,P1.0 JNC

39、 STOP2 LCALL DELAY1 MOV C,P1.0 JNC STOP2 MOV 50H,#00H LJMP MAIN;*鬧鐘判斷*TIMEPRO: MOV A,21H MOV B,23H CJNE A,B,BK ;判斷定時(shí)鬧鐘的分鐘 MOV A,22H MOV B,24H CJNE A,B,BK ;判斷定時(shí)鬧鐘的小時(shí) SETB 25H.0 MOV C,25H.0 LCALL TIMEOUT ;調(diào)用TIMEOUT BK:RET;*喇叭報(bào)警*TIMEOUT: X1: LCALL BZ ;調(diào)用喇叭響應(yīng)程序 CLR 25H.0 ;調(diào)用喇叭響應(yīng)程序結(jié)束 LCALL DELAY ;延時(shí) CLR

40、25H.0 LJMP DISPLAY1 BZ:MOV C,25H.1 MOV P1.6,C CLR P1.7 MOV R7,#0FFH ;喇叭響應(yīng)時(shí)間 T2: MOV R6,#0FFH T3: DJNZ R6,T3 DJNZ R7,T2 SETB P1.7 RET;*顯示鬧鐘時(shí)間*LOOKATIME:LCALL DISPLAY2 MM: JNB P1.0,LOOKATIME LCALL DELAY1 LJMP MAINDELAY1: MOV R4,#14H ;時(shí)間延時(shí)DL001: MOV R5,#0FFHDL111: DJNZ R5,DL111 DJNZ R4,DL001 RET;*定時(shí)*TI

41、ME: PUSH ACC ;保護(hù)現(xiàn)場(chǎng) PUSH PSW MOVTH0,#03CH ;初值 MOVTL0,#0B0H DJNZ R2,RET0 MOVR2,#14H MOV A,20H CPL 25H.1 CLR C INC A ;秒自加一 CJNE A,#3CH,GO1 ;秒計(jì)數(shù)循環(huán) MOV 20H,#0 ;復(fù)位 MOV 30H,#0 MOV 31H,#0 MOV A,21H INC A ;分鐘自加一 CJNE A,#3CH,GO2 ;分鐘計(jì)數(shù)循環(huán) MOV 21H,#0H ;復(fù)位 MOV 32H,#0 MOV 33H,#0 MOV A,22H INC A ;小時(shí)自加一 CJNE A,#18H,GO3 ;小時(shí)計(jì)數(shù)循環(huán) MOV 22H,#00H ;復(fù)位 MOV 34H,#0 MOV 35H,#0 AJMP RET0GO1:MOV 20H,A MOV B,#0AH DIV AB MOV 31H,A ;將A的低4位存入31單元 MOV 30H,B ;將A

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論