單片機(jī)電子鐘設(shè)計(jì)報(bào)告課程設(shè)計(jì)_第1頁(yè)
單片機(jī)電子鐘設(shè)計(jì)報(bào)告課程設(shè)計(jì)_第2頁(yè)
單片機(jī)電子鐘設(shè)計(jì)報(bào)告課程設(shè)計(jì)_第3頁(yè)
單片機(jī)電子鐘設(shè)計(jì)報(bào)告課程設(shè)計(jì)_第4頁(yè)
單片機(jī)電子鐘設(shè)計(jì)報(bào)告課程設(shè)計(jì)_第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、摘要20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來(lái)越快。 數(shù)字鐘已成為人們?nèi)粘I钪斜夭豢缮俚谋匦杵?,廣泛用于個(gè)人家庭以及辦公室等公共場(chǎng)所,給人們的生活、學(xué)習(xí)、工作、娛樂(lè)帶來(lái)極大的方便。由于數(shù)字集成電路技術(shù)的發(fā)展和采用了先進(jìn)的石英技術(shù),使數(shù)字鐘具有走時(shí)準(zhǔn)確、性能穩(wěn)定、攜帶方便等優(yōu)點(diǎn),它還用于計(jì)時(shí)、自動(dòng)報(bào)時(shí)及自動(dòng)控制等各個(gè)領(lǐng)域。盡管目前市場(chǎng)上已有現(xiàn)成的數(shù)字鐘集成電路芯片出售,價(jià)格便宜、使用也方便,但鑒于數(shù)字鐘電路的基本組成包含了數(shù)字電路的主要組

2、成部分,因此進(jìn)行數(shù)字鐘的設(shè)計(jì)是必要的,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。單片機(jī)數(shù)字時(shí)鐘就是其中的一款設(shè)計(jì)。它具有編程靈活,便于電子鐘功能的擴(kuò)充,即可用該電子鐘發(fā)出各種控制信號(hào),精確度高等特點(diǎn),同時(shí)可以用該電子鐘發(fā)出各種控制信號(hào)。單片機(jī)數(shù)字鐘是單片機(jī)為核心。時(shí)鐘,本設(shè)計(jì)是以單片機(jī)AT89S52配備LED數(shù)碼顯示管,數(shù)字鐘采用24小時(shí)制方式顯示時(shí)間,帶有年月日、秒表和鬧鐘功能。本設(shè)計(jì)打算采用蜂鳴器做提醒,因沒(méi)有蜂鳴器所以采用閃燈來(lái)提醒。使人不僅僅是通過(guò)視覺(jué)來(lái)感受單片機(jī)數(shù)字鐘帶來(lái)的方便。關(guān)鍵詞:?jiǎn)纹瑱C(jī) 數(shù)字時(shí)鐘 匯編目錄第一章 系統(tǒng)設(shè)計(jì)要求21.1 設(shè)計(jì)要求2第二章 系統(tǒng)的組成及工作原理3

3、2.1 系統(tǒng)的組成32.2 系統(tǒng)的工作原理3第三章 系統(tǒng)硬件電路方案設(shè)計(jì)63.1 電子時(shí)鐘方案63.2 數(shù)碼顯示方案63.3單元電路設(shè)計(jì)73.3.1晶體振蕩電路73.3.2復(fù)位電路73.3.3顯示電路73.3.4鍵盤(pán)電路73.3.5控制電路8第四章 系統(tǒng)的軟件設(shè)計(jì)94.1 程序流程圖94.2 源程序10第五章 系統(tǒng)調(diào)試和測(cè)試結(jié)果與分析255.1 實(shí)驗(yàn)儀器與工具255.2 調(diào)試鬧鐘255.3調(diào)試按鍵子程序25第六章 結(jié)論26參考文獻(xiàn)27第1章 系統(tǒng)設(shè)計(jì)要求1.1做一個(gè)基于AT89S52的簡(jiǎn)易的單片機(jī)數(shù)字鐘。該數(shù)字鐘有6個(gè)共陰極七段數(shù)碼管,分別顯示時(shí)分秒,其顯示方式為:*時(shí)*分*秒。利用8255擴(kuò)

