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

下載本文檔

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

文檔簡介

設(shè)計(jì)總說明本設(shè)計(jì)以AT89C51芯片為核心,輔以必要的外圍電路,設(shè)計(jì)了一個(gè)結(jié)構(gòu)簡單,功能齊全的電子時(shí)鐘,它5V直流電源供電。在硬件方面,除了CPU外,使用6個(gè)7段LCD顯示器來進(jìn)行顯示,LCD采用的是動(dòng)態(tài)掃描顯示,使用74LS245芯片進(jìn)行驅(qū)動(dòng)。通過LCD能夠較為準(zhǔn)確地顯示時(shí)、分、秒,利用四個(gè)簡單的按鍵實(shí)現(xiàn)對(duì)時(shí)間的調(diào)整。軟件方面采用匯編語言編程,整個(gè)電子鐘系統(tǒng)能完成時(shí)間的顯示、調(diào)時(shí)、校時(shí)和定時(shí)的功能。選用單片機(jī)最小系統(tǒng)應(yīng)用程序,添加比較程序、時(shí)間調(diào)整程序及蜂鳴程序,通過時(shí)間比較程序觸發(fā)蜂鳴,實(shí)現(xiàn)鬧鐘功能,完成設(shè)計(jì)所需求的軟件環(huán)境。關(guān)鍵詞:單片機(jī),LCD,定時(shí)器,鬧鐘 目錄TOC\o"1-3"\h\u1設(shè)計(jì)要求與實(shí)現(xiàn)思路 -1-1.1設(shè)計(jì)要求 -1-1.2實(shí)現(xiàn)思路 -1-2電子時(shí)鐘 -2-2.1電子時(shí)鐘簡介 -2-2.2電子時(shí)鐘的基本特點(diǎn) -2-3單片機(jī) -3-3.1程序存儲(chǔ)器 -3-3.2MCS-51內(nèi)部數(shù)據(jù)存儲(chǔ)器 -3-4控制系統(tǒng)的硬件設(shè)計(jì) -4-4.1器件的選擇及功能原理 -4-4.1.1單片機(jī)型號(hào)的選擇 -4-4.1.2液晶顯示器的選擇 -4-4.1.3按鍵的選擇 -4-4.1.4電源的選擇 -5-4.1.5計(jì)時(shí)部分的選擇 -5-4.2總體設(shè)計(jì)思想及原理 -6-4.2.1時(shí)鐘電路的設(shè)計(jì) -6-4.2.2鍵盤電路設(shè)計(jì) -7-4.2.3鬧鈴功能的實(shí)現(xiàn) -8-4.2.4中斷服務(wù)的設(shè)計(jì) -9-4.2.5顯示器驅(qū)動(dòng)電路 -9-4.3整個(gè)電路原理圖 -10-5控制系統(tǒng)的軟件設(shè)計(jì) -12-5.1程序設(shè)計(jì) -12-5.2程序流程圖 -12-5.3仿真圖 -13-5.4仿真結(jié)果分析 -14-設(shè)計(jì)總結(jié) -16-參考文獻(xiàn) -17-程序源代碼 -18-1設(shè)計(jì)要求與實(shí)現(xiàn)思路1.1設(shè)計(jì)要求1) 基本功能要求為:字符型LCD(16*2)顯示器;顯示格式為“時(shí)時(shí):分分:秒秒”;一旦時(shí)間到,發(fā)出聲響,同時(shí)繼電器啟動(dòng),可控制家電開啟和關(guān)閉。2) 程序執(zhí)行后工作指示燈LED閃爍,表示程序開始執(zhí)行,LCD顯示“00:00:00”,按下列順序控制:(1)K1鍵設(shè)置現(xiàn)在時(shí)間(2)K2鍵設(shè)置鬧鈴時(shí)間(3)K3鍵顯示鬧鈴設(shè)置的時(shí)間(4)K4鍵定時(shí)“開始”按鍵,啟動(dòng)定時(shí)。1.2實(shí)現(xiàn)思路電子鐘設(shè)計(jì)與制作可以采用51單片機(jī)系列來完成。采用單片機(jī)來實(shí)現(xiàn),由于其功能的實(shí)現(xiàn)主要通過軟件編程來完成,類比于C語言編程。電子鬧鐘的系統(tǒng)框圖如下所示:CPUCPU復(fù)位、時(shí)鐘等電路按鈕電路6位數(shù)碼管顯示電路鬧鈴聲指示電路電源系統(tǒng)圖1-1電子鬧鐘的系統(tǒng)框圖電子鬧鐘的主電路指的是圖1-1中虛線框內(nèi)部分,主要涉及到CPU電路和按鍵按鈕電路。主機(jī)的設(shè)計(jì)具體地說有:1)系統(tǒng)時(shí)鐘電路設(shè)計(jì);2)系統(tǒng)復(fù)位電路設(shè)計(jì);3)按鍵與按鈕電路設(shè)計(jì);4)鬧鈴聲指示電路設(shè)計(jì)。2電子時(shí)鐘2.1電子時(shí)鐘簡介時(shí)鐘是將小時(shí)、分鐘、秒鐘顯示于人的肉眼的計(jì)時(shí)裝置。而單片機(jī)模塊中最常見的正是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更長的使用壽命,因此得到了廣泛的使用。2.2電子時(shí)鐘的基本特點(diǎn)LCD電子定時(shí)鬧鐘是以單片機(jī)為基礎(chǔ)的數(shù)字電路實(shí)現(xiàn)對(duì)時(shí)、分、秒的數(shù)字顯示的數(shù)字計(jì)時(shí)裝置,它的計(jì)時(shí)周期24小時(shí),另外應(yīng)有校時(shí)功能和一些顯示日期、鬧鐘等附加功能。一個(gè)基本的數(shù)字鐘電路主要由計(jì)數(shù)器、校時(shí)電路、報(bào)時(shí)電路、振蕩器和顯示電路組成。目前電子鐘廣泛用于各種私人和公眾場(chǎng)合,成為我們生活、工作和學(xué)習(xí)中不可缺少的好幫手。3單片機(jī)3.1程序存儲(chǔ)器MCS-51單片機(jī)的程序存儲(chǔ)器用于存放應(yīng)用程序和表格之類的固定常數(shù)??蓴U(kuò)充的程序存儲(chǔ)器空間最大為64K字節(jié)。程序存儲(chǔ)器的使用應(yīng)注意以下兩點(diǎn):(1)整個(gè)程序存儲(chǔ)器空間可以分為片內(nèi)和片外兩部分,CPU訪問片內(nèi)和片外程序存儲(chǔ)器,可由引腳所接的電平來確定。EA=1,即引腳接高電平時(shí),程序?qū)钠瑑?nèi)程序存儲(chǔ)器開始執(zhí)行;當(dāng)PC值超出片內(nèi)ROM的容量時(shí),會(huì)自動(dòng)轉(zhuǎn)向片外程序存儲(chǔ)器空間執(zhí)行程序;EA=0,即引腳接低電平時(shí),單片機(jī)只執(zhí)行片外程序存儲(chǔ)器中的程序。(2)各中斷服務(wù)程序的入口地址MCS-51單片機(jī)復(fù)位后,程序存儲(chǔ)器PC的內(nèi)容為0000H,故系統(tǒng)從0000H單元開始取指令,執(zhí)行程序。64K程序存儲(chǔ)器中有5個(gè)單元具有特殊用途,如下:0003H:外部中斷0入口地址。000BH:定時(shí)器0中斷入口地址。0013H:外部中斷1入口地址。001BH:定時(shí)器1中斷入口地址。0023H:串行口中斷入口地址。在系統(tǒng)中斷相應(yīng)之后,將自動(dòng)轉(zhuǎn)各中斷入口地址處執(zhí)行序,而中斷服務(wù)程序一般無法存放于幾個(gè)單元之內(nèi),因此在中斷入口地址處往往存放一條無條件轉(zhuǎn)移指令進(jìn)行跳轉(zhuǎn),以便執(zhí)行中斷服務(wù)程序。3.2MCS-51內(nèi)部數(shù)據(jù)存儲(chǔ)器MCS-51單片機(jī)的片內(nèi)數(shù)據(jù)存儲(chǔ)器單元共有128個(gè),字節(jié)地址為00H-7FH。地址為00H-1FH的32個(gè)單元是4組通用工作寄存器區(qū),每個(gè)區(qū)含8個(gè)8位寄存器,編號(hào)為R7-R0。地址為20H-2FH的16個(gè)單元可進(jìn)行共128位的位尋址。地址為30H-7FH的單元為用戶RAM區(qū),只能進(jìn)行字節(jié)尋址。4控制系統(tǒng)的硬件設(shè)計(jì)4.1器件的選擇及功能原理4.1.1單片機(jī)型號(hào)的選擇由于傳統(tǒng)的8031單片機(jī)內(nèi)部沒有存儲(chǔ)器,需要另擴(kuò)展外部程序存儲(chǔ)器,系統(tǒng)構(gòu)成較為復(fù)雜.在眾多的51系列單片機(jī)中,要算ATMEL公司的AT89C51更實(shí)用,它是低功耗、高性能的CMOS型8位單片機(jī)。AT89C51采用了高性能的處理器結(jié)構(gòu),指令執(zhí)行時(shí)間只需2到4個(gè)時(shí)鐘周期。AT89C51集成了許多系統(tǒng)級(jí)的功能,這樣可大大減少元件的數(shù)目和電路板面積并降低系統(tǒng)的成本。另外,AT89C51是一種高效微控制器,而且它與MCS-51兼容,且具有4K字節(jié)可編程序存儲(chǔ)器和1000次擦寫循環(huán),數(shù)據(jù)保留時(shí)間為10年,是最好的選擇。AT89C51單片機(jī)內(nèi)部主要有以下部件:8031CPU、振蕩電路、總線控制部件、中斷控制部件、片內(nèi)Flash存儲(chǔ)器、并行I/O接口、定時(shí)器和串行I/O接口。4.1.2液晶顯示器的選擇為減少連接線路的復(fù)雜性,在此選用八位一體的共陰數(shù)碼管,八位一體液晶顯示器在內(nèi)部已將段碼相連,位選線則相互獨(dú)立,可以很方便地外接為動(dòng)態(tài)顯示電路。其外部結(jié)構(gòu)如下圖4-1:圖4-1LCD液晶顯示器4.1.3按鍵的選擇

