




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)實(shí)訓(xùn)單片機(jī)課程設(shè)計(jì) -定時(shí)鬧鈴 系別: 電子通信工程系 專業(yè): 應(yīng)用電子技術(shù) 班級: 嵌入式091班 姓名:黃 學(xué)號: 2009080202338 實(shí)訓(xùn)地點(diǎn): 實(shí)訓(xùn)時(shí)間:2011年1月10日至1月14日1.概述1.1 系統(tǒng)的作用本系統(tǒng)是利用stc89c52單片機(jī)結(jié)合6個(gè)七段顯示器以24時(shí)制“時(shí)時(shí)分分秒秒”格式顯示時(shí)間的電子定時(shí)鬧鈴,系統(tǒng)可以設(shè)置2組定時(shí)鬧鈴;當(dāng)定時(shí)鬧鈴時(shí),該電子時(shí)鐘通過蜂鳴器發(fā)出嘀嘀嘀嘀響聲;本系統(tǒng)還具有整點(diǎn)報(bào)時(shí)功能,當(dāng)現(xiàn)在時(shí)間為整點(diǎn)報(bào)時(shí)。還有秒表功能,由于該電子定時(shí)鬧鈴有強(qiáng)大功能可以在多種場合下使用,利用七段顯示器發(fā)光也可以在夜晚和黑暗場合下使用。1.2 系統(tǒng)的功能要求
2、(1)使用6位七段顯示器顯示24時(shí)制時(shí)間。(2)時(shí)間顯示格式為“時(shí)時(shí)分分秒秒”。(3)定時(shí)鬧鈴功能。(4)整點(diǎn)報(bào)時(shí)功能:當(dāng)現(xiàn)在時(shí)間為整點(diǎn)時(shí)響鈴。(5)定時(shí)鬧鈴和現(xiàn)在時(shí)間模式可以互相切換而不影響各自功能。(6)具有4個(gè)按鍵來進(jìn)行功能設(shè)置,可以設(shè)置當(dāng)前時(shí)間、鬧鈴的時(shí)間設(shè)置和秒表開關(guān)設(shè)置。(7)具有秒表計(jì)時(shí)功能(8)調(diào)時(shí)區(qū)域閃爍(9)通過復(fù)位按鍵可以重啟系統(tǒng)。2.系統(tǒng)的硬件設(shè)計(jì)2.1系統(tǒng)的電路原理(1)系統(tǒng)以stc89c52單片機(jī)為本電路的核心元件,通過單片機(jī)的p0.0p0.7引腳和a102j排阻加上拉電壓來驅(qū)動(dòng)七段顯示器段顯示數(shù)字。(2)通過單片機(jī)的p2.2p2.7引腳連接a103j排阻拉升電壓信
3、號,控制共陰極七段顯示器連通接地來循環(huán)點(diǎn)亮6位七段顯示器。(3)在七段顯示器供電的同時(shí)由p0腳驅(qū)動(dòng)顯示不同數(shù)字。根據(jù)人眼的視覺暫留特點(diǎn),調(diào)整延遲時(shí)間使所觀察到時(shí)間數(shù)字是穩(wěn)定的數(shù)字。(4)系統(tǒng)使用了yxdz蜂鳴器,通過單片機(jī)p3.0引腳連接8550pnp三極管推動(dòng)發(fā)聲。(5)電路通過4個(gè)按鍵連接單片機(jī)p1.0p1.3引腳低電平控制系統(tǒng)功能設(shè)置。(6)單片機(jī)的復(fù)位電路,采用傳統(tǒng)上電復(fù)位,通過reset按鍵控制。(7)系統(tǒng)通過一個(gè)發(fā)光二極管指示電路供電是或正常。2.2 電原理圖圖1 控制電路2.3 各控制按鈕控制功能說明系統(tǒng)接通電源后指示燈led亮,程序執(zhí)行后工作,蜂鳴器發(fā)出兩聲響聲,七段顯示器顯示
4、“00 00 00”,表示程序開始執(zhí)行,然后顯示現(xiàn)在時(shí)間,按下操作鍵k1k4動(dòng)作如下:(1)按操作鍵k1,進(jìn)入“設(shè)置現(xiàn)在時(shí)間”模式后,操作鍵功能如下: 操作鍵k1:當(dāng)前區(qū)域加1。 操作鍵k2:當(dāng)前區(qū)域減1。 操作鍵k3:分、時(shí)區(qū)域切換。 操作鍵k4:設(shè)置完成,退出。(2)按操作鍵k2,進(jìn)入“顯示、設(shè)置鬧鈴時(shí)間”模式后,操作鍵功能如下: 操作鍵k1:當(dāng)前鬧鈴區(qū)域加1。 操作鍵k2:當(dāng)前鬧鈴區(qū)域減1。 操作鍵k3:分、時(shí)區(qū)域切換 操作鍵k4:第一次進(jìn)入第二組,第二次為退出。(3)按操作鍵k3:進(jìn)入“秒表”模式后,操作鍵功能如下: 操作鍵k1:啟動(dòng)秒表。 操作鍵k2:停止秒表。 操作鍵k3:清零。
5、操作鍵k4:退出。(4)按操作鍵k4:在響鈴時(shí)關(guān)閉鬧鐘自動(dòng)退出,不是響鈴則進(jìn)入“設(shè)置鬧鈴的開關(guān)”模式后,操作鍵功能如下: 操作鍵k1:啟動(dòng)當(dāng)前鬧鈴。 操作鍵k2:停止當(dāng)前鬧鈴。 操作鍵k3:切換鬧鈴組。 操作鍵k4:設(shè)置完成,退出。(5)按操作鍵reset:復(fù)位鍵,系統(tǒng)重啟。3.軟件設(shè)計(jì)3.1 資源分配表和程序流程圖表一 程序內(nèi)存資源分配表內(nèi)存地址變量名稱作用說明20h存放50毫秒計(jì)時(shí)21h存放0.5秒計(jì)時(shí)22hsecon存放1秒計(jì)時(shí)23hmin存放1分計(jì)時(shí)24hhour存放1小時(shí)計(jì)時(shí)25h用于中斷1(#6h)26h用于顯示中的閃爍27h.0鬧鐘標(biāo)志位27h.1允許響鈴27h.2用于標(biāo)志分、秒
6、(1為秒),鬧鐘功能時(shí)也一樣27h.3鬧鐘總開關(guān)(1為開)27h.4用于閃爍標(biāo)志27h.5用于閃爍27h.6秒表標(biāo)志27h.7兩組鬧鐘的標(biāo)志位,默認(rèn)值為028h-29h用于保存閃爍時(shí)的調(diào)時(shí)區(qū)地址30h-35h存放調(diào)時(shí)區(qū)地址36hdisp用于存放要顯示的首字(例如秒)37h-39h第一組鬧鐘的時(shí)分40hsp棧底50h-52h 秒表53h-55h第二組鬧鐘的時(shí)分56h存放鬧鐘調(diào)分地址57h存放鬧鐘調(diào)時(shí)地址2ah.0鬧鐘組的切換標(biāo)志(默認(rèn)值為0)2ah.1切換(默認(rèn)值為0)2ah.2鬧鐘第二組開關(guān)(默認(rèn)值為0)表二 芯片端口資源分配表芯片端口變量名稱作用說明p1.0k1操作鍵k1p1.1k2操作鍵k
7、2p1.2k3操作鍵k3p1.3k4操作鍵k4p1.7spk壓電喇叭控制信號p0七段顯示器數(shù)數(shù)字形狀控制p2.2控制時(shí)間小時(shí)的十位七段顯示器亮滅p2.3控制時(shí)間小時(shí)的個(gè)位七段顯示器亮滅p2.4控制時(shí)間分鐘的十位七段顯示器亮滅p2.5控制時(shí)間分鐘的個(gè)位七段顯示器亮滅p2.6控制時(shí)間秒鐘的十位七段顯示器亮滅p2.7控制時(shí)間秒鐘的個(gè)位七段顯示器亮滅p3.0bell蜂鳴器p3.1led半秒閃爍p3.2led顯示第一組鬧鐘是否開啟p3.3led顯示第二組鬧鐘是否開啟表三 寄存器資源分配表組寄存器作用說明第0組r0存放秒顯示地址r1顯示首址r2#06hr3#0fehr4#3hr6、r7延時(shí)初始值第1組r0
8、用于keyb、cr5用于中斷圖2主程序控制流程圖初始化定時(shí)器nyy進(jìn)入“設(shè)置鬧鈴的開關(guān)”模式進(jìn)入“秒表”模式y(tǒng)進(jìn)入“顯示、設(shè)置鬧鈴時(shí)間”模式進(jìn)入“設(shè)置現(xiàn)在時(shí)間”模式nn是否按k4鍵?是否按k3鍵?是否按k2鍵?ny是否按k1鍵?掃描顯示器更新時(shí)間,啟動(dòng)定時(shí)器t0初始化變量開始nnnyyyy退出調(diào)時(shí)區(qū)切換當(dāng)前區(qū)減1當(dāng)前區(qū)加1key3key2key4key1更新時(shí)間顯示設(shè)置現(xiàn)在時(shí)間n切換二組鬧鈴第一次更新顯示nnyyyy退出時(shí)分切換當(dāng)前區(qū)減1當(dāng)前區(qū)加1key3key2key4key1轉(zhuǎn)換鬧鈴模式顯示設(shè)置鬧鈴時(shí)間 nnnyyyy退出清零關(guān)閉啟動(dòng)key3key2key4key1秒表顯示秒表顯示key1
9、nnyyyy退出鬧鈴組切換關(guān)當(dāng)前鬧鈴開當(dāng)前鬧鈴key3key2key4鬧鐘正在響關(guān)閉響鈴秒表n中斷程序t0置標(biāo)志位n檢測鬧鈴時(shí)變量變0yy整點(diǎn)報(bào)時(shí)時(shí)變量=24分=0時(shí)加1分變量=60秒=0分加1nyyy清標(biāo)志位21h=2 次數(shù)到檢查鬧鈴開、關(guān)響鈴nnyyyy1yn0n秒變量加1秒變量=60標(biāo)志位21h加1半秒指示燈閃累加器入棧重新載入計(jì)數(shù)初值、定時(shí)器計(jì)數(shù)10次計(jì)時(shí)中斷程序開始計(jì)時(shí)中斷程序結(jié)束將累加器出棧中斷程序t1111000分=60秒=60中斷返回分變量=0秒變量=0分變量加1毫秒變量=0秒變量加110毫秒單元加1毫秒=1000重裝初始值中斷返回106次取反閃爍標(biāo)志01重裝初始值中斷程序1開
10、始用以閃爍、秒表標(biāo)志位3.2 源程序清單本系統(tǒng)程序清單如下:;-;8052 clock with segx6 clock + 2alarm + timer + sw;時(shí)鐘+2鬧鐘+響鈴+秒表;89c52 asm use:keil;-程序功能說明-;-k1:設(shè)置現(xiàn)在時(shí)間; -k1:當(dāng)前單元加1; -k2:當(dāng)前單元減1; -k3:切換單元區(qū); -k4:ok;-k2:顯示和設(shè)置鬧鈴時(shí)間,2個(gè)鬧鈴; -k1:當(dāng)前單元加1; -k2:當(dāng)前單元減1; -k3:切換單元區(qū); -k4:切換鬧鈴組,第二次為ok;-k3:設(shè)置秒表 ; -k1:秒表啟動(dòng); -k2:秒表暫停; -k2:秒表清零; -k4:ok;-k
11、4:設(shè)置鬧鈴開關(guān)(當(dāng)真正鬧鈴時(shí)停掉鬧鐘并退出); -k1:當(dāng)前鬧鈴組開; -k2:當(dāng)前鬧鈴組關(guān); -k3:切換鬧組; -k4:ok;-key1 equ p1.0;調(diào)時(shí)間調(diào)分再調(diào)時(shí)key2 equ p1.1key3 equ p1.2key4 equ p1.3secon equ 22h;時(shí)鐘的秒min equ 23hhour equ 24hdisp equ 36h;顯示的首地址存放bell bit p3.0org 0000h ljmp start org 000bh ljmp t0_intorg 001bhljmp t1_int org 0100hstart: mov 20h,#00hmov 21
12、h,#00h ;0.5秒計(jì)時(shí) mov 22h,#00h ;1秒計(jì)時(shí) mov 23h,#00h ;1分計(jì)時(shí) mov 24h,#00h ;1h計(jì)時(shí)mov 38h,#01h ;鬧鐘分mov 39h,#00h ;鬧鐘時(shí)mov 37h,#101 ;第一組鬧鐘的首字節(jié)顯示-1mov 53h,#102 ;第二組鬧鈴的首字節(jié)顯示”-2“mov 25h,#6h ;中斷1,50ms*6=0.3s閃爍一次 mov tmod,#11hmov tl1,#0b0hmov th1,#3ch mov tl0,#0b0h mov th0,#3ch setb et0setb et1 setb ea setb tr0mov sp,
13、#40h;*主程序*main:mov disp,#seconlcall displaylcall keyalcall keyblcall keyclcall keydsjmp main/*數(shù)碼管顯示*/display:push pswmov psw,#08h;用第二組寄存器mov r0,dispmov r1,#30hmov r4,#03h;秒分時(shí)loop0:mov a,r0mov b,#10div abmov r1,binc r1mov r1,ainc r0inc r1djnz r4,loop0diskey:mov r1,#30h ;顯示緩沖區(qū)首址 mov r2,#06h mov r3,#0f
14、ehclr 27h.5mov 29h,28hplay: mov a,r1 mov dptr,#table movc a,a+dptr;*閃爍用jnb 27h.4,wen;在調(diào)時(shí)時(shí)用作熄滅,1為開mov 26h,amov a,r1cjne a,29h,wen1jb 27h.5,lppc1inc 29hsetb 27h.5lppc1:clr asjmp wenwen1: mov a,26h;*wen: mov p0,amov p2,r3 inc r1 lcall delay mov a,r3 rl amov r3,adjnz r2,playpop pswretdelay: mov r6,#4d1:
15、 mov r7,#250d0: djnz r7,d0 djnz r6,d1 rettable: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h/*中斷t0處理*/t0_int: mov tl0,#0b0h mov th0,#3chpush acc inc 20h mov a,20h cjne a,#10,exitjnb 27h.3,lqq1sjmp lqq2lqq1:jnb 2ah.2,lp0lqq2:jnb 27h.1,lp0;鬧鈴檢查1響cpl belldjnz r5,lp0;響鈴次數(shù)setb bellclr 27h.1lp0: mov 20h
16、,#00h cpl p3.1;半秒led閃爍 inc 21hmov a,21hcjne a,#2,exitsetb bell;關(guān)閉整點(diǎn)報(bào)時(shí) mov 21h,#00hinc secon mov a,seconcjne a,#60,exitsetb 27h.0;鬧鐘檢查標(biāo)志mov secon,#00h inc min mov a,mincjne a,#60,exitcpl bell;整點(diǎn)報(bào)時(shí)啟動(dòng) mov min,#00h inc hour mov a,hourcjne a,#24,exit mov hour,#00hexit: jnb 27h.3,exitq;鬧鈴1組開關(guān)1為開 jnb 27h.0
17、,exitq;鬧鐘檢查mov a,mincjne a,38h,exitqmov a,hourcjne a,39h,exitqsetb 27h.1mov r5,#120exitq:jnb 2ah.2,exit1jnb 27h.0,exit1clr 27h.0mov a,mincjne a,54h,exit1mov a,hourcjne a,55h,exit1setb 27h.1mov r5,#120exit1:pop accreti;*;*key1*keya:jb key1,loop1lcall displaylcall displayjb key1,loop1jnb key1,$clr tr0
18、mov 28h,#32h;從分閃爍setb tr1mov secon,#0hsetb 27h.2mov r0,#min;*lcp0:lcall displayjb key3,lcp1lcall displaylcall displayjnb key3,$cpl 27h.2jb 27h.2,lp1mov r0,#hourmov 28h,#34hsjmp lcp1lp1:mov r0,#minmov 28h,#32hlcp1:jb key1,lcp2lcall displaylcall displayjb key1,lcp2jnb key1,$lcall add1lcp2:jb key2,lcp5
19、lcall displaylcall displayjb key2,lcp5jnb key2,$lcall dec1lcp5:jb key4,lcp0lcall displayjb key4,lcp0jnb key4,$lcall displayjnb key4,$setb tr0clr tr1;退出閃爍clr 27h.4;閃爍的標(biāo)志還原loop1:ret;*key2*keyb:jb key2,loop1lcall displaylcall displayjb key2,loop1jnb key2,$lcall displayjnb key2,$setb tr1clr 2ah.0;鬧鐘組的切換
20、mov 28h,#32h;閃爍單元默認(rèn)為份clr 27h.7;鬧鐘組0為1組mov disp,#37h ;默認(rèn)顯示第一組鬧鈴時(shí)間setb 27h.2;為1時(shí)調(diào)分mov 56h,#38hmov 57h,#39hmov r0,#38h;*qq1:lcall display;鬧鐘的主要顯示jb key3,qq2lcall displaylcall displayjnb key3,$cpl 27h.2jb 27h.2,lq1mov r0,57hmov 28h,#34hsjmp qq2lq1:mov r0,56hmov 28h,#32h;*加1qq2:jb key1,qq3lcall displaylc
21、all displayjb key1,qq3jnb key1,$lcall add1;*減1qq3:jb key2,qq4lcall displaylcall displayjb key2,qq4jnb key2,$lcall dec1qq4:jb key4,qq1lcall displayjb key4,qq1jnb key4,$lcall displayjnb key4,$mov disp,#53hmov 56h,#54hmov 57h,#55hmov r0,56hcpl 2ah.0jb 2ah.0,qq1mov disp,#seconclr 27h.4;退出閃爍clr tr1lpp1:r
22、et;*key3*秒表keyc:jb key3,qinlcall displaylcall displayjb key3,qinmov disp,#50hsetb 27h.6qin4:lcall displayjb key1,qin1lcall displayjb key1,qin1jnb key1,$setb tr1qin1:jb key2,qin2lcall displayjb key2,qin2jnb key2,$clr tr1qin2:jb key3,qin3lcall displayjb key3,qin3jnb key3,$mov 50h,#00hmov 51h,#00hmov 5
23、2h,#00hqin3:jb key4,qin4lcall displayjb key4,qin4jnb key4,$clr 27h.6qin:ret;*key4*keyd:jb key4,ww1lcall displaylcall displayjb key4,ww1jnb key4,$jnb 27h.3,ww6clr 27h.3setb p3.2sjmp ww1ww6:jnb 2ah.2,ww7clr 2ah.2setb p3.3sjmp ww1ww7:clr 2ah.1mov disp,#37h;默認(rèn)顯示第一組鬧鈴時(shí)間ww2:lcall displayjb key1,ww3jnb key1,$jb 2ah.1,wqq1setb 27h.3clr p3.2sjmp ww3wqq1:setb 2ah.2clr p3.3ww3:jb key2,ww4jnb key2,$jb 2ah.1,wqq2clr 27
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江警官職業(yè)學(xué)院《醫(yī)學(xué)信息檢索與利用(4)》2023-2024學(xué)年第二學(xué)期期末試卷
- 甘肅林業(yè)職業(yè)技術(shù)學(xué)院《鐵路旅客運(yùn)輸》2023-2024學(xué)年第二學(xué)期期末試卷
- 乘法-隊(duì)列表演(二)教學(xué)設(shè)計(jì)-2023-2024學(xué)年三年級下冊數(shù)學(xué)北師大版
- 一個(gè)時(shí)代歌者的赤子深情-名著導(dǎo)讀:《艾青詩選》如何讀詩(教學(xué)設(shè)計(jì))九年級語文上冊同步高效課堂(統(tǒng)編版)
- 咸陽師范學(xué)院《專業(yè)新聞與深度報(bào)道》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧何氏醫(yī)學(xué)院《建筑室內(nèi)聲學(xué)設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 成都信息工程大學(xué)《高聚物合成工藝及設(shè)備》2023-2024學(xué)年第二學(xué)期期末試卷
- 泉州輕工職業(yè)學(xué)院《文化學(xué)導(dǎo)論》2023-2024學(xué)年第二學(xué)期期末試卷
- Unit 2 Were Family!Section B 2a-2b 教學(xué)設(shè)計(jì)2024-2025學(xué)年人教版(2024)七年級英語上冊
- 中山大學(xué)《黑白圖像》2023-2024學(xué)年第二學(xué)期期末試卷
- 唐詩中的中醫(yī)藥知識-PPT幻燈片
- 四川省瀘州市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細(xì)
- 《鄒忌諷齊王納諫》課件(共45張)
- 機(jī)械制圖教學(xué)課件(全套)
- 熱能與動(dòng)力工程測試技術(shù)- 液位測量
- 化學(xué)纖維精品課件
- 中式面點(diǎn)師初級(五級)教學(xué)計(jì)劃、大綱
- QC成果構(gòu)造柱澆筑新技術(shù)的研發(fā)創(chuàng)新(附圖)
- 2020 ACLS-PC-SA課前自我測試試題及答案
- BIM技術(shù)應(yīng)用管理辦法
- 信息論與編碼第4章信息率失真函數(shù)
評論
0/150
提交評論