4、展鍵盤(pán)和顯示接口,時(shí)間可以任意修改。1.1課程設(shè)計(jì)要求(1)掌握AT89S52實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)中的實(shí)驗(yàn)?zāi)K原理,畫(huà)出電路原理圖。(2)綜合運(yùn)用實(shí)驗(yàn)?zāi)K,用89S52開(kāi)發(fā)設(shè)計(jì)具有一定功能的單片機(jī)控制系統(tǒng),進(jìn)行軟、硬件設(shè)計(jì)及調(diào)試。(3)寫(xiě)出完整的設(shè)計(jì)任務(wù)書(shū):摘要、目錄、正文、結(jié)論、參考文獻(xiàn)、附錄。(4)時(shí)間以24小時(shí)為一個(gè)周期;電子鐘的格式為:*時(shí)*分*秒,由左向右分別為:時(shí)、分、秒。完成顯示由秒由00一直加1至59,再恢復(fù)為00;分由00一直加1至59,再恢復(fù)00;時(shí)由00一直加1到23,再恢復(fù)00。(5)為了保證計(jì)時(shí)的穩(wěn)定及準(zhǔn)確須由晶體振蕩器提供表針時(shí)間基準(zhǔn)信號(hào)。第2章 系統(tǒng)組成及工作原理2.1、

5、系統(tǒng)的組成數(shù)字鐘實(shí)際上是一個(gè)對(duì)標(biāo)準(zhǔn)頻率(1HZ)進(jìn)行計(jì)數(shù)的計(jì)數(shù)電路.由于計(jì)數(shù)的起始時(shí)間不可能與標(biāo)準(zhǔn)時(shí)間一致,故需要在電路上加一個(gè)校時(shí)電路,同時(shí)標(biāo)準(zhǔn)的1MHZ時(shí)間信號(hào)必須做到準(zhǔn)確穩(wěn)定.通常使用石英晶體振蕩器電路構(gòu)成數(shù)字鐘. (1) 晶體振蕩器 晶體振蕩器給數(shù)字鐘提供一個(gè)頻率穩(wěn)定準(zhǔn)確的11.0592MHz的方波信號(hào),可保證數(shù)字鐘的走時(shí)準(zhǔn)確及穩(wěn)定.不管是指針式的電子鐘還是數(shù)字顯示的電子鐘都使用了晶體振蕩器。(2) 復(fù)位電路 時(shí)間計(jì)數(shù)電路由秒個(gè)位和秒十位計(jì)數(shù)器,分個(gè)位和分十位計(jì)數(shù)器,時(shí)個(gè)位和時(shí)十位電路構(gòu)成,秒個(gè)位和秒十位計(jì)數(shù)器,分個(gè)位和分十位計(jì)數(shù)器為60進(jìn)制計(jì)數(shù)器,時(shí)個(gè)位和時(shí)十位計(jì)數(shù)器為24進(jìn)制計(jì)數(shù)器

6、。(3) 數(shù)碼管 數(shù)碼管通常有發(fā)光二極管(LED)數(shù)碼管和液晶(LCD)數(shù)碼管,本設(shè)計(jì)提供的為L(zhǎng)ED數(shù)碼管。(4) 鍵盤(pán) 鍵盤(pán)是控制和修改時(shí)鐘的重要輸入模塊,通過(guò)鍵盤(pán)可以修改時(shí)間,修改年月日,修改鬧鐘時(shí)間,控制顯示等。(5) 控制部分AT89S52是美國(guó)ATMEL公司生產(chǎn)的低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含8K bytes的可系統(tǒng)編程的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度,非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳。AT89S52提供以下標(biāo)準(zhǔn)功能:8K字節(jié)Flash閃速存儲(chǔ)器,256字節(jié)內(nèi)部RAM,32I/O口線,看門(mén)狗(WDT),兩個(gè)數(shù)據(jù)指針,三個(gè)16位

7、定時(shí)/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。2.2、系統(tǒng)工作原理VCC:供電電壓。  GND:接地。  P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門(mén)電流。當(dāng)P1口的管腳第一次寫(xiě)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門(mén)電流。P1口管腳

8、寫(xiě)入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。   P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門(mén)電流,當(dāng)P2口被寫(xiě)“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)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),P2口輸出其特殊功能寄