按鍵的選擇去下:

AT89C5的引腳如下圖4-2:圖4-2AT89C51引腳4.1.4電源的選擇用5V外部穩(wěn)壓電源來供電。4.1.5計(jì)時(shí)部分的選擇用軟件編程來實(shí)現(xiàn)計(jì)時(shí)。4.2總體設(shè)計(jì)思想及原理設(shè)計(jì)的總思路如圖4-3:圖4-3設(shè)計(jì)的總流程圖4.2.1時(shí)鐘電路的設(shè)計(jì)AT89C51系列的單片機(jī)的時(shí)鐘方式分為內(nèi)部方式和外部方式。內(nèi)部方式就是在單片機(jī)的XTAL1和XTAL2的兩引腳外接晶振,就夠成了自激振蕩器在單片機(jī)內(nèi)部產(chǎn)生時(shí)鐘脈沖信號(hào)。外部時(shí)鐘方式是把外部已經(jīng)有的時(shí)鐘信號(hào)引入到單片機(jī)內(nèi)部。時(shí)鐘電路在計(jì)算機(jī)系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎(chǔ)。在一個(gè)單片機(jī)應(yīng)用系統(tǒng)中,時(shí)鐘有兩方面的含義:一是指為保障系統(tǒng)正常工作的基準(zhǔn)振蕩定時(shí)信號(hào),主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機(jī)系統(tǒng)工作的快慢;二是指系統(tǒng)的標(biāo)準(zhǔn)定時(shí)時(shí)鐘,即定時(shí)時(shí)間。本LCD電子鬧鐘設(shè)計(jì)是采用內(nèi)部時(shí)鐘方式,用一個(gè)12MHz晶振和兩個(gè)30Pf瓷片電容組成,為單片機(jī)提供標(biāo)準(zhǔn)時(shí)鐘,其中兩個(gè)瓷片電容起微調(diào)作用。其電路圖見圖4-4。圖4-4時(shí)鐘電路單片機(jī)之所以采用高性能的振蕩電路,因?yàn)椋?)單片機(jī)電子鐘的計(jì)時(shí)脈沖基準(zhǔn)是由外部晶振的頻率經(jīng)過12分頻后提供,采用內(nèi)部的定時(shí)/計(jì)數(shù)器來實(shí)現(xiàn)計(jì)時(shí)功能。所以,外接晶振頻率精確度直接影響電子鐘計(jì)時(shí)的準(zhǔn)確性。2)片機(jī)電子鐘利用內(nèi)部定時(shí)/計(jì)數(shù)器溢出產(chǎn)生中斷(12M晶振一般為50ms)再乘以相應(yīng)的倍率來實(shí)現(xiàn)秒、分、時(shí)的轉(zhuǎn)換。大家都知道從定時(shí)/計(jì)數(shù)器產(chǎn)生中斷請(qǐng)求到響應(yīng)中斷需要3-8個(gè)機(jī)器周期,定時(shí)中斷子程序中的數(shù)據(jù)入棧和重裝定時(shí)/計(jì)數(shù)器的初值還需要占用數(shù)個(gè)機(jī)器周期,還有從中斷入口轉(zhuǎn)到中斷子程序也要占用一定的機(jī)器周期。4.2.2鍵盤電路設(shè)計(jì)鍵盤采用4個(gè)獨(dú)立按鍵配以4個(gè)上拉電阻實(shí)現(xiàn)對(duì)時(shí)鐘和鬧鐘的設(shè)定及修改。圖4-5獨(dú)立按鍵圖4-6鍵盤輸入電路4.2.3鬧鈴功能的實(shí)現(xiàn)鬧鈴功能的實(shí)現(xiàn)涉及到兩個(gè)方面:鬧鈴時(shí)間設(shè)定和是否鬧鈴判別與相應(yīng)處理。鬧鈴時(shí)間設(shè)定模塊的設(shè)計(jì)可參照時(shí)間設(shè)定模塊,這里著重闡述鬧鈴判別與處理模塊的設(shè)計(jì)問題。鬧鈴判別與鬧鈴處理的關(guān)鍵在于判別何時(shí)要進(jìn)行鬧鈴。當(dāng)時(shí)十位、時(shí)個(gè)位、分十位、分個(gè)位中任一位發(fā)生改變(進(jìn)位)時(shí),就必須進(jìn)行鬧鈴判別。譯碼顯示電路將“時(shí)”、“分”、“秒”計(jì)數(shù)器的輸出送到七段顯示譯碼驅(qū)動(dòng)器譯碼驅(qū)動(dòng),通過六個(gè)七段LCD顯示器顯示出來。鬧鈴電路根據(jù)計(jì)時(shí)系統(tǒng)的輸出狀態(tài)產(chǎn)生脈沖信號(hào),然后加上一個(gè)高頻或低頻信號(hào)送到放大電路驅(qū)動(dòng)蜂鳴器發(fā)聲實(shí)現(xiàn)報(bào)時(shí)。校時(shí)電路是直接加一個(gè)脈沖信號(hào)到時(shí)計(jì)數(shù)器或者分計(jì)數(shù)器或者秒計(jì)數(shù)器來對(duì)“時(shí)”、“分”、“秒”顯示數(shù)字進(jìn)行校對(duì)調(diào)整。時(shí)十位、個(gè)位或分十位、個(gè)位改變了時(shí)十位、個(gè)位或分十位、個(gè)位改變了設(shè)置鬧鈴標(biāo)志是否設(shè)置了鬧鈴清除鬧鈴標(biāo)志判當(dāng)前時(shí)間是設(shè)定時(shí)間中斷返回中斷返回YNY鬧鈴判別處理 N圖4-7鬧鐘判別流程圖考慮到實(shí)用性,在該電子鐘的設(shè)計(jì)中修改定時(shí)或調(diào)整時(shí)間時(shí)采用了閃爍,而且以定時(shí)20組鬧鐘。在編程上,首先進(jìn)行了初始化定義了程序的入口地址以及中斷的入口地址,在主程序的開始定義了一組固定單元用來存儲(chǔ)計(jì)數(shù)的秒,分,時(shí)以及定時(shí)時(shí)間的序號(hào)等。在顯示程序段中主要進(jìn)行了閃爍的處理,采用定時(shí)器中斷置標(biāo)志位,再與位選相互結(jié)合的方法來控制調(diào)時(shí)或定時(shí)中的閃爍。時(shí),圖4-8鬧鐘的實(shí)現(xiàn)流程圖分,秒顯示則是用了軟件譯碼(查表)的方式,再用了一段固定的程序段進(jìn)行進(jìn)制轉(zhuǎn)化。初始化之后,用中斷方式對(duì)其計(jì)數(shù),計(jì)數(shù)的同時(shí)采用了定時(shí)器比較的方法,比較當(dāng)前計(jì)數(shù)時(shí)間與定時(shí)時(shí)間是否相等,若相等則將鬧鈴標(biāo)志位置數(shù)。由于定義了定時(shí)鬧鐘組,在這里采用中斷組次,每中斷一次比較一組鬧鐘,避免了一次比較中斷時(shí)間過長,影響下次中斷時(shí)間。顯示之后查詢鬧鈴標(biāo)志位是否與前面所置數(shù)相等,若相等則響鈴。為了避免響鈴影響顯示,采用了每顯示幾屏以后在顯示程序中出現(xiàn)脈沖,驅(qū)動(dòng)喇叭,不會(huì)影響顯示。之后用查詢方式對(duì)按鍵進(jìn)行判斷,若有鍵按下,則進(jìn)行軟件延時(shí)消抖,避免了抖動(dòng)引起的干擾,執(zhí)行相應(yīng)的定時(shí),選時(shí)或調(diào)時(shí)程序段。對(duì)當(dāng)前時(shí)間或定時(shí)時(shí)間修改后又返回到最初的顯示程序段,如此循環(huán)下去。4.2.4中斷服務(wù)的設(shè)計(jì)數(shù)字電子鐘設(shè)計(jì)中主要使用定時(shí)器T0中斷ET0,利用ET0中斷進(jìn)行計(jì)時(shí)時(shí)間的自增,從而實(shí)現(xiàn)計(jì)時(shí)功能。AT89C51有兩個(gè)通用定時(shí)/計(jì)數(shù)器。兩者均可配置為定時(shí)器或事件計(jì)數(shù)器。另外增加了定時(shí)器T0/T1,溢出時(shí)T0/T1腳自動(dòng)翻轉(zhuǎn)的功能選項(xiàng)。用作“定時(shí)器”功能時(shí),每經(jīng)過一個(gè)機(jī)器周期,寄存器值加1。用作“計(jì)數(shù)器”功能時(shí),寄存器在對(duì)應(yīng)的外部輸入管腳T0/T1上每發(fā)生一次1到0的跳變時(shí)加1。使用該功能時(shí),外部輸入每個(gè)機(jī)器周期被采樣一次。設(shè)計(jì)中采用了中斷方式1作為定時(shí)中斷,其定時(shí)計(jì)數(shù)初值的設(shè)置可由以下公式計(jì)算得到,中斷服務(wù)流程圖如下圖4-9。圖4-9中斷處理流程圖4.2.5顯示器驅(qū)動(dòng)電路 由于通過數(shù)碼管公共及的電流較大且避免過多地使用分立元件,采用了一片74LS245來驅(qū)動(dòng)段碼,用P0口作位碼驅(qū)動(dòng)。74LS245是我們常用的芯片,用來驅(qū)動(dòng)LCD或者其他的設(shè)備,它是8路同相三態(tài)雙向總線收發(fā)器,可雙向傳輸數(shù)據(jù)。74LS245還具有雙向三態(tài)功能,既可以輸出,也可以輸入數(shù)據(jù)。當(dāng)8051單片機(jī)的P0口總線負(fù)載達(dá)到或超過P0最大負(fù)載能力時(shí),必須接入74LS245等總線驅(qū)動(dòng)器。由于P2口始終輸出地址的高8位,接口時(shí)74LS245的三態(tài)控制端1G和2G接地,P2口與驅(qū)動(dòng)器輸入線對(duì)應(yīng)相連。P0口與74LS245輸入端相連,E端接地,保證數(shù)據(jù)線暢通。因此,可以用來作為驅(qū)動(dòng)裝置。圖4-1074LS245引腳圖4.3整個(gè)電路原理圖圖4-11總電路圖定時(shí)鬧鐘以單片機(jī)AT89C51為核心來完成,使用12MHZ晶振與單片機(jī)AT89C51相連接,通過軟件編程的方法實(shí)現(xiàn)了以24小時(shí)為一個(gè)周期同時(shí)顯示小時(shí)、分鐘和秒的要求,并在計(jì)時(shí)過程中具有報(bào)時(shí)功能,當(dāng)時(shí)間到達(dá)整點(diǎn)進(jìn)行蜂鳴報(bào)時(shí)。在硬件電路中采用P0口作為6位LCD顯示器的驅(qū)動(dòng)接口,這是由于P0口輸出驅(qū)動(dòng)電路工作處于開漏狀態(tài),它的驅(qū)動(dòng)能力強(qiáng),故只需外接上拉電阻便可以把LCD顯示器點(diǎn)亮。因?yàn)楣碴幍腖CD顯示器它的驅(qū)動(dòng)電流是分開的,在單片機(jī)進(jìn)行動(dòng)態(tài)掃描的時(shí)候不會(huì)影響彼此的電流,故該電路中的LCD顯示器采用共陰極的顯示器。6位LCD顯示器的位選線分別由相應(yīng)的P2.0~P2.5控制,相應(yīng)的段選線由8位的I/O口控制,即P0口。該電子鐘設(shè)有四個(gè)按鍵:S1、S2、S3和S4鍵(由上至下依次為S1、S2、S3、S4),他們分別與單片機(jī)的P1.1、P1.2、P1.3和P1.4口相連接。S1、S2、S3和S4鍵Proteus仿真圖如下:圖4-12安裝控制圖5控制系統(tǒng)的軟件設(shè)計(jì)5.1程序設(shè)計(jì)該電子鐘的設(shè)計(jì)中修改定時(shí)或調(diào)整時(shí)間時(shí)采用了閃爍。在編程上,首先進(jìn)行了初始化定義了程序的入口地址以及中斷的入口地址,在主程序的開始定義了一個(gè)固定單元用來存儲(chǔ)計(jì)數(shù)的秒、分、時(shí)。在顯示程序段中主要進(jìn)行了閃爍的處理,采用定時(shí)器中斷置標(biāo)志位,再與位選相互結(jié)合的方法來控制調(diào)時(shí)或定時(shí)中的閃爍。時(shí)、分、秒的顯示則是用了軟件譯碼(查表)的方式,再用了一段固定的程序段進(jìn)行進(jìn)制轉(zhuǎn)化。初始化之后,用中斷方式對(duì)其計(jì)數(shù),計(jì)數(shù)的同時(shí)采用了定時(shí)器比較的方法,比較當(dāng)前計(jì)數(shù)時(shí)間與定時(shí)時(shí)間是否相等,若相等則將鬧鈴標(biāo)志位置數(shù)。為了避免響鈴影響顯示,采用了每顯示幾屏以后在顯示程序中出現(xiàn)脈圖5-1設(shè)計(jì)主線沖,驅(qū)動(dòng)喇叭,不會(huì)影響顯示。之后用查詢方式對(duì)按鍵進(jìn)行判斷,若有鍵按下,則進(jìn)行軟件延時(shí)消抖,避免了抖動(dòng)引起的干擾,執(zhí)行相應(yīng)的定時(shí),選時(shí)或調(diào)時(shí)程序段。對(duì)當(dāng)前時(shí)間或定時(shí)時(shí)間修改后又返回到最初的顯示程序段,如此循環(huán)下去。5.2程序流程圖圖5-2主函數(shù)流程圖程序源代碼ORG0000H;開辟代碼首地址LJMPMAINORG000BH;定時(shí)器/計(jì)數(shù)器T0溢出中斷服務(wù)子程序入口地址LJMPTIMEORG0100HMAIN:MOVSP,#50H;設(shè)置堆棧指針首地址MOV20H,#00H;十六進(jìn)制轉(zhuǎn)化時(shí)分秒 MOV21H,#00HMOV22H,#00HMOV23H,#01H;鬧鈴設(shè)置時(shí)分位MOV24H,#01HMOV25H,#00H;定義一個(gè)標(biāo)志位MOV30H,#00H;時(shí)分秒十進(jìn)制轉(zhuǎn)化MOV31H,#00HMOV32H,#00HMOV33H,#00HMOV34H,#00HMOV35H,#00HMOV36H,#01H;鬧鈴十進(jìn)制轉(zhuǎn)化MOV37H,#00HMOV38H,#01HMOV39H,#00H MOVTMOD,#01H;選用16位計(jì)數(shù)器T0,方式1 MOVTH0,#03CH;賦初值 MOVTL0,#0B0H MOVIE,#10000111B;開中斷T0,EA=1 SETBTR0;T0啟動(dòng)計(jì)數(shù)MOVR2,#14H;計(jì)數(shù)器 MOVP2,#0FFHLOOP:LCALLTIMEPRO;調(diào)用現(xiàn)在時(shí)間與鬧鈴時(shí)間比較程序LCALLDISPLAY1;調(diào)用現(xiàn)在時(shí)間顯示子程序JBK1,M1;判斷按鍵是否按下LCALLXIAOZHEN1;調(diào)用消抖程序MOVC,25H.0JCA1A1:CLR25H.0LCALLSETTIME;調(diào)用設(shè)置現(xiàn)在時(shí)間子程序LJMPLOOPM1:JBK2,M2LCALLXIAOZHEN2MOVC,25H.0JCA2A2:CLR25H.0LCALLSETATIME;調(diào)用鬧鐘設(shè)置程序LJMPLOOPM2:JBK4,M3A3:LCALLXIAOZHEN3MOVC,25H.0JCA4A4:CLR25H.0M3:LJMPLOOPSETTIME:L0:LCALLDISPLAY1;鬧鐘設(shè)置子程序JBK2,L1LCALLXIAOZHEN4MOVC,25H.0JCA5A5:CLR25H.0INC22HMOVA,22HCJNEA,#18H,GO12MOV22H,#00HMOV34H,#00HMOV35H,#00HLJMPL0L1:JBK3,L2LCALLXIAOZHEN5MOVC,25H.0JCA6A6:CLR25H.0INC21HMOVA,21HCJNEA,#3CH,GO11MOV21H,#00HMOV32H,#00HMOV33H,#00HLJMPL0GO11:MOVB,#0AHDIVABMOV32H,BMOV33H,ALJMPL0GO12:MOVB,#0AHDIVABMOV34H,BMOV35H,ALJMPL0L2:JBK4,L0LCALLXIAOZHEN3MOVC,25H.0JCAXAX:CLR25H.0RETSETATIME:LCALLDISPLAY2;調(diào)用鬧鐘設(shè)置,鬧鈴響時(shí)的顯示程序N0:LCALLDISPLAY2JBK3,N1LCALLXIAOZHEN6MOVC,25H.0JCA7A7:CLR25H.0INC24HMOVA,24HCJNEA,#24,GO22MOV24H,#00HMOV38H,#00HMOV39H,#00HLJMPN0N1:JBK1,N2LCALLXIAOZHEN7MOVC,25H.0JCA8A8:CLR25H.0INC23HMOVA,23HCJNEA,#60,GO21MOV23H,#00HMOV36H,#00HMOV37H,#00HLJMPN0GO21:MOVB,#0AHDIVABMOV36H,BMOV37H,ALJMPN0GO22:MOVB,#0AHDIVABMOV38H,BMOV39H,ALJMPN0N2:JBK4,N0LCALLXIAOZHEN3MOVC,25H.0JCA9A9:CLR25H.0RETTIMEPRO:MOVA,21HMOVB,23HCJNEA,B,BKMOVA,22HMOVB,24HCJNEA,B,BKSETB25H.0MOVC,25H.0JCXXXX:LCALLTIMEOUTBK:RETTIMEOUT:X1:LCALLBZLCALLDISPLAY2CLR25H.0JBK4,X1RETBZ:CLRP3.7MOVR7,#250T2:MOVR6,#124T3:DJNZR6,T3DJNZR7,T2SETBP3.7JBK4,XYLCALLXIAOZHEN3MOVC,25H.0JCXY1XY:RETXY1:LJMPLOOPXIAOZHEN1:LCALLDISPLAY1;鬧鐘的設(shè)定值與現(xiàn)行時(shí)間的對(duì)比及響應(yīng)JBK1,XIAOZHEN1MOVC,K1JCXIAOZHEN1LCALLDELAYMOVC,K1JCXIAOZHEN1STOP1:MOVC,K1JNCSTOP1LCALLDELAYMOVC,K1JNCSTOP1SETB25H.0RETXIAOZHEN2:LCALLDISPLAY2JBK2,XIAOZHEN2MOVC,K2JCXIAOZHEN2LCALLDELAYMOVC,K2JCXIAOZHEN2STOP2:MOVC,K2JNCSTOP2LCALLDELAYMOVC,K2JNCSTOP2SETB25H.0RETXIAOZHEN3:LCALLDISPLAY1JBK4,XIAOZHEN3MOVC,K4JCXIAOZHEN3LCALLDELAYMOVC,K4JCXIAOZHEN3STOP3:MOVC,K4JNCSTOP3LCALLDELAYMOVC,K4JNCSTOP3SETB25H.0RETXIAOZHEN4:LCALLDISPLAY1JBK2,XIAOZHEN4MOVC,K2JCXIAOZHEN4LCALLDELAYMOVC,K2JCXIAOZHEN4STOP4:MOVC,K2JNCSTOP4LCALLDELAYMOVC,K2JNCSTOP4SETB25H.0RETXIAOZHEN5:LCALLDISPLAY1JBK3,XIAOZHEN5MOVC,K3JCXIAOZHEN5LCALLDELAYMOVC,K3JCXIAOZHEN5STOP5:MOVC,K3JNCSTOP5LCALLDELAYMOVC,K3JNCSTOP5SETB25H.0RETXIAOZHEN6:LCALLDISPLAY2JBK3,XIAOZHEN6MOVC,K3JCXIAOZHEN6LCALLDELAYMOVC,K3JCXIAOZHEN6STOP6:MOVC,K3JNCSTOP6LCALLDELAYMOVC,K3JNCSTOP6SETB25H.0RETXIAOZHEN7:LCALLDISPLAY2JBK1,XIAOZHEN7MOVC,K1JCXIAOZHEN7LCALLDELAYMOVC,K1JCXIAOZHEN7STOP7:MOVC,K1JNCSTOP7LCALLDELAYMOVC,K1JNCSTOP7SETB25H.0RETDELAY:MOVR4,#14HDL00:MOVR5,#0FFHDL11:DJNZR5,DL11DJNZR4,DL00RETTIME:PUSHACCPUSHPSWMOVTH0,#03CH MOVTL0,#0B0H DJNZR2,RET0 MOVR2,#14H MOVA,20H CLRC INCA CJNEA,#3CH,GO1 MOV20H,#0MOV30H,#0MOV31H,#0 MOVA,21H INCACJNEA,#3CH,GO2MOV21H,#0HMOV32H,#0MOV33H,#0 MOVA,22H INCA CJNEA,#18H,GO3 MOV22H,#00HMOV34H,#0MOV35H,#0 AJMPRET0GO1:MOV20H,AMOVB,#0AHDIVABMOV31H,AMOV30H,B AJMPRET0GO2:MOV21H,AMOVB,#0AHDIVABMOV33H,AMOV32H,B AJMPRET0;長跳轉(zhuǎn)至恢復(fù)現(xiàn)場(chǎng)指令GO3:MOV22H,AMOVB,#0AHDIVABMOV35H,AMOV34H,B AJMPRET0RET0:POPPSWPOPACCRETIDISPLAY1:MOVR0,#30H MOVR3,#0FEH MOVA,R3PLAY1:MOVP2,A;現(xiàn)在時(shí)間分的顯示MOVA,@R0MOVDPTR,#DSEG1MOVCA,@A+DPTRMOVP0,ALCALLDL1MOVP2,#0FFHMOVA,R3RLAJNBACC.6,LD1INCR0MOVR3,ALJMPPLAY1LD1:RETDISPLAY2:PUSHACC;響應(yīng)中斷服務(wù)子程序PUSHPSWMOVR0,#36H MOVR3,#0FBH MOVA,R3PLAY2:MOVP2,A;現(xiàn)在時(shí)間時(shí)的顯示MOVA,@R0MOVDPTR,#DSEG1MOVCA,@A+DPTRMOVP0,ALCALLDL1MOVP2,#0FFHMOVA,R3RLAJNBACC.6,LD2INCR0MOVR3,ALJMPPLAY2LD2:POPPSWPOPACCRETDL1:MOVR7,#05H;延時(shí)子程序DL:MOVR6,#0FFHDL6:DJNZR6,$ DJNZR7,DL RETDSEG1:DB3FH,06H,5BH,4FH,66H;段選碼數(shù)據(jù)轉(zhuǎn)化表格DB6DH,7DH,07H,7FH,6FHEND基于C8051F單片機(jī)直流電動(dòng)機(jī)反饋控制系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對(duì)良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制基于MCS-51系列單片機(jī)的通用控制模塊的研究基于單片機(jī)實(shí)現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機(jī)控制的二級(jí)倒立擺系統(tǒng)的研究基于增強(qiáng)型51系列單片機(jī)的TCP/IP協(xié)議棧的實(shí)現(xiàn)基于單片機(jī)的蓄電池自動(dòng)監(jiān)測(cè)系統(tǒng)基于32位嵌入式單片機(jī)系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機(jī)的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機(jī)的交流伺服電機(jī)運(yùn)動(dòng)控制系統(tǒng)研究與開發(fā)基于單片機(jī)的泵管內(nèi)壁硬度測(cè)試儀的研制基于單片機(jī)的自動(dòng)找平控制系統(tǒng)研究基于C8051F040單片機(jī)的嵌入式系統(tǒng)開發(fā)基于單片機(jī)的液壓動(dòng)力系統(tǒng)狀態(tài)監(jiān)測(cè)儀開發(fā)模糊Smith智能控制方法的研究及其單片機(jī)實(shí)現(xiàn)一種基于單片機(jī)的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機(jī)的在線間歇式濁度儀的研制基于單片機(jī)的噴油泵試驗(yàn)臺(tái)控制器的研制基于單片機(jī)的軟起動(dòng)器的研究和設(shè)計(jì)基于單片機(jī)控制的高速快走絲電火花線切割機(jī)床短循環(huán)走絲方式研究基于單片機(jī)的機(jī)電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機(jī)的智能手機(jī)充電器基于單片機(jī)的實(shí)時(shí)內(nèi)核設(shè)計(jì)及其應(yīng)用研究基于單片機(jī)的遠(yuǎn)程抄表系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的煙氣二氧化硫濃度檢測(cè)儀的研制基于微型光譜儀的單片機(jī)系統(tǒng)單片機(jī)系統(tǒng)軟件構(gòu)件開發(fā)的技術(shù)研究基于單片機(jī)的液體點(diǎn)滴速度自動(dòng)檢測(cè)儀的研制基于單片機(jī)系統(tǒng)的多功能溫度測(cè)量儀的研制基于PIC單片機(jī)的電能采集終端的設(shè)計(jì)和應(yīng)用基于單片機(jī)的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機(jī)單片機(jī)控制系統(tǒng)的研制基于單片機(jī)的數(shù)字磁通門傳感器基于單片機(jī)的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機(jī)的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機(jī)控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機(jī)的多生理信號(hào)檢測(cè)儀基于單片機(jī)的電機(jī)運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)Pico專用單片機(jī)核的可測(cè)性設(shè)計(jì)研究基于MCS-51單片機(jī)的熱量計(jì)基于雙單片機(jī)的智能遙測(cè)微型氣象站MCS-51單片機(jī)構(gòu)建機(jī)器人的實(shí)踐研究基于單片機(jī)的輪軌力檢測(cè)基于單片機(jī)的GPS定位儀的研究與實(shí)現(xiàn)基于單片機(jī)的電液伺服控制系統(tǒng)用于單片機(jī)系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機(jī)的時(shí)控和計(jì)數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機(jī)和CPLD的粗光柵位移測(cè)量系統(tǒng)研究單片機(jī)控制的后備式方波UPS提升高職學(xué)生單片機(jī)應(yīng)用能力的探究基于單片機(jī)控制的自動(dòng)低頻減載裝置研究基于單片機(jī)控制的水下焊接電源的研究基于單片機(jī)的多通道數(shù)據(jù)采集系統(tǒng)基于uPSD3234單片機(jī)的氚表面污染測(cè)量儀的研制基于單片機(jī)的紅外測(cè)油儀的研究96系列單片機(jī)仿真器研究與設(shè)計(jì)基于單片機(jī)的單晶金剛石刀具刃磨設(shè)備的數(shù)控改造基于單片機(jī)的溫度智能控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)基于MSP430單片機(jī)的電梯門機(jī)控制器的研制基于單片機(jī)的氣體測(cè)漏儀的研究基于三菱M16C/6N系列單片機(jī)的CAN/USB協(xié)議轉(zhuǎn)換器基于單片機(jī)和DSP的變壓器油色譜在線監(jiān)測(cè)技術(shù)研究基于單片機(jī)的膛壁溫度報(bào)警系統(tǒng)設(shè)計(jì)基于AVR單片機(jī)的低壓無功補(bǔ)償控制器的設(shè)計(jì)基于單片機(jī)船舶電力推進(jìn)電機(jī)監(jiān)測(cè)系統(tǒng)基于單片機(jī)網(wǎng)絡(luò)的振動(dòng)信號(hào)的采集系統(tǒng)基于單片機(jī)的大容量數(shù)據(jù)存儲(chǔ)技術(shù)的應(yīng)用研究基于單片機(jī)的疊圖機(jī)研究與教學(xué)方法實(shí)踐基于單片機(jī)嵌入式Web服務(wù)器技術(shù)的研究及實(shí)現(xiàn)基于AT89S52單片機(jī)的通用數(shù)據(jù)采集系統(tǒng)基于單片機(jī)的多道脈沖幅度分析儀研究機(jī)器人旋轉(zhuǎn)電弧傳感角焊縫跟蹤單片機(jī)控制系統(tǒng)基于單片機(jī)的控制系統(tǒng)在PLC虛擬教學(xué)實(shí)驗(yàn)中的應(yīng)用研究基于單片機(jī)系統(tǒng)的網(wǎng)絡(luò)通信研究與應(yīng)用基于PIC16F877單片機(jī)的莫爾斯碼自動(dòng)譯碼系統(tǒng)設(shè)計(jì)與研究基于單片機(jī)的模糊控制器在工業(yè)電阻爐上的應(yīng)用研究基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究與開發(fā)基于Cygn

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論