版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 單片機(jī)課程設(shè)計(jì)</b></p><p><b> 姓 名:</b></p><p><b> 學(xué) 號(hào): </b></p><p><b> 專業(yè)班級(jí):機(jī)電四班</b></p><p> 一、單片機(jī)原理及應(yīng)用
2、簡介</p><p> 隨著國內(nèi)超大規(guī)模集成電路的出現(xiàn),微處理器及其外圍芯片有了迅速的發(fā)展。集成技術(shù)的最新發(fā)展之一是將CPU和外圍芯片,如程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器、并行、串行I/O口、定時(shí)/計(jì)數(shù)器、中斷控制器及其他控制部件集成在一個(gè)芯片之中,制成單片計(jì)算機(jī)(Single-Chip Microcomputer)。而近年來推出的一些高檔單片機(jī)還包括有許多特殊功能單元,如A/D、D/A轉(zhuǎn)換器、調(diào)制解調(diào)器、通信控制器、鎖
3、相環(huán)、DMA、浮點(diǎn)運(yùn)算單元等。因此,只要外加一些擴(kuò)展電路及必要的通道接口就可以構(gòu)成各種計(jì)算機(jī)應(yīng)用系統(tǒng),如工業(yè)控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、自動(dòng)測(cè)試系統(tǒng)、萬年歷電子表等。</p><p><b> 二、系統(tǒng)硬件設(shè)計(jì)</b></p><p> 8052 是標(biāo)準(zhǔn)的40引腳雙列直插式集成電路芯片,引腳分布請(qǐng)參照----單片機(jī)引腳圖圖1:</p><p>
4、 圖1 8052引腳</p><p> P0.0~P0.7 P0口8位雙向口線(在引腳的39~32號(hào)端子)。</p><p> P1.0~P1.7 P1口8位雙向口線(在引腳的1~8號(hào)端子)。 </p><p> P2.0~P2.7 P2口8位雙向口線(在引腳的21~28號(hào)端子)。</p><p> P3.0~P3.7 P2口8
5、位雙向口線(在引腳的10~17號(hào)端子)。 </p><p> 8052芯片管腳說明:</p><p><b> VCC:供電電壓。</b></p><p> GND:接地。P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。 當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序 數(shù) 據(jù)存儲(chǔ)器,它可以被定
6、義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口 作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部 必 須被拉高。</p><p> P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址
7、接收。 </p><p> P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“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ǔ)器
8、進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。</p><p> P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。</p><p> P3口也可作為AT89C
9、51的一些特殊功能口,如表1所示:</p><p><b> 表1 特殊功能口</b></p><p> P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。</p><p> RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p><p> ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地
10、址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。一般情況下,ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)
11、ALE禁止,置位無效。</p><p> /PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSE N信號(hào)將不出現(xiàn)。</p><p> /EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000 H- FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi) 部 鎖定為R
12、ESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FL ASH 編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p> XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。</p><p> XTAL2:來自反向振蕩器的輸出。 </p><p><b> 三、系統(tǒng)總體方案 </b></p>&
13、lt;p> 我選用的是單片機(jī)(8052)來實(shí)現(xiàn)電子萬年歷的功能。共具備兩個(gè)功能:</p><p> ?。?)顯示年月日及分秒信息</p><p> (2)具有可調(diào)整日期和時(shí)間功能。</p><p> 該電子萬年歷能夠成功實(shí)現(xiàn)時(shí)鐘運(yùn)行,調(diào)整功能,且精確度經(jīng)調(diào)試一天的誤差在2S內(nèi)。</p><p><b> 1微處理器&l
14、t;/b></p><p> 在設(shè)計(jì)過程中我使用12MHZ晶振與單片機(jī)8052相連接,通過軟件編程的方法實(shí)現(xiàn)了以24小時(shí)為一個(gè)周期同時(shí)顯示小時(shí),分鐘和秒的要求,該定時(shí)鬧鐘設(shè)有九個(gè)按鍵,使之具備了校時(shí)、定時(shí)功能。利用單片機(jī)定時(shí)器及計(jì)數(shù)器產(chǎn)生定時(shí)效果通過編程形成數(shù)字鐘效果,再利用數(shù)碼管動(dòng)態(tài)掃描顯示單片機(jī)內(nèi)部處理的數(shù)據(jù)。同時(shí)通過端口讀入當(dāng)前外部控制狀態(tài)來改變程序的不同狀態(tài),實(shí)現(xiàn)不同功能。</p>
15、<p> 在PROTEUS軟件環(huán)境下的8052芯片如圖4所示:</p><p> 圖4 PROTEUS軟件環(huán)境下的8052芯片 </p><p><b> 2顯示電路</b></p><p> 就時(shí)鐘而言,通??刹捎靡壕э@示或數(shù)碼管顯示。由于一般的段式液晶屏,需要專門的驅(qū)動(dòng)電路,而且液晶顯示作為一種被動(dòng)顯示,
16、可視性相對(duì)較差;對(duì)于具有驅(qū)動(dòng)電路和微處理器接口的液晶顯示模塊(字符或點(diǎn)陣),一般多采用并行接口,對(duì)微處理器的接口要求較高,占用資源多。另外,89C2051本身無專門的液晶驅(qū)動(dòng)接口,因此,本設(shè)計(jì)采用點(diǎn)陣式數(shù)碼管顯示,點(diǎn)陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對(duì)于顯示文字比較適合。初始化時(shí),由軟件編寫的指令就集中在顯示功能的設(shè)置上。LGM12641BS1R的指令可帶一個(gè)、兩個(gè)參數(shù),或無參數(shù)。若指令中含有參數(shù),則每條指令執(zhí)行時(shí)均須先送入?yún)?shù),
17、再送入指令代碼。由于狀態(tài)位作用不一樣,因此執(zhí)行不同指令必須檢測(cè)不同狀態(tài)位。液晶顯示模塊LGM12641BS1R如圖5所示:</p><p> 圖5 顯示電路LGM12641BS1R</p><p><b> 3按鍵電路</b></p><p> 由于我設(shè)計(jì)的是電子萬年歷,需要實(shí)現(xiàn)多種功能的顯示,并要能夠切換顯示和調(diào)節(jié)年月日,因此,在設(shè)計(jì)
18、過程中按鍵的設(shè)計(jì)就顯得尤為重要。</p><p> 在設(shè)計(jì)過程中我一共采用了4個(gè)按鍵,盡量在小的空間里實(shí)現(xiàn)最多的功能。其中MODE鍵是年月日與時(shí)間顯示切換鍵,按下一次就能夠更換一次顯示位。在調(diào)整顯示環(huán)境下UP和DONW鍵是顯示調(diào)整位的的加1減1鍵,F(xiàn)UNCTION鍵實(shí)現(xiàn)清零,并提高萬年歷顯示的精確性。按鍵電路如圖6所示:</p><p><b> 圖6 按鍵電路 </
19、b></p><p> 四、硬件電路的總體框圖設(shè)計(jì)</p><p> 該設(shè)計(jì)的硬件電路的總體框圖如圖7所示:</p><p><b> 圖7 總體框圖</b></p><p> 五、硬件電路原理圖設(shè)計(jì)</p><p> 該萬年歷是以單片機(jī)8052為核心來完成的。</p>
20、;<p> 在硬件電路中采用P0口作為6位液晶顯示電路的驅(qū)動(dòng)接口,這是由于P0口輸出驅(qū)動(dòng)電路工作處于開漏狀態(tài),它的驅(qū)動(dòng)能力強(qiáng),故只需外接上拉電阻便可以把LED數(shù)碼管點(diǎn)亮。因?yàn)楣碴幍腖ED數(shù)碼管它的驅(qū)動(dòng)電流是分開的,在單片機(jī)進(jìn)行動(dòng)態(tài)掃描的時(shí)候不會(huì)影響彼此的電流,故該電路中的8位LED數(shù)碼管均用共陽陰極的數(shù)碼管。8位LED數(shù)碼管的位選線分別由相應(yīng)的P2. 0~P2. 5控制,而將其相應(yīng)的段選線并聯(lián)在一起,由一個(gè)8位的I/O口
21、控制,即P0口。P3口與八個(gè)校時(shí)按鍵相連,以成功實(shí)現(xiàn)萬年歷校時(shí)的功能。電路原理圖如圖8所示:</p><p><b> 圖8 硬件電路</b></p><p> 六、主程序流程圖設(shè)計(jì)</p><p> 該設(shè)計(jì)主程序流程圖如圖9所示:</p><p> 圖9 主程序流程圖</p><p&
22、gt; 基本顯示模塊設(shè)計(jì)的重點(diǎn)是由顯示代碼取得相應(yīng)的段碼、顯示段碼數(shù)據(jù)的串行發(fā)送,程序流程如圖1-11所示。其中時(shí)個(gè)位的段碼必須加上小數(shù)點(diǎn),即帶小數(shù)點(diǎn)顯示時(shí)個(gè)位,目的是以小數(shù)點(diǎn)符代替時(shí)間分割符“-”。</p><p> 軟件秒脈沖發(fā)生器其實(shí)質(zhì)是利用了定時(shí)器0的定時(shí)溢出中斷,將它設(shè)定為100ms溢出中斷,則10次中斷的時(shí)間正好為1s。將時(shí)間參數(shù)設(shè)計(jì)為100ms的原因有兩個(gè):</p><p&g
23、t; ?。保└鶕?jù)系統(tǒng)時(shí)鐘主頻為6M的特點(diǎn),16位定時(shí)器最大定時(shí)時(shí)間為65536×2M(M為機(jī)器周期,這里是2μS),即131ms,取整數(shù)100便于計(jì)次數(shù);</p><p> ?。玻┤缛〉奶蹋?0ms,則定時(shí)器頻繁中斷,干擾系統(tǒng)正常運(yùn)行效果。</p><p> 有了秒脈沖發(fā)生器,10次中斷為1s,秒指示燈閃亮1次,秒變量單元加1,60后分變量單元加1,如果為60分則時(shí)變量單元
24、加1。任何一個(gè)變量的變化,則顯示刷新一次(更新)。上述思想的實(shí)現(xiàn)均集成在定時(shí)器0的中斷子程序中。</p><p> 該設(shè)計(jì)顯示模塊流程圖如圖10所示:</p><p> 圖10 基本顯示模塊的程序流程圖</p><p><b> 七、仿真過程</b></p><p> 1、仿真:打開WAVE6000,輸入所
25、編寫的源程序并對(duì)程序進(jìn)行編譯,在軟件的幫助下檢查其中的錯(cuò)誤并進(jìn)行反復(fù)修改,知道編譯正確后運(yùn)行,確保沒有錯(cuò)誤以后對(duì)正確的源程序進(jìn)行保存,保存時(shí)給其命名,以便將來載入程序時(shí)容易找到。</p><p> 2、打開PROTEUS軟件,并出畫單片機(jī)電子萬年歷具體運(yùn)行電路圖。</p><p> 3、檢查所畫電路運(yùn)行圖,確保沒有錯(cuò)誤以后,在PROTEUS下對(duì)原理圖進(jìn)行加載WAVE6000下的源程序。
26、</p><p> 4、加載完成后,單擊電路圖框下的開始按鈕,進(jìn)行仿真,觀察LED數(shù)碼管現(xiàn)實(shí)情況,此時(shí)LED數(shù)碼管開始顯示數(shù)字。調(diào)節(jié)開關(guān)進(jìn)行時(shí)間的調(diào)節(jié)。當(dāng)秒的顯示間隔快與或慢與實(shí)際間隔時(shí),調(diào)節(jié)石英晶體震蕩器的頻率參數(shù),從而使秒的間隔達(dá)到標(biāo)準(zhǔn)。然后檢查電路其它問題,并對(duì)其的各參數(shù)進(jìn)行調(diào)整,使之正確。</p><p><b> 八、仿真結(jié)果</b></p>
27、<p> 通過在WAVE6000下對(duì)源程序的編譯,改正了其中的很多錯(cuò)誤,然后運(yùn)行,保證源程序的正確性。然后按原理圖選擇正確合理的電器元件,畫出正確的電路圖,加載源程序運(yùn)行,順利實(shí)現(xiàn)了單片機(jī)數(shù)字電子鐘的“小時(shí)”、“分鐘”、“秒”的顯示。該電子萬年歷的顯示效果及電子萬年歷時(shí)間和日期的調(diào)節(jié)效果分別如圖12和圖13所示:</p><p> 圖12 電子萬年歷的運(yùn)行效果</p><
28、;p> 圖13 電子萬年歷時(shí)間和日期的調(diào)節(jié)效果</p><p><b> 九、課程設(shè)計(jì)體會(huì)</b></p><p> 通過這一周的課程設(shè)計(jì),我學(xué)到了不少的知識(shí)。把以前沒有學(xué)好的模擬電路的知識(shí)進(jìn)行了補(bǔ)充和加強(qiáng)。這使我受益很大。加深了我對(duì)于單片機(jī)和數(shù)字電路的認(rèn)識(shí),相信在以后的學(xué)習(xí)和工作中碰到這些基礎(chǔ)的元器件我會(huì)更加得心應(yīng)手。通過查閱大量的資料,我獲得了以
29、前在課堂上學(xué)不到的東西,我想這對(duì)于以后的畢業(yè)設(shè)計(jì),或者工作也好,都是很有幫助的。我很認(rèn)真地對(duì)待這個(gè)過程中的每一個(gè)細(xì)節(jié),希望自己能做得更好。希望今后還有這樣的機(jī)會(huì),能夠讓我學(xué)到更多的知識(shí)。在此次的數(shù)字鐘設(shè)計(jì)過程中,更進(jìn)一步地熟悉了芯片的結(jié)構(gòu)及掌握了各芯片的工作原理和其具體的使用方法。</p><p> 在連接六進(jìn)制,十進(jìn)制,六十進(jìn)制的進(jìn)位及十二進(jìn)制的接法中,要求熟悉邏輯電路及其芯片各引腳的功能,那么在電路出錯(cuò)時(shí)便
30、能準(zhǔn)確地找出錯(cuò)誤所在并及時(shí)糾正了。</p><p> 在設(shè)計(jì)電路中,往往是先仿真后連接實(shí)物圖,但有時(shí)候仿真和電路連接并不是完全一致的,例如仿真的連接示意圖中,往往沒有接高電平的16腳或14腳以及接低電平的7腳或8腳,因此在實(shí)際的電路連接中往往容易遺漏。在設(shè)計(jì)電路的連接圖中出錯(cuò)的主要原因都是接線和芯片的接觸不良以及接線的錯(cuò)誤所引起的。</p><p><b> 對(duì)該設(shè)計(jì)的建議:
31、</b></p><p> 此次的電子萬年歷設(shè)計(jì)重在于仿真和接線,雖然能把電路圖接出來,并能正常顯示,但對(duì)于電路本身的原理并不是十分熟悉.總的來說,通過這次的設(shè)計(jì)實(shí)驗(yàn)更進(jìn)一步地增強(qiáng)了實(shí)驗(yàn)的動(dòng)手能力。</p><p> 學(xué)無止境,我們現(xiàn)在所做的一切都還只是一個(gè)開始。</p><p><b> 附1 源程序代碼</b></
32、p><p> #include < reg52.h ></p><p> #include < character.h ></p><p> #include < lcd.h ></p><p> #include < clock.h ></p><p> #inc
33、lude < sensor.h></p><p> #include < calendar.h ></p><p> #include < key.h ></p><p> /*****************************預(yù)定義**************************************/<
34、/p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> /****************************************************************************/</p><p> sb
35、it bell = P2 ^ 0; //定義蜂鳴器端口</p><p> sbit in = P2 ^ 7; //定義紅外檢測(cè)端口</p><p> /*****************************************************************************</p><p> * 名稱: Timer0_Serv
36、ice() inturrupt 1</p><p> * 功能: 中斷服務(wù)程序 整點(diǎn)報(bào)時(shí) 3聲嘟嘟的聲音</p><p><b> * 入口參數(shù):</b></p><p><b> * 出口參數(shù):</b></p><p> **********************************
37、*******************************************/</p><p> void Timer0_Service() interrupt 1</p><p><b> {</b></p><p> static uchar count = 0;</p><p> static u
38、char flag = 0; //記錄鳴叫的次數(shù)</p><p> count = 0;</p><p> TR0 = 0; //關(guān)閉Timer0</p><p> TH0 = 0x3c;</p><p> TL0 = 0XB0; //延時(shí) 50 ms</p><p> TR0 = 1 ;
39、 //啟動(dòng)Timer0</p><p><b> count ++;</b></p><p> if( count == 20 ) //鳴叫 1 秒 </p><p><b> {</b></p><p> bell = ~ bell;</p><p> coun
40、t = 0;</p><p><b> flag ++;</b></p><p><b> } </b></p><p> if( flag == 6 )</p><p><b> {</b></p><p><b> flag =
41、0;</b></p><p> TR0 = 0; //關(guān)閉Timer0</p><p><b> }</b></p><p><b> }</b></p><p> /******************************************************
42、***********************</p><p> * 名稱: Timer2_Servie() interrupt 5</p><p> * 功能: 中斷服務(wù)程序 整點(diǎn)報(bào)時(shí) 一分鐘</p><p><b> * 入口參數(shù): </b></p><p><b> * 出口參數(shù):</b&
43、gt;</p><p> *****************************************************************************/</p><p> void Timer3_Service() interrupt 5</p><p><b> {</b></p><p
44、> static uchar count;</p><p> TF2 = 0; //軟件清除中斷標(biāo)志</p><p><b> count ++;</b></p><p> if( in == 1 )</p><p><b> {</b></p><p>
45、count = 0; //計(jì)算清0</p><p> TR2 = 0; //關(guān)閉Timer2</p><p> bell = 1; //關(guān)閉蜂鳴器</p><p><b> } </b></p><p> if( count == 120 ) // 一分鐘后 關(guān)閉報(bào)警</p><p>&l
46、t;b> {</b></p><p> count = 0; //計(jì)算清0</p><p> TR2 = 0; //關(guān)閉Timer2</p><p> bell = 1; //關(guān)閉蜂鳴器</p><p><b> }</b></p><p><b> } &
47、lt;/b></p><p> /******************************************************************************</p><p> * 函數(shù)名稱:main()</p><p><b> * 功 能:</b></p><p>&
48、lt;b> * 入口參數(shù):</b></p><p><b> * 出口參數(shù):</b></p><p> ******************************************************************************/</p><p> void main( void )&l
49、t;/p><p><b> {</b></p><p> uchar clock_time[7] = { 0x00, 0x00, 0x02, 0x30, 0x06, 0x08 }; //定義時(shí)間變量 秒 分 時(shí) 日 月 年</p><p> uchar alarm_time[2] = { 0, 0}; //鬧鐘設(shè)置 alar
50、m_time[0]: 分鐘 alarm_time[1] :小時(shí)</p><p> uchar temperature[2]; //定義溫度變量 temperature[0] 低8位 temperature[1] 高8位</p><p> Lcd_Initial(); //LCD初始化</p><p> Clock_Initial( cl
51、ock_time ); //時(shí)鐘初試化</p><p> /***********************中斷初始化***************************/</p><p> EA = 1; //開總中斷</p><p> ET0 = 1; //Timer0 開中斷</p><p> ET2 = 1; //Timer
52、2 開中斷</p><p> TMOD = 0x01 ; //Timer0 工作方式 1</p><p> RCAP2H = 0x3c; </p><p> RCAP2L = 0xb0; //Timer2 延時(shí) 50 ms</p><p> while( 1 )</p><p><b> {<
53、/b></p><p> switch( Key_Scan() )</p><p><b> {</b></p><p> case up_array: </p><p><b> {</b></p><p> Key_Idle();</p>
54、<p><b> }</b></p><p> break; </p><p> case down_array: </p><p><b> {</b></p><p> Key_Idle();</p><p><b> }<
55、;/b></p><p> break; </p><p> case clear_array: </p><p><b> { </b></p><p> Key_Idle();</p><p><b> } </b&g
56、t;</p><p><b> break;</b></p><p> case function_array:{</p><p> Key_Function( clock_time, alarm_time );</p><p><b> }</b></p><p>
57、 case null: </p><p><b> {</b></p><p> Clock_Fresh( clock_time ); //時(shí)間刷新</p><p> Lcd_Clock( clock_time ); //時(shí)間顯示</p><p> Sensor_Fresh( temperatur
58、e ); //溫度更新</p><p> Lcd_Temperture( temperature ); //溫度顯示</p><p> Calendar_Convert( 0 , clock_time );</p><p> Week_Convert( 0, clock_time );</p><p><b> //整點(diǎn)報(bào)時(shí)
59、</b></p><p> if( ( * clock_time == 0x59 ) && ( * ( clock_time + 1 ) == 0x59 ) )</p><p><b> {</b></p><p><b> bell = 0;</b></p><p&g
60、t; TR2 = 1; //啟動(dòng)Timer2</p><p><b> }</b></p><p><b> //鬧鐘報(bào)警</b></p><p> if( * alarm_time == * ( clock_time + 1 ) ) //分鐘相吻合</p><p> if( * ( al
61、arm_time + 1 ) == *( clock_time + 2 ) ) //小時(shí)相吻合</p><p><b> {</b></p><p><b> bell = 0;</b></p><p> TR2 = 1; //啟動(dòng)Timer2</p><p><b> }<
62、/b></p><p><b> } </b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }<
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì) (2)
- 單片機(jī)電子萬年歷課程設(shè)計(jì)
- 單片機(jī)電子萬年歷課程設(shè)計(jì)
- 單片機(jī)電子萬年歷課程設(shè)計(jì)
- 單片機(jī)電子萬年歷課程設(shè)計(jì)
- 51單片機(jī)電子萬年歷課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)—電子萬年歷
- 單片機(jī)課程設(shè)計(jì)-電子萬年歷
- 單片機(jī)課程設(shè)計(jì)-- 電子萬年歷
- 單片機(jī)課程設(shè)計(jì)---電子萬年歷設(shè)計(jì)
- 單片機(jī)萬年歷課程設(shè)計(jì) (2)
- 單片機(jī)課程設(shè)計(jì)--萬年歷
- 單片機(jī)萬年歷課程設(shè)計(jì)
- 單片機(jī)萬年歷課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-萬年歷
- 萬年歷單片機(jī)課程設(shè)計(jì)
- 基于51單片機(jī)電子萬年歷
- 萬年歷課程設(shè)計(jì)--萬年歷電子時(shí)鐘
- 電子萬年歷課程設(shè)計(jì) (2)
- 單片機(jī)萬年歷課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論