9、存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。  P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門(mén)電流。當(dāng)P3口寫(xiě)入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口第二功能口。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩

10、器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。  EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)

11、器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。  XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。  XTAL2:來(lái)自反向振蕩器的輸出。第三章 系統(tǒng)硬件電路方案設(shè)計(jì)3.1、電子時(shí)鐘方案電子時(shí)鐘是本設(shè)計(jì)的最主要的部分。根據(jù)需要,可利用兩種方案實(shí)現(xiàn)。方案一:本方案采用Dallas公司的專用時(shí)鐘芯片DS12887A。該芯片內(nèi)部采用石英晶體振蕩器,其芯片精度不大于10ms/年,且具有完備的時(shí)鐘鬧鐘功能,因此,可直接對(duì)其以用于顯示或設(shè)置,使得

12、軟件編程相對(duì)簡(jiǎn)單。為保證時(shí)鐘在電網(wǎng)電壓不足或突然掉電等突發(fā)情況下仍能正常工作,芯片內(nèi)部包含鋰電池。當(dāng)電網(wǎng)電壓不足或突然掉電時(shí),系統(tǒng)自動(dòng)轉(zhuǎn)換到內(nèi)部鋰電池供電系統(tǒng)。而且即使系統(tǒng)不上電,程序不執(zhí)行時(shí),鋰電池也能保證芯片的正常運(yùn)行,以備隨時(shí)提供正確的時(shí)間。方案二:本方案完全用軟件實(shí)現(xiàn)數(shù)字時(shí)鐘。原理為:在單片機(jī)內(nèi)部存儲(chǔ)器設(shè)6個(gè)字節(jié)分別存放時(shí)鐘的時(shí)、分、秒信息。利用定時(shí)器與軟件結(jié)合實(shí)現(xiàn)1秒定時(shí)中斷,每產(chǎn)生一次中斷,存儲(chǔ)器內(nèi)相應(yīng)的秒值加1;若秒值達(dá)到60,則將其清零,并將相應(yīng)的分字節(jié)值加1;若分值達(dá)到60,則清零分字節(jié),并將時(shí)字節(jié)值加1;若時(shí)值達(dá)到24,則將十字節(jié)清零。該方案具有硬件電路簡(jiǎn)單的特點(diǎn)。但由于每

13、次執(zhí)行程序時(shí),定時(shí)器都要重新賦初值,所以該時(shí)鐘精度不高。而且,由于是軟件實(shí)現(xiàn),當(dāng)單片機(jī)不上電,程序不執(zhí)行時(shí),時(shí)鐘將不工作?;谟布娐返目紤],本設(shè)計(jì)采用方案二完成數(shù)字時(shí)鐘的功能。3.2、數(shù)碼管顯示方案方案一:靜態(tài)顯示。所謂靜態(tài)顯示,就是當(dāng)顯示器顯示某一字符時(shí),相應(yīng)的發(fā)光二極管恒定的導(dǎo)通或截止。該方式每一位都需要一個(gè)8 位輸出口控制。靜態(tài)顯示時(shí)較小的電流能獲得較高的亮度,且字符不閃爍。但當(dāng)所顯示的位數(shù)較多時(shí),靜態(tài)顯示所需的I/O口太多,造成了資源的浪費(fèi)。方案二:動(dòng)態(tài)顯示。所謂動(dòng)態(tài)顯示就是一位一位的輪流點(diǎn)亮各個(gè)位,對(duì)于顯示器的每一位來(lái)說(shuō),每隔一段時(shí)間點(diǎn)亮一次。利用人的視覺(jué)暫留功能可以看到整個(gè)顯示,

14、但必須保證掃描速度足夠快,字符才不閃爍。顯示器的亮度既與導(dǎo)通電流有關(guān),也于點(diǎn)亮?xí)r間與間隔時(shí)間的比例有關(guān)。調(diào)整參數(shù)可以實(shí)現(xiàn)較高穩(wěn)定度的顯示。動(dòng)態(tài)顯示節(jié)省了I/O口,降低了能耗。從節(jié)省I/O口和降低能耗出發(fā),本設(shè)計(jì)采用方案二。3.3、單元電路設(shè)計(jì)3.3.1、晶體振蕩電路3.3.2 、復(fù)位電路3.3.3、顯示電路3.3.4、鍵盤(pán)電路3.3.5、控制電路 第四章 系統(tǒng)軟件設(shè)計(jì)4.1程序流程圖主程序開(kāi)始設(shè)定定時(shí)器常數(shù),開(kāi)中斷顯示時(shí)間到1秒?T0中斷現(xiàn)場(chǎng)保護(hù)重裝定時(shí)器初值滿20次否?滿24小時(shí)否?滿60秒否?滿60分否?恢復(fù)現(xiàn)場(chǎng)時(shí)值加1時(shí)緩沖單元清零秒值加1分緩沖單元清零秒緩沖單元清零分值加1結(jié)束4.2、

