2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩41頁(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、<p>  學(xué)生畢業(yè)設(shè)計(jì)(論文)</p><p>  題 目: 電子定時(shí)鬧鐘設(shè)計(jì) </p><p><b>  目錄</b></p><p>  摘要…………………………………………………………………………………3</p><p>  第一章 概述………………………………………………………………………..

2、.4</p><p>  1.1 設(shè)計(jì)本系統(tǒng)的目的和意義……………………………………………………...4</p><p>  第二章 系統(tǒng)硬件設(shè)計(jì)……………………………………………………………….4</p><p>  2.1 電路總體概念設(shè)計(jì)………………………………………………………………4</p><p>  2.2 單片機(jī)的介紹…………

3、…………………………………………………………5</p><p>  2.3 單片機(jī)的選擇……………………………………………………………………6</p><p>  2.4 復(fù)位電路………………………………………………………………………….7</p><p>  2.5 時(shí)鐘電路………………………………………………………………………….8</p><

4、;p>  2.6 LCD電路顯示部分……………………………………………………………….9</p><p>  第三章 軟件設(shè)計(jì)……………………………………………………………………9</p><p>  3.1 軟件設(shè)計(jì)概述…………………………………………………………………..9</p><p>  3.2 程序初始化…………………………………………………………

5、…………..9</p><p>  3.3 顯示程序………………………………………………………………………11</p><p>  3.4 仿真執(zhí)行………………………………………………………………………12</p><p>  總結(jié)…………………………………………………………………………………12</p><p>  參考文獻(xiàn)……………………

6、………………………………………………………12</p><p>  致謝…………………………………………………………………………………13</p><p>  附錄一、源程序代碼………………………………………………………………14</p><p>  附錄二、電路原理圖………………………………………………………………41</p><p>&l

7、t;b>  摘 要</b></p><p>  現(xiàn)代生活的人們?cè)絹?lái)越重視時(shí)間觀念,可以說(shuō)是時(shí)間和金錢(qián)劃上了等號(hào)。對(duì)于那些對(duì)時(shí)間把握非常嚴(yán)格和準(zhǔn)確的人或事來(lái)說(shuō),時(shí)間的不準(zhǔn)確會(huì)帶來(lái)非常大的麻煩,電子時(shí)鐘是現(xiàn)代社會(huì)中主要計(jì)時(shí)工具之一,廣泛應(yīng)用于手機(jī),電腦,汽車(chē)等社會(huì)生活需要的各個(gè)方面,及對(duì)時(shí)間有要求的場(chǎng)合。</p><p>  本設(shè)計(jì)系統(tǒng)可以顯示24小時(shí)制“時(shí)時(shí)-分分-秒秒”

8、,LCD顯示;可以顯示日期,具有萬(wàn)年歷功能;可以方便的設(shè)定定時(shí)時(shí)間、修改定時(shí)時(shí)間,鬧鐘功能預(yù)設(shè)定時(shí)時(shí)間到將發(fā)出音樂(lè)鬧鈴聲;能夠修改時(shí)鐘的時(shí)、分、秒,能夠修改日期的年、月、日等多種功能。硬件系統(tǒng)由復(fù)位模塊、時(shí)鐘模塊、溫度模塊、音樂(lè)模塊、光識(shí)模塊及顯示模塊共五個(gè)模塊組成,可用LCD液晶顯示來(lái)顯示時(shí)間和年、月、日。軟件部分采用時(shí)效性強(qiáng)的匯編語(yǔ)言,用模塊式結(jié)構(gòu)編寫(xiě)程序來(lái)完成系統(tǒng)的控制要求。</p><p>  本LCD電

9、子定時(shí)鬧鐘是以一片AT89C51單片機(jī)為主體,一種基于單片機(jī)技術(shù)的多功能、多用途的電子產(chǎn)品,有電子時(shí)鐘、日期顯示、定時(shí)鬧鐘等多種功能。本設(shè)計(jì)產(chǎn)品性能卓越,功能豐富,采用LCD顯示更加直觀,是一個(gè)比較實(shí)用的電子產(chǎn)品,具有一定的市場(chǎng)推廣價(jià)值。</p><p>  關(guān)鍵詞:?jiǎn)纹瑱C(jī),電子鐘,LCD顯示</p><p><b>  第一章 概述</b></p>&

10、lt;p>  1.1 設(shè)計(jì)本系統(tǒng)的目的和意義</p><p><b> ?。ㄒ唬?目的</b></p><p>  復(fù)習(xí)和鞏固所學(xué)過(guò)的知識(shí),利用此畢業(yè)設(shè)計(jì)正好可以對(duì)所學(xué)過(guò)的知識(shí)驚喜系統(tǒng)的回顧和總結(jié)。</p><p>  拓展知識(shí)面,課堂的知識(shí)是遠(yuǎn)遠(yuǎn)滿足不了設(shè)計(jì)的要求的,這就需要我們主動(dòng)去找尋更多的資料,了解更多的知識(shí)。</p>

11、<p>  培養(yǎng)了設(shè)計(jì)能力和解決實(shí)際問(wèn)題的能力,同時(shí)增強(qiáng)了自學(xué)能力,通過(guò)設(shè)計(jì)完整的單片機(jī)系統(tǒng)也初步掌握了組成系統(tǒng)、編程、調(diào)試等能力。</p><p>  通過(guò)本LED電子定時(shí)鬧鐘的設(shè)計(jì)初步了解了單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)研制過(guò)程,軟件和硬件設(shè)計(jì)的方法。</p><p><b> ?。ǘ?意義</b></p><p>  本LCD電子定時(shí)

12、鬧鐘是以一片AT89C51單片機(jī)為主體,一種基于單片機(jī)技術(shù)的多功能、多用途的電子產(chǎn)品,有電子時(shí)鐘、日期顯示、定時(shí)鬧鐘等多種功能。本設(shè)計(jì)產(chǎn)品性能卓越,功能豐富,采用LCD顯示更加直觀,是一個(gè)比較實(shí)用的電子產(chǎn)品。</p><p><b>  系統(tǒng)硬件設(shè)計(jì)</b></p><p>  2.1 電路總體概念設(shè)計(jì)</p><p>  本LCD定時(shí)鬧鐘,是

