版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 課 程 設(shè) 計 說 明 書</p><p> 課程名稱: 《通信電子線路》 </p><p> 設(shè)計題目: 定時鬧鐘設(shè)計 </p><p> 院 系: 電子信息與電氣工程學(xué)院 </p><p> 學(xué)生姓名: <
2、;/p><p> 學(xué) 號: </p><p> 專業(yè)班級: </p><p> 指導(dǎo)教師: </p><p> 2012年 5月 18 日</p><p>
3、 課 程 設(shè) 計 任 務(wù) 書</p><p><b> 定時鬧鐘設(shè)計</b></p><p> 摘 要:定時鬧鐘設(shè)計主要有硬件部分和軟件部分組成,硬件部分以單片機為核心,在其周圍有電源電路、時鐘電路、復(fù)位電路、驅(qū)動電路和顯示電路組成。軟件部分用匯編語言編程,用keil軟件編譯、調(diào)試。最后用proteus軟件仿真,形成以單片機為樞紐,以程序為動力,使鬧鐘實現(xiàn)功能。
4、</p><p><b> 關(guān)鍵詞:</b></p><p> AT89S52 定時鬧鐘 keil proteus 匯編語言</p><p><b> 目 錄</b></p><p> 1. 設(shè)計背景………………………………………………… 1</p><p
5、> 1.1設(shè)計課題及目的…………………………………………1</p><p> 1.2相關(guān)技術(shù)與應(yīng)用領(lǐng)域…………………………………………1</p><p> 2.設(shè)計方案…………………………………………………………1</p><p> 2.1總體方案……………………………………………………1</p><p> 2.2硬件設(shè)計……
6、…………………………………………………2</p><p> 2.3軟件設(shè)計………………………………………………………7</p><p> 3.方案實施…………………………………………………………8</p><p> 3.1方案流程圖………………………………………………………8</p><p> 3.2 proteus的系統(tǒng)仿真…………
7、…………………………………8</p><p> 4. 結(jié)果與結(jié)論………………………………………………………9</p><p> 4.1 課程設(shè)計結(jié)果……………………………………………………9</p><p> 4.2課程設(shè)計結(jié)論……………………………………………………9</p><p> 5.收獲與致謝…………………………………………
8、………………9</p><p> 6.參考文獻……………………………………………………………10</p><p> 7.附件…………………………………………………………………11</p><p> 7.1系統(tǒng)總體電路圖…………………………………………………11</p><p> 7.2系統(tǒng)實物圖……………………………………………………
9、……11</p><p> 7.3 程序源代碼…………………………………………………………12</p><p> 7.4元器件清單…………………………………………………………16</p><p><b> 1. 設(shè)計背景</b></p><p> 1.1設(shè)計課題及目的</p><p>
10、本課題是以單片機為核心,通過動態(tài)掃面的方式,實現(xiàn)定時鬧鐘功能。單片機即單片微型計算機,是集CPU,RAM,ROM,定時,計數(shù),和多種接口于一體的微控制器,他體積小,成本低,功能強,廣泛應(yīng)用于智能產(chǎn)品和工業(yè)自動化上,AT89S52單片機是各單片機中比較具有代表性的一種。這次課程設(shè)計通過對他的學(xué)習(xí),應(yīng)用,從而達到學(xué)習(xí),設(shè)計,開發(fā)軟硬件的能力.</p><p> 1.2相關(guān)技術(shù)與應(yīng)用領(lǐng)域</p><
11、;p> 電子鬧鐘是采用數(shù)字電路實現(xiàn)對時分秒數(shù)字顯示的機試裝置,廣泛用于個人家庭,車站,碼頭辦公室等公共場所,稱為人們?nèi)粘I钪胁豢扇鄙俚谋匦杵罚捎跀?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠遠超于老式鐘表,中標的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地拓展了鐘表的報時功能。諸如定時自動報警、按時自動打鈴、時間程序自動控制、定時廣播、自動啟閉路燈、定時開關(guān)烘箱、通斷動力設(shè)備、甚至各種定時電氣的自動啟
12、用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。數(shù)字鐘已經(jīng)成為人們?nèi)粘I钪斜夭豢缮俚谋匦杵?,廣泛用于個人家庭、車站、碼頭、辦公室等公共場所,給人們的生活、學(xué)習(xí)、工作、娛樂帶來極大的方便。由于數(shù)字集成電路技術(shù)的發(fā)展和采用了先進的石英技術(shù),使數(shù)字鐘具有走時準確、性能穩(wěn)定、攜帶方便等優(yōu)勢,它還用于計時自動報時及自動控制的領(lǐng)域。因此,研究定時數(shù)字鬧鐘及擴大其應(yīng)用,有著非?,F(xiàn)實的意義。</p><p><b> 2
13、.設(shè)計方案</b></p><p><b> 2.1總體方案</b></p><p><b> 2.1.1方案比較</b></p><p> 方案一:采用數(shù)字電路實現(xiàn)。數(shù)字電子鐘是用數(shù)字集成電路構(gòu)成的,用數(shù)碼管顯示“時”,“分”,“秒”的現(xiàn)代計時裝置。若用數(shù)字電路完成,所設(shè)計的電路相當復(fù)雜,大概需要十幾片
14、數(shù)字集成塊,其功能也主要依賴于數(shù)字電路的各功能模塊的組合來實現(xiàn),焊接的過程比較復(fù)雜,成本也非常高。</p><p> 方案二:用單片機來設(shè)計制作完成,由于其功能的實現(xiàn)主要通過軟件編程來完成,那么就降低了硬件電路的復(fù)雜性,而且其成本也有所降低,另外,使用是單片機作為核心的控制元件,使得電路的可靠性比較高,功能也比較強大,而且可以隨時的更新系統(tǒng),進行不同狀態(tài)的組合。</p><p> 經(jīng)過
15、上面的對比本設(shè)計采用單片機作為設(shè)計的主體</p><p> 本系統(tǒng)采用單片機AT89S52作為本設(shè)計的核心元件,利用7段共陽LED作為顯示器件。接入共陽LED顯示器,可顯示,分鐘,秒,單片機外圍接有定時報警系統(tǒng),定時時間到,揚聲器發(fā)出報警聲,提示預(yù)先設(shè)定時間到。</p><p> 電路有下列部分組成:時鐘電路、復(fù)位電路、控制電路、LED顯示,報警電路,芯片選用AT89S51單片機。&l
16、t;/p><p><b> 系統(tǒng)基本框圖:</b></p><p><b> 圖1系統(tǒng)基本框圖</b></p><p><b> 2.2硬件設(shè)計</b></p><p> 2.2.1 單片機AT89S52</p><p> AT89S52為 ATM
17、EL 所生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flsah存儲器。</p><p> ?。ㄒ唬?、AT89S52主要功能列舉如下:</p><p> 1、擁有靈巧的8位CPU和在系統(tǒng)可編程Flash</p><p> 2、晶片內(nèi)部具時鐘振蕩器(傳統(tǒng)最高工作頻率可至 12MHz)</p><p> 3、內(nèi)部程序存儲
18、器(ROM)為 8KB</p><p> 4、內(nèi)部數(shù)據(jù)存儲器(RAM)為 256字節(jié)</p><p> 5、32 個可編程I/O 口線</p><p> 6、8 個中斷向量源</p><p> 7、三個 16 位定時器/計數(shù)器</p><p> 8、三級加密程序存儲器</p><p>
19、 9、全雙工UART串行通道</p><p> ?。ǘ?、AT89S52各引腳功能介紹:</p><p> 圖2AT89S52管腳圖</p><p> VCC:AT89S52電源正端輸入,接+5V。</p><p><b> VSS:電源地端。</b></p><p> XTAL1:單芯
20、片系統(tǒng)時鐘的反相放大器輸入端。</p><p> XTAL2:系統(tǒng)時鐘的反相放大器輸出端,一般在設(shè)計上只要在 XTAL1 和 XTAL2 上接上一只石英振蕩晶體系統(tǒng)就可以動作了,此外可以在兩引腳與地之間加入一 20PF 的小電容,可以使系統(tǒng)更穩(wěn)定,避免噪聲干擾而死機</p><p> RESET:AT89S52的重置引腳,高電平動作,當要對晶片重置時,只要對此引腳電平提升至高電平并保持
21、兩個機器周期以上的時間,AT89S51便能完成系統(tǒng)重置的各項動作,使得內(nèi)部特殊功能寄存器之內(nèi)容均被設(shè)成已知狀態(tài),并且至地址0000H處開始讀入程序代碼而執(zhí)行程序。</p><p> EA/Vpp:"EA"為英文"External Access"的縮寫,表示存取外部程序代碼之意,低電平動作,也就是說當此引腳接低電平后,系統(tǒng)會取用外部的程序代碼(存于外部EPROM中)來執(zhí)行程
22、序。因此在8031及8032中,EA引腳必須接低電平,因為其內(nèi)部無程序存儲器空間。如果是使用 8751 內(nèi)部程序空間時,此引腳要接成高電平。此外,在將程序代碼燒錄至8751內(nèi)部EPROM時,可以利用此引腳來輸入21V的燒錄高壓(Vpp)。</p><p> ALE/PROG:ALE是英文"Address Latch Enable"的縮寫,表示地址鎖存器啟用信號。AT89S52可以利用這支引腳
23、來觸發(fā)外部的8位鎖存器(如74LS373),將端口0的地址總線(A0~A7)鎖進鎖存器中,因為AT89S52是以多工的方式送出地址及數(shù)據(jù)。平時在程序執(zhí)行時ALE引腳的輸出頻率約是系統(tǒng)工作頻率的1/6,因此可以用來驅(qū)動其他周邊晶片的時基輸入。此外在燒錄8751程序代碼時,此引腳會被當成程序規(guī)劃的特殊功能來使用。</p><p> PSEN:此為"Program Store Enable"的縮寫
24、,其意為程序儲存啟用,當8051被設(shè)成為讀取外部程序代碼工作模式時(EA=0),會送出此信號以便取得程序代碼,通常這支腳是接到EPROM的OE腳。AT89S52可以利用PSEN及RD引腳分別啟用存在外部的RAM與EPROM,使得數(shù)據(jù)存儲器與程序存儲器可以合并在一起而共用64K的定址范圍。</p><p> PORT0(P0.0~P0.7):端口0是一個8位寬的開路汲極(Open Drain)雙向輸出入端口,共有
25、8個位,P0.0表示位0,P0.1表示位1,依此類推。其他三個I/O端口(P1、P2、P3)則不具有此電路組態(tài),而是內(nèi)部有一提升電路,P0在當做I/O用時可以推動8個LS的TTL負載。如果當EA引腳為低電平時(即取用外部程序代碼或數(shù)據(jù)存儲器),P0就以多工方式提供地址總線(A0~A7)及數(shù)據(jù)總線(D0~D7)。設(shè)計者必須外加一鎖存器將端口0送出的地址栓鎖住成為A0~A7,再配合端口2所送出的A8~A15合成一完整的16位地址總線,而定址
26、到64K的外部存儲器空間。</p><p> PORT2(P2.0~P2.7):端口2是具有內(nèi)部提升電路的雙向I/O端口,每一個引腳可以推動4個LS的TTL負載,若將端口2的輸出設(shè)為高電平時,此端口便能當成輸入端口來使用。P2除了當做一般I/O端口使用外,若是在AT89S52擴充外接程序存儲器或數(shù)據(jù)存儲器時,也提供地址總線的高字節(jié)A8~A15,這個時候P2便不能當做I/O來使用了。</p><
27、;p> PORT1(P1.0~P1.7):端口1也是具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個LS TTL負載,同樣地若將端口1的輸出設(shè)為高電平,便是由此端口來輸入數(shù)據(jù)。如果是使用8052或是8032的話,P1.0又當做定時器2的外部脈沖輸入腳,而P1.1可以有T2EX功能,可以做外部中斷輸入的觸發(fā)腳位。</p><p> PORT3(P3.0~P3.7):端口3也具有內(nèi)部提升電路的雙向
28、I/O端口,其輸出緩沖器可以推動4個TTL負載,同時還多工具有其他的額外特殊功能,包括串行通信、外部中斷控制、計時計數(shù)控制及外部數(shù)據(jù)存儲器內(nèi)容的讀取或?qū)懭肟刂频裙δ堋?lt;/p><p><b> 其引腳分配如下:</b></p><p> P3.0:RXD,串行通信輸入。</p><p> P3.1:TXD,串行通信輸出。</p>
29、;<p> P3.2:INT0,外部中斷0輸入。</p><p> P3.3:INT1,外部中斷1輸入。</p><p> P3.4:T0,計時計數(shù)器0輸入。</p><p> P3.5:T1,計時計數(shù)器1輸入。</p><p> P3.6:WR:外部數(shù)據(jù)存儲器的寫入信號。</p><p>
30、P3.7:RD,外部數(shù)據(jù)存儲器的讀取信號。</p><p> RST:復(fù)位輸入。當振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。</p><p> ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出
31、的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。</p><p> /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,
32、這兩次有效的/PSEN信號將不出現(xiàn)。</p><p> /EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p> XTAL1:反向振蕩放大器的輸入及內(nèi)部時
33、鐘工作電路的輸入。</p><p> XTAL2:來自反向振蕩器的輸出。</p><p><b> 2.2.2時鐘電路</b></p><p> 單片機的時,鐘產(chǎn)生方法有兩種:內(nèi)部時鐘方式和外部時鐘方式。本系統(tǒng)中AT89S52單片機采用內(nèi)部時鐘方式。最常用的內(nèi)部時鐘方式是采用外接晶體和電容組成的并聯(lián)諧振回路。震蕩晶體為1.2MHz~12M
34、Hz之間。電容值無嚴格要求,但電容取值對振蕩頻率輸出的穩(wěn)定性、大小和振蕩電路起振速度有少許影響。AT89S52單片機的時鐘電路如圖3所示。</p><p><b> 圖3 時鐘電路</b></p><p> 2.2.3數(shù)碼管顯示電路</p><p> 單片機中通常使用7段LED,LED是發(fā)光二極管顯示器的縮寫。LED顯示器由于結(jié)構(gòu)簡單,價
35、格便宜,體積小,亮度高,電壓低,可靠性高,壽命長,響應(yīng)速度快,顏色鮮艷,配置靈活,與單片機接口方便而得到廣泛使用。</p><p><b> 圖4引腳配置</b></p><p> LED七段數(shù)碼管顯示器由8個發(fā)光二極管組成顯示字符,根據(jù)內(nèi)部發(fā)光二極管的連接形式不同,LED有共陽和共陰極兩種,如上圖4所示:</p><p> 采用高亮共陰
36、型數(shù)位數(shù)碼管,為示區(qū)別,顯示秒的兩個數(shù)碼管個頭較小,另外4個較大。共陰數(shù)碼管接線如下:一般用7個發(fā)光二極管構(gòu)成顯示數(shù)字和符號,另外還用一段發(fā)光二極管顯示小數(shù)點。這種顯示器一般分為兩種,共陰極顯示器是把每個二極管的陰極連在一起,共陽極顯示器是把每個二極管的正端連在一起。一只顯示器是有8個發(fā)光二級管構(gòu)成,當把某段加正向電壓時,則該段所對應(yīng)的筆劃亮,不加正向電壓則暗,為了保護各種不收損壞需要加限流電阻,無論是共陽極顯示器還是共陰極顯示器,它的
37、8段排列順序都是一樣的:A段、B段、C段、D段、E段、F段、G段、和DP段。在單片機中通常使用7段LED。</p><p><b> 2.3軟件設(shè)計</b></p><p> 2.3.1系統(tǒng)軟件設(shè)計</p><p> 該系統(tǒng)軟件主要是有主程序模塊,定時中斷服務(wù)程序,終端等待服務(wù)程序,鍵盤程序,顯示子程序等六大模塊組成,因為匯編語言使用助記
38、符,符號和數(shù)字等來表示指令程序的語言,容易理解和記憶,所以我們用匯編語言來寫程序。</p><p><b> 2.3.2 LED</b></p><p> 七段LED由七個發(fā)光二級管按日字排開,所有發(fā)光二極管的陽極連在一起成共陽極。當采用芯片驅(qū)動時不需要加限流電阻,其他情況下一般應(yīng)用外接限流電阻。動態(tài)顯示電路有顯示快,字型碼封鎖驅(qū)動器,字位鎖存驅(qū)動器三部分組成。&
39、lt;/p><p> 2.3.3蜂鳴報警電路</p><p> 在AT89s52外圍的一個管口上加蜂鳴器,通過軟件與硬件的結(jié)合可實現(xiàn)定時鬧鐘功能。</p><p><b> 2.3.4電源電路</b></p><p> 電源電壓穩(wěn)壓流程方框圖如圖5。</p><p> 圖5電源電壓穩(wěn)壓流程方
40、框圖</p><p> 電源電路如圖6所示,220V交流電經(jīng)過變壓器,再經(jīng)過橋堆2W10整流,然后由電容C6濾波后變?yōu)槊}動比較穩(wěn)定的直流電,最后通過三端穩(wěn)壓器7805輸出穩(wěn)定的5V直流電壓。圖中C5用于抵消輸入線產(chǎn)生的電感效應(yīng),以防止電路產(chǎn)生自激振蕩其容較小,一般小于1μF。電容C4用于消除輸出電壓的高頻噪聲,可取小于1μF的電容,也可取幾微法甚至幾十微法的電容,以便輸出較大的脈動電流。</p>
41、<p><b> 圖6電源電路</b></p><p><b> 3. 方案實施</b></p><p><b> 3.1系統(tǒng)流程圖</b></p><p><b> 圖7程序流程圖</b></p><p> 3.2proteus的系統(tǒng)
42、仿真</p><p><b> 操作過程:</b></p><p> 設(shè)幾個按鍵從上往下為k1,k2,k3,k4。k1與p1.0相連,k2與p1.1相連,k3與p1.2相連,k4與p1.4相連。</p><p> 當需要設(shè)定當前時,按一下k1鍵,進入時間設(shè)定狀態(tài),按一下k2,小時加1,按一下k3,分加1.如此反復(fù)來設(shè)定當前時間。調(diào)好時間后
43、按k4退出當前設(shè)定狀態(tài)。如下圖6:</p><p><b> 4. 結(jié)果與結(jié)論</b></p><p><b> 4.1課程設(shè)計結(jié)果</b></p><p> 經(jīng)過多次的軟件仿真測試,該系統(tǒng)均能夠產(chǎn)生與我們設(shè)計目標相符的結(jié)果。但是在元器件焊接完畢之后,卻不能夠正常的工作,經(jīng)過多方查證,覺得可能是由于電阻電容等器件參數(shù)
44、設(shè)置有誤,導(dǎo)致電源模塊不能夠正常供電。之后我們對電路的原理圖又進行了進一步的分析,更換了幾個電阻和電容之后,定時鬧鐘終于能夠正常工作了。</p><p><b> 4.2課程設(shè)計結(jié)論</b></p><p> 對電路的分析,對元器件參數(shù)的設(shè)置,這些都是影響一件產(chǎn)品能否正常運行的重要指標,有時候理論上成功,并不代表實際生產(chǎn)能夠成功,我們必須進行反復(fù)的、細致的研究。&
45、lt;/p><p><b> 5. 收獲與致謝</b></p><p> 這是我第一次用單片機設(shè)計制作系統(tǒng),在設(shè)計過程中,我對單片機了解進一步加深,學(xué)會了對keil軟件和proteus軟件的使用。</p><p> 程序是整個系統(tǒng)的核心,沒有程序,硬件就無法運行,所以程序成為了我們組重點解決的問題。學(xué)好每一個軟件的使用方法,自己就可以在軟件里
46、做自己想實現(xiàn)的功能。</p><p> 單片機作為我們的主要專業(yè)課之一,雖然在開學(xué)初我們對這門課并沒有什么興趣,覺得那些程序枯燥乏味,但在這次課程設(shè)計后,我發(fā)現(xiàn)自己在一點一滴的努力對單片機的興趣也在逐漸增加,我覺得做單片機課程設(shè)計是十分有意義的,而且是十分必要的,在一度過的大學(xué)時間里,我們大多數(shù)接觸的是專業(yè)課,我們在課堂上掌握的僅僅是專業(yè)課的理論知識,如何去鍛煉我們的實踐能力,如何把我們所學(xué)的專業(yè)基礎(chǔ)理論知識運
47、用到實踐中去呢?我想做課程設(shè)計就為我們提供了良好的實踐平臺。要做好一個課程設(shè)計,就必須做到:在設(shè)計程序之前,對所用單片機的內(nèi)部結(jié)構(gòu)有一個系統(tǒng)的了解,知道該單片機內(nèi)部有哪些資源,要有一個清晰的思路和一個完整的軟件流程圖,再設(shè)計程序時,不要妄想一次就將整個程序設(shè)計好,反復(fù)修改,不斷改進是程序設(shè)計的必經(jīng)之路。</p><p> 回顧此次單片機課程設(shè)計,從理論到實踐的日子這兩個星期了,自己之前對單片機課程學(xué)習(xí)的不夠,最
48、后吃了很大的苦頭,由于之前知識的欠缺導(dǎo)致在本次實習(xí)中,遇到很多問題,程序的編寫,硬件和軟件的設(shè)計。第一星期大家主要是對軟件和硬件的設(shè)計,第二星期,主要負責(zé)元器件的焊接,之前有多焊接的實操,所以進行起來比較上手,出現(xiàn)的問題就是用萬用板時元器件的排版和布局。</p><p> 最后,通過這次的課程設(shè)計使我懂得自己的知識還遠遠不夠,只有不斷的學(xué)習(xí)才能成就一個自我。同時要感謝我們的指導(dǎo)老師郭麗霞老師對我們這兩個星期的指
49、導(dǎo)和講解,也感謝我們的團隊。</p><p><b> 6. 參考文獻</b></p><p> [1] 杜尚豐. CAN總線測控技術(shù)及其應(yīng)用.北京:電子工業(yè)出版社,2007.1</p><p> [2] 杜樹春.單片機C語言和匯編語言混合編程實例詳解.北京:北京航空航天大學(xué)出版社,2006.6</p><p>
50、 [3] 張毅剛·單片機原理及應(yīng)用·北京:高等教育出版社,2009·2</p><p><b> 7. 附件</b></p><p> 7.1系統(tǒng)總體電路圖</p><p><b> 7.2系統(tǒng)實物圖</b></p><p><b> 7.3程序源代碼
51、</b></p><p> ORG 0000H </p><p><b> LJMP MAIN</b></p><p><b> ORG 000BH</b></p><p><b> LJMP TIME</b></p><p>
52、×××××主程序部分×××××</p><p><b> ORG 0100H</b></p><p> MAIN:MOV SP,#50H</p><p> MOV 20H,#00H </p><p> MOV
53、21H,#00H </p><p> MOV 22H,#00H </p><p> MOV 23H,#01H</p><p> MOV 24H,#01H </p><p> MOV 25H,#00H </p><p> MOV 30H,#00H </p><p> MOV 31
54、H,#00H</p><p> MOV 32H,#00H </p><p> MOV 33H,#00H </p><p> MOV 34H,#00H</p><p> MOV 35H,#00H</p><p> MOV 36H,#01H </p><p> MOV 37H,#00H
55、</p><p> MOV 38H,#01H </p><p> MOV 39H,#00H</p><p> MOV TMOD,#01H ;16 位計數(shù)器</p><p> MOV TH0,#03CH ;賦計數(shù)初值</p><p> MOV TL0,#0B0H </p><p> M
56、OV IE,#10000111B </p><p> SETB TR0 ;T0 啟動計數(shù)</p><p> MOV R2,#14H </p><p> MOV P2,#0FFH </p><p> LOOP: LCALL TIMEPRO </p><p> LCALL DISPLAY1 </p>
57、<p> JB P1.0,M1 </p><p> LCALL SETTIME ;調(diào)用設(shè)定時間程序</p><p><b> LJMP LOOP</b></p><p> M1:JB P1.1,M2 </p><p> LCALL SETATIME </p><p>
58、LJMP LOOP </p><p> M2:JB P1.3,M4 </p><p> LCALL LOOKATIME </p><p> M4:LJMP LOOP </p><p> DELAY:MOV R4,#030H </p><p> DL00:MOV R5,#0FFH </p><
59、;p> DL11:MOV R6,#9H </p><p> DL12:DJNZ R6,DL12 </p><p> DJNZ R5,DL11 </p><p> DJNZ R4,DL00 </p><p><b> RET ;</b></p><p> ××&
60、#215;××設(shè)定時間程序×××××</p><p><b> SETTIME:</b></p><p> L0:LCALL DISPLAY1</p><p> MM1: JB P1.1,L1 </p><p> MOV C,P1.1 <
61、/p><p><b> JC MM1 </b></p><p> LCALL DELAY1 ;調(diào)用延時</p><p><b> JC MM1</b></p><p> MSTOP1: MOV C,P1.1</p><p> JNC MSTOP1 ;判斷 P1.1 是
62、否釋放?釋放則繼續(xù) </p><p> LCALL DELAY1 ;調(diào)用延時</p><p> MOV C,P1.1 </p><p> JNC MSTOP1 </p><p><b> INC 22H </b></p><p> MOV A,22H </p><p&
63、gt; CJNE A,#18H,GO12 </p><p> MOV 22H,#00H </p><p> MOV 34H,#00H </p><p> MOV 35H,#00H </p><p><b> LJMP L0 </b></p><p> L1:JB P1.2,L2 <
64、;/p><p> MOV C,P1.2 </p><p><b> JC L1 </b></p><p> LCALL DELAY1 </p><p><b> JC L1 </b></p><p> MSTOP2: MOV C,P1.2 </p><
65、;p> JNC MSTOP2;判斷 P1.2 是否釋放?釋放則繼續(xù)</p><p> LCALL DELAY1 ;調(diào)用延時</p><p> MOV C,P1.2 </p><p> JNC MSTOP2 </p><p><b> INC 21H </b></p><p> M
66、OV A,21H </p><p> CJNE A,#3CH,GO11 </p><p> MOV 21H,#00H </p><p> MOV 32H,#00H </p><p> MOV 33H,#00H </p><p><b> LJMP L0 </b></p>&
67、lt;p> GO11:MOV B,#0AH </p><p><b> DIV AB </b></p><p> MOV 34H,B </p><p> MOV 35H,A </p><p><b> LJMP L0</b></p><p> L2:JB
68、P1.3,L0</p><p> MOV C,P1.3</p><p><b> JC L2</b></p><p> LCALL DELAY1</p><p> MOV C,P1.3 </p><p><b> JC L2</b></p><p
69、> STOP1: MOV C,P1.3 </p><p> JNC STOP1 </p><p> LCALL DELAY1 </p><p> MOV C,P1.3 </p><p> JNC STOP1 </p><p><b> LJMP LOOP</b></p>
70、;<p> ×××××設(shè)置鬧鐘時間×××××</p><p> SETATIME:LCALL DISPLAY2 </p><p> N0:LCALL DISPLAY2 </p><p> MM2: JB P1.2,N1;判斷 P1.2 是否按下?
71、</p><p> MOV C,P1.2 </p><p><b> JC MM2 </b></p><p> LCALL DELAY1 </p><p><b> JC MM2 </b></p><p> MSTOP3: MOV C,P1.2 </p>
72、<p> JNC MSTOP3 </p><p> LCALL DELAY1 </p><p> MOV C,P1.2 </p><p> JNC MSTOP3 </p><p><b> INC 24H </b></p><p> MOV A,24H </p>
73、;<p> CJNE A,#24,GO22 </p><p> MOV 24H,#00H </p><p> MOV 38H,#00H </p><p> MOV 39H,#00H </p><p><b> LJMP N0 </b></p><p> N1:JB P1.
74、0,N2</p><p> MOV C,P1.0 </p><p><b> JC N1 </b></p><p> LCALL DELAY1 </p><p><b> JC N1</b></p><p> MSTOP4: MOV C,P1.0 </p>
75、;<p> JNC MSTOP4 </p><p> LCALL DELAY1 </p><p> MOV C,P1.0 </p><p> JNC MSTOP4 </p><p><b> INC 23H </b></p><p> MOV A,23H </p&g
76、t;<p> CJNE A,#60,GO21 </p><p> MOV 23H,#00H </p><p> MOV 36H,#00H </p><p> MOV 37H,#00H </p><p><b> LJMP N0 </b></p><p><b>
77、 GO21:MOV </b></p><p><b> DIV AB </b></p><p> MOV 36H,B </p><p> MOV 37H,A </p><p><b> LJMP N0 </b></p><p> GO22: MOV B,
78、#0AH ;將 A 中的內(nèi)容分成高低兩部分</p><p><b> DIV AB </b></p><p> MOV 38H,B</p><p> MOV 39H,A</p><p><b> LJMPN0</b></p><p> N2:JB P1.3
79、 ,N0 ;判斷 P1.3 是否按下?</p><p> MOV C,P1.3 </p><p><b> JC N2 </b></p><p> LCALL DELAY1 </p><p> MOV C,P1.3 </p><p><b> JC N2 </b>
80、</p><p> STOP2: MOV C,P1.3 ;判斷 P1.3 是否釋放?</p><p> JNC STOP2 </p><p> LCALL DELAY1</p><p> MOV C,P1.3 </p><p> JNC STOP2 </p><p><b>
81、 LJMP LOOP</b></p><p> TIMEPRO:MOV A,21H </p><p> MOV B,23H </p><p> CJNE A,B,BK </p><p> MOV A,22H </p><p> MOV B,24H </p><p> C
82、JNE A,B,BK </p><p> SETB 25H.0 </p><p> MOV C,25H.0 </p><p><b> JC XX </b></p><p> XX: LCALL TIMEOUT ;調(diào)用時間鬧鐘響應(yīng)程序</p><p><b> BK:RET &
83、lt;/b></p><p><b> TIMEOUT:</b></p><p> X1:LCALL BZ </p><p> LCALL DISPLAY2 </p><p> CLR 25H.0 </p><p> JB P1.3, X1 ;調(diào)用喇叭響應(yīng)程序</p>
84、<p> LCALL DELAY </p><p> CLR 25H.0 </p><p> LJMP DISPLAY1 </p><p> BZ: CLR P3.7 </p><p> MOV R7,#250 </p><p> T2: MOV R6,#124 </p><
85、;p> T3: DJNZ R6,T3</p><p> DJNZ R7,T2 SETB P3.7 </p><p><b> RET </b></p><p> LOOKATIME:LCALL DISPLAY2 </p><p> MM: JB P1.3,LOOKATIME ;判斷按鍵 P1.3 是否按下
86、</p><p> MOV C,P1.3 </p><p><b> JC MM </b></p><p> LCALL DELAY1 </p><p> MOV C,P1.3 </p><p><b> JC MM</b></p><p>
87、<b> STOP3:</b></p><p> MOV C,P1.3 </p><p> JNC STOP3 </p><p> LCALL DELAY1</p><p> MOV C,P1.3 </p><p> JNC STOP3 </p><p><
88、;b> LJMP LOOP</b></p><p> DELAY1: MOV R4,#14H </p><p> DL001: MOV R5,#0FFH </p><p> DL111: DJNZ R5,DL111</p><p> DJNZ R4,DL001</p><p><b&g
89、t; RET</b></p><p> ×××××時間運行程序×××××</p><p> TIME: PUSH ACC </p><p><b> PUSH PSW </b></p><p> MO
90、V TH0,#03CH </p><p> MOV TL0,#0B0H </p><p> DJNZ R2,RET0</p><p> MOV R2,#14H </p><p> MOV A,20H </p><p><b> CLR C </b></p><p>
91、; INC A ;秒鐘自加 1</p><p> CJNE A,#3CH,GO1 ;判斷秒鐘是否到 60 秒?</p><p> MOV 20H,#0 ;到 60 秒復(fù)位</p><p> MOV 30H,#0 </p><p> MOV 31H,#0 </p><p> MOV A,21H <
92、;/p><p> INC A ;分鐘自加 1</p><p> CJNE A,#3CH,GO2 ;判斷分鐘是否到 60 分?</p><p> MOV 21H,#0H ; 到 60 分復(fù)位</p><p> MOV 32H,#0 </p><p> MOV 33H,#0</p><p>
93、; MOV A,22H </p><p> INC A ;時鐘自加 1</p><p> CJNE A,#18H,GO3 ;判斷時鐘是否到 24 時?</p><p> MOV22H,#00H ;到 24 時復(fù)位</p><p> MOV 34H,#0</p><p> MOV 35H,#0</p
94、><p> AJMP RET0 </p><p> GO1: MOV 20H,A</p><p> MOV B,#0AH </p><p><b> DIV AB </b></p><p> MOV 31H,A </p><p> MOV 30H,B<
95、/p><p> AJMP RET0 </p><p> GO2: MOV 21H,A </p><p> MOV B,#0AH</p><p><b> DIV AB </b></p><p> MOV 33H,A </p><p> MOV 32H,B <
96、;/p><p> AJMP RET0 </p><p> GO3: MOV 22H,A </p><p> MOV B,#0AH </p><p> MOV 35H,A </p><p> MOV 34H,B </p><p> AJMP RET0</p><
97、;p> RET0: POP PSW ;恢復(fù)現(xiàn)場</p><p><b> POP ACC </b></p><p><b> RETI</b></p><p> ×××××運行部分×××××</p>
98、<p> DISPLAY1: MOV R0,#30H</p><p> MOV R3,#0FEH </p><p><b> MOV A,R3</b></p><p> PLAY1: MOV P2,A </p><p> MOV A,@R0</p><p> MOV
99、 DPTR,#DSEG1 ;表首地址送 DPTR</p><p> MOVC A,@A+DPTR </p><p><b> MOV P0,A</b></p><p> LCALL DL1 </p><p> MOV P2,#0FFH ;送高電平到 P2</p><p> MOV R
100、L A,R3 </p><p><b> RL A </b></p><p> JNB ACC.6,LD1</p><p><b> INC R0</b></p><p><b> MOVR3,A </b></p><p> LJMP PLA
101、Y1 ;調(diào)用查表程序</p><p><b> LD1: RET</b></p><p> DISPLAY2: PUSH ACC ;現(xiàn)場保護</p><p><b> PUSH PSW </b></p><p> MOV R0,#36H </p><p> MOV
102、 R3,#0FBH </p><p><b> MOV A,R3</b></p><p> PLAY2: MOV P2,A </p><p> MOV A,@R0 </p><p> MOV DPTR,#DSEG1;表首地址送 DPTR</p><p> MOVC A,@A+DPTR
103、;查 ASCII 特碼</p><p> MOV P0,A;查表結(jié)果送 A</p><p><b> LCALL DL1</b></p><p> MOV P2,#0FFH ;送高電平到 P2</p><p> MOV A,R3 </p><p><b> RL A &l
104、t;/b></p><p> JNB ACC.6,LD2</p><p><b> INC R0 </b></p><p> MOV R3, A</p><p> LJMP PLAY2 </p><p> LD2: POP PSW ;恢復(fù)現(xiàn)場</p><p
105、><b> POP ACC</b></p><p><b> RET</b></p><p> ×××××延時時間×××××</p><p> DL1: MOV R7,#02H ;延時時間</p>
106、;<p> DL: MOV R6,#0200H </p><p> DL6: R6,$ </p><p> DJNZ R7,DL</p><p><b> RET </b></p><p> DSEG1:DB 3FH,06H,5BH,4FH,66H </p><p>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設(shè)計—定時鬧鐘設(shè)計
- 單片機課程設(shè)計—定時鬧鐘設(shè)計
- 單片機定時鬧鐘課程設(shè)計
- 定時鬧鐘—單片機課程設(shè)計
- 單片機課程設(shè)計---定時鬧鐘設(shè)計
- 單片機課程設(shè)計--定時鬧鐘設(shè)計
- 課程設(shè)計--單片機定時鬧鐘設(shè)計報告
- 單片機課程設(shè)計---定時鬧鐘的設(shè)計
- 單片機課程設(shè)計——定時鬧鐘的設(shè)計
- 單片機課程設(shè)計--簡單定時鬧鐘系統(tǒng)
- 單片機課程設(shè)計---- lcd電子定時鬧鐘設(shè)計
- 單片機課程設(shè)計--基于51單片機的定時鬧鐘設(shè)計
- 基于單片機的定時鬧鐘課程設(shè)計
- c51單片機課程設(shè)計定時鬧鐘
- 單片機課程設(shè)計—帶有l(wèi)cd的定時鬧鐘
- 單片機課程設(shè)計--定時鬧鐘報告書
- 單片機課程設(shè)計--帶有l(wèi)cd顯示的定時鬧鐘
- 單片機課程設(shè)計(電子鬧鐘)
- 單片機課程設(shè)計--定時插座
- 單片機定時鬧鐘畢業(yè)設(shè)計
評論
0/150
提交評論