15、源程序F_1 BIT 70H;為0時(shí) 鎖定鍵盤(pán) 為1時(shí) 可以輸入鍵值F_2 BIT 71H;為1時(shí) 執(zhí)行T1中秒表程序,為0時(shí)執(zhí)行T1中鬧鐘閃燈程序F_3 BIT 72HSHIS EQU 20H;時(shí) 十位 時(shí)鐘的時(shí)分秒SHIG EQU 21H;時(shí) 個(gè)位FENS EQU 22H;分 十位FENG EQU 23H;分 個(gè)位MIAOS EQU 24H;秒 十位MIAOG EQU 25H;秒 個(gè)位NIANS EQU 27H;年 十位 年、月、日NIANG EQU 28H;年 個(gè)位YUES EQU 29H;月 十位YUEG EQU 2AH;月 個(gè)位RIS EQU 2BH;日 十位RIG EQU 2CH;

16、日 個(gè)位SS EQU 35H;時(shí) 十位 定時(shí)的時(shí)分秒 SG EQU 36H;時(shí) 個(gè)位FS EQU 37H;分 十位FG EQU 38H;分 個(gè)位MS EQU 39H;秒 十位MG EQU 3AH;秒 個(gè)位MFS EQU 45H;分 十位 秒表的分、秒、毫秒MFG EQU 46H;分 個(gè)位MMS EQU 47H;秒 十位MMG EQU 48H;秒 個(gè)位MHS EQU 49H;毫秒 十位MHG EQU 4AH;毫秒 個(gè)位ORG 0000HLJMP MAINORG 000BH;定時(shí)T0中斷入口地址LJMP TIM0ORG 001BH;定時(shí)T1中斷入口地址LJMP TIM1MAIN:MOV SP,#6

17、0H;堆棧指針設(shè)置CLR F_1;清零 鎖定鍵盤(pán)CLR F_2;清零 CLR F_3MOV SHIS,#02H ;時(shí)分秒賦初值 MOV SHIG,#03H MOV FENS,#05H MOV FENG,#08H MOV MIAOS,#04H MOV MIAOG,#00H MOV NIANS,#01H;年月日賦初值MOV NIANG,#00H MOV YUES,#00HMOV YUEG,#07HMOV RIS,#00HMOV RIG,#02HMOV SS,#01H;定時(shí)鬧鐘的時(shí)分秒賦初值MOV SG,#02HMOV FS,#00HMOV FG,#00HMOV MS,#00HMOV MG,#00H

18、MOV R0,#20H;R0指針指向 時(shí) 的十位MOV R1,#27H;R1指針指向 年 的十位MOV 32H,#SHIS;存放顯示緩沖區(qū)初始值MOV TMOD,#11H;設(shè)置定時(shí)器方式MOV TH0,#4BH ;定時(shí)器T0 50MS初值 MOV TL0,#0F1HMOV TH1,#0DCH;定時(shí)器T1 10MS初值MOV TL1,#00H MOV IE,#8AH;開(kāi)中斷MOV 40H,#00H;秒計(jì)數(shù)單元MOV 43H,#00H;0.5秒計(jì)數(shù)單元MOV A,#89H;初始化 設(shè)置8255狀態(tài)字MOV DPTR,#0FF23HMOVX DPTR,AMOV DPTR,#0FF21HMOV A,#