13、以單片機(jī)及外圍借口電路為核心,輔以其他外圍硬件電路,用匯編語(yǔ)言設(shè)計(jì)的程序來(lái)實(shí)現(xiàn)的。根據(jù)C51單片機(jī)的外圍接口特點(diǎn)擴(kuò)展相應(yīng)的硬件電路,然后根據(jù)單片機(jī)的指令設(shè)計(jì)出數(shù)字鐘相應(yīng)的軟件,再利用軟件執(zhí)行一定的程序來(lái)實(shí)現(xiàn)數(shù)字鐘的功能。由于采用集成芯片性的單片機(jī),來(lái)制作電子鐘,這樣設(shè)計(jì)制作簡(jiǎn)單而且功能多、精確度高,也可方便擴(kuò)充其他功能,實(shí)現(xiàn)也十分簡(jiǎn)單。</p><p>  本設(shè)計(jì)是利用AT89C51單片機(jī)為主控芯片,由LCD、晶

14、振、電阻、電容、三極管,開(kāi)關(guān),蜂鳴器等元件組成硬件電路,通過(guò)編寫(xiě)軟件程序來(lái)實(shí)現(xiàn)和控制的數(shù)字定時(shí)鬧鐘。</p><p>  總體的硬件系統(tǒng)結(jié)構(gòu)框如圖所示:</p><p>  圖1 硬件電路概念示意圖</p><p>  2.2 單片機(jī)的介紹</p><p><b>  1.單片機(jī)定義</b></p>&

15、lt;p>  “單片機(jī)”就是將計(jì)算機(jī)的基本部件集成到一塊芯片上,包括CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、并行口(Parallel Port)、串行口(Serial Port)、定時(shí)器/計(jì)數(shù)器(Timer/Counter)、中斷系統(tǒng)(Interrupt System)、系統(tǒng)時(shí)鐘及系統(tǒng)總線等。</p>&

16、lt;p><b>  2.單片機(jī)分類(lèi)</b></p><p>  單片機(jī)按照其用途可分為通用型和專(zhuān)用型兩大類(lèi)。</p><p>  通用型單片機(jī)具有比較豐富的內(nèi)部資源,性能全面且適應(yīng)性強(qiáng),能覆蓋多種應(yīng)用需求。</p><p>  專(zhuān)用單片機(jī)是專(zhuān)門(mén)針對(duì)某個(gè)特定產(chǎn)品的,例如,專(zhuān)用于電機(jī)控制的單片機(jī)、車(chē)載電子設(shè)備、語(yǔ)音信號(hào)處理和家用電器中的單片

17、機(jī)等。</p><p>  2.3 單片機(jī)的選擇</p><p>  根據(jù)系統(tǒng)的需求選用單片機(jī)AT89C51。</p><p> ?。?) MSC-51單片機(jī)內(nèi)部總體結(jié)構(gòu):</p><p>  89C51是MSC-51系列單片機(jī)的典型產(chǎn)品,89C51單片機(jī)包含中央處理器、程序存儲(chǔ)器(ROM)、數(shù)據(jù)存儲(chǔ)器(RAM)、定時(shí)/計(jì)時(shí)器、并行接口、串行

18、接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)在我們分別加以說(shuō)明:</p><p>  下圖為單片機(jī)的內(nèi)部結(jié)構(gòu)圖:</p><p>  圖2 MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)圖</p><p>  中央處理器: 中央處理器(CPU)是整個(gè)單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單元系統(tǒng)協(xié)調(diào)

19、的工作,完成運(yùn)算和控制輸入輸出功能等操作。</p><p>  數(shù)據(jù)存儲(chǔ)器(RAM): 89C51內(nèi)部有128個(gè)8位用于用戶數(shù)據(jù)存儲(chǔ)單元和128個(gè)專(zhuān)門(mén)寄存器單元,它們是統(tǒng)一編址的,專(zhuān)用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問(wèn),而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個(gè),可存放讀寫(xiě)的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶定義的字型表。</p><p>  程序存儲(chǔ)器(ROM): 8

20、0C51的程序存儲(chǔ)器的內(nèi)部結(jié)構(gòu)有64KB,包括片內(nèi)ROM和片內(nèi)ROM,ROM空間用MOVC指令實(shí)現(xiàn)讀寫(xiě)操作,用PSEN信號(hào)選通讀外部ROM.</p><p>  定時(shí)/計(jì)時(shí)器(ROM):89C51有兩個(gè)16位的可編程定時(shí)/計(jì)時(shí)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。</p><p>  并行輸入輸出(I/O)口: 89C51共有4組8位I/O口(P0、P1、P2或P3),用于外部數(shù)據(jù)

21、的傳輸。</p><p>  全雙工串行口: 89C51內(nèi)置一個(gè)全雙工行通信口,用于與其他設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。</p><p>  中斷系統(tǒng):89C51具備較完善的中斷功能,有兩個(gè)外中斷、兩個(gè)定時(shí)/計(jì)時(shí)器中斷和一個(gè)串行中斷,可滿足不同的控制要求,并具有2級(jí)的優(yōu)先級(jí)別選擇。</p><p> ?。?) 單片機(jī)

22、的引腳功能</p><p>  硬件電路的核心器件選用ATMEL公司的AT89C51芯片,AT89C51是一種4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能COMS8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除卡存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制作技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多

23、功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器。</p><p>  下圖是AT89C51的引腳說(shuō)明圖:</p><p>  圖3 AT89C51的引腳配置圖</p><p><b>  管腳說(shuō)明:</b></p><p>  電源:(1)Vcc - 芯片電源,接+5

24、V;</p><p> ?。?)Vss - 接地端;</p><p>  P0口:P0口為一個(gè)8位漏極開(kāi)路雙向I/O口,每腳可吸收8TTL門(mén)電流。當(dāng)P1口的管腳第一次寫(xiě)1時(shí),被定義為高阻輸入。P0口能夠</p><p>  用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,

25、此時(shí)P0外部必須被拉高。</p><p>  P1口: P1口是一個(gè)不提供上拉電阻的8位雙向I/O口,P1口緩沖器能接受輸出4TTL門(mén)電流。P1口管腳寫(xiě)入1后被內(nèi)部上拉為高??捎米鬏斎耄琍1口被外部下拉為低電平時(shí)將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。</p><p>  表1 P1.0和 P1.1的第二功能</p>&l

26、t;p>  P2口:P2口作為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門(mén)電流,當(dāng)P2口被寫(xiě)“1”時(shí),其管腳內(nèi)部被上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口暑促地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)時(shí)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接受高八位地址信號(hào)

27、和控制信號(hào)。</p><p>  P3口: P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門(mén)電流。當(dāng)P3口寫(xiě)入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入,作為輸入,由于外部下拉為低電平,P3口將輸出電流(TTL)這是由于上拉的緣故。</p><p>  RST : 復(fù)位輸入,當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p><

