版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
江蘇信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(論文)自動打鈴系統(tǒng)設(shè)計4041-畢業(yè)設(shè)計論文自動打鈴系統(tǒng)設(shè)計系電子信息工程系專業(yè)電子信息工程姓名班級學(xué)號指導(dǎo)教師職稱設(shè)計時間目錄摘要 -3-關(guān)鍵詞 -3-引言 -4-第一章設(shè)計方案論證 -5-1.1設(shè)計要求 -5-1.2設(shè)計方案選擇 -5-1.2.1方案一:數(shù)字電路設(shè)計的自動打鈴系統(tǒng) -5-1.2.2方案二:基于單片機的自動打鈴系統(tǒng)設(shè)計 -6-1.2.3方案確定 -6-1.3基本方案 -6-1.3.1設(shè)計課題簡要概述 -6-1.3.2系統(tǒng)軟硬件劃分 -6-1.3.3單片機選型 -7-1.4總體設(shè)計框圖 -7-第二章硬件電路設(shè)計 -8-2.1基本原理概述 -8-2.2主要原件參數(shù)及功能簡介 -8-2.2.1主控器AT89C51 -8-2.2.2時鐘電路DS1302 -9-2.3單元電路的設(shè)計 -10-2.3.1顯示電路設(shè)計 -10-2.3.2鍵盤接口電路設(shè)計 -11-2.3.3響鈴電路設(shè)計 -12-2.4總體運行進程 -12-第三章軟件電路設(shè)計及流程圖 -13-3.1基本原理概述 -13-3.1.1中斷服務(wù)程序設(shè)計 -13-3.1.2顯示程序設(shè)計和按鍵判斷與按鍵處理程序設(shè)計 -13-3.2流程圖 -14-3.2.1系統(tǒng)主程序流程圖 -14-3.2.2系統(tǒng)定時中斷流程圖 -15-第四章系統(tǒng)程序設(shè)計 -16-4.1程序設(shè)計概要 -16-4.2源程序清單 -17-第五章自動打鈴硬件原理圖 -37-第六章畢業(yè)設(shè)計總結(jié) -38-致謝 -39-參考文獻 -40-摘要自動打鈴系統(tǒng),是以一片8位單片機為核心的實時時鐘及控制系統(tǒng)。我們知道單片機的外接石英晶體振蕩器能提供穩(wěn)定、準(zhǔn)確的基準(zhǔn)頻率,并經(jīng)12分頻后向內(nèi)部定時器提供實時基準(zhǔn)頻率信號,設(shè)定定時器工作在中斷方式下,連續(xù)對此頻率信號進行分頻計數(shù),便可得秒信號,再對秒信號進行計數(shù)便可得到分、時等實時時鐘信息。如果石英晶體振蕩器的頻率信號為6MHZ,設(shè)定定時器定時工作方式1下,定時器為3CBOH,則定時器每100ms產(chǎn)生1次中斷,在定時器的中斷定時處理程序中,每10次中斷,則向秒計數(shù)器加1,秒計數(shù)器計數(shù)到60則向分計數(shù)器進位(并建立分進位標(biāo)志),分計數(shù)器計數(shù)到60,則向時計數(shù)器進位,如此周而復(fù)始的連續(xù)計數(shù),便可獲得時、分、秒的信號,建立一個實時時鐘。接下來便可以進行定時處理和打鈴輸出,當(dāng)主程序檢測到有分進位標(biāo)志時,便開始比較當(dāng)前時間(小時與分、存放在RAM中)與信息時間表上的作息時間(小時與分,存放在ROM)是否相同,如有相同者,則進行報時處理并控制打鈴,如有不相同則返回主程序,如此便實現(xiàn)了報時控制的要求。關(guān)鍵詞單片機;時間設(shè)置電路;計時電路;顯示電路;定時打鈴控制電路引言隨著科技的不斷發(fā)展,各種芯片都得到了很好的發(fā)展,80C51同樣如此,從開始的無人問津到現(xiàn)在的隨處可見,紅綠燈,記分牌,電子秒表,遙控器,電飯煲,電視等只要是電子產(chǎn)品,都會和芯片有關(guān),其實芯片并不是什么神秘的高科技,它只是里面裝了一些己編好的程序而己.而這里要介紹的是用匯編語言來編程的一個系統(tǒng),它能夠讓一個學(xué)校或企業(yè)集團實現(xiàn)打鈴自動化,總之,一個需要時間系統(tǒng)的機構(gòu)實現(xiàn)自動提醒功能。當(dāng)今時代是一個新技術(shù)層出不窮的時代,在電子領(lǐng)域尤其是自動化智能控制領(lǐng)域,傳統(tǒng)的分立元件或數(shù)字邏輯電路構(gòu)成的控制系統(tǒng),正以前所未有的速度被單片機智能控制系統(tǒng)所取代。單片機具有體積小、功能強、成本低、應(yīng)用面廣等優(yōu)點,可以說,智能控制與自動控制的核心就是單片機。目前,一個學(xué)習(xí)與應(yīng)用單片機的高潮正在工廠、學(xué)校及企事業(yè)單位大規(guī)模地興起。而本文是用AT89C51單片機設(shè)計的一個自動打鈴系統(tǒng)。第一章設(shè)計方案論證1.1設(shè)計要求它可以作為時鐘電路來顯示時間,進行設(shè)置,定時打鈴。按照自頂向下設(shè)計方法劃分自動打鈴系統(tǒng)的功能??煞譃椋簳r間設(shè)置電路,計時電路,顯示電路和定時打鈴控制電路等。以江蘇信息職業(yè)技術(shù)學(xué)院的打鈴情況設(shè)計內(nèi)容時間起床6:30早自習(xí)7:30-8:10第一節(jié)課8:20-9:00第二節(jié)課9:10-9:50第三節(jié)課10:00-10:40第四節(jié)課10:50-11:30第五節(jié)課13:30-14:10第六節(jié)課14:20-15:00第七節(jié)課15:20-16:00第八節(jié)課16:10-16:50晚自習(xí)19:00-20:30熄燈22:301.2設(shè)計方案選擇1.2.1方案一:數(shù)字電路設(shè)計的自動打鈴系統(tǒng)利用函數(shù)信號發(fā)生器來進行脈沖信號輸出,利用74160N來設(shè)置十進制和六進制的進位輸出。利用數(shù)碼顯示器來顯示時間,利用或門、與門、非門、與非門、等電路元件進行組合實現(xiàn)打鈴的控制。1.2.2方案二:基于單片機的自動打鈴系統(tǒng)設(shè)計單片機內(nèi)部存儲器設(shè)三個字節(jié)分別存放時鐘的時、分、秒信息。利用定時器與軟件結(jié)合實現(xiàn)1秒定時中斷,沒產(chǎn)生一次中斷,存儲器內(nèi)相應(yīng)的秒值加1;若秒值達到60,則將其清零,并將相應(yīng)的分字節(jié)值加1;若分值達到60,則清零分字節(jié),并將時字節(jié)值加1;若時值達到24,則將時字節(jié)清零。建立完一個實時時鐘后接下來進行定時處理和打鈴輸出,當(dāng)主程序檢測到有分進位標(biāo)志時,便開始比較當(dāng)前時間與信息時間表上的作息時間是否相同,相同者,則進行報時處理并控制打鈴,不相同則返回主程序。1.2.3方案確定方案一的設(shè)計只能事先設(shè)定打鈴時間不能完全自動打鈴,且在修改打鈴時間上存在一定的困難。而方案二中的設(shè)計能完全實現(xiàn)自動化,詮釋了我們這次畢業(yè)設(shè)計的主題。并在修改打鈴時間上有了很大的方便,只需修改一部分程序便能實現(xiàn)不同的需要。因此我選擇方案二進行設(shè)計。1.3基本方案1.3.1自動打鈴裝置用于工廠、學(xué)校等地的時間控制,本設(shè)計是按照學(xué)校作息時問設(shè)定的,模擬了電了鐘顯示時、分、秒。還根據(jù)學(xué)校的作息時間按時打鈴,本系統(tǒng)有4個按鈕,分別用來調(diào)時、調(diào)分、秒和強制打鈴及強制關(guān)鈴,以保證始終與標(biāo)準(zhǔn)時間相吻合。首先設(shè)計出本系統(tǒng)的硬件基本框圖,根據(jù)框圖設(shè)計電氣原理圖,簡要概述基本原理,按照設(shè)計技術(shù)參數(shù)設(shè)計出各部分程序。1.3.2由于需要最小系統(tǒng)設(shè)計,因此,極大地介于系統(tǒng)的硬件成本,所有能用軟件實現(xiàn)的功能都用軟件完成,如按鍵的去抖,采用延時,顯示部分用動態(tài)顯示等,這樣硬件部分的設(shè)計可以采用單片機最小系統(tǒng),所謂最小系統(tǒng)時僅有程序存儲器和時鐘及復(fù)位電路的單片機系統(tǒng)。1.3.3根據(jù)課題的具體內(nèi)容,任務(wù)要求,計時、校時、定時、鍵盤顯示等功能,經(jīng)多方面考慮,所選系統(tǒng)選項用.與MSC-51單片機完全兼容的AT89C51低功耗單片機。1.4總體設(shè)計框圖圖一整體框圖第二章硬件電路設(shè)計2.1基本原理概述本系統(tǒng)主要由主控模塊,時鐘模塊,顯示模塊,鍵盤接口模塊等4部分構(gòu)成。通過內(nèi)部定時產(chǎn)生中斷,從而使驅(qū)動電鈴打鈴。設(shè)定51單片機工作在定時器工作方式1,每100ms產(chǎn)生一次中斷,利用軟件將基準(zhǔn)100ms單元進行累加,當(dāng)定時器產(chǎn)生10次中斷就產(chǎn)生lS信號,這是秒單元加1。同理,對分單元和時單元計數(shù)從而產(chǎn)生秒,分,時的值,通過六位七段顯示器進行顯示。由于動態(tài)顯示法需要數(shù)據(jù)所存等硬件,接口較復(fù)雜,考慮顯示只有六位,且系統(tǒng)沒有其他浮躁的處理程序,所有采用動態(tài)掃描LED的顯示。本系統(tǒng)采用四個按鍵,當(dāng)時鐘時間和設(shè)置時間一直時,驅(qū)動程序動作,進行打鈴,每次打鈴30S2.2主要原件參數(shù)及功能簡介2.2.1主控器AT89C51AT89C51公司生產(chǎn)的AT89C51單片機用高性能的靜態(tài)89C51設(shè)計,由先進工藝制造,并帶有非易失性FLASH程序存儲器,它是·種高性能、低功耗的8位CMOS微處理芯片,市場應(yīng)用最多,主要特點有:有4K的FLASH程序存儲器256字節(jié)內(nèi)部RAM電源控制模式:時鐘可停止和恢復(fù),空閑模式,掉電模式6個中斷源4個中斷優(yōu)先級4個8位I/O口全雙工增強型UART2個16位定時、計數(shù)器圖二AT89C512.2.2DS1302時鐘電路DS1302(1)性能特性實時時鐘可對秒,分,時等進行計數(shù),存在高速數(shù)據(jù)暫存的31*8位RAM,最少引腳的串行I/O口;2.5~~5.5V電壓工作范圍;2.5V耗電小于300nA;用于時鐘或RAM數(shù)據(jù)讀/寫的單字節(jié)或多字節(jié)數(shù)據(jù)傳送方式;簡單的3線接口;可選的慢速充電的能力。DS1302時鐘芯片包括實時時鐘和31字節(jié)的靜態(tài)RAM,它經(jīng)過一個簡單的串行接口與微處理器通信,實時時鐘提供秒,分,時等信息,時鐘運行可以采用24H,或帶AM/PM的12H格式,采用三線接口與CPU進行同眇通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302有主電源/后備電源雙電源引腳;1)性能特性DS1302與單片機之間能簡單地采用同步串行的方式進行通信,僅需用到三個口線:1.RSE復(fù)位,2.I/O數(shù)據(jù)線,3.SCLK串行時鐘。時鐘/RAM的讀/寫數(shù)據(jù)以一個字節(jié)或多達31個字節(jié)的字符組方式通信。DS1302工作時功耗很低,保持?jǐn)?shù)據(jù)和時鐘信息時功率小十1mW。提供秒分時日日期。月年的信息,每月的天數(shù)和閏年的天數(shù)可自動調(diào)整時鐘,操作可通過AM/PM指示決定采用24或12小時格式。2)管腳描述XIXZ32.768KHz晶振管腳GND接地RST復(fù)位腳I/O數(shù)據(jù)輸入/輸出引腳SCLK串行時鐘Vcc1,Vcc2電源供電管腳DS1302串行時鐘芯片8腳DIPDS1302S串行時鐘芯片8腳SOIC200milDS1302Z串行時鐘芯片8腳SOIC150mil圖三DS13022.3單元電路的設(shè)計2.3.1時鐘電路設(shè)計(2)工作原理DS1302在任何數(shù)據(jù)傳送時必須先初始化,把RST引腳置為高電平,然后把8位地址和命令裝入移位寄存器,數(shù)據(jù)在SCLK的上升沿被輸入,無論是讀周期還是寫周期開始8位指定40個寄存器中哪個將被訪問到,在開始8個時鐘周期,把命令字節(jié)裝入撳位寄存器之后,另外的時鐘周期在闈時操作時輸出數(shù)據(jù),在寫操作時寫入數(shù)據(jù),時鐘脈沖的個數(shù)在單位字節(jié)下為8加8,在多字節(jié)方式下為8加字節(jié)數(shù),最大可達248字節(jié)數(shù)。為了提高對32個地址的尋址能力,可以把時鐘或RAM寄存器規(guī)定為多字節(jié)方式,在多字節(jié)方式中,讀或?qū)憦牡刂?的位0開始,必須管按數(shù)據(jù)傳送的次序電先的8個寄存器。但是當(dāng)以多個字節(jié)寫RAM時,為了傳送數(shù)據(jù)不必寫所有31字節(jié),不管是否寫了全部31字節(jié),所寫的每個字節(jié)都將傳送至RAM。時鐘暫停:秒寄存器的位7定義位時鐘暫停位,當(dāng)它為1時,DS1302停止振蕩,進入低功耗的備份方式,通常在對DS1302進行寫操作時,停止振蕩,當(dāng)它為0時時鐘將開始啟動。8051通過串口向DS1302寫數(shù)據(jù)的程序框圖如圖3.2,其中,Px可以是8051單片機的任何一位I/O口,注意因為DS1302的數(shù)據(jù)發(fā)送或接收時序和8051的串行口不完全一致,因此,需要在TXD的輸出端加反相器,另外,接收數(shù)據(jù)時,不能以串行口的接收方式接收,必須將串行口當(dāng)作普通I/O口進行數(shù)據(jù)接收.DS1302的晶振選用32.768KHZ,電容推薦值為6PF,因為振蕩頻率較低,也可以不接電容,對計時精度影響不大。80518051PXTXDRXDVcc1Vcc2DS1302RSTSCLKI/OX2 圖3.2DS1302寫數(shù)據(jù)的程序框圖2.3.1顯示電路設(shè)計顯示部分采用普通的共陽數(shù)碼管顯示,采用動態(tài)掃描,以減少硬件電路,數(shù)碼管分別為十時,時,十分,分,十秒,秒顯示,顯示時采用串行口輸出段碼,用74LS164來驅(qū)動數(shù)碼管掃描只需7ms。4LS164內(nèi)部位8個D觸發(fā)器,用以實現(xiàn)數(shù)據(jù)的串行移位,74LS164位TTL單向8位移位寄存器,可實現(xiàn)串行輸入并行輸出,CPU位時鐘輸入端,可接到串行口TXD端。每個時鐘信號的上升沿加到CP端時,移位寄存器移一位,8個時鐘脈沖過后,8為二進制數(shù)個部移入74LS164中,MR為復(fù)位端,當(dāng)該位為低電平時,移位寄存器各位復(fù)O。當(dāng)它為高電平時時鐘脈沖才起作用。圖四顯示電路2.3.2由于鍵盤只有四個,采用獨立式按鈕,分別與8051的P1.0,P1.1,P1.2相連,用普通按鈕10K上拉電阻,用查詢法完成讀健功能。圖五按鍵電路2.3.3響鈴電路用到了蜂鳴器、三極管、1K電阻。蜂鳴器兩端分別接地和三極管。三極管一段電源另一端與電阻相連并接入AT89C51的P3.7接口。圖六響鈴電路2.4總體運行進程首先實現(xiàn)24小時制電子鐘,在8位數(shù)碼管顯示,顯示為時分秒,實現(xiàn)的格式為:23-59-59。到達預(yù)定時間啟動蜂鳴器開始打鈴,打鈴的方式分為起床、熄燈和上下課鈴兩種。系統(tǒng)使用了4個按鍵,3只按鍵用來調(diào)整時間,另一只為強制打鈴按鈕。通過選擇鍵選擇調(diào)整位,選中位閃爍,按增加鍵為選中位加1,按減少鍵為選中位減1。按強制打鈴按鈕是實現(xiàn)強制打鈴或者強制關(guān)閉打鈴。第三章軟件電路設(shè)計及流程圖3.1基本原理概述主程序首先是初始化部分,主要是計時單元清零,中斷初始化,堆棧指針初始化,啟動定時器工作,然后是調(diào)用顯示子程序。主程序的起始存儲地址是0000H單元,但由于本系統(tǒng)用了定時器T0的中斷,中斷服務(wù)程序入口地址為000BH,因此從0000H單元起存放一條短調(diào)轉(zhuǎn)指令A(yù)JMP,使真正的主程序從0300H單元開始存放。3.1.1中斷服務(wù)程序設(shè)計單片機內(nèi)部的定時/計數(shù)器T0定時100ms,即0.1s,10次中斷即為1秒,60秒為1分,60分為1小時,24小時為一天,如此循環(huán),從而實現(xiàn)計時功能。編寫中斷服務(wù)程序關(guān)鍵要注意:1.現(xiàn)場保護,本系統(tǒng)中是累加器A和程序狀態(tài)字PSW值的保護。2.計時處理時采用的確十進制,因此時,分,秒單元加1后要進行十進制調(diào)整,即要執(zhí)行DAA指令,還要注意的是時計到24就回零,分和秒計到60就回零。3.中斷返回前的現(xiàn)場恢復(fù)。3.1.2顯示程序設(shè)計和按鍵判斷與按鍵處理程序設(shè)計顯示采用的是動態(tài)顯示,段控和位控都經(jīng)過反相器,顯示的字形代碼是共陽的顯示代碼,位控信號輸出時是高電平有效,在校時時,采用的是點亮小數(shù)點信位調(diào)節(jié)器標(biāo)志,哪位小數(shù)點亮表示調(diào)整的是該為的值。顯示子程序的第一部分是拆字,顯示緩沖區(qū)是2FH—2AH;第二部分是查字型碼,輸出段控和位控信號,由于采用的是動態(tài)顯示,所以每出輸出一位的段控和位控信號要延時一定的時間,使LED顯示器顯示的字符時穩(wěn)定的。按鍵判斷程序有編寫時應(yīng)注意按鍵的去抖動,該系統(tǒng)采用的是延時去抖動的方法,延時是通過調(diào)用子程序來實現(xiàn)的,每個按鍵按下后都要等待釋放后再返回。按鍵處理程序中的按鍵式校時的,所以進入按鍵處理程序后就關(guān)閉定時中斷,對于動能鍵注意設(shè)置顯示標(biāo)志。3.2流程圖3.2.1系統(tǒng)主程序流程圖3.2.2系統(tǒng)定時中斷流程圖第四章系統(tǒng)程序設(shè)計4.1程序設(shè)計概要程序名稱:51單片機自動掃鈴機控制系統(tǒng)說明:實現(xiàn)24小時制電子鐘,8位數(shù)碼管顯示,顯示時分秒顯示格式:23-59-59(小時十位如果為0則不顯示)。到預(yù)定時問啟動蜂鳴器模擬打鈴,蜂鳴器BEEP:P3.7。打鈴方式分起床、熄幻鈴和上、下課鈴兩種。系統(tǒng)使用4只按鍵,3只按鍵用來調(diào)整時間,另一只為鬧鐘按鈕即定時掃鈴。鍵SET_KFY:PI.0;通過選擇鍵選擇調(diào)整位,選中位閃爍。增加鍵ADD_KEY:PI.1;按一次使選中位加1。減少鍵DEC_KEY:PI.2;按一次使選中位位。1如果長按ADD_KEY或DEC_KEY,識別后則進行調(diào)時快進,此時停止閃爍。如果選中位是秒,則按增加鍵或減少鍵都是將秒清零。定時掃鈴鍵DALING_KEY:P1.3;用來強制打鈴或強制關(guān)閉鈴聲PO口輸出數(shù)碼管段選信號,P2口輸出數(shù)碼管位選信號。晶振12M4.2源程序清單根據(jù)以上流程圖思想,現(xiàn)設(shè)計系統(tǒng)程序思路描寫如下系統(tǒng)的主程序如下所示:BEEPEQUP3.7;定義蜂l鳴器(電鈴)控制信號輸出口ORG0000H;程序入日地址LJMPSTARTORG000BH;定時器0中斷入日地址LJMPTIMER_OORG0300H/*****程序開始,初始化*****/START:SETBBEEP;關(guān)閉蜂鳴器(電鈴)SETB48H;使用一個bit位用于調(diào)時閃爍標(biāo)志SETB47H;使用一個bit位用十產(chǎn)生脈沖用十調(diào)時快進時基CLR45H;關(guān)閉響鈴方式標(biāo)志MOVRI,#0調(diào)整選擇鍵功能標(biāo)志:0正常走時、1調(diào)時、2調(diào)分、3調(diào)秒MOV20H,#00H;用于控制秒基準(zhǔn)時鐘源的產(chǎn)生MOV21H,#00H;清零秒寄存器MOV22H,#00H;清零分寄存器MOV23H,#00H;清零時寄存器MOV24H,#00H;用于控制調(diào)時閃爍的基準(zhǔn)時鐘的產(chǎn)生MOVIP,#02H;IP,IE初始化MOVIE,#82HMOVTMOD,#olH;設(shè)定定時器01作方式1MOVTHO,#3CHMOVTLO,#oBoH;賦定時初值,定時50msSETBTRO;啟動定時器0MOVSP,#4OH;重設(shè)堆棧指針/*****主程序*****/MAIN:CJNER1,#00H,MAINl;是否為正常走時狀態(tài)LCALLBIJIAO1;調(diào)用起床、熄燈打鈴比較子程序LCALLBIJIAO2;調(diào)用上、下課少打鈴比較子程序LCALLDALING;調(diào)用響鈴方式執(zhí)行子程序MAIN1:LCALLDlSPLAY;調(diào)用顯示子程序LCALLKEY_SCAN;調(diào)用按鍵檢測子程序JZMAIN;無鍵按下則返回重新循環(huán)LCALLSET_KEY;調(diào)用選擇鍵處理子程序JB46H,MAIN;如果已進行長按調(diào)招(調(diào)時快進),則不再執(zhí)行下面的單步調(diào)整LCALLADD_KEY;調(diào)用增加鍵處理子程序LCALLDEC_KEY;躺用減少鍵處理子程序LCALLDALING_KEY;處理強制打鈴/強制關(guān)閉鈴聲鍵LJMPMAIN;重新循環(huán)程序結(jié)束(主程序中引用到的字程序如下)/*****定時中斷服務(wù)程序*****/TIMER_O:PUCHACCPUCHPSW;保護現(xiàn)場MOVTHO,#3CHMOVTLO,#0B0H;重新賦定時初值CPL47H;產(chǎn)生脈沖用于調(diào)時快進時基INC24HMOVA,24HCJNEA,#l0,ADD_TIME;產(chǎn)0.5秒基準(zhǔn)時鐘,用于調(diào)時閃爍CPL48H;取反調(diào)時閃爍標(biāo)志位MOV24IJ,#00HADD_TIME:INC20HMOVA,20HCJNEA,#20,RETI1;產(chǎn)生l秒基準(zhǔn)時鐘MOV20H,#O0H;一秒鐘時間到,清零20HMOVA,21HADDA,#01HDAA;做十進制調(diào)整MOV21H,ACJNEA,#60H,RETIlMOV21H,#00H;一分鐘到MOVA,22HADDA,#01HDAAMOV22H,ACJNEA,#60H,RETI1MOV22H,#00H;一小時到MOVA,23HADDA,#01HDAAMOV23H,ACJNEA,#24H,RETI1MOV23H,#00H;到24點,清零小時RETI1:POPPSWPOPACC;恢復(fù)現(xiàn)場RET1;中斷返回/*****顯示處理*****/DISPLAY:MOVA,#21H;秒ANLA,#0FHMOV2FH,A;轉(zhuǎn)換出秒個位,存入2FHMOVA,21HANLA,#OFOHSWAPAMOV2EH,A;轉(zhuǎn)換出秒十位,存入2EHJB46H,MIN;如果長按按鍵(調(diào)時快進),則跳過閃爍處理CJNER1,#3,MIN;如果R1為3,閃爍秒位待調(diào)整JB48H,MINMOVZFH,#OAH;使該位為10,查表得到使該位不顯示的輸出MOV2EH,#0AHMIN:MOVA,#22H;分ANLA,#0FHMOV2DH,A;轉(zhuǎn)換出分個位,存入2DHMOVA,22HANLA,#OFOHSWAPAMOV2CH,A;轉(zhuǎn)換出分十位,存入2CHJB46H,HOUR;如果長按按鍵(調(diào)時快進),則跳過閃爍處理CJNER1,#2,HOUR;如果R1為2,閃爍秒位待調(diào)整JB48H,HOURMOVZDH,#OAH;使該位為10,查表得到使該位不顯示的輸出MOV2CH,#0AHHOUR:MOVA,#23H;時ANLA,#0FHMOV2BH,A;轉(zhuǎn)換出時個位,存入2BHMOVA,23HANLA,#OFOHSWAPAMOV2AH,A;轉(zhuǎn)換出時十位,存入2AHJB46H,DISP;如果長按按鍵(調(diào)時快進),則跳過閃爍處理CJNER1,#1,DISP;如果R1為1,閃爍秒位待調(diào)整JB48H,DISPMOVZBH,#OAH;使該位為10,查表得到使該位不顯示的輸出MOV2AH,#0AH/*****數(shù)碼管動態(tài)掃描顯示*****/DISP:MOVDPTR,#TABLEMOVA,2FHMOVCA,@A+DPTRMOVP0,ACLRP2.7LCALLDELAYSETBP2.7;顯示秒個位MOVA,2EHMOVCA,@A+DPTRMOVP0,ACLRP2.6LCALLDELAYSETBP2.6;顯示秒十位MOVA,#0BFHMOVP0,ACLRP2.5LCALLDELAYSETBP2.5;顯示“-”MOVA,2DHMOVCA,@A+DPTRMOVP0,ACLRP2.4LCALLDELAYSETBP2.4;顯示分個位MOVA,2CHMOVCA,@A+DPTRMOVP0,ACLRP2.3LCALLDELAYSETBP2.3;顯示分十位MOVA,#0BFHMOVP0,ACLRP2.2LCALLDELAYSETBP2.2;顯示“-”MOVA,2BHMOVCA,@A+DPTRMOVP0,ACLRP2.1LCALLDELAYSETBP2.1;顯示時個位MOVDPTR,#TABLE1;該位使用TABLE1以消除前置0MOVA,2AHMOVCA,@A+DPTRMOVP0,ACLRP2.0LCALLDELAYSETBP2.0;顯示時十位RET/*****按鍵檢測子程序*****/KEY_SCAN:CLR46H;關(guān)閉長按調(diào)整(調(diào)時快進)標(biāo)志MOVP1,#OFFH;將P1口設(shè)置成輸入狀態(tài)MOVA,P1CPLAANLA,#OFH;P1口低4位連接4個按鍵,只判斷該4位JZFXIT_KFY;無鍵按下則返回LCALLDELAY;延時去抖動MOVA,P1;重新判斷CPLAANLA,#OFHJZEXIT_KEY;鍵盤去抖動MOVR5,A;臨時將鍵值存入R5MOVR4,#0OH;用于控制調(diào)時快進速度;設(shè)置為OOH是為了在進入長按處理前加長延時區(qū)分用戶的長按與短按,防止誤快進LOOP:;進入長按處理LCALLDISPLAY;使長按時顯示正常MOVA,PlCPLAANLA,#OFHJB47H,LOOP1INCR4;調(diào)時快進間隔時間基準(zhǔn)加lLOOP1:CJNER1,#03H,LOOP2;如果調(diào)秒時長按,則不處理LJMPLOOP3LOOP2:CJNER4,#99H,LOOP3MOVR4,#7OH;確認(rèn)用戶長按后,重新設(shè)定起始值,加快調(diào)時快進速度SETB46H;長按調(diào)整〔調(diào)時快進)標(biāo)志LCALLADDKEYLCALLDECKEYLOOP3:JNZLOOP;等待鍵釋放MOVA,R5;輸出鍵值RETEXIT_KEY;RET/*****延時子程序*****/DELAY:MOVR7,#150DJNZR7,$RET/*****選擇鍵處理子程序*****/SET_KEY:CJNER5,#01H,EXIT;選擇鍵鍵值INCR1;調(diào)整選擇功能標(biāo)識加一SETBBEEPCJNER1,#4,EXITMOVR1,#0MOV24H,#00H;調(diào)時閃爍基準(zhǔn)清零RET/*****增加鍵處理子程序*****/ADD_KEY:CJNER5,#02H,EXIT;增加鍵鍵值CJNER1,#01H,NEXT1;選擇鍵功能標(biāo)志為l,調(diào)時,否則跳出MOVA,23HADDA,#01HDAAMOV23H,ACJNEA,#24H,EXITMOV23H,#00HNEXT1:CJNER1,#02H,NEXT2;選擇鍵功能標(biāo)志為2,調(diào)分,否則跳出MOVA,22HADDA,#01HDAAMOV22H,ACJNEA,#260H,EXITMOV22H,#00HNEXT2:CJNER1,#03H,EXIT;選擇鍵功能標(biāo)志為3,調(diào)秒,否則跳出MOV21H,#00H;如增加鍵按下一自接清零秒RET/*****減少鍵處理子程序*****/DECKEY:CJNER5,#04H,EXIT;減少鍵鍵值CJNER1,#01H,NEXT3;選擇鍵功能標(biāo)志為l,調(diào)時,古則跳出MOVA,23HADDA,#99HDAAMOV23H,ACJNEA,#99H,EXITMOV23H,#23HNEXT3:CJNER1,#02H,NEXT4;選擇鍵功能標(biāo)志為2,調(diào)分,否則跳出MOVA,22HADDA,#99HDAAMOV22H,ACJNEA,#99H,EXITMOV22H,#59HNEXT4:CJNER1,#03H,EXIT;選擇鍵功能標(biāo)志為3,條秒,否則跳出MOV21H,#00H;如較少鍵按下直接清零秒RET/*****強制響鈴鍵處理子程序*****/DALING_KEY:CJNER5,#08H,EXIT;選擇鍵鍵值CPLBEEPRET/*****萬用返回程序*****/EXIT:RET/*****數(shù)碼管字形編碼表*****/TABLE:DBOCOH,OFGH,OA4H,OBOH,99H,92H,82H,OFSH,80H,90H,OFFH;字型顯示編碼TABLE1:DBOFFH,OFGH,OA4H,OBOH,99H,92H,82H,OFSH,80H,90H,OFFH;小時位的十位數(shù)編碼,該位如果為0則不顯示/*****打鈴時間對比程序(起床、熄燈)*****/BIJIA01:MOVA,23HCJNEA,#06H,B0MOVA,22HCJNEA,#30H,B0;6:30到SETB45H;開啟響鈴方式1RETBO:MOVA,23HCJNEA,#22H,EXIT_1MOVA,22HCJNEA,#30H,EXIT_l;22:30到SETB45H;開啟響鈴方式lRETEXIT_1:CLR45HRET/****打鈴時間對比程序(上、下課)****/BIJIAO2:MOVA,23HCJNEA,#07H,B1MOVA,22HCJNEA,#30H,B1;7:30SETB44H:開啟響鈴方式2RETB1:MOVA,23HCJNEA,#08H,B2MOVA,22HCJNEA,#10H,B2;8:10SETB44HRETB2:MOVA,23HCJNEA,#08H,B3MOVA,22HCJNEA,#20H,B3;8:20SETB44HRETB3:MOVA,23HCJNEA,#09H,B4MOVA,22HCJNEA,#00H,B4;9:00SETB44HRETB4:MOVA,23HCJNEA,#09H,B5MOVA,22HCJNEA,#10H,B5;9:10SETB44HRETB5:MOVA,23HCJNEA,#09H,B6MOVA,22HCJNEA,#50H,B6;9:50SETB44HRETB6:MOVA,23HCJNEA,#10H,B7MOVA,22HCJNEA,#00H,B6;10:00SETB44HRETB7:MOVA,23HCJNEA,#10H,B8MOVA,22HCJNEA,#40H,B8;10:40SETB44HRETB8:MOVA,23HCJNEA,#10H,B9MOVA,22HCJNEA,#50H,B9;10:50SETB44HRETB9:MOVA,23HCJNEA,#11H,B10MOVA,22HCJNEA,#30H,B10;11:30SETB44HRETB10:MOVA,23HCJNEA,#13H,B11MOVA,22HCJNEA,#30H,B11;13:30SETB44HRETB11:MOVA,23HCJNEA,#14H,B12MOVA,22HCJNEA,#10H,B12;14:10SETB44HRETB12:MOVA,23HCJNEA,#14H,B13MOVA,22HCJNEA,#20H,B13;14:20SETB44HRETB13:MOVA,23HCJNEA,#15H,B14MOVA,22HCJNEA,#00H,B14;15:00SETB44HRETB14:MOVA,23HCJNEA,#15H,B15MOVA,22HCJNEA,#20H,B15;15:20SETB44HRETB15:MOVA,23HCJNEA,#16H,B16MOVA,22HCJNEA,#00H,B16;16:00SETB
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版跨區(qū)域技術(shù)合作股權(quán)交易資金監(jiān)管與服務(wù)保障合同3篇
- 二零二五年度新型電動車充電樁使用權(quán)租賃合同4篇
- 2025版教育培訓(xùn)機構(gòu)合作辦學(xué)合同4篇
- 2025年度茶葉原料供應(yīng)鏈金融合作合同4篇
- 2025年食品銷售質(zhì)量追溯擔(dān)保合同范例
- 2025年度電子芯片代加工合同4篇
- 2025年度跨境電商合同管理及爭議解決協(xié)議3篇
- 安防設(shè)備銷售居間合同模板
- 二零二五年度電子信息產(chǎn)品出口合同中產(chǎn)品質(zhì)量責(zé)任認(rèn)定反訴狀4篇
- 2025年度建筑防水材料打膠施工合同范本4篇
- 投餌機相關(guān)項目實施方案
- 2024年可行性研究報告投資估算及財務(wù)分析全套計算表格(含附表-帶只更改標(biāo)紅部分-操作簡單)
- 湖北省石首楚源“源網(wǎng)荷儲”一體化項目可研報告
- 醫(yī)療健康大數(shù)據(jù)平臺使用手冊
- 碳排放管理員 (碳排放核查員) 理論知識考核要素細(xì)目表四級
- 撂荒地整改協(xié)議書范本
- 診所負(fù)責(zé)人免責(zé)合同范本
- 2024患者十大安全目標(biāo)
- 實驗報告·測定雞蛋殼中碳酸鈣的質(zhì)量分?jǐn)?shù)
- 部編版小學(xué)語文五年級下冊集體備課教材分析主講
- 電氣設(shè)備建筑安裝施工圖集
評論
0/150
提交評論