版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 單片機(jī)課程設(shè)計(jì)報(bào)告</b></p><p> LCD電子定時(shí)鬧鐘設(shè)計(jì)</p><p> 姓 名: </p><p> 學(xué) 號(hào): </p><p> 專業(yè)班級(jí):
2、 </p><p> 指導(dǎo)老師: </p><p> 所在學(xué)院: </p><p><b> 摘要</b></p><p> 本設(shè)計(jì)是采用單片機(jī)技術(shù)的電子定時(shí)鬧鐘,近年來(lái)集成電路技術(shù)的出現(xiàn)和應(yīng)用,是推動(dòng)了人類文明
3、的突飛猛進(jìn)?;诩呻娐芳夹g(shù)的單片機(jī)產(chǎn)品更是方便了人們的生活和工作 ,目前以單片機(jī)技術(shù)的應(yīng)用為核心的產(chǎn)品種類非常豐富。應(yīng)用我們所學(xué)過(guò)的知識(shí)和查閱相關(guān)資料,我制作了這個(gè)單片機(jī)技術(shù)為基礎(chǔ)的LCD可校時(shí)可定時(shí)電子鬧鐘,這是一個(gè)簡(jiǎn)單的實(shí)用的單片機(jī)電子設(shè)計(jì)產(chǎn)品。</p><p> 本“LCD定時(shí)電子鬧鐘’設(shè)計(jì)采用AT89C51為主控芯片。在充分理解了設(shè)計(jì)的要求后,準(zhǔn)確的定位了設(shè)計(jì)的目的,然后構(gòu)思了總體的方案。在選擇和合適
4、的硬件完成了電路的設(shè)計(jì)后,又進(jìn)行了軟件的設(shè)計(jì)和調(diào)試。本系統(tǒng)的硬件組成以及工作原理都有詳細(xì)的圖文說(shuō)明,所應(yīng)用的軟件技術(shù)和各個(gè)模塊設(shè)計(jì)的功能及工作過(guò)程也有詳細(xì)的介紹,最后的部分則詳細(xì)描述了了軟件仿真及調(diào)試過(guò)程。</p><p> 本電子鐘設(shè)計(jì)是以單片機(jī)技術(shù)為核心,采用了中小規(guī)模集成度的單片機(jī)制作的功能較為完善的電子鬧鐘。硬件設(shè)計(jì)應(yīng)用了成熟的數(shù)字鐘電路的基本設(shè)計(jì)方法以,并詳細(xì)介紹了系統(tǒng)的工作原理。硬件電路中使用了除A
5、T89C51外,另外還有LCD、晶振、電阻、電容、發(fā)光二極管、開(kāi)關(guān)、喇叭等元件。在硬件電路的基礎(chǔ)上,軟件設(shè)計(jì)按照系統(tǒng)設(shè)計(jì)功能的要求,運(yùn)用所學(xué)的匯編語(yǔ)言,實(shí)現(xiàn)的功能包括‘時(shí)時(shí)-分分-秒秒’顯示、設(shè)定和修改定時(shí)時(shí)間的小時(shí)和分鐘、校正時(shí)鐘時(shí)間的小時(shí)、分鐘和秒、定時(shí)時(shí)間到能發(fā)出一分鐘的報(bào)警聲。最后應(yīng)用‘偉?!啊甈roteus’等軟件將硬件電路和軟件系統(tǒng)鏈接在一起對(duì)各個(gè)部分及整體進(jìn)行仿真并調(diào)試構(gòu)成了整個(gè)完整的電子鬧鐘的設(shè)計(jì)。</p>
6、<p> 最后通過(guò)反復(fù)的實(shí)際仿真和測(cè)試表明,該系統(tǒng)能夠?qū)崿F(xiàn)所有要求的功能包括:(1)能顯示‘時(shí)時(shí)-分分-秒秒’。(2)能夠設(shè)定定時(shí)時(shí)間、修改定時(shí)時(shí)間及時(shí)鐘。(3)定時(shí)時(shí)間到蜂鳴器能發(fā)出鈴聲,另外還在此基礎(chǔ)上實(shí)現(xiàn)了其他的附加功能比如萬(wàn)年歷。當(dāng)然這個(gè)系統(tǒng)仍然是屬于比較簡(jiǎn)單的單片機(jī)應(yīng)用系統(tǒng),要設(shè)計(jì)功能更強(qiáng)的更復(fù)雜的系統(tǒng)還需要我進(jìn)一步的學(xué)習(xí)。</p><p><b> 目 錄</b>
7、;</p><p><b> 1 概述3</b></p><p> 1.1單片機(jī)技術(shù)和數(shù)字鐘簡(jiǎn)介3</p><p> 1.2設(shè)計(jì)本電子鬧鐘的目的3</p><p> 1.3本LCD電子鐘的功能及特點(diǎn)介紹3</p><p> 1.3.1設(shè)計(jì)特點(diǎn)3</p><p
8、> 1.3.2本LCD電子鬧鐘的主要功能3</p><p> 2 系統(tǒng)總體方案及硬件設(shè)計(jì)4</p><p> 2.1總體方案設(shè)計(jì)4</p><p> 2.2硬件電路的設(shè)計(jì)4</p><p> 2.2.1電路總體概念圖設(shè)計(jì)5</p><p> 2.2.2主控制芯片 AT89C517</
9、p><p> 2.2.3 LCD顯示電路7</p><p> 2.2.4 喇叭部分的電路10</p><p><b> 3 軟件設(shè)計(jì)10</b></p><p> 3.1軟件設(shè)計(jì)概述10</p><p> 3.2主函數(shù)的設(shè)計(jì)11</p><p> 3.3
10、部分設(shè)計(jì)思想的說(shuō)明12</p><p> 3.3.1程序初始化12</p><p> 3.3.2 鬧鐘的實(shí)現(xiàn)13</p><p> 3.3.3顯示程序13</p><p> 4 Proteus軟件仿真14</p><p> 5課程設(shè)計(jì)體會(huì)16</p><p><b&g
11、t; 附錄17</b></p><p> 附1 源程序代碼17</p><p> 附2 系統(tǒng)原理圖28</p><p><b> 1 概述</b></p><p> 1.1單片機(jī)技術(shù)和數(shù)字鐘簡(jiǎn)介</p><p> 單片機(jī)是單片微型計(jì)算機(jī)的簡(jiǎn)稱,它是一種特殊的計(jì)算
12、機(jī)。它特別適合于控制領(lǐng)域,故又稱為微控制器MCU(micro control unit). 采用了嵌入系統(tǒng),通常由單塊集成電路芯片組成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器CPU,存儲(chǔ)器和I/O接口電路等。單片機(jī)集成度高、功能強(qiáng)、通用性好,而且體積小、重量輕、能耗、低價(jià)格便宜,只要和適當(dāng)?shù)能浖坝布O(shè)備相結(jié)合,便可成為一個(gè)獨(dú)立的單片機(jī)控制的功能系統(tǒng),單片機(jī)也成為目前測(cè)量控制應(yīng)用系統(tǒng)的優(yōu)選機(jī)種和新電子產(chǎn)品的關(guān)鍵部件。 目前
13、,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢(shì)將是進(jìn)一步向著CMOS化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面發(fā)展。單片機(jī)應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過(guò)軟件方法來(lái)實(shí)現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),和傳統(tǒng)控制技術(shù)相比有革命性的進(jìn)步。</p><p> 時(shí)鐘是將小時(shí)、分種
14、、秒種顯示于人的肉眼的計(jì)時(shí)裝置。而單片機(jī)模塊中最常見(jiàn)的正是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性,且無(wú)機(jī)械裝置,具有更更長(zhǎng)的使用壽命,因此得到了廣泛的使用。而LCD電子定時(shí)鬧鐘是以單片機(jī)為基礎(chǔ)的數(shù)字電路實(shí)現(xiàn)對(duì)小時(shí)、分鐘、秒的數(shù)字顯示的數(shù)字計(jì)時(shí)裝置,它的計(jì)時(shí)周期為24小時(shí),另外應(yīng)有校時(shí)功能和一些顯示日期、鬧鐘等附加功能。一個(gè)基本的數(shù)字鐘電路主要由譯碼顯示器、“時(shí)”,“分”,“秒
15、”,“星期”計(jì)數(shù)器、校時(shí)電路、報(bào)時(shí)電路和振蕩器組成。目前電子種廣泛用于各種私人和公眾場(chǎng)合,成為我們生活工作學(xué)習(xí)中不可缺少的好幫手。</p><p> 由于時(shí)鐘的實(shí)用性和在人們生活中的重要性,所以嘗試設(shè)計(jì)以單片機(jī)為核心的數(shù)字時(shí)鐘是很有意義的。鐘表原先的報(bào)時(shí)功能已經(jīng)原不能滿足人們?nèi)找嬖鲩L(zhǎng)的要求,現(xiàn)代的電子時(shí)鐘多帶有類似自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路燈、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的
16、自動(dòng)啟用等功能,本設(shè)計(jì)中LCD電子時(shí)鐘采用LCD顯示時(shí)間和日期年月,直觀實(shí)用,而且可以方便的校調(diào),附帶的萬(wàn)年歷和定時(shí)功能也是很方便和實(shí)用的.</p><p> 1.2設(shè)計(jì)本電子定時(shí)鬧鐘的目的</p><p> ?、?gòu)?fù)習(xí)和鞏固所學(xué)過(guò)的知識(shí),利用此課程設(shè)計(jì)正好可以對(duì)所學(xué)習(xí)過(guò)的知識(shí)進(jìn)行系統(tǒng)的回顧和總結(jié)</p><p> ?、谕卣怪R(shí)面,課堂的知識(shí)是遠(yuǎn)遠(yuǎn)滿足不了設(shè)計(jì)的要求
17、的,這就需要我們?nèi)ブ鲃?dòng)找尋更多的資料,了解更多的知識(shí).</p><p> ?、叟囵B(yǎng)了設(shè)計(jì)能力和解決實(shí)際實(shí)際問(wèn)題的能力,同時(shí)增強(qiáng)了 </p><p> 自學(xué)能力,通過(guò)設(shè)計(jì)完整的單片機(jī)系統(tǒng)也初步掌握了組成系統(tǒng)、編程、調(diào)試等能力。</p><p> ?、芡ㄟ^(guò)本LCD電子種的設(shè)計(jì)初步了解了單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)研制過(guò)程,軟件和硬件設(shè)計(jì)的方法.</p><
18、;p> 1.3本LCD電子鬧鐘的功能和特點(diǎn)介紹</p><p><b> 1.3.1設(shè)計(jì)特點(diǎn)</b></p><p> 本LCD電子定時(shí)鬧鐘是一種種基于單片機(jī)技術(shù)的多功能、多用途的電子產(chǎn)品,有電子時(shí)鐘、日期顯示、定時(shí)鬧鈴等多種功能。本設(shè)計(jì)產(chǎn)品性能卓越,功能豐富,采用LCD顯示更加直觀,是一個(gè)比較實(shí)用的電子產(chǎn)品.</p><p>
19、1.3.2本電子鐘的主要功能</p><p> ?。?)可以顯示24小時(shí)制“時(shí)時(shí)-分分-秒秒”,LCD顯示。</p><p> ?。?)可以顯示日期 具有萬(wàn)年歷功能</p><p> ?。?)可以方便的設(shè)定定時(shí)時(shí)間、修改定時(shí)時(shí)間,鬧鈴功能,預(yù)設(shè)定時(shí)時(shí)間到將發(fā)出鬧鈴聲.</p><p> (4)能夠修改時(shí)鐘時(shí)間的時(shí)、分、秒,能夠修改日期的年月
20、日.</p><p> 2 系統(tǒng)總體方案及硬件設(shè)計(jì)</p><p><b> 2.1總體方案設(shè)計(jì)</b></p><p> 本LCD電子定時(shí)數(shù)字鬧鐘,是以單片機(jī)及外圍接口電路作為核心硬件,輔以外圍硬件電路,用匯編語(yǔ)言設(shè)計(jì)的程序來(lái)設(shè)計(jì)并實(shí)現(xiàn)的。根據(jù)C51單片機(jī)的外圍接口特點(diǎn)擴(kuò)展成相應(yīng)的硬件電路,然后根據(jù)單片機(jī)的指令設(shè)計(jì)出數(shù)字鐘相應(yīng)的軟件,
21、再利用軟件來(lái)執(zhí)行一定的程序?qū)崿F(xiàn)數(shù)字鐘的功能。之所以用單片機(jī)來(lái)制作電子鐘,是因?yàn)檫@樣在設(shè)計(jì)制作簡(jiǎn)單而且功能多、精確度高,也可方便的擴(kuò)充其他功能,淡然實(shí)現(xiàn)也十分簡(jiǎn)單。</p><p> 本設(shè)計(jì)是利用AT89C51單片機(jī)為主控芯片,由七段數(shù)碼管、晶振、電阻、電容、發(fā)光二極管、開(kāi)關(guān)、喇叭等元件組成硬件電路,通過(guò)編寫(xiě)軟件程序來(lái)實(shí)現(xiàn)和控制的數(shù)字定時(shí)鬧鐘。</p><p><b> 2.2
22、硬件設(shè)計(jì)</b></p><p> 2.2. 1電路總體概念圖設(shè)計(jì)</p><p> 總體的硬件系統(tǒng)結(jié)構(gòu)框圖如下圖所示,由于LED的顯示效果比較差因此選用了更先進(jìn)的LCD:</p><p> 圖1:硬件電路概念示意圖</p><p> 圖2:硬件電路概念圖</p><p> 2.2.2主控芯片A
23、T98C51</p><p> 單片機(jī)是20世紀(jì)70年代中期發(fā)展起來(lái)的一種大規(guī)模集成電路器件。它在一塊芯片內(nèi)集成了計(jì)算機(jī)的各種功能部件,構(gòu)成一種單片式的微型計(jì)算機(jī)。20世紀(jì)80年代以來(lái),國(guó)際上單片機(jī)的發(fā)展迅速,其產(chǎn)品之多令人目不暇接,單片機(jī)應(yīng)用不斷深入,新技術(shù)層出不窮。在我們?nèi)粘W(xué)習(xí)和生活中,常見(jiàn)的有51系列、52系列、PIC系列等。其中51系列的單片機(jī)的模塊化結(jié)構(gòu)比較典型、應(yīng)用靈活,為許多大公司和個(gè)人所采納。
24、</p><p> 在本LCD電子鬧鐘設(shè)計(jì)中就是采用利用我們熟悉的AT89C51單片機(jī)為主控芯片。AT89C51單片機(jī)由微處理器,存儲(chǔ)器,I/O口以及特殊功能寄存器SFR等部分構(gòu)成。其存儲(chǔ)器在物理上設(shè)計(jì)成程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器兩個(gè)獨(dú)立的空間,片內(nèi)程序存儲(chǔ)器的容量為4KB,片內(nèi)數(shù)據(jù)存儲(chǔ)器為128個(gè)字節(jié)。89C51單片機(jī)有4個(gè)8位的并行I/O口:P0口,P1口,P2口和P3口。各個(gè)接口均由接口鎖存器,輸出驅(qū)動(dòng)器,和
25、輸入緩沖器組成。P1口是唯一的單功能口,僅能用作通用的數(shù)據(jù)輸入/輸出口。P3口是雙功能口除了具有數(shù)據(jù)輸入/輸出功能外,每條接口還具有不同的第二功能,如P3.0是串行輸入口線,P3.1口是串行輸出口線。在需要外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器擴(kuò)展時(shí),P0可作為分時(shí)復(fù)用的低8位地址/數(shù)據(jù)總線,P2口可作為高8位的地址總線。P3口也可作為AT89C51的一些特殊功能口,同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào).</p><p>
26、; 各口管腳的備選功能如下所示: P3.0 RXD(串行輸入口); P3.1 TXD(串行輸出口); P3.2 /INT0(外部中斷0); P3.3 /INT1(外部中斷1); P3.4 T0(記時(shí)器0外部輸入); P3.5 T1(記時(shí)器1外部輸入);</p><p> P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通); P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)
27、?! ST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。 /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)?! TAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入; XT
28、AL2:來(lái)自反向振蕩器的輸出。</p><p> AT89C51單片機(jī)由微處理器,存儲(chǔ)器,I/O口以及特殊功能寄存器SFR等部分構(gòu)成。其存儲(chǔ)器在物理上設(shè)計(jì)成程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器兩個(gè)獨(dú)立的空間,片內(nèi)程序存儲(chǔ)器的容量為4KB,片內(nèi)數(shù)據(jù)存儲(chǔ)器為128個(gè)字節(jié)。89C51單片機(jī)有4個(gè)8位的并行I/O口:P0口,P1口,P2口和P3口。各個(gè)接口均由接口鎖存器,輸出驅(qū)動(dòng)器,和輸入緩沖器組成。P1口是唯一的單功能口,僅能用作
29、通用的數(shù)據(jù)輸入/輸出口。P3口是雙功能口除了具有數(shù)據(jù)輸入/輸出功能外,每條接口還具有不同的第二功能,如P3.0是串行輸入口線,P3.1口是串行輸出口線。在需要外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器擴(kuò)展時(shí),P0可作為分時(shí)復(fù)用的低8位地址/數(shù)據(jù)總線,P2口可作為高8位的地址總線。P3口也可作為AT89C51的一些特殊功能口,同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。</p><p> AT89C51單片機(jī)的封裝及管腳分布如圖一
30、:</p><p> 圖3、AT89C51單片機(jī)封裝及管腳分布圖</p><p> 2.2.2 時(shí)鐘電路部分</p><p> 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í)鐘電路在
31、計(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í)間。</p><p> 本LCD電子鬧鐘設(shè)計(jì)是采用內(nèi)部時(shí)鐘方式,用一個(gè)12MHz晶振和兩個(gè)30Pf瓷片電容組成,為單片機(jī)提供標(biāo)準(zhǔn)時(shí)鐘,其中兩個(gè)瓷片電容起微調(diào)作用.其電
32、路圖如下:</p><p><b> 圖4: 時(shí)鐘電路</b></p><p> 之所以采用高性能的振蕩電路,因?yàn)椋?lt;/p><p> 1. 單片機(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)確性
33、。 </p><p> 2. 單片機(jī)電 子鐘利用內(nèi)部定時(shí)/計(jì)數(shù)器溢出產(chǎn)生中斷(12M晶振一般為50ms)再乘以相應(yīng)的倍率來(lái)實(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ī)器周期。 &
34、#160; </p><p> 2.2.3 LCD顯示電路部分</p><p> 為了獲得更好的效果本設(shè)計(jì)并沒(méi)有采用常見(jiàn)的LED,而是采用了型號(hào)為L(zhǎng)M016L的 LCD。LCD有LED數(shù)碼顯示更好的更的直觀效果,也更加經(jīng)久耐用。液晶顯示模塊體積小功耗低、顯示內(nèi)容豐富,現(xiàn)在字符型液晶顯示模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的信息顯示器件之一了。本LCD是2行16列液晶 可顯示2行
35、16列英文字符,有8位數(shù)據(jù)總線D0-D7,RS,R/W,EN三個(gè)控制端口(共14線),工作電壓為5V。沒(méi)背光,和常用的1602B功能和引腳一樣(除了調(diào)背光的二個(gè)線腳). 該模塊也可以只用D4-D7作為四位數(shù)據(jù)分兩次傳送。這樣的話可以節(jié)省MCU的I/O口資源。</p><p> 圖5: LM016L LCD</p><p><b> 引腳說(shuō)明:</b></p
36、><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è)10K的電位器來(lái)調(diào)整對(duì)比度,或者直接串接一個(gè)電阻到地;</p><p> RS:MCU寫(xiě)入數(shù)據(jù)或者指令選擇端。MCU要寫(xiě)入指令時(shí),使RS為低
37、電平;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ā)模塊。</p><p> D0-D7:8位數(shù)據(jù)總線,三態(tài)雙向。如果MCU的I/O口資源緊張的話,該模塊也可以只使用4位數(shù)據(jù)線D4-D7接口傳送數(shù)據(jù)。本
38、充電器就是采用4位數(shù)據(jù)傳送方式;</p><p> BLA: LED背光正極。需要背光時(shí),BLA串接一個(gè)限流電阻接VDD,BLK接地,實(shí)測(cè)該模塊的背光電流為50mA左右;</p><p> BLK: LED背光地端。</p><p> 2.2.4喇叭部分的電路</p><p> 揚(yáng)聲器的電路部分比較簡(jiǎn)單,如圖,通過(guò)單片機(jī)發(fā)出的控制信號(hào)
39、經(jīng)過(guò)簡(jiǎn)單的放大和處理后直接控制LS1喇叭。</p><p> 圖6: SPEAKER部分電路圖</p><p> 其中2N5088的參數(shù)為:類型:NPN集電極-發(fā)射集最小雪崩電壓Vceo(V):30集電極最大電流Ic(max)(mA):0.050直流電流增益hFE最小值(dB):350直流電流增益hFE最大值(dB):-最小電流增益帶寬乘積Ft(MHz):50封裝/溫度(
40、℃):TO92/-55~150</p><p> 采用2N5088將獲得更好更純凈的聲音信號(hào)LS1是經(jīng)典常見(jiàn)的喇叭.。</p><p><b> 3 軟件設(shè)計(jì)</b></p><p><b> 3.1軟件設(shè)計(jì)概述</b></p><p> 這里用匯編的單片機(jī)程序構(gòu)成了本LCD電子鬧鐘的軟件系
41、統(tǒng)。該程序?qū)崿F(xiàn)時(shí)間及定時(shí)(時(shí)間以0點(diǎn)0分0秒為基準(zhǔn)計(jì)算,鬧鈴定時(shí)以0時(shí)0分為基準(zhǔn)計(jì)算)的顯示,有外中斷0和五個(gè)開(kāi)關(guān)實(shí)現(xiàn)校時(shí),鬧鐘功能。其中程序的晶振頻率為12MHz,最小計(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)。最后經(jīng)
42、過(guò)反復(fù)的修改和實(shí)驗(yàn)最終確定了主程序見(jiàn)附錄1,并附有十分詳細(xì)的注釋.因?yàn)樽⑨屢呀?jīng)詳細(xì)的介紹了軟件設(shè)計(jì)的細(xì)節(jié)過(guò)程下面僅就軟件系統(tǒng)特定的部分進(jìn)行詳細(xì)的說(shuō)明,其他細(xì)節(jié)不再一一詳述,</p><p><b> 3.2主函數(shù)的設(shè)計(jì)</b></p><p> 本LCD電子鬧鐘的的主程序流程圖如圖7所示,。</p><p><b> NO<
43、;/b></p><p><b> Yes</b></p><p><b> Yes</b></p><p> 圖7: 主函數(shù)流程圖1</p><p> 圖8: 主函數(shù)流程圖2</p><p> 3.3 部分設(shè)計(jì)思想的說(shuō)明</p><p&g
44、t; 3.3.1程序初始化</p><p> 在系統(tǒng)開(kāi)始上電時(shí),需要對(duì)C51主芯片和周邊電路進(jìn)行初始化.首先初始化主芯片:</p><p><b> ORG 0000H</b></p><p> LJMP START</p><p><b> ORG 000BH</b></p>
45、<p> LJMP TIMER0</p><p><b> ORG 001BH</b></p><p> LJMP TIMER1</p><p><b> ORG 0100H</b></p><p> START: MOV SP,#60H</p><p&g
46、t; MOV R0,#18H</p><p> MOV A,#00H</p><p> MEM_INI: MOV @R0,A</p><p><b> INC R0</b></p><p> CJNE R0,#5FH,MEM_INI</p><p> 然后就是對(duì)LCD進(jìn)行初始化,具體程
47、序見(jiàn)附錄1</p><p> 3.3.2鬧鐘的實(shí)現(xiàn)</p><p> 鬧鐘功能的實(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)行鬧鈴判別。程序設(shè)計(jì)思想如圖。</p>
48、<p> 圖9:鬧鈴實(shí)現(xiàn)思想流程圖</p><p><b> 3.3.3顯示程序</b></p><p> 顯示程序包括時(shí)鐘顯示和定時(shí)顯示程序。具體程序見(jiàn)附1</p><p> 液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也
49、就是告訴模塊在哪里顯示字符,表3是TC1602EL液晶模塊的內(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>
50、液晶模塊內(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é),供用戶自定義字符。如表1所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固 定的代碼,比如大寫(xiě)的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母
51、“A”。</p><p> 液晶模塊內(nèi)部的控制器共有11條控制指令:</p><p> 指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置 指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H 指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無(wú)效 指令4:顯示開(kāi)關(guān)控制。 D:控制整體顯示的開(kāi)與關(guān)
52、,高電平表示開(kāi)顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開(kāi)與關(guān),高電平表示有光標(biāo),低電平表示無(wú)光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍 指令5:光標(biāo)或顯示移位 S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo) 指令6:功能設(shè)置命令 DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線 N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示 F: 低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符 指令7:字符發(fā)生器RAM地址設(shè)置
53、 指令8:DDRAM地址設(shè)置 指令9:讀忙信號(hào)和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙?! ≈噶?0:寫(xiě)數(shù)據(jù) 指令11:讀數(shù)據(jù)</p><p> 時(shí)鐘顯示和定時(shí)顯示程序都是應(yīng)用動(dòng)態(tài)顯示,即將字形代碼送入字形鎖存器;再將所要顯示的位置代碼送入字位鎖存器鎖存。為防止閃爍,每位顯示時(shí)間都調(diào)用延時(shí)程序進(jìn)行短暫延時(shí),然后顯示另一位。</p>
54、<p> 4 Proteus軟件仿真</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’-‘8031’,晶振頻率欄填12000000(Hz )
55、,然后點(diǎn)擊‘好’完成仿真器設(shè)置。然后點(diǎn)擊偉福E6000主菜單,新建項(xiàng)目,導(dǎo)入上述ASM文件,選擇無(wú)包含文件,保存此項(xiàng)目文件,再雙擊ASM文件打開(kāi) ,然后選擇‘項(xiàng)目’—‘編譯’或按F9,對(duì).asm文件進(jìn)行編譯,編譯順利完成,生成.HEX文件。然后用PROTEUS7.1軟件打開(kāi)設(shè)計(jì)好的硬件系統(tǒng)原理圖DZZ.dsn,雙擊原理圖上的AT89C51單片機(jī)加載DZZ.HEX文件。然后點(diǎn)擊PROTEUS7.1軟件窗口下方的相應(yīng)仿真運(yùn)行按紐進(jìn)行仿真.&
56、lt;/p><p> 經(jīng)過(guò)反復(fù)的防真和調(diào)試,此鬧鐘可以實(shí)現(xiàn)所有的功能,既可以顯示日期時(shí)間,也可以方便的調(diào)整日期和時(shí)間,定鬧鐘的功能也正常.實(shí)際的防真效果截圖如下圖(圖10、圖11),其中圖10是正在調(diào)整定鬧鐘的時(shí)間,圖11是調(diào)整顯示時(shí)鐘的時(shí)間。至此整個(gè)設(shè)計(jì)基本成功的完成.</p><p> 圖10:仿真效果截圖(調(diào)整和顯示定時(shí))</p><p> 圖11:仿真效果
57、截圖(調(diào)整和顯示時(shí)鐘)</p><p><b> 5課程設(shè)計(jì)體會(huì)</b></p><p> 單片機(jī)是計(jì)算機(jī)技術(shù)發(fā)展的產(chǎn)物,是經(jīng)濟(jì)實(shí)用開(kāi)發(fā)簡(jiǎn)便的高科技產(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)用,并提高自己實(shí)際動(dòng)手能力。,</p>&l
58、t;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),提高了自己的動(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í)
59、際的編程以及調(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é)的東西最終是要面向社會(huì),是在以后的工作能夠更好的應(yīng)用,此時(shí)的知識(shí)積累是為以后的工作做好堅(jiān)實(shí)的基礎(chǔ)。這個(gè)設(shè)計(jì)總體上不算完美,但是在這個(gè)課程設(shè)計(jì)的經(jīng)歷的好處是不可估量的。</p><p><b> 參考文
60、獻(xiàn):</b></p><p> [1]余發(fā)山.單片機(jī)原理及應(yīng)用技術(shù).中國(guó)礦業(yè)大學(xué)出版社.</p><p> [2]孫涵芳.MCS-51系列單片機(jī)原理及應(yīng)用[M] .北京:北京航空航天大學(xué)出版社.1996-4[3]王義軍.單片機(jī)原理及應(yīng)用習(xí)題與實(shí)驗(yàn)指導(dǎo)書(shū)[M].北京:中國(guó)電力出版社,2006</p><p> [4]陳明熒.8051單片機(jī)課程設(shè)計(jì)實(shí)
61、訓(xùn)教材[M].北京,清華大學(xué)出版社,2004</p><p> [5]唐前輝、丁明亮. 重慶電專PROTEUS中文入門(mén)教程</p><p> [6]彭小軍.用單片機(jī)實(shí)現(xiàn)電子時(shí)鐘.新余高等??茖W(xué)報(bào),2004</p><p> [7]黃正謹(jǐn).綜合電子設(shè)計(jì)與實(shí)踐.東南大學(xué)出版社.2002-3\</p><p> [8]高峰. 單片機(jī)應(yīng)用系統(tǒng)
62、設(shè)計(jì)及實(shí)用技術(shù),北京機(jī)械工業(yè)出版社,2004</p><p><b> 附1 源程序代碼</b></p><p> /********************************************************************************</p><p> ;按K1鍵,依次進(jìn)入鬧鐘功能,鬧鐘時(shí)間
63、,年,月,日和時(shí),分,秒模式,直致退出設(shè)置狀態(tài) *</p><p> ;按K2鍵,調(diào)整是否起用鬧鐘和調(diào)節(jié)鬧鐘時(shí),分,秒,年,月,日,時(shí)間的時(shí),分,秒的數(shù)字 *</p><p> ;鬧鐘響時(shí),按K2 即可停止鬧鐘的聲響 *</p><p> ;K2和K1需要配合使用</p><p> ;設(shè)置狀態(tài),LCD 上排最前面顯示"P&q
64、uot;,下排最前面設(shè)置鬧鐘時(shí)顯示"alarm:",其他顯示"time:" *</p><p> ;鬧鐘啟用時(shí),在LCD 下排中間顯示一小喇叭,鬧鐘禁用時(shí),無(wú)此小喇叭 *</p><p> ;年代變化2000--2099,星期自動(dòng)轉(zhuǎn)換 *</p><p> ;**************變量的定義************
65、*****</p><p> RS BIT P2.0 ;LCD 數(shù)據(jù)/命令選擇端(H/L)</p><p> RW BIT P2.1 ;LCD讀/寫(xiě)選擇端(H/L)</p><p> EP BIT P2.2 ;LCD 使能控制</p><p> PRE BIT P1.7 ;調(diào)整鍵(K1)</p><p> A
66、DJ BIT P1.6 ;調(diào)整鍵(K2)</p><p> SPK BIT P3.7 ;鬧鐘聲音輸出口</p><p> YEAR DATA 18H ;年,月,日變量</p><p> MONTH DATA 19H</p><p> DATE DATA 1AH</p><p> WEEK DATA 1BH&l
67、t;/p><p> HOUR DATA 1CH ;時(shí),分,秒,百分之一秒變量</p><p> MIN DATA 1DH</p><p> SEC DATA 1EH</p><p> SEC100 DATA 1FH</p><p> HOUR_ARM DATA 20H ;鬧鐘時(shí),分,秒,變量</p>
68、<p> MIN_ARM DATA 21H</p><p> SEC_ARM DATA 22H</p><p> STATE DATA 23H</p><p> ALARM BIT STATE.0 ;鬧鐘是否啟用標(biāo)志1--啟用,0--禁止</p><p> LEAP BIT STATE.1 ;是否閏年標(biāo)志1--閏年,0-
69、-平年</p><p> KEY_S DATA 24H ;當(dāng)前掃描鍵值</p><p> KEY_V DATA 25H ;上次掃描鍵值</p><p> DIS_BUF_U0 DATA 26H ;LCD 上排顯示緩沖區(qū)</p><p> DIS_BUF_U1 DATA 27H</p><p> DIS_BUF
70、_U2 DATA 28H</p><p> DIS_BUF_U3 DATA 29H</p><p> DIS_BUF_U4 DATA 2AH</p><p> DIS_BUF_U5 DATA 2BH</p><p> DIS_BUF_U6 DATA 2CH</p><p> DIS_BUF_U7 DATA 2
71、DH</p><p> DIS_BUF_U8 DATA 2EH</p><p> DIS_BUF_U9 DATA 2FH</p><p> DIS_BUF_U10 DATA 30H</p><p> DIS_BUF_U11 DATA 31H</p><p> DIS_BUF_U12 DATA 32H</
72、p><p> DIS_BUF_U13 DATA 33H</p><p> DIS_BUF_U14 DATA 34H</p><p> DIS_BUF_U15 DATA 35H</p><p> DIS_BUF_L0 DATA 36H ;LCD 下排顯示緩沖區(qū)</p><p> DIS_BUF_L1 DATA 37
73、H</p><p> DIS_BUF_L2 DATA 38H</p><p> DIS_BUF_L3 DATA 39H</p><p> DIS_BUF_L4 DATA 3AH</p><p> DIS_BUF_L5 DATA 3BH</p><p> DIS_BUF_L6 DATA 3CH</p>
74、;<p> DIS_BUF_L7 DATA 3DH</p><p> DIS_BUF_L8 DATA 3EH</p><p> DIS_BUF_L9 DATA 3FH</p><p> DIS_BUF_L10 DATA 40H</p><p> DIS_BUF_L11 DATA 41H</p><p
75、> DIS_BUF_L12 DATA 42H</p><p> DIS_BUF_L13 DATA 43H</p><p> DIS_BUF_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
76、-鬧鐘秒</p><p> ;4-年,5-月,6-日,7-時(shí),8-分,9-秒,10-退出調(diào)整。</p><p> DIS_H DATA 47H</p><p> DIS_M DATA 48H</p><p> DIS_S DATA 49H</p><p> DIS_S0 DATA 4AH</p>
77、<p> DIS_S1 DATA 4BH</p><p> DIS_S2 DATA 4CH</p><p> DIS_S3 DATA 4DH</p><p> DIS_S4 DATA 4EH</p><p> DIS_S5 DATA 4FH</p><p> ;**************初始化
78、********************</p><p><b> ORG 0000H</b></p><p> LJMP START</p><p><b> ORG 000BH</b></p><p> LJMP TIMER0</p><p><b>
79、 ORG 001BH</b></p><p> LJMP TIMER1</p><p><b> ORG 0100H</b></p><p> START: MOV SP,#60H</p><p> MOV R0,#18H</p><p> MOV A,#00H</p&
80、gt;<p> MEM_INI: MOV @R0,A</p><p><b> INC R0</b></p><p> CJNE R0,#5FH,MEM_INI</p><p> LCALL DELAY_5ms ;初始化LCD</p><p> MOV R0,#38H ;設(shè)置LCD 為16X2 顯
81、示,5X7 點(diǎn)陣,八位數(shù)據(jù)接口</p><p> LCALL LCD_WCMD</p><p> LCALL DELAY_5ms</p><p> MOV R0,#0CH ;設(shè)置LCD 開(kāi)顯示及光標(biāo)形式(光標(biāo)不閃爍,不顯示"-")</p><p> LCALL LCD_WCMD</p><p&g
82、t; LCALL DELAY_5ms</p><p> MOV R0,#06H ;LCD 顯示光標(biāo)移動(dòng)設(shè)置(光標(biāo)地址指針加1,整屏顯示不移動(dòng))</p><p> LCALL LCD_WCMD</p><p> LCALL DELAY_5ms</p><p> MOV R0,#01H ;清除LCD的顯示內(nèi)容</p>&l
83、t;p> LCALL LCD_WCMD</p><p> LCALL DELAY_5ms</p><p><b> ;第一自定義字符:</b></p><p> MOV R0,#40H</p><p> LCALL lcd_wcmd ;"01 000 000"第1 行地址 (D7D6
84、為地址設(shè)定命令形式 D5D4D3 為字符存放位置</p><p> MOV R0,#1FH</p><p> LCALL lcd_wdat ;"XXX 11111"第1 行數(shù)據(jù)(D7D6D5 為XXX,表示為任意數(shù)(一般用000),</p><p> MOV R0,#41H</p><p> LCALL lcd_w
85、cmd ;"01 000 001"第2 行地址</p><p> MOV R0,#11H</p><p> LCALL lcd_wdat ;"XXX 10001"第2 行數(shù)據(jù)</p><p> MOV R0,#42H</p><p> LCALL lcd_wcmd ;"01 000 0
86、10"第3 行地址</p><p> MOV R0,#15H</p><p> LCALL lcd_wdat ;"XXX 10101"第3 行數(shù)據(jù)</p><p> MOV R0,#43H</p><p> LCALL lcd_wcmd ;"01 000 011"第4 行地址</
87、p><p> MOV R0,#11H</p><p> LCALL lcd_wdat ;"XXX 10001"第4 行數(shù)據(jù)</p><p> MOV R0,#44H</p><p> LCALL lcd_wcmd ;"01 000 100"第5 行地址</p><p> M
88、OV R0,#1FH</p><p> LCALL lcd_wdat ;"XXX 11111"第5 行數(shù)據(jù)</p><p> MOV R0,#45H</p><p> LCALL lcd_wcmd ;"01 000 101"第6 行地址</p><p> MOV R0,#0AH</p>
89、;<p> LCALL lcd_wdat ;"XXX 01010"第6 行數(shù)據(jù)</p><p> MOV R0,#46H</p><p> LCALL lcd_wcmd ;"01 000 110"第7 行地址</p><p> MOV R0,#1FH</p><p> LCALL
90、 lcd_wdat ;"XXX 11111"第7 行數(shù)據(jù)</p><p> MOV R0,#47H</p><p> LCALL lcd_wcmd ;"01 000 111"第8 行地址</p><p> MOV R0,#00H</p><p> LCALL lcd_wdat ;"XX
91、X 00000"第8 行數(shù)據(jù)</p><p> ;第二個(gè)自定義字符:</p><p> MOV R0,#48H</p><p> LCALL lcd_wcmd ;"01 001 000"第1 行地址</p><p> MOV R0,#01H</p><p> LCALL lcd_
92、wdat ;"XXX 00001"第1 行數(shù)據(jù)</p><p> MOV R0,#49H</p><p> LCALL lcd_wcmd ;"01 001 001"第2 行地址</p><p> MOV R0,#1BH</p><p> LCALL lcd_wdat ;"XXX 110
93、11"第2 行數(shù)據(jù)</p><p> MOV R0,#4AH</p><p> LCALL lcd_wcmd ;"01 001 010"第3 行地址</p><p> MOV R0,#1DH</p><p> LCALL lcd_wdat ;"XXX 11101"第3 行數(shù)據(jù)</
94、p><p> MOV R0,#4BH</p><p> LCALL lcd_wcmd ;"01 001 011"第4 行地址</p><p> MOV R0,#19H</p><p> LCALL lcd_wdat ;"XXX 11001"第4 行數(shù)據(jù)</p><p> M
95、OV R0,#4CH</p><p> LCALL lcd_wcmd ;"01 001 100"第5 行地址</p><p> MOV R0,#1DH</p><p> LCALL lcd_wdat ;"XXX 11101"第5 行數(shù)據(jù)</p><p> MOV R0,#4DH</p>
96、;<p> LCALL lcd_wcmd ;"01 001 101"第6 行地址</p><p> MOV R0,#1BH</p><p> LCALL lcd_wdat ;"XXX 11011"第6 行數(shù)據(jù)</p><p> MOV R0,#4EH</p><p> LCALL
97、 lcd_wcmd ;"01 001 110"第7 行地址</p><p> MOV R0,#01H</p><p> LCALL lcd_wdat ;"XXX 00001"第7 行數(shù)據(jù)</p><p> MOV R0,#4FH</p><p> LCALL lcd_wcmd ;"01
98、 001 111"第8 行地址</p><p> MOV R0,#00H</p><p> LCALL lcd_wdat ;"XXX 00000"第8 行數(shù)據(jù)</p><p> MOV YEAR,#5 ;置年初值</p><p> MOV MONTH,#1 ;置月初值</p><p&g
99、t; 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> MOV DIS_S3,#73H ;
100、"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>
101、; LCALL UPDATE_BUF</p><p> LCALL DISPLAY_PRO ;屏顯初始化</p><p> ;*************主程序*********************</p><p> MAIN: MOV IE,#8AH ;CPU 開(kāi)中斷,Timer0,Timer1 開(kāi)中斷</p><p> MOV
102、 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,#00H&
103、lt;/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>&
104、lt;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&
105、lt;/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,#
106、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 MA
107、IN_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 ;ADJ 按鍵按下,調(diào)用PRE 按鍵處理程序</p><p> SJMP MAIN_1</p>
108、<p> ;*************按鍵掃描程序******************</p><p> KEY_SCAN: CLR A</p><p> MOV P1,#0FFH</p><p><b> MOV C,PRE</b></p><p> MOV ACC.1,C</p>
109、<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> ;*********PRE 按鍵處理程序**********
110、*******</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> LCALL LCD_WCMD ;顯示光標(biāo)&q
111、uot;_",整個(gè)光標(biāo)不閃爍</p><p> MOV DIS_S0,#61H ;"a"</p><p> MOV DIS_S1,#6cH ;"l"</p><p> MOV DIS_S2,#61H ;"a"</p><p> MOV DIS_S3,#72H ;&q
112、uot;r"</p><p> 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>&
113、lt;p> MOV DIS_M,MIN_ARM</p><p> MOV DIS_S,SEC_ARM</p><p> LCALL UPDATE_BUF</p><p> LCALL DISPLAY_PRO ;更新屏顯內(nèi)容</p><p> MOV R0,#47H</p><p> LCALL LCD
114、_POS ;使光標(biāo)位于第一個(gè)調(diào)整項(xiàng)下</p><p> JMP KEY_PRE_E</p><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 KE
115、Y_PRE_E</p><p> KEY_PRE_2: CJNE R4,#3,KEY_PRE_3</p><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 R
116、4,#4,KEY_PRE_4</p><p> MOV R0,#4FH</p><p> 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
117、,#74H ;"t"</p><p> MOV DIS_S1,#69H ;"i"</p><p> MOV DIS_S2,#6dH ;"m"</p><p> MOV DIS_S3,#65H ;"e"</p><p> MOV DIS_S4,#3aH ;&
118、quot;:"</p><p> MOV DIS_S5,#20H ;" "</p><p> MOV R1,#50H ;"P"</p><p> MOV DIS_H,HOUR</p><p> MOV DIS_M,MIN</p><p> MOV DIS_S,
119、SEC</p><p> LCALL UPDATE_BUF</p><p> LCALL DISPLAY_PRO ;更新屏顯內(nèi)容</p><p> MOV R0,#05H</p><p> LCALL LCD_POS ;光標(biāo)置年調(diào)整位置</p><p> JMP KEY_PRE_E</p>&l
120、t;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> JMP KEY_PRE_E</p><p> KEY_PRE_6: CJNE R4,#7,KEY_PRE_7</p>
121、;<p> MOV R0,#0bH</p><p> LCALL LCD_POS ;光標(biāo)置日調(diào)整位置</p><p> JMP KEY_PRE_E</p><p> KEY_PRE_7: CJNE R4,#8,KEY_PRE_8</p><p> MOV R0,#49H</p><p> LC
122、ALL 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</p><p> LCALL LCD_POS ;光標(biāo)置分調(diào)整位置</p><p> JMP KE
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)—帶有l(wèi)cd的定時(shí)鬧鐘
- 單片機(jī)課程設(shè)計(jì)--帶有l(wèi)cd顯示的定時(shí)鬧鐘
- 單片機(jī)定時(shí)鬧鐘課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)—定時(shí)鬧鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)—定時(shí)鬧鐘設(shè)計(jì)
- 單片機(jī)定時(shí)鬧鐘課程設(shè)計(jì)
- 定時(shí)鬧鐘—單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---定時(shí)鬧鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--定時(shí)鬧鐘設(shè)計(jì)
- 課程設(shè)計(jì)--單片機(jī)定時(shí)鬧鐘設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)---定時(shí)鬧鐘的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)——定時(shí)鬧鐘的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---定時(shí)鬧鈴lcd
- 單片機(jī)課程設(shè)計(jì)--簡(jiǎn)單定時(shí)鬧鐘系統(tǒng)
- 單片機(jī)課程設(shè)計(jì)--基于51單片機(jī)的定時(shí)鬧鐘設(shè)計(jì)
- 數(shù)字鐘單片機(jī)課程設(shè)計(jì)-- lcd顯示的定時(shí)鬧鐘制作
- 單片機(jī)課程設(shè)計(jì)(電子鬧鐘)
- 基于單片機(jī)的定時(shí)鬧鐘課程設(shè)計(jì)
- c51單片機(jī)課程設(shè)計(jì)定時(shí)鬧鐘
- 單片機(jī)課程設(shè)計(jì)--定時(shí)鬧鐘報(bào)告書(shū)
評(píng)論
0/150
提交評(píng)論