28、p>  ALE/PROG: 當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié),在FLASH編程期間,此引腳用于輸入編程脈沖,在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器的1/6,因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。</p><p>  /PSEN: 外部程序存儲(chǔ)器的選通信號(hào)。在有外部程序存儲(chǔ)器取指期間每個(gè)機(jī)器周期兩次/PSEN有效,但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次

29、有效的/PSEN信號(hào)將不出現(xiàn)。</p><p>  /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編程期間,次引腳也用于施加12V編程電源(VPP)。</p><p>  XTAL1: 反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作

30、電路的輸入。</p><p>  XTAL2: 來(lái)自反向振蕩器的輸出。</p><p><b>  2.4 復(fù)位電路</b></p><p>  復(fù)位是單片機(jī)的初始化操作,只要RST引腳處至少保持2個(gè)及其周期的高電平就可實(shí)現(xiàn)復(fù)位。本系統(tǒng)的復(fù)位電路如下圖所示:</p><p><b>  圖4 復(fù)位電路<

31、/b></p><p><b>  2.5 時(shí)鐘電路</b></p><p>  本電子時(shí)鐘設(shè)計(jì)是采用內(nèi)部時(shí)鐘方式,用一個(gè)12MHz晶振和兩個(gè)33PF電容組成,為單片機(jī)提供標(biāo)準(zhǔn)時(shí)鐘,其中兩個(gè)電容起微調(diào)作業(yè)。</p><p>  本系統(tǒng)的時(shí)鐘電路如下圖所示:</p><p><b>  圖5 時(shí)鐘電路&l

32、t;/b></p><p>  之所以采用高性能的振蕩電路是因?yàn)椋?lt;/p><p>  單片機(jī)電子鐘的計(jì)時(shí)脈沖基準(zhǔn)是由外部晶振的頻率經(jīng)過(guò)12分頻后提供的,采用內(nèi)部的定時(shí)/計(jì)數(shù)器來(lái)實(shí)現(xiàn)計(jì)時(shí)功能,所以,外接晶振頻率精確度直接影響電子鐘計(jì)時(shí)的準(zhǔn)確性。</p><p>  單片機(jī)電子鐘利用內(nèi)部定時(shí)/計(jì)數(shù)器溢出產(chǎn)生中斷(12M晶振一般為50ms)再乘以相應(yīng)的倍率來(lái)實(shí)現(xiàn)秒

33、、分、時(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ī)器周期。</p><p><b>  LCD顯示電路</b></p><p><b>  一、LCD的介紹</b></p><p

34、><b>  1、LCD的背景</b></p><p>  LCD(Liquid Crystal Display)對(duì)于許多的用戶而言可能是一個(gè)比較新鮮的名詞,不過(guò)這種技術(shù)存在的歷史可能遠(yuǎn)遠(yuǎn)超過(guò)了我們的想象,早在1888年,一位奧地利的植物學(xué)家F.Renitxer便發(fā)現(xiàn)了液晶特殊的物理特性。</p><p><b>  二、 LCD的選材</b&g

35、t;</p><p>  為了獲得更好的效果本設(shè)計(jì)并沒(méi)有采用常見(jiàn)的LED,而是采用了型號(hào)為1602的 LCD。LCD有LED數(shù)碼顯示更好的更的直觀效果,也更加經(jīng)久耐用。液晶顯示模塊體積小功耗低、顯示內(nèi)容豐富,現(xiàn)在字符型液晶顯示模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的信息顯示器件之一了。本LCD是2行16列液晶 可顯示2行16列英文字符,有8位數(shù)據(jù)總線D0-D7,RS,R/W,EN三個(gè)控制端口(共14線),工作電壓為5V

36、。沒(méi)背光,和常用的1602B功能和引腳一樣(除了調(diào)背光的二個(gè)線腳)。該模塊也可只用D4-D7作為四位數(shù)據(jù)分兩次傳送。這樣的話可以節(jié)省MCU的I/O口資源。</p><p>  VDD:電源正極,4.5-5.5V,通常使用5V電壓;</p><p>  VL:LCD對(duì)比度調(diào)節(jié)端,電壓調(diào)節(jié)范圍為0-5V。接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,但對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,因此通常使用一個(gè)

37、10K的電位器來(lái)調(diào)整對(duì)比度,或者直接串接一個(gè)電阻到地;</p><p>  RS:MCU寫(xiě)入數(shù)據(jù)或者指令選擇端。MCU要寫(xiě)入指令時(shí),使RS為低電平;MCU要寫(xiě)入數(shù)據(jù)時(shí),使RS為高電平;</p><p>  R/W:讀寫(xiě)控制端。R/W為高電平時(shí),讀取數(shù)據(jù);R/W為低電平時(shí),寫(xiě)入數(shù)據(jù);</p><p>  E:LCD模塊使能信號(hào)控制端。寫(xiě)數(shù)據(jù)時(shí),需要下降沿觸發(fā)模塊。&l

38、t;/p><p>  D0-D7:8位數(shù)據(jù)總線,三態(tài)雙向。如果MCU的I/O口資源緊張的話,該模塊也可以只使用4位數(shù)據(jù)線D4-D7接口傳送數(shù)據(jù)。本充電器就是采用4位數(shù)據(jù)傳送方式;</p><p>  BLA: LED背光正極。需要背光時(shí),BLA串接一個(gè)限流電阻接VDD,BLK接地,實(shí)測(cè)該模塊的背光電流為50mA左右;</p><p>  BLK: LED背光地端。<

39、;/p><p><b>  軟件設(shè)計(jì)</b></p><p><b>  3.1軟件設(shè)計(jì)概述</b></p><p>  這里用匯編的單片機(jī)程序構(gòu)成了本電子鐘的軟件系統(tǒng)。該程序?qū)崿F(xiàn)時(shí)間及定時(shí)(時(shí)間以0點(diǎn)0分0秒為基準(zhǔn)計(jì)算,鬧鈴定時(shí)以0時(shí)0分0秒為基準(zhǔn)計(jì)算)的顯示,有外中斷0和四個(gè)開(kāi)關(guān)實(shí)現(xiàn)校時(shí)、鬧鐘功能。其中程序的晶振頻率為12