19、0FFHMOVX DPTR,A;消隱 SETB TR0;啟動(dòng)定時(shí)器T0START:LCALL KEY;調(diào)用鍵掃子程序LCALL SCAN;調(diào)用顯示子程序LCALL LOCK;調(diào)用鬧鐘子程序SJMP STARTSCAN:PUSH ACC;顯示子程序 SETB RS1;換到2區(qū)MOV 31H,32H;顯示的數(shù)據(jù)送數(shù)據(jù)顯示緩沖區(qū)MOV 30H,#0DFH;第一個(gè)數(shù)碼管顯示MOV R7,#06H;動(dòng)態(tài)顯示數(shù)碼管的個(gè)數(shù)SCAN1:MOV A,30HMOV DPTR,#0FF20HMOVX DPTR,AMOV R0,31HMOV A,R0MOV DPTR,#TABLEMOVC A,A+DPTRCPL AM

20、OV DPTR,#0FF21HMOVX DPTR,ALCALL DELAYMOV A,30HRR A;將顯示數(shù)碼管右移一位MOV 30H,AINC 31H;顯示緩沖區(qū)加1MOV A,#0FFHMOVX DPTR,A;消隱DJNZ R7,SCAN1POP ACCCLR RS1RETTIM0:PUSH ACC;定時(shí)器T0中斷子程序MOV TH0,#4BH MOV TL0,#0F1HINC 40HMOV A,40H CJNE A,#14H,LP0LP0:JC LP2;1秒鐘到往下執(zhí)行MOV 40H,#00H;清秒計(jì)數(shù)單元INC MIAOG;秒加1MOV A,MIAOGCJNE A,#0AH,LP2M

21、OV MIAOG,#00HINC MIAOSMOV A,MIAOSCJNE A,#06H,LP2MOV MIAOS,#00HINC FENGMOV A,FENGCJNE A,#0AH,LP2MOV FENG,#00HINC FENSMOV A,FENSCJNE A,#06H,LP2MOV FENS,#00HINC SHIGMOV A,SHISCJNE A,#02H,LP01MOV A,SHIGCJNE A,#04H,LP2MOV SHIG,#00HMOV SHIS,#00HINC RIGLP01:MOV A,SHIGCJNE A,#0AH,LP2MOV SHIG,#00HINC SHISLP2

22、:POP ACCRETITIM1:PUSH ACC;定時(shí)器T1子程序MOV TH1,#0DCHMOV TL1,#00HJNB F_2,TM1INC MHGMOV A,MHGCJNE A,#0AH,TT0MOV MHG,#00HINC MHSMOV A,MHSCJNE A,#0AH,TT0MOV MHS,#00HINC MMGMOV A,MMGCJNE A,#0AH,TT0MOV MMG,#00HINC MMSMOV A,MMSCJNE A,#06H,TT0MOV MMS,#00HINC MFGMOV A,MFGCJNE A,#0AH,TT0MOV MFG,#00HINC MFSMOV A,MF

23、SCJNE A,#06H,TT0MOV MFS,#00HTT0:SJMP TM2TM1:INC 43HMOV A,43HCJNE A,#32H,TM10TM10:JC TM2MOV 43H,#00HMOV A,P1CPL AMOV P1,ATM2:POP ACCRETILOCK:PUSH ACC;鬧鐘子程序SETB RS0;換到1區(qū)MOV R0,#20HMOV A,SSXRL A,R0JNZ LOCK1INC R0MOV A,SGXRL A,R0JNZ LOCK1;時(shí)鐘 時(shí) 與鬧鐘 時(shí) 相等往下執(zhí)行INC R0MOV A,FSXRL A,R0JNZ LOCK1INC R0MOV A,FGXRL

24、 A,R0JNZ LOCK1;時(shí)鐘 分 與鬧鐘 分 相等往下執(zhí)行INC R0MOV A,MSXRL A,R0JNZ LOCK1INC R0MOV A,MGXRL A,R0JNZ LOCK1;時(shí)鐘 秒 與鬧鐘 秒 相等 往下執(zhí)行SETB TR1;時(shí)分秒 全相同 啟動(dòng)T1CLR F_2;清0執(zhí)行鬧鐘閃燈程序LOCK1:CLR RS0;恢復(fù)到0區(qū)POP ACC;恢復(fù)A的值RETKEY: LCALL KS;鍵掃子程序JZ LK11LCALL DELAY;延時(shí)LCALL KSJZ LK11 ;有鍵按下轉(zhuǎn)LK2: MOV R4,#00HMOV R3,#08HMOV R2,#0FEH;R2為鍵盤(pán)鍵掃單元LK

