版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課 程 設(shè) 計(jì)</p><p> 課程名稱 單片機(jī)原理及應(yīng)用 </p><p> 課題名稱 課間作息時(shí)間控制器 </p><p> 專 業(yè) 自動(dòng)化 </p><p&
2、gt; 班 級(jí) </p><p> 學(xué) 號(hào) 2011 </p><p> 姓 名 </p><p> 指導(dǎo)教師 </p><p
3、> 2012年 12 月 02 日</p><p> 課 程 設(shè) 計(jì) 任 務(wù) 書</p><p> 課程名稱 單片機(jī)原理及應(yīng)用 </p><p> 課 題 單片機(jī)作息時(shí)間控制器 </p><p> 專業(yè)班級(jí) </p><p>
4、 學(xué)生姓名 </p><p> 學(xué) 號(hào) </p><p> 任務(wù)書下達(dá)日期 2012 年 12 月02 日</p><p> 任務(wù)完成日期 2012年 12 月15 日</p><p><b>
5、目 錄</b></p><p><b> 概述</b></p><p> 1.1課題任務(wù)簡(jiǎn)介........................................................................................1</p><p> 1.2課題設(shè)計(jì)的目的及意義....
6、....................................................................1</p><p> 課題方案設(shè)計(jì).................................................................................2</p><p> 2.1課題方案設(shè)計(jì)........
7、................................................................................2</p><p> 2.2 課題方案簡(jiǎn)要原理...............................................................................2</p><p> 第
8、三章 硬件設(shè)計(jì)........................................................................................3</p><p> 3.1 單片機(jī)芯片選擇...................................................................................4<
9、/p><p> 3.2 電源電路..........................................................................................4</p><p> 3.3 時(shí)鐘電路...................................................................
10、.......................4</p><p> 3.4 復(fù)位電路..........................................................................................4</p><p> 3.5 蜂鳴器輸出電路....................................
11、..........................................5</p><p> 3.7 按鍵輸入電路..................................................................................6</p><p> 3.8 LED數(shù)碼驅(qū)動(dòng)電路.....................
12、....................................................6</p><p> 第四章 軟件設(shè)計(jì).....................................................................................8</p><p> 4.1 主程序的設(shè)計(jì)............
13、........................................................................8</p><p> 4.2 顯示程序的設(shè)計(jì)...............................................................................11</p><p> 4.3 計(jì)
14、時(shí)程序的設(shè)計(jì)...............................................................................11</p><p> 4.4 輔助子程序的設(shè)計(jì)...........................................................................13</p><p&g
15、t; 第五章 系統(tǒng)調(diào)試......................................................................................15</p><p> 5.1 調(diào)試準(zhǔn)備.....................................................................................
16、......15</p><p> 5.2 調(diào)試結(jié)果...........................................................................................15</p><p> 5.2.1 軟件仿真顯示................................................
17、..........................16</p><p> 5.2.2 硬件顯示..................................................................................16.</p><p> 5.3 調(diào)試故障及分析...................................
18、............................................18</p><p> 總結(jié)...............................................................................................19</p><p> 參考文獻(xiàn).........................
19、...............................................................................19</p><p> 附錄................................................................................................................20
20、</p><p><b> 第1章 概述</b></p><p> 1.1 課題任務(wù)簡(jiǎn)介</p><p> 以單片機(jī)為核心,設(shè)計(jì)一個(gè)具有定時(shí)和計(jì)數(shù)功能的智能化作息時(shí)間控制器。該控制要求具有以下功能:</p><p> (1)使用4位七段顯示器來(lái)顯示現(xiàn)在的時(shí)間,顯示格式為“時(shí)分”,時(shí)和分中間的小數(shù)點(diǎn)閃動(dòng)做秒計(jì)
21、數(shù)。</p><p> ?。?)通過(guò)按鍵能夠進(jìn)行時(shí)間校準(zhǔn)。</p><p> ?。?)作息時(shí)間已達(dá),發(fā)出指令控制電鈴開(kāi)、關(guān)操作。</p><p> ?。?)上電初始時(shí)間13:00.然后通過(guò)按鍵設(shè)置當(dāng)前時(shí)間。</p><p> 1.2 課題設(shè)計(jì)的目的及意義</p><p> 應(yīng)用STC90C52RC為核心控制器件
22、的作息時(shí)間控制器,由鍵盤、聲音輸出模塊、電源轉(zhuǎn)換模塊和存儲(chǔ)模塊四部分組成。它利用STC90C52RC的定時(shí)/計(jì)數(shù)器來(lái)計(jì)算時(shí)間,并用存儲(chǔ)器記錄數(shù)據(jù),保證了系統(tǒng)的可靠性。單片機(jī)是整個(gè)設(shè)計(jì)的核心控制器件,根據(jù)從鍵盤接受的數(shù)據(jù)控制整個(gè)系統(tǒng)的工作流程,整體性好,人性化強(qiáng),可靠性高。</p><p> 實(shí)現(xiàn)了對(duì)時(shí)間控制的智能化,擺脫了傳統(tǒng)由人來(lái)控制時(shí)間的長(zhǎng)短不便,可對(duì)一些以24小時(shí)為周期的開(kāi)關(guān)量進(jìn)行自動(dòng)控制。如上下課打鈴及
23、擴(kuò)音設(shè)備的開(kāi)與關(guān)。設(shè)有四位數(shù)碼管可以實(shí)時(shí)顯示時(shí)間、系統(tǒng)還設(shè)有輸入鍵盤,用以修改實(shí)時(shí)時(shí)鐘,體現(xiàn)了系統(tǒng)簡(jiǎn)單、工作穩(wěn)定可靠、價(jià)廉、控制時(shí)間精準(zhǔn)及系統(tǒng)體積小等優(yōu)點(diǎn)。</p><p> 第2章 課題方案設(shè)計(jì) </p><p><b> 2.1課題方案設(shè)計(jì)</b></p><p> 根據(jù)系統(tǒng)的功能要求,擬定系統(tǒng)硬件電路結(jié)構(gòu)由單片機(jī)、電源電路、時(shí)鐘
24、電路、復(fù)位電路、按鍵輸入電路、蜂鳴器模擬電路和LED數(shù)碼管驅(qū)動(dòng)顯示電路。其結(jié)構(gòu)框圖如圖2-1所示。</p><p><b> 圖2-1結(jié)構(gòu)框圖</b></p><p> 2.2 課題方案原理簡(jiǎn)述</p><p> 作息時(shí)間控制器系統(tǒng)使用4位七段顯示器來(lái)顯示現(xiàn)在的時(shí)間,顯示格式為“時(shí)分”,由LED小數(shù)點(diǎn)閃動(dòng)作為秒計(jì)數(shù)表示。可以使用按鍵輸入電
25、路設(shè)定作息時(shí)間。能夠根據(jù)預(yù)先設(shè)定好的作息時(shí)間表自動(dòng)啟停蜂鳴器電路,完成對(duì)外部電路的實(shí)時(shí)控制。</p><p> 由按鍵輸入控制設(shè)置年月日以及當(dāng)前時(shí)間、并可設(shè)置鬧鐘定時(shí)、時(shí)間到由蜂鳴器發(fā)出響聲并作出相應(yīng)動(dòng)作:二極管閃亮,同時(shí)播放音樂(lè)。</p><p> 第3章 硬件設(shè)計(jì)</p><p> 在作息時(shí)間控制器中,硬件設(shè)計(jì)主要是完成單片機(jī)芯片型號(hào)的選擇,電源電路、
26、時(shí)鐘電路和復(fù)位電路、蜂鳴器模擬響鈴電路、按鍵輸入電路和LED數(shù)碼驅(qū)動(dòng)顯示電路的設(shè)計(jì)。</p><p> 3.1 單片機(jī)芯片選擇</p><p> STC90C52RC單片機(jī)的芯片,它具有超強(qiáng)的抗干擾和抗靜電能力、成本低、超低功耗、更強(qiáng)的復(fù)位效果等優(yōu)點(diǎn)。</p><p> 芯片引腳和對(duì)應(yīng)的輸出功能如圖3-1-1和3-1-2所示: <
27、/p><p> 圖3-1-1 芯片引腳圖</p><p> 圖3-1-2 輸出功能圖</p><p> 3.2 電源電路</p><p> 電源電路是任何一個(gè)電子系統(tǒng)都需要供電電路,即電源,單片機(jī)也不例外。單片機(jī)的供電電源可以是開(kāi)關(guān)電源、線性電源、常用的電源裝換芯片和USB電源等。無(wú)論哪一種電源設(shè)計(jì)都要嚴(yán)格考慮它的各項(xiàng)指標(biāo)。在這里
28、選擇的是可調(diào)直流電源適配器,輸出電壓正負(fù)極性可轉(zhuǎn)換,試用范圍廣泛。此單片機(jī)中電源電路由開(kāi)關(guān)按鈕、整流橋、濾波電路和二次整數(shù)及濾波電路組成。</p><p> 3.3 時(shí)鐘電路 </p><p> 本系統(tǒng)采用的是內(nèi)部時(shí)鐘方式。 采用12MHZ的晶振(機(jī)器周期為1us)和兩個(gè)30Pf的電解電容。具體接線圖如圖3-3所示</p><p><b> 圖3-
29、3 時(shí)鐘電路</b></p><p><b> 3.4 復(fù)位電路</b></p><p> 只需要給RST引腳連續(xù)輸入2個(gè)機(jī)器周期以上高電平,就可以完成單片機(jī)的初始化操作。在此次課程設(shè)計(jì)中復(fù)位電路采用的是一個(gè)規(guī)格為1K和一個(gè)規(guī)格為10K的電阻,再加一個(gè)規(guī)格為22uF的電解電容,具體電路連線圖如圖3-4所示。 </p><p>
30、;<b> 圖3-4 復(fù)位電路</b></p><p> 3.5 蜂鳴器模擬響鈴電路</p><p> 將單片機(jī)P3^7口上接入蜂鳴器期間需要放大電路才可驅(qū)動(dòng)蜂鳴器發(fā)出聲。放大電路主要利用具有放大特性的電子元器件:晶體三極管,三極管加上工作電壓后,輸入端的微小電流變化可以引起輸出端較大的電流變化,輸出端的變化要比輸入端的變化很多。電路圖如圖3-5所示:<
31、/p><p> 圖3-5 蜂鳴器模擬電路</p><p> 3.7 按鍵輸入電路 </p><p> 按鍵輸入電路主要實(shí)現(xiàn)對(duì)時(shí)間的設(shè)定,本系統(tǒng)采用四個(gè)獨(dú)立鍵盤,k1鍵是實(shí)現(xiàn)設(shè)定小時(shí)和分鐘設(shè)定的模式切換,k2鍵是對(duì)小時(shí)或者分鐘進(jìn)行加1,k3是對(duì)小時(shí)或者分鐘進(jìn)行減1,K4是對(duì)前三個(gè)的設(shè)置進(jìn)行退出。如圖3-7所示</p><p> 圖3-7
32、按鍵輸入電路</p><p> 3.8 LED數(shù)碼驅(qū)動(dòng)顯示電路</p><p> 該設(shè)計(jì)中采用的是共陽(yáng)極數(shù)碼管,數(shù)碼管由斷碼和位碼組成,由反相器組成驅(qū)動(dòng)電路實(shí)現(xiàn)時(shí)分的顯示功能。a b c d e f g dp 為斷碼分別接入單片機(jī)P0I/O口,位碼W1、W2、W3、W4分別經(jīng)驅(qū)動(dòng)后接入P2.4、P2.5、P2.6 、P2.7。第一個(gè)數(shù)碼管顯示小時(shí)的十位第二個(gè)數(shù)碼管顯示小時(shí)的各位,第
33、三個(gè)數(shù)碼管顯示分鐘的十位,第四個(gè)數(shù)碼管顯示分鐘的各位。中間小數(shù)點(diǎn)閃爍代表秒。電路設(shè)計(jì)如圖3-8所示。</p><p> 圖3-8 LED 數(shù)碼驅(qū)動(dòng)顯示電路</p><p> 第4章 軟件設(shè)計(jì)</p><p> 該控制器的軟件設(shè)計(jì)是用keil軟件用c編程。利用單片機(jī)的定時(shí)中斷進(jìn)行計(jì)時(shí),通過(guò)按鍵掃描來(lái)設(shè)置當(dāng)前時(shí)間。主要包含這些程序段,分別是主程序、顯示子程
34、序和計(jì)時(shí)子程序,此外還包初始化子程序、延時(shí)子程序、時(shí)間顯示輔助程序。以及程序中包含的頭文件和宏定義構(gòu)成了整個(gè)程序的設(shè)計(jì)。</p><p> 4.1 主程序的設(shè)計(jì)</p><p> 主程序中主要的作用是調(diào)用初始化子程序,按鍵掃描和調(diào)用顯示子程序。</p><p><b> 按鍵掃描部分</b></p><p>
35、 Key=1表示選中第一個(gè)按鍵,進(jìn)行小時(shí)和分鐘的設(shè)置,key=1按鍵的次數(shù)進(jìn)行存入X1,當(dāng)X1=1進(jìn)入小時(shí)的設(shè)置,當(dāng)X1=2進(jìn)入分的設(shè)置。當(dāng)X1=3回到初始狀態(tài)。</p><p> Key=2表示選中第2個(gè)按鍵,此時(shí)在key=1的次數(shù)等于1小時(shí)加1調(diào)整設(shè)置,key=1的次數(shù)等于2表示進(jìn)行分鐘加1的調(diào)整設(shè)置。小時(shí)的范圍為0—23,分鐘的范圍為0—59。</p><p> Key=3表示
36、選中第3個(gè)按鍵,此時(shí)在key=1的次數(shù)等于1小時(shí)減1調(diào)整設(shè)置,key=1的次數(shù)等于2表示進(jìn)行分鐘減1的調(diào)整設(shè)置。</p><p> Key=4表示選中第一個(gè)按鍵,當(dāng)執(zhí)行按鍵1、2、3的功能時(shí),均可退出到初始狀態(tài)。</p><p><b> 鬧鈴部分</b></p><p> 以下是學(xué)校課間作息時(shí)間表,依此來(lái)對(duì)程序設(shè)計(jì)進(jìn)行打鈴。</p
37、><p> 表4-1 課間時(shí)間作息表</p><p> 當(dāng)時(shí)間到達(dá)設(shè)置點(diǎn)時(shí),對(duì)鬧鐘標(biāo)志位P3.7置0來(lái)確定鬧鈴響,例如,當(dāng)8點(diǎn)鐘的時(shí)間到,第一節(jié)課準(zhǔn)備開(kāi)始上課,對(duì)打鈴時(shí)間設(shè)置30S,當(dāng)8:45時(shí)間到,鬧鈴響,開(kāi)始下課,鈴聲響30S ,完成打鈴,依此類推。圖4-1是主程序流程圖。</p><p> 圖4-1 主程序流程圖</p><p>
38、4.2 顯示子程序的設(shè)</p><p> 設(shè)置P2=0xff,則選中小時(shí)的十位數(shù)碼管,即W1,然后送斷碼給P0口,顯示相應(yīng)的數(shù)字。其中有一個(gè)條件,當(dāng)設(shè)置小時(shí)有效,即X1==1和計(jì)數(shù)大于10時(shí)便返回,每一個(gè)數(shù)碼管可以顯示0-9十個(gè)數(shù)字,然后調(diào)用延時(shí)即可。設(shè)置P2=0xbf,則選中小時(shí)的各位數(shù)碼管,即W2,設(shè)置P2=0xdf,則選中分的十位數(shù)碼管,即W3,設(shè)置P2=0xef,則選中分的各位數(shù)碼管,即W4。具體流
39、程圖如下。</p><p> 圖4-2 顯示程序流程圖</p><p> 4.3 計(jì)時(shí)程序的設(shè)計(jì)</p><p> 首先運(yùn)用定時(shí)擴(kuò)展的方法構(gòu)成最小單位的定時(shí),在定時(shí)/計(jì)數(shù)器T0方式1下定時(shí)50ms,計(jì)數(shù)20次構(gòu)成1s為單位的數(shù)值。當(dāng)1s計(jì)數(shù)次數(shù)sec==60時(shí)條件成立便構(gòu)成1min,當(dāng)1min計(jì)數(shù)次數(shù)m==60成立構(gòu)成了1hour,當(dāng)1hour計(jì)數(shù)次數(shù)h=
40、=24條件成立構(gòu)成了一天,然后返回。</p><p> 圖4-3 計(jì)時(shí)程序流程圖</p><p> 4.4 輔助子程序</p><p> 此部分包含包含數(shù)碼管顯示輔助子程序、初始化子程序、按鍵掃描輔助函數(shù)和延時(shí)子程序。</p><p> 數(shù)碼管顯示子程序主要是把小時(shí)分解到千位和百位,分鐘分解到十位和各位。程序見(jiàn)void bi
41、anhuan1(void)部分的編寫。</p><p> 對(duì)應(yīng)的端口號(hào)、數(shù)字、和斷碼表如表4-4所示</p><p> 表4-4 I/O分配表</p><p> ?。?)初始化子程序中主要設(shè)置定時(shí)計(jì)數(shù)器T0定時(shí)下的工作方式1,即TMOD=0x01,計(jì)數(shù)初值為(65536-50000)=15536,化成十六進(jìn)制為3cb0,所以TH0=0x3c,TL0=0xb0,此
42、外還要啟動(dòng)定時(shí)器T0,即TR0=1,T0開(kāi)中斷允許和開(kāi)總中斷,即ET0=1和EA=1。其程序參見(jiàn)附錄void init (void)部分的編寫。</p><p> (3)按鍵掃描函數(shù)主要完成將P2低四位賦為1,若有按鍵按下則P2口對(duì)應(yīng)的位會(huì)為0,也就會(huì)出現(xiàn)0x0f&P2=0x07、0x0b、0x0b、0x0d和0x0e四種情況,分別是四個(gè)按鍵按下的狀態(tài)。其程序見(jiàn)unsigned char scankey
43、(void) 部分的編寫。</p><p> ?。?)延時(shí)子程序供其它子程序的調(diào)用,延時(shí)0.1毫秒。其程序參見(jiàn)void delay(uchar)部分的編寫。</p><p><b> 第五章 系統(tǒng)調(diào)試</b></p><p> 5.1 調(diào)試準(zhǔn)備</p><p> 根據(jù)硬件的設(shè)計(jì),把線路接好,采用RS232標(biāo)準(zhǔn)
44、的DB-9連接器,和串口轉(zhuǎn)USB接口線進(jìn)行數(shù)據(jù)的傳輸,通過(guò)STC-ISP-V483軟件進(jìn)行程序的下載,選擇MCUType中STC90C52RC芯片,設(shè)置端口號(hào)COM5以及波特率,打開(kāi)程序進(jìn)行下載,上電。</p><p> 5.2 調(diào)試結(jié)果</p><p> 5.2.1 軟件仿真顯示</p><p> 軟件仿真整體效果如圖5-1所示,初始上電顯示時(shí)間13:0
45、0。小數(shù)點(diǎn)閃爍一次代表一秒。</p><p> 圖5-1 軟件仿真圖</p><p> 5.2.2 硬件顯示</p><p> ?。?)上電后根據(jù)程序的初始設(shè)置,顯示時(shí)間為13:00,中間的小數(shù)點(diǎn)閃動(dòng)一次代表時(shí)間進(jìn)行1秒。如圖5-2所示</p><p> 圖5-2 硬件顯示圖1</p><p> ?。?)小時(shí)的
46、設(shè)置。按下第一個(gè)鍵進(jìn)行小時(shí)的設(shè)置,再按下第二個(gè)鍵兩次時(shí)間顯示15:00(按第一次時(shí)蜂鳴器會(huì)根據(jù)預(yù)設(shè)時(shí)間響鈴30S)。按下第三個(gè)鍵三次時(shí)間顯示12:00。按下第一個(gè)鍵三次或者按下第四個(gè)鍵停止當(dāng)前操作。如圖5-3和5-4所示。</p><p> 圖5-3 硬件顯示圖2</p><p> 圖5-4 硬件顯示圖3</p><p> (3)分鐘的設(shè)置。按下第一個(gè)鍵兩次
47、進(jìn)行分鐘的設(shè)置,再按下第二個(gè)鍵兩次時(shí)間顯示12:02,按下第三個(gè)鍵三次進(jìn)入時(shí)間顯示12:59。按下第一個(gè)鍵三次或者按下第四個(gè)鍵停止當(dāng)前操作。如圖5-5和5-6所示。</p><p> 圖5-5 硬件顯示圖4</p><p> 圖5-6 硬件顯示圖5</p><p> 5.3 調(diào)試故障及分析</p><p> 上電后,數(shù)碼管f段不顯
48、示。</p><p> 分析:檢查程序調(diào)試無(wú)誤后,檢查單片機(jī)硬件經(jīng)電表測(cè)試,f端沒(méi)焊接好。</p><p> 蜂鳴器上電后到設(shè)置時(shí)間不打鈴</p><p> 分析:檢查程序調(diào)試無(wú)誤后,檢查單片機(jī)硬件連接,P3.7口沒(méi)短接。</p><p> 按鍵進(jìn)行時(shí)鐘加設(shè)置時(shí)加到時(shí)鐘加到16出現(xiàn)紊亂。</p><p> 分
49、析:檢查程序是對(duì)時(shí)鐘h進(jìn)行賦值時(shí)把 “==”寫出“=”</p><p> 部分小數(shù)點(diǎn)沒(méi)有實(shí)現(xiàn)秒閃作用。</p><p> 分析:這一部分的設(shè)置和小時(shí)的各位段斷碼dp直接設(shè)置會(huì)有沖突,要錯(cuò)開(kāi)進(jìn)行設(shè)置,當(dāng)0.5秒時(shí)就是亮一次,再過(guò)0.5秒就滅一次,這樣閃亮就是1S。</p><p><b> 第6章 總結(jié)</b></p>&
50、lt;p> 單片機(jī)課程設(shè)計(jì)分為兩周,第一周在老師的指導(dǎo)下我們完成了對(duì)我們組課題作息時(shí)間控制器的方案確定,設(shè)計(jì)了原理圖,再仿真,焊接。這一過(guò)程讓我收獲頗多,讓我明白了就自動(dòng)化專業(yè)而言,我們所學(xué)的東西都是一層連一層的,再對(duì)原理圖的設(shè)計(jì)時(shí),我們感覺(jué)甚至對(duì)以前學(xué)的簡(jiǎn)單數(shù)模電知識(shí)都忘記了,再緊張的時(shí)間里一邊查閱以前所學(xué)的課程,像模電、數(shù)電、電路、C語(yǔ)言、微機(jī)原理、proteus都引用到了本次課程設(shè)計(jì)。</p><p&g
51、t; 我們組員在這場(chǎng)課程設(shè)計(jì)中有了明確的分工合作,畫原理圖硬件設(shè)計(jì)、程序設(shè)計(jì)分析調(diào)試、對(duì)整個(gè)單片機(jī)的調(diào)試與分析。反反復(fù)復(fù),有時(shí)一個(gè)小的錯(cuò)誤要檢查很久,但我們組員至始至終沒(méi)有放棄,最終在老師檢查與指導(dǎo)我們終于完成了這次單片機(jī)課程設(shè)計(jì)。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 王迎旭等.單片機(jī)原理及及應(yīng)用.【M】機(jī)械工業(yè)出版社.2012
52、年</p><p> [2] 周向紅.51單片機(jī)課程設(shè)計(jì).【M】華中科技大學(xué)出版社.2011年</p><p> [3] 陳世清.c語(yǔ)言課程設(shè)計(jì).【M】浙江大學(xué)出版社.2012年</p><p> [4] 張迎新.單片機(jī)微型計(jì)算機(jī)原理及接口技術(shù).【M】國(guó)防工業(yè)出版社.2009年</p><p><b> 附錄</b&g
53、t;</p><p> #include<reg52.h></p><p> #define uint unsigned int</p><p> #define uchar unsigned char</p><p> uchar code a[10]={0x28,0xEB,0x32,0xA2,0xE1,0xA4,0x2
54、4,0xEA,0x20,0xA0};</p><p> sbit be=P3^7;</p><p> sbit DP=P1^5;</p><p> bit flag=0;</p><p> bit KeyFlag=0;</p><p> bit SFlag=1;</p><p> u
55、char m=00,h=13,sec=00,cnt=0,qian,bai,shi,ge,X1=0,key,cnnt;</p><p> void delay(uchar t); //延時(shí)函數(shù)</p><p> void init(void);//初始化函數(shù)</p><p> void display(void); //顯示函數(shù)</p>&
56、lt;p> void bianhuan1(uchar h);//時(shí)間顯示輔助函數(shù)</p><p> unsigned char scankey(void); //按鍵掃描程序</p><p> void init(void)</p><p><b> {</b></p><p> TMOD=0x01;
57、 //寫入工作方式字</p><p> TH0=0x3c; //寫入計(jì)數(shù)初值</p><p><b> TL0=0xb0;</b></p><p> ET0=1; //開(kāi)放中斷</p><p><b> TR0=1;</b></p><p><b&
58、gt; EA=1;</b></p><p><b> }</b></p><p> void main(void)</p><p><b> { </b></p><p><b> init();</b></p><p><
59、;b> while(1)</b></p><p><b> {</b></p><p> key=scankey(); //按鍵輸入程序</p><p> if((KeyFlag==1)&&(SFlag==0))</p><p><b> {</b&
60、gt;</p><p> KeyFlag=0;</p><p> if(key==1) </p><p><b> {</b></p><p><b> X1++;</b></p><p><b> }</b></p>&
61、lt;p> if(X1==1)//時(shí)間調(diào)整</p><p><b> {</b></p><p> if(key==2)</p><p> { </p><p><b> h++;</b></p><p><b> if(h
62、==24)</b></p><p><b> {</b></p><p><b> h=0;</b></p><p><b> }</b></p><p><b> }</b></p><p> if(key=
63、=3)</p><p><b> {</b></p><p><b> if(h==0)</b></p><p><b> {</b></p><p><b> h=24;</b></p><p><b> }&
64、lt;/b></p><p><b> h--;</b></p><p><b> }</b></p><p><b> }</b></p><p> if(X1==2) //分鐘調(diào)整</p><p><b> {&
65、lt;/b></p><p> if(key==2)</p><p><b> {</b></p><p><b> m++;</b></p><p><b> if(m==60)</b></p><p><b> {</
66、b></p><p><b> m=0;</b></p><p><b> }</b></p><p><b> }</b></p><p> if(key==3)</p><p><b> {</b></p&
67、gt;<p><b> if(m==0)</b></p><p><b> {</b></p><p><b> m=60;</b></p><p><b> }</b></p><p><b> m--;</b&g
68、t;</p><p><b> }</b></p><p><b> }</b></p><p> if(X1==3)//停止操作返回</p><p><b> {</b></p><p><b> X1=0;</b&g
69、t;</p><p><b> }</b></p><p> if(key==4)</p><p><b> {</b></p><p><b> X1=0;</b></p><p><b> }</b></p>
70、;<p><b> }</b></p><p> P2=P2|0x0f;</p><p> if((P2&0x0f)==0x0f)</p><p><b> SFlag=1;</b></p><p> display(); //顯示打鈴函數(shù)</p&g
71、t;<p><b> be=1;</b></p><p><b> if(h==8)</b></p><p> {if(m==0||m==45||m==55){if(sec<30)be=0;else be=1;}}</p><p> if(h==9&&m==40){if(sec&
72、lt;30)be=0;}</p><p> if(h==10){if((m==10||m==55)&&sec<30)be=0;else be=1;}</p><p> if((h==11)&&(m==5)&&(sec<30))</p><p><b> be=0;</b><
73、/p><p> if(h==11&&m==50&&sec<30)</p><p><b> be=0;</b></p><p><b> if(h==14)</b></p><p> {if(m==0||m==45||m==55){if(sec<30)
74、be=0;else be=1;}}</p><p> if(h==15&&m==40){if(sec<30)be=0;}</p><p><b> if(h==16)</b></p><p> {if((m==10||m==55)&&sec<30)be=0;else be=1;}</p&g
75、t;<p> else if(h==17){if((m==5||m==50)&&sec<30)be=0;else be=1;}</p><p><b> if(h==19)</b></p><p> {if(m==0||m==45||m==55){if(sec<30)be=0;else be=1;}}</p>
76、<p> if(h==20){if((m==40||m==50)&&sec<30)be=0;else be=1;}</p><p> if(h==21){if((m==0||m==40)&&sec<30)be=0;</p><p> else be=1;}</p><p><b> }<
77、;/b></p><p><b> //}</b></p><p><b> } </b></p><p> void display() //顯示函數(shù)</p><p><b> {</b></p><p> if(X1==1&a
78、mp;&cnt>=10)P2=0xff;</p><p> P1=a[qian];</p><p><b> P2=0x7F;</b></p><p> delay(100);</p><p><b> P2=0xff;</b></p><p> if
79、(X1==1&&cnt>=10)P2=0xff;</p><p> P1=a[bai];</p><p> if(flag==1)</p><p><b> DP=0; </b></p><p><b> else</b></p><p><
80、;b> DP=1;</b></p><p><b> P2=0xbf;</b></p><p> delay(100);</p><p><b> P2=0xff;</b></p><p> if(X1==2&&cnt>=10)P2=0xff;<
81、;/p><p> P1=a[shi];</p><p><b> P2=0xdf;</b></p><p> delay(100);</p><p><b> P2=0xff;</b></p><p> if(X1==2&&cnt>=10)P2=0
82、xff;</p><p><b> P1=a[ge];</b></p><p><b> P2=0xef;</b></p><p> delay(100);</p><p><b> P2=0xff;</b></p><p><b>
83、 }</b></p><p> void bianhuan1(uchar h) //時(shí)間輔助函數(shù)</p><p><b> {</b></p><p> qian=h/10;</p><p><b> bai=h%10;</b></p><p><
84、b> shi=m/10;</b></p><p><b> ge=m%10;</b></p><p><b> }</b></p><p> unsigned char scankey(void)//按鍵掃描函數(shù)</p><p><b> {</b>
85、;</p><p> unsigned char temp=0;</p><p> P2=P2|0x0f;</p><p> temp=0x0f&P2;</p><p> switch(temp)</p><p><b> {</b></p><p>
86、case 0x07: if((KeyFlag==0)&&SFlag==1)</p><p><b> { </b></p><p> KeyFlag=1;</p><p><b> SFlag=0;</b></p><p> return 4;} break;</p&
87、gt;<p> case 0x0B:if((KeyFlag==0)&&SFlag==1)</p><p><b> { </b></p><p> KeyFlag=1;</p><p><b> SFlag=0;</b></p><p> return 3;}
88、 break;</p><p> case 0x0D:if((KeyFlag==0)&&SFlag==1)</p><p><b> { </b></p><p> KeyFlag=1;</p><p><b> SFlag=0;</b></p><p&
89、gt; return 2;} break;</p><p> case 0x0E:if((KeyFlag==0)&&SFlag==1)</p><p><b> { </b></p><p> KeyFlag=1;</p><p><b> SFlag=0;</b><
90、;/p><p> return 1;} break;</p><p><b> }</b></p><p><b> return 0;</b></p><p><b> }</b></p><p> void delay(uchar t )
91、 //延時(shí)函數(shù)</p><p><b> {</b></p><p> while(t--);</p><p><b> }</b></p><p> void time0(void)interrupt 1 // 時(shí)鐘函數(shù)</p><p><b>
92、{</b></p><p><b> TH0=0x3c;</b></p><p><b> TL0=0xb0;</b></p><p><b> cnt++;</b></p><p><b> cnnt++;</b></p>
93、<p> if(cnt==20)</p><p><b> {</b></p><p> flag=~flag;</p><p><b> sec++;</b></p><p><b> cnt=0;</b></p><p>
94、 if(sec==60)</p><p><b> {</b></p><p><b> sec=0;</b></p><p><b> m++;</b></p><p><b> if(m==60)</b></p><p>
95、;<b> {</b></p><p><b> m=0;</b></p><p><b> h++;</b></p><p><b> if(h==24)</b></p><p><b> {</b></p>
96、<p><b> h=0;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> bianhuan1(h);</p><p>
97、;<b> }</b></p><p><b> }</b></p><p> 電氣與信息工程系課程設(shè)計(jì)評(píng)分表</p><p> 指導(dǎo)教師簽名:________________</p><p> 日 期:________________ </p><p&
溫馨提示
- 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í)間控制器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--課設(shè)作息時(shí)間控制
- 畢業(yè)設(shè)計(jì)基于單片機(jī)的作息時(shí)間控制器
- 課程設(shè)計(jì)---作息時(shí)間控制器的設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)-時(shí)間控制器
- 課程設(shè)計(jì)-可編程作息時(shí)間控制器
- 作息時(shí)間控制器
- 單片機(jī)課程設(shè)計(jì)報(bào)告---作息時(shí)間表系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---單片機(jī)控制作息時(shí)間系統(tǒng)
- 作息時(shí)間控制課程設(shè)計(jì)報(bào)告
- 畢業(yè)設(shè)計(jì)--單片機(jī)作息時(shí)間控制系統(tǒng)設(shè)計(jì)
- 單片機(jī)作息時(shí)間的控制系統(tǒng)畢業(yè)設(shè)計(jì)
- 作息時(shí)間控制器定稿.doc
- 基于單片機(jī)的作息時(shí)間打鈴系統(tǒng)設(shè)計(jì)
- 作息時(shí)間控制系統(tǒng)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)節(jié)日彩燈控制器
- 基于單片機(jī)的作息時(shí)間控制鐘系統(tǒng)畢業(yè)設(shè)計(jì)
- 單片機(jī)原理及應(yīng)用課程設(shè)計(jì)--- 時(shí)間控制器設(shè)計(jì)
- 作息時(shí)間控制器二稿.doc
- 基于單片機(jī)的作息時(shí)間控制鐘系統(tǒng)論文
評(píng)論
0/150
提交評(píng)論