40、MHz,最小計(jì)時(shí)單位為1/20秒。</p><p>  主芯片p0.1-p0.7輸出數(shù)據(jù)到LCD數(shù)據(jù)總線,p2.0-2.2輸出LCD控制信號(hào),P3.7輸出聲音信號(hào),.P1.4-P1.5輸入外部控制信號(hào),整個(gè)軟件系統(tǒng)也是根據(jù)這個(gè)關(guān)系連接成一個(gè)完整的系統(tǒng)。</p><p><b>  3.2程序初始化</b></p><p>  下圖為本設(shè)計(jì)的主程

41、序流程圖:</p><p>  圖6 主程序流程圖</p><p>  下圖為本設(shè)計(jì)的程序分流程圖:</p><p>  圖7 程序分流程圖</p><p>  然后就是對(duì)LCD進(jìn)行初始化,具體程序見(jiàn)附錄1。</p><p><b>  鬧鐘的實(shí)現(xiàn):</b></p><p

42、>  鬧鐘功能的實(shí)現(xiàn)涉及到兩個(gè)方面:鬧鈴時(shí)間設(shè)定和是否鬧鈴判別與相應(yīng)處理。鬧鈴時(shí)間設(shè)定模塊的設(shè)計(jì)可參照時(shí)間設(shè)定模塊,這里著重闡述鬧鈴判別與處理模塊的設(shè)計(jì)問(wèn)題。鬧鈴判別與鬧鈴處理的關(guān)鍵在于判別何時(shí)要進(jìn)行鬧鈴。當(dāng)時(shí)十位、時(shí)個(gè)位、分十位、分個(gè)位中任一位發(fā)生改變(進(jìn)位)時(shí),就必須進(jìn)行鬧鈴判別。</p><p>  程序設(shè)計(jì)思想如下圖:</p><p>  圖8 鬧鈴實(shí)現(xiàn)流程圖</p&

43、gt;<p><b>  3.3 顯示程序</b></p><p>  程序包括時(shí)鐘顯示和定時(shí)顯示程序。具體程序見(jiàn)附錄1</p><p>  液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,表3-1是TC1602EL液晶模塊的內(nèi)部

44、顯示地址。</p><p>  表2 內(nèi)部顯示地址。</p><p>  比如第二行第一個(gè)字符的地址是40H,那么是否直接寫(xiě)入40H就可以將光標(biāo)定位在第二行第一個(gè)字符的位置呢?這樣不行,因?yàn)閷?xiě)入顯示地址時(shí)要求最高位 D7恒定為高電平1所以實(shí)際寫(xiě)入的數(shù)據(jù)應(yīng)該是01000000B(40H)+10000000B(80H)=11000000B(C0H),</p><p>

45、;  液晶模塊內(nèi)帶標(biāo)準(zhǔn)字庫(kù),內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了192個(gè)5×7點(diǎn)陣字符,32個(gè)5×10點(diǎn)陣字符。另外還有字符生成RAM (CGRAM)512字節(jié),供用戶自定義字符。這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固 定的代碼,比如大寫(xiě)的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“A”

46、。</p><p><b>  3.4 仿真執(zhí)行</b></p><p>  將完整的單片機(jī)程序保存為后綴名為.asm文件。打開(kāi)偉福E6000軟件,點(diǎn)擊偉福E6000主菜單當(dāng)中“仿真器”,在下拉菜單中點(diǎn)擊“仿真器設(shè)置”。在彈出對(duì)話框中,語(yǔ)言對(duì)話框中選—“Keil C(V5或更高),英特爾PL/M51,英特爾匯編器”,仿真器對(duì)話框中—“G6W”—“POD—51”—“8

47、031”,晶振頻率欄填12000000(Hz),然后點(diǎn)擊“好”完成仿真器設(shè)置。然后點(diǎn)擊偉福E6000主菜單,新建項(xiàng)目,導(dǎo)入上述ASM文件,選擇無(wú)包含文件,保存此項(xiàng)目文件,再雙擊ASM文件打開(kāi),然后選擇“項(xiàng)目”—“編譯”或按F9,按.asm文件進(jìn)行編譯,編譯順利完成,生成.HEX文件。然后用PROTEUS7.1軟件打開(kāi)設(shè)計(jì)好的硬件系統(tǒng)原理圖DZZ dan,雙擊原理圖上的AT89C51單片機(jī)加載DAA.HEX文件。然后點(diǎn)擊PROTEUS7.

48、1軟件窗口下方的相應(yīng)仿真運(yùn)行按鈕進(jìn)行仿真</p><p>  經(jīng)過(guò)反復(fù)的仿真和調(diào)試,此鬧鐘可以實(shí)現(xiàn)所有的功能,既可以顯示日期時(shí)間,也可以方便調(diào)整日期和時(shí)間,定鬧鐘的功能也正常,實(shí)際的仿真效果截圖如附帶大圖,至此整個(gè)設(shè)計(jì)基本成功的完成。</p><p><b>  總結(jié)</b></p><p>  單片機(jī)是計(jì)算機(jī)技術(shù)發(fā)展的產(chǎn)物,是經(jīng)濟(jì)實(shí)用開(kāi)發(fā)簡(jiǎn)便

49、的高科技產(chǎn)品,在當(dāng)今工業(yè)控制、家電等,領(lǐng)域占據(jù)廣泛的市場(chǎng)。通過(guò)此次單片機(jī)課程設(shè)計(jì)來(lái)設(shè)計(jì)個(gè)簡(jiǎn)單的數(shù)字鬧鐘,我鞏固了自己學(xué)習(xí)的單片機(jī)知識(shí),來(lái)初步了解了小型單片機(jī)系統(tǒng)的設(shè)計(jì)和運(yùn)用,并提高自己動(dòng)手能力。</p><p>  課程設(shè)計(jì)過(guò)程也使我了解了自己能力的不足,不過(guò)通過(guò)資料收集和文獻(xiàn)查詢等方法,找出了設(shè)計(jì)過(guò)程中是一些問(wèn)題以及解決問(wèn)題的方法。從而比較順利的完成了這個(gè)設(shè)計(jì)任務(wù)。這次自己所做的設(shè)計(jì)取得了一些寶貴的經(jīng)驗(yàn),提高了

50、自己的動(dòng)手能力,為將來(lái)的學(xué)習(xí)和工作很有好處。</p><p>  通過(guò)這次課程設(shè)計(jì)我學(xué)到了很多全新的在課堂上沒(méi)法學(xué)到的知識(shí),同時(shí)也加深; 以前所學(xué)的知識(shí)的理解,也增強(qiáng)了理論聯(lián)系實(shí)際的操作能力。但是,在實(shí)際的編程以及調(diào)試程序過(guò)程中,我發(fā)現(xiàn)自己應(yīng)該學(xué)的還有太多太多。光靠書(shū)本上是遠(yuǎn)遠(yuǎn)行不通的!</p><p>  總之,理論必須和實(shí)際結(jié)合才有威力,知識(shí)必須通過(guò)應(yīng)用才能實(shí)現(xiàn)其價(jià)值!所學(xué)的東西最終是