25、1:MOV A,R2MOV DPTR,#0FF20HMOVX DPTR,A;輸出鍵掃值RL AMOV R2,AMOV DPTR,#0FF22HMOVX A,DPTR ;讀鍵值 CPL AANL A,#0FH JNZ LK3INC R4INC R4DJNZ R3,LK1LK11:SJMP LK4LK3: ADD A,R4;算鍵值MOV DPTR,#KEYTABMOVC A,A+DPTRCJNE A,#0FH,LK30;如果為F調(diào)用按鍵F子程序LCALL KEY_FSJMP LK34LK30:CJNE A,#0EH,LK31;如果為E調(diào)用按鍵E子程序LCALL KEY_ESJMP LK34LK31

26、:CJNE A,#0DH,LK32;如果為D調(diào)用按鍵D子程序LCALL KEY_DSJMP LK34LK32:CJNE A,#0CH,LK33;如果為C調(diào)用按鍵C子程序LCALL KEY_CSJMP LK34LK33:CJNE A,#0BH,LK330;如果為B調(diào)用按鍵B子程序LCALL KEY_BSJMP LK34LK330:CJNE A,#11H,LK331;如果為11調(diào)用按鍵SCAL子程序LCALL KEY_SCALSJMP LK34LK331:CJNE A,#12H,LK332;如果為12調(diào)用按鍵STEP子程序LCALL KEY_STEPSJMP LK34LK332:CJNE A,#1

27、3H,LK34;如果為13調(diào)用按鍵MON子程序LCALL KEY_MONLK34:CLR CCJNE A,#0AH,LK35;如果為A調(diào)用按鍵A子程序LCALL KEY_ASJMP LK4LK35:JNC LK4JNB F_1,LK4MOV R0,A;輸出鍵值INC R0MOV A,R0CJNE A,#26H,LK36MOV R0,#20H ;復(fù)位R0指針LK36:CJNE A,#2DH,LK37MOV R0,#27HLK37:LCALL SCANLCALL KSJNZ LK36LK4: RETKEY_SCAL:MOV 32H,#MFS;SCAN子程序 秒表子程序CLR TR1;秒表復(fù)位MOV

28、 MFS,#00HMOV MFG,#00HMOV MMS,#00HMOV MMG,#00HMOV MHS,#00HMOV MHG,#00HRETKEY_STEP:CPL TR1;啟動(dòng)秒表或暫停秒表SETB F_2;為1時(shí) 啟動(dòng)秒表計(jì)時(shí)程序LK38:LCALL SCAN;松手檢測(cè)LCALL KSJNZ LK38RETKEY_MON:CPL F_3;取反JB F_3,M1;為1時(shí),數(shù)碼管顯示秒表 為0時(shí),數(shù)碼管顯示時(shí)鐘MOV 32H,#SHISSJMP M2M1:MOV 32H,#MFSM2:LCALL SCAN;松手檢測(cè)LCALL KSJNZ M2RETKEY_A:MOV 32H,#NIANS;

29、按鍵A子程序 查看 年月日 日期AA0:LCALL SCAN;松手檢測(cè)LCALL KSJNZ AA0MOV 32H,#SHIS;恢復(fù)時(shí)鐘顯示RETKEY_B:MOV 32H,#NIANS;按鍵B子程序修改年月日SETB F_1;解除鍵盤(pán)鎖定MOV R0,#27H;設(shè)置指針指向年月日存儲(chǔ)區(qū)首地址MOV NIANS,#10H;數(shù)碼管上顯示時(shí)_分_秒_MOV NIANG,#10HMOV YUES,#10HMOV YUEG,#10HMOV RIS,#10HMOV RIG,#10HRETKEY_C:MOV 32H,#SS ;按鍵C子程序 顯示鬧鐘時(shí)間CC0:LCALL SCAN;松手檢測(cè)LCALL KS