51、要面向社會(huì),是在以后的工作能夠更好的應(yīng)用,此時(shí)的知識(shí)積累是為以后的工作做好堅(jiān)實(shí)的基礎(chǔ)。這個(gè)設(shè)計(jì)總體上不算完美,但是在這個(gè)課程設(shè)計(jì)的經(jīng)歷的好處是不可估量的</p><p>  由于本人用單片機(jī)制作實(shí)際應(yīng)用是第一次涉及,所以在設(shè)計(jì)過(guò)程中,可能忽略; 許多的問(wèn)題,再加上能力與精力,還有時(shí)間的關(guān)系,對(duì)系統(tǒng)的設(shè)計(jì)中的每一個(gè)細(xì)節(jié)不能做到完全的完美。該系統(tǒng)還需要以后進(jìn)行完善。</p><p><b

52、>  參考文獻(xiàn)</b></p><p>  [1]王喜云。單片機(jī)應(yīng)用基礎(chǔ)項(xiàng)目教程。機(jī)械工業(yè)出版社。2009年</p><p>  [2]李伯成。單片機(jī)嵌入式系統(tǒng)(第二版)。清華大學(xué)出版社。2008年</p><p>  [3]李中發(fā)。數(shù)字電子技術(shù)(第二版)。中國(guó)水利水電出版社。2007年</p><p>  [4]趙志剛。P

53、rotel DXP實(shí)用教程(修訂本)。清華大學(xué)出版社。2007年</p><p>  [5] 耿文靜、錢(qián)珊珠。單片機(jī)原理與接口技術(shù)。國(guó)防工業(yè)出版社2007年。</p><p>  [6] 賈好來(lái)。MCS—51單片機(jī)原理及應(yīng)用。機(jī)械工業(yè)出版社。2007年</p><p>  [7] 凌陽(yáng)科技大學(xué)計(jì)劃網(wǎng)站 http://www.unsp.com.cn</p>

54、<p>  [8] 徐江海。單片機(jī)實(shí)用教程。機(jī)械工業(yè)出版社。2007年。</p><p>  [9]樓然苗、李光飛。單片機(jī)課程設(shè)計(jì)指導(dǎo)。2007年</p><p>  [10] 侯媛彬。凌陽(yáng)單片機(jī)原理及畢業(yè)設(shè)計(jì)精選??茖W(xué)出版社。2005年。</p><p><b>  致謝:</b></p><p>  

55、光陰似箭,日月如梭,不知不覺(jué)已在美麗的婁底職業(yè)技術(shù)學(xué)院度過(guò)了自己的大學(xué)時(shí)光。三年來(lái)雖付出了許多艱辛和汗水,但有老師和同學(xué)們的教導(dǎo)和關(guān)愛(ài),又有家人和朋友的期待與支持,我感到無(wú)比的快樂(lè)與辛福。在論文即將脫稿之時(shí),我要向所有關(guān)心和支持我的人道一聲謝謝。</p><p>  衷心感謝我的導(dǎo)師吳水平老師,吳老師在擔(dān)任我的畢業(yè)論文指導(dǎo)老師以來(lái),對(duì)學(xué)生言傳身教,學(xué)習(xí)上鼓勵(lì)學(xué)生要勤奮、努力、刻苦。生活上鼓勵(lì)學(xué)生要勤儉節(jié)約、自力更

56、生。吳老師嚴(yán)謹(jǐn)求實(shí)的治學(xué)態(tài)度,嚴(yán)以律己、寬以待人的崇高風(fēng)范,一絲不茍的作風(fēng)一直是學(xué)生學(xué)習(xí)的楷模。</p><p>  附錄一 源程序代碼</p><p>  按K1鍵,依次進(jìn)入鬧鐘功能,鬧鐘時(shí)間,年,月,日和時(shí),分,秒模式,直致退出設(shè)置狀態(tài) *</p><p>  ;按K2鍵,調(diào)整是否起用鬧鐘和調(diào)節(jié)鬧鐘時(shí),分,秒,年,月,日,時(shí)間的時(shí),分,秒的數(shù)字 *<

57、;/p><p>  ;鬧鐘響時(shí),按K2 即可停止鬧鐘的聲響 *</p><p>  ;K2和K1需要配合使用</p><p>  ;設(shè)置狀態(tài),LCD 上排最前面顯示"P",下排最前面設(shè)置鬧鐘時(shí)顯示"alarm:",其他顯示"time:" *</p><p>  ;鬧鐘啟用時(shí),在LCD 下

58、排中間顯示一小喇叭,鬧鐘禁用時(shí),無(wú)此小喇叭 *</p><p>  ;年代變化2000--2099,星期自動(dòng)轉(zhuǎn)換</p><p>  **************變量的定義*****************</p><p>  RS BIT P2.0 ;LCD 數(shù)據(jù)/命令選擇端(H/L)</p><p>  RW BIT P2.1 ;LCD讀

59、/寫(xiě)選擇端(H/L)</p><p>  EP BIT P2.2 ;LCD 使能控制</p><p>  PRE BIT P1.7 ;調(diào)整鍵(K1)</p><p>  ADJ BIT P1.6 ;調(diào)整鍵(K2)</p><p>  SPK BIT P3.7 ;鬧鐘聲音輸出口</p><p>  YEAR DATA 1

60、8H ;年,月,日變量</p><p>  MONTH DATA 19H</p><p>  DATE DATA 1AH</p><p>  WEEK DATA 1BH</p><p>  HOUR DATA 1CH ;時(shí),分,秒,百分之一秒變量</p><p>  MIN DATA 1DH</p>&l

61、t;p>  SEC DATA 1EH</p><p>  SEC100 DATA 1FH</p><p>  HOUR_ARM DATA 20H ;鬧鐘時(shí),分,秒,變量</p><p>  MIN_ARM DATA 21H</p><p>  SEC_ARM DATA 22H</p><p>  STATE DA

62、TA 23H</p><p>  ALARM BIT STATE.0 ;鬧鐘是否啟用標(biāo)志1--啟用,0--禁止</p><p>  LEAP BIT STATE.1 ;是否閏年標(biāo)志1--閏年,0--平年</p><p>  KEY_S DATA 24H ;當(dāng)前掃描鍵值</p><p>  KEY_V DATA 25H ;上次掃描鍵值</

63、p><p>  DIS_BUF_U0 DATA 26H ;LCD 上排顯示緩沖區(qū)</p><p>  DIS_BUF_U1 DATA 27H</p><p>  DIS_BUF_U2 DATA 28H</p><p>  DIS_BUF_U3 DATA 29H</p><p>  DIS_BUF_U4 DATA 2AH&l

64、t;/p><p>  DIS_BUF_U5 DATA 2BH</p><p>  DIS_BUF_U6 DATA 2CH</p><p>  DIS_BUF_U7 DATA 2DH</p><p>  DIS_BUF_U8 DATA 2EH</p><p>  DIS_BUF_U9 DATA 2FH</p>

65、<p>  DIS_BUF_U10 DATA 30H</p><p>  DIS_BUF_U11 DATA 31H</p><p>  DIS_BUF_U12 DATA 32H</p><p>  DIS_BUF_U13 DATA 33H</p><p>  DIS_BUF_U14 DATA 34H</p><p

66、>  DIS_BUF_U15 DATA 35H</p><p>  DIS_BUF_L0 DATA 36H ;LCD 下排顯示緩沖區(qū)</p><p>  DIS_BUF_L1 DATA 37H</p><p>  DIS_BUF_L2 DATA 38H</p><p>  DIS_BUF_L3 DATA 39H</p>&

67、lt;p>  DIS_BUF_L4 DATA 3AH</p><p>  DIS_BUF_L5 DATA 3BH</p><p>  DIS_BUF_L6 DATA 3CH</p><p>  DIS_BUF_L7 DATA 3DH</p><p>  DIS_BUF_L8 DATA 3EH</p><p>  

68、DIS_BUF_L9 DATA 3FH</p><p>  DIS_BUF_L10 DATA 40H</p><p>  DIS_BUF_L11 DATA 41H</p><p>  DIS_BUF_L12 DATA 42H</p><p>  DIS_BUF_L13 DATA 43H</p><p>  DIS_BU

69、F_L14 DATA 44H</p><p>  DIS_BUF_L15 DATA 45H</p><p>  FLAG DATA 46H ;標(biāo)識(shí)調(diào)整狀態(tài) 0-鬧鐘功能,1-鬧鐘時(shí),2-鬧鐘分,3-鬧鐘秒</p><p>  ;4-年,5-月,6-日,7-時(shí),8-分,9-秒,10-退出調(diào)整。</p><p>  DIS_H DATA 47H&

70、lt;/p><p>  DIS_M DATA 48H</p><p>  DIS_S DATA 49H</p><p>  DIS_S0 DATA 4AH</p><p>  DIS_S1 DATA 4BH</p><p>  DIS_S2 DATA 4CH</p><p>  DIS_S3 DAT

71、A 4DH</p><p>  DIS_S4 DATA 4EH</p><p>  DIS_S5 DATA 4FH</p><p>  ;**************初始化********************</p><p><b>  ORG 0000H</b></p><p>  LJMP

72、 START</p><p><b>  ORG 000BH</b></p><p>  LJMP TIMER0</p><p><b>  ORG 001BH</b></p><p>  LJMP TIMER1</p><p><b>  ORG 0100H<

73、;/b></p><p>  START: MOV SP,#60H</p><p>  MOV R0,#18H</p><p>  MOV A,#00H</p><p>  MEM_INI: MOV @R0,A</p><p><b>  INC R0</b></p><

74、p>  CJNE R0,#5FH,MEM_INI</p><p>  LCALL DELAY_5ms ;初始化LCD</p><p>  MOV R0,#38H ;設(shè)置LCD 為16X2 顯示,5X7 點(diǎn)陣,八位數(shù)據(jù)接口</p><p>  LCALL LCD_WCMD</p><p>  LCALL DELAY_5ms</p&g

75、t;<p>  MOV R0,#0CH ;設(shè)置LCD 開(kāi)顯示及光標(biāo)形式(光標(biāo)不閃爍,不顯示"-")</p><p>  LCALL LCD_WCMD</p><p>  LCALL DELAY_5ms</p><p>  MOV R0,#06H ;LCD 顯示光標(biāo)移動(dòng)設(shè)置(光標(biāo)地址指針加1,整屏顯示不移動(dòng))</p>&

76、lt;p>  LCALL LCD_WCMD</p><p>  LCALL DELAY_5ms</p><p>  MOV R0,#01H ;清除LCD的顯示內(nèi)容</p><p>  LCALL LCD_WCMD</p><p>  LCALL DELAY_5ms</p><p><b>  ;第一自定

77、義字符:</b></p><p>  MOV R0,#40H</p><p>  LCALL LCD_WCMD ;“01 000 000”第一行地址(D7D6為地址設(shè)定命令形式D5D4D3為字符存放位置)</p><p>  MOV R0,#1FH</p><p>  LCALL LCD_WDAT ;“XXX 1111

78、1”第一行數(shù)據(jù)(D7D6D5為XXX,表示為任意數(shù),一般用000)</p><p>  MOV R0,#41H</p><p>  LCALL LCD_WCMD ;“01 000 001”第二行地址</p><p>  MOV R0,#11H</p><p>  LCALL LCD_WDAT ;“XXX 10001”第2行數(shù)據(jù)&l

79、t;/p><p>  MOV R0,#42H</p><p>  LCALL LCD_WCMD ;“01 000 010”第三行地址</p><p>  MOV R0,#15H</p><p>  LCALL LCD_WDAT ;“XXX 10101”第3行數(shù)據(jù)</p><p>  MOC R0,#43H

80、</p><p>  LCALL LCD_WCMD ;“01 000 011”第四行地址</p><p>  MOV R0,#11H</p><p>  LCALL LCD_WCMD ;“XXX 10001”第四行數(shù)據(jù)</p><p>  MOV R0,#44H</p><p>  LCALL LC

81、D_WCMD ;“01 000 100”第五行地址</p><p>  MOV R0,#1FH</p><p>  LCALL LCD_WDAT ;“XXX 11111”第五行數(shù)據(jù)</p><p>  MOV R0,#45H</p><p>  LCALL LCD_WCMD ;“01 000 101”第六行地址</p>