30、JNZ CC0MOV 32H,#SHIS;恢復(fù)顯示時(shí)鐘RETKEY_D:MOV 32H,#SS;按鍵D子程序修改鬧鐘時(shí)間SETB F_1;鍵盤(pán)解鎖MOV R0,#35H;設(shè)置指針指向鬧鐘存儲(chǔ)區(qū)首地址MOV SS,#10H;數(shù)碼管上顯示時(shí)_分_秒_MOV SG,#10HMOV FS,#10HMOV FG,#10HMOV MS,#10HMOV MG,#10HRETKEY_E:MOV 32H,#SHIS;按鍵E子程序確認(rèn)鍵 恢復(fù)時(shí)鐘鍵 SETB TR0;啟動(dòng)T0 恢復(fù)時(shí)鐘MOV A,#0FFH;滅燈 MOV P1,ACLR TR1;停止T1 停止鬧鐘閃燈CLR F_1;鎖定鍵盤(pán);以下程序是判斷時(shí)鐘是

31、否符合標(biāo)準(zhǔn),不符合則清00時(shí)00分00秒MOV R0,#20HMOV A,R0SWAP AINC R0ADD A,R0CLR CCJNE A,#24H,EE0EE0:JNC EE5MOV R0,#22HCJNE R0,#06H,EE1EE1:JNC EE5INC R0CJNE R0,#0AH,EE2EE2:JNC EE5INC R0CJNE R0,#06H,EE3EE3:JNC EE5INC R0CJNE R0,#0AH,EE4EE4:JC EEEE5:MOV SHIS,#00H MOV SHIG,#00H MOV FENS,#00H MOV FENG,#00H MOV MIAOS,#00H

32、MOV MIAOG,#00HEE:MOV R0,#20HRETKEY_F:CLR TR0;按鍵F子程序 修改時(shí)鐘SETB F_1;解除鍵盤(pán)鎖定MOV R0,#20H;指向時(shí)鐘首地址MOV SHIS,#10H ;數(shù)碼管上顯示時(shí)_分_秒_MOV SHIG,#10H MOV FENS,#10H MOV FENG,#10H MOV MIAOS,#10H MOV MIAOG,#10H RETKS:MOV DPTR,#0FF20H;判斷鍵是否按下子程序MOV A,#00H MOVX DPTR,A MOV DPTR,#0FF22HMOVX A,DPTRCPL AANL A,#0FHRETKEYTAB: DB

33、 00H,07H,01H,04H,00H,08H,02H,05H,0FH;鍵值表DB 09H,03H,06H,0EH,0AH,0CH,0BH,0DH,00H,11H,00H,12H,00H,13H,00HDELAY:MOV R3,#01H ;掃描延時(shí)子程序D1:MOV R4,#02HD2:MOV R5,#0F8H DJNZ R5,$ DJNZ R4,D2 DJNZ R3,D1 RETTABLE:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H,08H,40H,80H,00H END第5章 系統(tǒng)調(diào)試和測(cè)試結(jié)果

34、與分析5.1、實(shí)驗(yàn)儀器與工具 本次課程設(shè)計(jì)使用的硬件部分是DJ-598K實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng),實(shí)驗(yàn)儀主板由許多獨(dú)立的硬件實(shí)驗(yàn)?zāi)K組成,可見(jiàn)它們組成各種各樣的硬件實(shí)驗(yàn),板上的“O”型圓孔用來(lái)作為測(cè)試孔或用于連接硬導(dǎo)線組成實(shí)驗(yàn)。下面將詳細(xì)介紹幾個(gè)與本次課設(shè)有關(guān)模塊的功能與用途。1、 LED發(fā)光二極管指示電路 實(shí)驗(yàn)儀上包括12只發(fā)光二極管及相應(yīng)驅(qū)動(dòng)電路,L1L12為相應(yīng)發(fā)光二極管驅(qū)動(dòng)信號(hào)輸入端,該輸入端為低電平時(shí)發(fā)光二極管亮。2、 顯示接口電路數(shù)碼管的段控制信號(hào)是由8255的PB口經(jīng)74LS245緩沖器后輸出得到,6位位控制信號(hào)由8255的PA口經(jīng)74LS245緩沖器后輸出得到。3、 鍵盤(pán)接口電路8255的PC0PC3作為矩陣鍵盤(pán)行掃描線,8255的PA口為矩陣鍵盤(pán)列入線。本次課程設(shè)計(jì)使用的軟件部分是DJ-

溫馨提示

  • 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)論