82、<p>  MOV R0,#0AH</p><p>  LCALL LCD_WDAT ;“XXX 01010”第六行數(shù)據(jù)</p><p>  MOV R0,#46H</p><p>  LCALL LCD_WCMD ;“01 000 110”第七行地址</p><p>  MOV R0,#1FH</p>&

83、lt;p>  LCALL LCD_WDAT ;“XXX 11111”第七行數(shù)據(jù)</p><p>  MOV R0,#47H</p><p>  LCALL LCD_WCMD ;“01 000 111”第八行地址</p><p>  MOV R0,#00H</p><p>  LCALL LCD_WDAT ;“XXX 00000”第八

84、行數(shù)據(jù)</p><p><b>  第二自定義字符:</b></p><p>  MOV R0,#48H</p><p>  LCALL LCD_WCMD ;“01 001 000”第一行地址</p><p>  MOV R0,#01H</p><p>  LCALL LCD_WDAT ;“X

85、XX 00001”第一行數(shù)據(jù)</p><p>  MOV R0,#49H</p><p>  LCALL LCD_WCMD ;“01 001 001”第二行地址</p><p>  MOV R0,#1BH</p><p>  LCALL LCD_WDAT ;“XXX 11011”第二行數(shù)據(jù)</p><p>  MO

86、V R0,#4AH</p><p>  LCALL LCD_WCMD ;“01 001 010”第三行地址</p><p>  MOV R0,#1DH</p><p>  LCALL LCD_WDAT ;“XXX 11101”第三行數(shù)據(jù)</p><p>  MOV R0,#4BH</p><p>  LCALL LCD

87、_WCMD ;“01 001 011”第四行地址</p><p>  MOV R0,#19H</p><p>  LCALL LCD_WDAT ;“XXX 11001”第四行數(shù)據(jù)</p><p>  MOV R0,#4CH</p><p>  LCALL LCD_WCMD ;“01 001 100”第五行地址</p><p

88、>  MOV R0,#1DH</p><p>  LCALL LCD_WDAT ;“XXX 11101”第五行數(shù)據(jù)</p><p>  MOV R0,#4DH</p><p>  LCALL LCD_WCMD ;“01 001 101”第六行地址</p><p>  MOV R0,#1BH</p><p>  L

89、CALL LCD_WDAT ;“XXX 11011”第六行數(shù)據(jù)</p><p>  MOV R0,#4EH</p><p>  LCALL LCD_WCMD ;“01 001 110”第七行地址</p><p>  MOV R0,#01H</p><p>  LCALL LCD_WDAT ;“XXX 00001”第七行數(shù)據(jù)</p>

90、<p>  MOV R0,#4FH</p><p>  LCALL LCD_WCMD ;“01 001 111”第八行地址</p><p>  MOV R0,#00H</p><p>  LCALL LCD_WDAT ;“XXX 00000”第八行數(shù)據(jù)</p><p>  MOV YEAR,#5 ;置年初值</p>

91、<p>  MOV MONTH,#1 ;置月初值</p><p>  MOV DATE,#1 ;置日初值</p><p>  MOV DIS_S0,#43H ;“C”</p><p>  MOV DIS_S1,#72H ;“r”</p><p>  MOV DIS_S2,#61H ; “a”</p><p&g

92、t;  MOV DIS_S3,#73H ;“s”</p><p>  MOV DIS_S4.#79H ;“y”</p><p>  MOV DIS_S5,#20H ;“”</p><p>  MOV R1,#00H ;顯示一自定義字符</p><p>  LCALL WEEK_PRO</p><p>  LCALL U

93、ODATE_BUF</p><p>  LCALL DISPLAY_PRO ;屏顯初始化</p><p>  *************************主程序*************************</p><p>  MAIN:MOV IE ,#8AH ;CPU開(kāi)中斷,Timer0, Timer1開(kāi)中斷</p><p> 

94、 MOV TMOD,#11H ; Timer0,Timer1工作于模式1,16位定時(shí)方式</p><p>  MOV TH0,#0DCH ; Timer0置10MS定時(shí)初值</p><p>  MOV TL0,#00H</p><p>  MOV TH1,#0FFH ; Timer1置鬧鐘聲音初值</p><p>  MOV TL1,#00

95、H</p><p>  SETB ALARM ;廚師啟動(dòng)鬧鐘功能</p><p>  CLR TR1 ; Timer1禁止</p><p>  SETB TR0 ; Timer0啟動(dòng)</p><p>  MOV KEY_V,#03H</p><p>  MAIN_1:LCALL KEY_SCAN</p>

96、<p>  MOV A,KEY_S</p><p>  XRL A,KEY_V</p><p><b>  JZ MAIN_1</b></p><p>  LCALL DELAY_5MS</p><p>  LCALL DELAY_5MS</p><p>  LCALL KEY_SCAN

97、</p><p>  MOV A,KEY_S</p><p>  XRL A,KEY_V</p><p><b>  JZ MAIN_1</b></p><p>  MOV KEY_V,KEY_S</p><p>  MOV A KEY_V</p><p>  XRL A,

98、#01H</p><p>  JNZ MAIN_2</p><p>  CLR TR0 ;進(jìn)入調(diào)整狀態(tài),禁止Timer0</p><p>  MOV IE,#00H ;CPU禁止中斷</p><p>  LCALL KEY_PRE_PRO ;PRE按鍵按下,調(diào)用PRE按鍵處理程序</p><p>  SJMP MAIN

99、_1</p><p>  MAIN_2:MOV A,KEY_V</p><p>  XRL A,#02H</p><p>  JNZ MAIN_1</p><p>  LCALL KEY_ADJ_PRO ;DAJ按鍵按下,調(diào)用PRE按鍵處理程序</p><p>  SJMP MAIN_1</p><

100、p>  ****************************按鍵掃描程序**********************</p><p>  KEY_SCAN: CLR A </p><p>  MOV P1,#0FFH</p><p><b>  MOV C,PRE</b></p><p>  MOV ACC,

101、1,C</p><p><b>  MOV C,ADJ</b></p><p>  MOV ACC,0,C</p><p>  MOV KEY_S,A ;本次掃描鍵值存入KEY_S</p><p><b>  RET</b></p><p>  *************PR

102、E按鍵處理程序*******************</p><p>  KEY_PRE_PRO:INC FLAG</p><p>  MOV R4,FLAG</p><p>  CJNE R4,#1,KEY_PRE_1 ;注意,該指令不改變操作</p><p>  MOV R0,#0EH</p><p>  LCAL

103、L LCD_WCMD ;顯示光標(biāo)“-”,整個(gè)光標(biāo)不閃爍</p><p>  MOV DIS_S0,#61H ;“a”</p><p>  MOV DIS_S1,#6CH ;“1”</p><p>  MOV DIS_S2,#61H ;“a”</p><p>  MOV DIS_S3,#72H ;“r”</p><p>

104、  MOV DIS_S4,#6DH“m”</p><p>  MOV DIS_S5,#3AH“:”</p><p>  MOV R1,#50H“p”</p><p>  MOV DIS_H,HOUR_ARM</p><p>  MOV DIS_M,MIN_ARM</p><p>  MOV DIS_S,SEC_ARM&

105、lt;/p><p>  LCALL UPDATE_BUF</p><p>  LCALL DISPLAY_PAO ;更新屏顯內(nèi)容</p><p>  MOV R0,#47H</p><p>  LCALL LCD_POS ;使光標(biāo)位于第一個(gè)調(diào)整項(xiàng)下</p><p>  JMP KEY_PRE_E</p>&l

106、t;p>  KEY_PRE_1:CJNE R4,#2,KEY_PRE_2</p><p>  MOV R0,#49H</p><p>  LCALL LCD_POS ;光標(biāo)置小時(shí)報(bào)警設(shè)置位置</p><p>  JMP KEY_PRE_E</p><p>  KEY_PRE_2:CJNE R4,#3,KEY_PRE_3</p>

107、;<p>  MOV R0,#4CH</p><p>  LCALL LCD_POS ;光標(biāo)置分鐘報(bào)警設(shè)置位置</p><p>  JMP KEY_PRE_E</p><p>  KEY_PRE_3: CJNE R4,#4,KEY_PRE_4</p><p>  MOV R0,#4FH</p><p> 

108、 LCALL LCD_POS ;光標(biāo)置秒時(shí)報(bào)警設(shè)置位置</p><p>  JMP KEY_PRE_E</p><p>  KEY_PRE_4:CJNE R4,#5,KEY_PRE_5</p><p>  MOV DIS_S0,#74H ;“t”</p><p>  MOV DIS_S1,#69H ;“i”</p><p&

109、gt;  MOV DIS_S2,#6DH ;“m”</p><p>  MOV DIS_S3,#65H ;“e”</p><p>  MOV DIS_S4,#3AH ;“:”</p><p>  MOV DIS_S5,#20H ; “ ”</p><p>  MOV R1,#50H ;“P”</p><p>  MOV

110、 DIS_H,HOUR</p><p>  MOV DIS_M,MIN</p><p>  MOV DIS_S,SEC</p><p>  LCALL UPDATE_BUF</p><p>  LCALL DISPLAY_PRO ;更新屏顯內(nèi)容</p><p>  MOV R0,#05H</p><

111、p>  LCALL LCD_POS ;光標(biāo)置年調(diào)整位置</p><p>  JMP KEY_PRE_E</p><p>  KEY_PRE_5:CJNE R4,#6,KEY_PRE_6</p><p>  MOV R0,#08H</p><p>  LCALL LCD_POS ;光標(biāo)置月調(diào)整位置</p><p>

112、  JMP KEY_PRE_E</p><p>  KEY_PRE_6:CJNE R4,#7,KEY_PRE_7</p><p>  MOV R0,#0BH</p><p>  LCALL LCD_POS ;光標(biāo)置日調(diào)整位置</p><p>  JMP KEY_PRE_E</p><p>  KEY_PRE_7:CJN

113、E R4,#8,KEY_PRE_8</p><p>  MOV R0,#49H</p><p>  LCALL LCD_POS ;光標(biāo)置時(shí)調(diào)整位置</p><p>  JMP KEY_PRE_E</p><p>  KEY_PRE_8:CJNE R4,#9,KEY_PRE_9</p><p>  MOV R0,#4CH

114、</p><p>  LCALL LCD_POS ;光標(biāo)置分調(diào)整位置</p><p>  JMP KEY_PRE_E</p><p>  KEY_PRE_9:CJNE R4,#10,KEY_PRE_10</p><p>  MOV R0,#4FH</p><p>  LCALL LCD_POS ;光標(biāo)置秒調(diào)整位置<

115、;/p><p>  JMP KEY_PRE_E</p><p>  KEY_PRE_10:MOV FLAG,#0 ;FLAG到11,就清零</p><p>  MOB R0,#0CH</p><p>  LCALL LCD_WCMD ;設(shè)置LCD開(kāi)顯示及光并不閃爍,不顯示“-”</p><p>  MOV R0,#01H&

116、lt;/p><p>  LCALL LCD_WCMD ;清除LCD的顯示內(nèi)容</p><p>  MOV IE,#8AH ;CPU開(kāi)中斷,Timer0, Timer1開(kāi)中斷</p><p>  SETB TE0 ;啟動(dòng)Timer0</p><p>  KEY_PRE_E:</p><p><b>  RET<

117、;/b></p><p>  ******* ADJ 按鍵處理程序******************</p><p>  KEY_ADJ_PRO: MOV R5,FLAG</p><p>  CJNE R5,#0,KEY_ADJ_0 ;FLAG=0,如果有鬧鐘聲音,就停止鬧鐘聲音</p><p><b>  MOV C,TR

118、1</b></p><p>  JNC KEY_ADJ_A</p><p><b>  CLR TR1</b></p><p>  KEY_ADJ_A: JMP KEY_ADJ_E</p><p>  KEY_ADJ_0: CJNE R5,#1,KEY_ADJ_1 ;FLAG=1,調(diào)整是否啟用鬧鐘</p

119、><p><b>  CPL ALARM</b></p><p>  LCALL UPDATE_BUF</p><p>  LCALL DISPLAY_PRO</p><p>  MOV R0,#47H</p><p>  LCALL LCD_POS</p><p>  JMP

120、 KEY_ADJ_E</p><p>  KEY_ADJ_1: CJNE R5,#2,KEY_ADJ_2 ;FLAG=2,調(diào)整鬧鐘時(shí)</p><p>  INC HOUR_ARM</p><p>  MOV A,HOUR_ARM</p><p>  CJNE A,#24,KEY_ADJ_1_1</p><p>  MO

121、V HOUR_ARM,#0</p><p>  KEY_ADJ_1_1: MOV DIS_H,HOUR_ARM</p><p>  LCALL UPDATE_BUF</p><p>  LCALL DISPLAY_PRO</p><p>  MOV R0,#49H</p><p>  LCALL LCD_POS<

溫馨提示

  • 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ù)僅提供信息存儲(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)論