單片機(jī)課設(shè)報(bào)告_第1頁
單片機(jī)課設(shè)報(bào)告_第2頁
單片機(jī)課設(shè)報(bào)告_第3頁
單片機(jī)課設(shè)報(bào)告_第4頁
單片機(jī)課設(shè)報(bào)告_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、揚(yáng)州大學(xué)能源與動(dòng)力工程學(xué)院課程設(shè)計(jì)報(bào)告題 目: 定時(shí)鬧鐘 課 程: 單片機(jī)原理及應(yīng)用課程設(shè)計(jì) 專 業(yè): 電氣工程及其自動(dòng)化 班 級(jí): 電氣1201 姓 名: 周科宇 學(xué) 號(hào): 121704139 第 一 部 分任務(wù)書單片機(jī)原理及應(yīng)用課程設(shè)計(jì)任務(wù)書一、課題名稱詳見單片機(jī)課程設(shè)計(jì)題目(一):主要是軟件仿真,利用Proteus軟件進(jìn)行仿真設(shè)計(jì)并調(diào)試;單片機(jī)課程設(shè)計(jì)題目(二):主要是硬件設(shè)計(jì),利用單片機(jī)周立功實(shí)驗(yàn)箱進(jìn)行設(shè)計(jì)并調(diào)試。二、課程設(shè)計(jì)目的課程設(shè)計(jì)是課程教學(xué)中的一項(xiàng)重要內(nèi)容,是達(dá)到教學(xué)目標(biāo)的重要環(huán)節(jié),是綜合性較強(qiáng)的實(shí)踐教學(xué)環(huán)節(jié),它對(duì)幫助學(xué)生全面牢固地掌握課堂教學(xué)內(nèi)容、培養(yǎng)學(xué)生的實(shí)踐和實(shí)際動(dòng)手能力

2、、提高學(xué)生全面素質(zhì)具有很重要的意義。單片機(jī)原理及應(yīng)用是一門理論性、實(shí)用性和實(shí)踐性都很強(qiáng)的課程,課程設(shè)計(jì)環(huán)節(jié)應(yīng)占有更加重要的地位。單片機(jī)原理及應(yīng)用課程設(shè)計(jì)的目的是讓學(xué)生在理論學(xué)習(xí)的基礎(chǔ)上,通過完成一個(gè)涉及MCS-51單片機(jī)多種資源應(yīng)用并具有綜合功能的小系統(tǒng)目標(biāo)板的設(shè)計(jì)與編程應(yīng)用,使學(xué)生不但能將課堂上學(xué)到的理論知識(shí)與實(shí)際應(yīng)用結(jié)合起來,而且能進(jìn)一步加深對(duì)電子電路、電子元器件等知識(shí)的認(rèn)識(shí)與理解,同時(shí)在軟件編程、排錯(cuò)調(diào)試、相關(guān)軟件和儀器設(shè)備的使用技能等方面得到較全面的鍛煉和提高。為今后能夠獨(dú)立進(jìn)行某些單片機(jī)應(yīng)用系統(tǒng)的開發(fā)設(shè)計(jì)工作打下一定的基礎(chǔ)。通過單片機(jī)硬件和軟件設(shè)計(jì)、調(diào)試、整理資料等環(huán)節(jié)的培訓(xùn),使學(xué)生

3、初步掌握工程設(shè)計(jì)方法和組織實(shí)踐的基本技能,逐步熟悉開展科學(xué)實(shí)踐的程序和方法。三、課程設(shè)計(jì)內(nèi)容設(shè)計(jì)以89C51單片機(jī)和外圍元器件構(gòu)成的單片機(jī)應(yīng)用系統(tǒng),并完成相應(yīng)的軟硬件調(diào)試。1. 系統(tǒng)方案設(shè)計(jì):綜合運(yùn)用單片機(jī)課程中所學(xué)到的理論知識(shí),學(xué)生根據(jù)所選課題的任務(wù)、要求和條件進(jìn)行總體方案的設(shè)計(jì)。2. 硬件電路設(shè)計(jì):對(duì)方案中以單片機(jī)為核心的電路進(jìn)行設(shè)計(jì)計(jì)算,包括元器件的選擇和電路參數(shù)的計(jì)算,并畫出總體電路圖。3. 軟件設(shè)計(jì):根據(jù)已設(shè)計(jì)出的軟件系統(tǒng)框圖,用匯編語言或C51編制出各功能模塊的子程序和整機(jī)軟件系統(tǒng)的主程序。4. 調(diào)試:在單片機(jī)EDA仿真軟件環(huán)境Proteus下進(jìn)行仿真設(shè)計(jì)并調(diào)試;或在單片機(jī)周立功實(shí)

4、驗(yàn)箱上進(jìn)行相關(guān)設(shè)計(jì)并調(diào)試。四、課程設(shè)計(jì)要求詳見單片機(jī)課程設(shè)計(jì)題目(一) 單片機(jī)課程設(shè)計(jì)題目(二)五、進(jìn)度安排序號(hào)內(nèi)容天數(shù)1布置任務(wù),熟悉課題要求0.52總體方案確定,硬件電路設(shè)計(jì)1.53軟件編程1.54Proteus仿真,或在周立功實(shí)驗(yàn)箱上調(diào)試25總結(jié),撰寫課程設(shè)計(jì)報(bào)告1.5七、課程設(shè)計(jì)報(bào)告內(nèi)容:總結(jié)設(shè)計(jì)過程,寫出設(shè)計(jì)報(bào)告,設(shè)計(jì)報(bào)告具體內(nèi)容要求如下:1課程設(shè)計(jì)的目和設(shè)計(jì)的內(nèi)容。2課程設(shè)計(jì)的要求。3控制系統(tǒng)總框圖及系統(tǒng)工作原理。4控制系統(tǒng)的硬件電路連接圖,電路的原理。 5軟件設(shè)計(jì)流程圖及其說明。6電路設(shè)計(jì),軟件編程、調(diào)試中遇到的問題及分析解決方法。7實(shí)驗(yàn)結(jié)果及其分析。8體會(huì)。第 二 部 分課程設(shè)

5、計(jì)報(bào)告目 錄1課題簡介71.1本次課程設(shè)計(jì)的目的71.2課程設(shè)計(jì)的要求72定時(shí)鬧鐘的方案設(shè)計(jì)82.1系統(tǒng)總體框圖82.2工作原理及過程分析83定時(shí)鬧鐘的硬件電路設(shè)計(jì)93.1主控芯片AT89C51的介紹93.2時(shí)鐘電路的介紹93.3LCD液晶顯示器的介紹93.4電磁繼電器的介紹104軟件編程設(shè)計(jì)114.1系統(tǒng)流程圖114.2LCD初始化編程114.3鬧鐘的實(shí)現(xiàn)124.4 LCD顯示125實(shí)驗(yàn)與結(jié)果分析135.1Pretues仿真總電路圖135.2實(shí)驗(yàn)過程135.3實(shí)驗(yàn)結(jié)果分析146小結(jié)與體會(huì)157參考文獻(xiàn)168附錄171 課題簡介1.1 本次課程設(shè)計(jì)的目的(1)綜合運(yùn)用本課程中所學(xué)到的理論知識(shí)去

6、獨(dú)立完成某一設(shè)計(jì)課題;(2)通過查閱手冊(cè)和相關(guān)文獻(xiàn)資料,培養(yǎng)學(xué)生獨(dú)立分析和解決問題的能力;(3)進(jìn)一步熟悉單片機(jī)和常用接口電路,加深對(duì)專業(yè)知識(shí)和理論知識(shí)學(xué)習(xí)的認(rèn)識(shí)和理解;(4)學(xué)會(huì)電路的安裝與調(diào)試;(5)進(jìn)一步熟悉電子儀器的正確使用;(6)學(xué)會(huì)撰寫課程設(shè)計(jì)的總結(jié)報(bào)告;(7)培養(yǎng)嚴(yán)肅認(rèn)真的工作作風(fēng)和嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度。1.2 課程設(shè)計(jì)要求使用AT89C51單片機(jī)結(jié)合字符型LCD顯示器設(shè)計(jì)一個(gè)簡易的定時(shí)LCD鬧鐘,若LCD選擇有背光顯示的模塊,在夜晚或黑暗的場(chǎng)合中也可使用。定時(shí)鬧鐘的基本功能如下:顯示格式“時(shí)時(shí):分分”。由LED閃動(dòng)來做秒計(jì)數(shù)表示。一旦時(shí)間到則發(fā)動(dòng)聲響,同時(shí)繼電器啟動(dòng),可以擴(kuò)充控制家電

7、開啟和關(guān)閉。程序執(zhí)行后工作指示燈LED閃動(dòng),表示程序開始執(zhí)行,LCD顯示“00:00”,按下操作鍵K1-K4動(dòng)作如下:(1)K1設(shè)置現(xiàn)在的時(shí)間。(2)K2顯示鬧鐘設(shè)置的時(shí)間。(3)K3設(shè)置鬧鈴的時(shí)間。(4)K4鬧鈴ON/OFF的狀態(tài)設(shè)置,設(shè)置ON時(shí)發(fā)出三聲“噠-噠”聲,設(shè)置為OFF發(fā)出一聲“噠-噠”聲。設(shè)置當(dāng)前時(shí)間或鬧鈴時(shí)間如下:(1)K1時(shí)的調(diào)整。(2)K2分的調(diào)整。(3)K3設(shè)置完成。(4)K4鬧鈴時(shí)間到時(shí),發(fā)出一陣聲響,按下本鍵可以停止聲響。本項(xiàng)目的難點(diǎn)在于4個(gè)按鍵每個(gè)都具有兩個(gè)功能,以最終實(shí)現(xiàn)菜單化的輸入功能。采用通過逐層嵌套的循環(huán)掃描,實(shí)現(xiàn)嵌套式的鍵盤輸入。除了顯示當(dāng)前時(shí)間的功能外,

8、我擴(kuò)充了如下功能:增加秒表計(jì)數(shù)并顯示。鬧鈴響時(shí)繼電器啟動(dòng)點(diǎn)亮燈泡。2 定時(shí)鬧鐘方案設(shè)計(jì)2.1系統(tǒng)總體框圖AT89C51震蕩電路調(diào)時(shí)電路喇叭LCD片選代碼2.2工作原理及過程介紹本LCD定時(shí)鬧鐘,是以單片機(jī)及外圍接口電路為核心硬件,輔以其他外圍硬件電路,用C語言設(shè)計(jì)的程序來實(shí)現(xiàn)的。由于采用集成芯片性的單片機(jī)來制作電子鐘,這樣設(shè)計(jì)制作簡單而且功能多、精確度高,也可方便擴(kuò)充其他功能,實(shí)現(xiàn)也十分簡單。本設(shè)計(jì)是利用AT89C51單片機(jī)為主控芯片,由LCD、晶振、電阻、電容、發(fā)光二極管、開關(guān)、喇叭等元件組成硬件電路,通過編寫軟件程序來實(shí)現(xiàn)和控制的數(shù)字定時(shí)鬧鐘。(1)定時(shí)鬧鐘的基本功能如下:(a)啟動(dòng)仿真軟

9、件,使用LCD液晶顯示器來顯示時(shí)間。(b)程序執(zhí)行之后LCD第一行顯示“NOW TIME:”,第二行顯示“00:00:00”; 時(shí)間顯示的秒開始變化,并且LED閃爍,表示已經(jīng)開始計(jì)時(shí)。(c)由LED閃動(dòng)來做秒計(jì)數(shù)表示。(d)當(dāng)設(shè)定的鬧鐘時(shí)間到達(dá)后,鬧鈴開始發(fā)出“噠噠噠”的聲音。(2)按鍵功能如下:按鍵K1設(shè)置現(xiàn)在的時(shí)間和時(shí)調(diào)整,按鍵K1設(shè)置時(shí)鐘,按鍵K2設(shè)置分鐘;按鍵K2顯示鬧鐘設(shè)置的時(shí)間和分調(diào)整;按鍵K3設(shè)置鬧鈴的時(shí)間和設(shè)置完成;按鍵K4鬧鈴ON/OFF的狀態(tài)設(shè)置,設(shè)置為ON時(shí)連續(xù)三次發(fā)出“噠-噠”的聲音,設(shè)置為OFF發(fā)出一聲“噠-噠”和鬧鐘時(shí)間到時(shí),發(fā)出一陣“噠噠噠”聲,按下本鍵可以停止聲

10、響。(3)調(diào)整計(jì)時(shí)器時(shí)間如下:按下K1鍵,LCD第一行顯示“SET NOW TIME:”然后按K1調(diào)整小時(shí),K2調(diào)整分鐘,按下K3表示時(shí)間設(shè)置完成。(4)調(diào)整鬧鐘時(shí)間設(shè)置如下:按下K3開始鬧鐘設(shè)置,LCD第一行顯示“SET ALARM TIME:”按下K1設(shè)置小時(shí),按一下K2設(shè)置分鐘,再次按下K3設(shè)置完成,并且設(shè)置時(shí)間消失,顯示當(dāng)前時(shí)間,當(dāng)按一下K2時(shí)LCD第一行顯示“ALARM TIME:”,第二行顯示設(shè)置的鬧鐘時(shí)間,再按一下K2時(shí)LCD第一行顯示“NOW TIME:”,第二行顯示現(xiàn)在時(shí)間。按一下K4關(guān)閉鬧鐘并發(fā)出一聲“噠-噠”,再次按下打開鬧鐘并發(fā)出三聲“噠-噠”。3 定時(shí)鬧鐘硬件電路設(shè)計(jì)

11、3.1主控芯片AT89C51的介紹:在本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)器,和輸入緩沖器組成。P1口是唯一的單功能口,僅能用作通用的數(shù)據(jù)輸入/輸出口。P3口是雙功能口除了具有數(shù)據(jù)輸入/輸出功能外,每條接口還具有不同的第二功能,如P3.0是串行輸入口

12、線,P3.1口是串行輸出口線。在需要外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器擴(kuò)展時(shí),P0可作為分時(shí)復(fù)用的低8位地址/數(shù)據(jù)總線,P2口可作為高8位的地址總線。P3口也可作為AT89C51的一些特殊功能口,同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào).3.2時(shí)鐘電路的介紹: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í)鐘電路在計(jì)算機(jī)系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎(chǔ)。在一個(gè)單片機(jī)應(yīng)用系統(tǒng)中,時(shí)鐘有兩方面的含義:一是指為保障

13、系統(tǒng)正常工作的基準(zhǔn)振蕩定時(shí)信號(hào),主要由晶振和外圍電路組成,晶振頻率決定了單片機(jī)系統(tǒng)工作的速度;二是指系統(tǒng)的標(biāo)準(zhǔn)定時(shí)時(shí)鐘,即定時(shí)時(shí)間。本LCD電子鬧鐘設(shè)計(jì)是采用內(nèi)部時(shí)鐘方式,用一個(gè)12MHz晶振和兩個(gè)30Pf瓷片電容組成,為單片機(jī)提供標(biāo)準(zhǔn)時(shí)鐘,其中兩個(gè)瓷片電容起微調(diào)作用。其電路圖如上圖。之所以采用高性能的振蕩電路,因?yàn)椋海?)單片機(jī)電子鐘的計(jì)時(shí)脈沖基準(zhǔn)是由外部晶振的頻率經(jīng)過12分頻后提供,采用內(nèi)部的定時(shí)/計(jì)數(shù)器來實(shí)現(xiàn)計(jì)時(shí)功能。所以外接晶振頻率精確度直接影響電子鐘計(jì)時(shí)的準(zhǔn)確性。 (2)單片機(jī)電子鐘利用內(nèi)部定時(shí)/計(jì)數(shù)器溢出產(chǎn)生中斷(12M晶振一般為50ms)再乘以相應(yīng)的倍率來實(shí)現(xiàn)秒、分、時(shí)的轉(zhuǎn)換。大

14、家都知道從定時(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ī)器周期。3.3 LCD液晶顯示器的介紹:為了獲得更好的效果本設(shè)計(jì)并沒有采用常見的LED,而是采用了型號(hào)為1602的 LCD。LCD有LED數(shù)碼顯示更好的更的直觀效果,也更加經(jīng)久耐用。液晶顯示模塊體積小功耗低、顯示內(nèi)容豐富,現(xiàn)在字符型液晶顯示模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的信息顯示器件之一了。本LCD是2行16列液晶 可顯示2行16列英文字符,有8位數(shù)據(jù)總線D0-D7,RS,R/W,EN三個(gè)控制端口(共14線),

15、工作電壓為5V。沒背光,和常用的1602B功能和引腳一樣(除了調(diào)背光的二個(gè)線腳). 該模塊也可只用D4-D7作為四位數(shù)據(jù)分兩次傳送。這樣的話可以節(jié)省MCU的I/O口資源。表3.1 LCD顯示屏引腳說明編號(hào)符號(hào)引腳說明編號(hào)符號(hào)引腳說明1VCC電源地9D2雙向數(shù)據(jù)口2VDD電源正極10D3雙向數(shù)據(jù)口3VL對(duì)比度調(diào)節(jié)11D4雙向數(shù)據(jù)口4RS數(shù)據(jù)/命令選擇12D5雙向數(shù)據(jù)口5R/W讀/寫選擇13D6雙向數(shù)據(jù)口6E模塊使能端14D7雙向數(shù)據(jù)口7D0雙向數(shù)據(jù)口15BLK背光源地3.4 電磁繼電器的介紹:電磁繼電器一般由鐵芯、線圈、銜鐵、觸點(diǎn)簧片等組成的。只要在線圈兩端加上一定的電壓,線圈中就會(huì)流過一定的電

16、流,從而產(chǎn)生電磁效應(yīng),銜鐵就會(huì)在電磁力吸引的作用下克服返回彈簧的拉力吸向鐵芯,從而帶動(dòng)銜鐵的動(dòng)觸點(diǎn)與靜觸點(diǎn)(常開觸點(diǎn))吸合,觸點(diǎn)通過外接白熾燈,從而控制白熾燈的亮與暗。當(dāng)線圈斷電后,電磁的吸力也隨之消失,銜鐵就會(huì)在彈簧的反作用力返回原來的位置,使動(dòng)觸點(diǎn)與原來的靜觸點(diǎn)(常閉觸點(diǎn))釋放。這樣吸合、釋放,從而達(dá)到了在電路中的導(dǎo)通、切斷的目的。具有動(dòng)作快、工作穩(wěn)定、使用壽命長、體積小等優(yōu)點(diǎn)。廣泛應(yīng)用于電力保護(hù)、自動(dòng)化、運(yùn)動(dòng)、遙控、測(cè)量和通信等裝置中。4 定時(shí)鬧鐘軟件編程設(shè)計(jì)4.1系統(tǒng)流程圖U初始化定時(shí)器初始化定時(shí)器初始化串口初始化顯示待機(jī)指示符設(shè)定鬧鈴時(shí)間判設(shè)置鬧鈴時(shí)間否?顯示刷新啟動(dòng)走時(shí)有關(guān)變量初始

17、化刷新顯示判斷日期是否變化化否?秒指示判斷時(shí)間是否變化鬧鈴判是否到鬧鈴時(shí)間?延時(shí)YYYY4.2 LCD初始化編程在系統(tǒng)開始上電時(shí),需要首先初始化液晶:void TimeInit()write_com(0x01); /初始化1602液晶write_com(0x80); /設(shè)置現(xiàn)實(shí)初始坐標(biāo)for(num=0;num<9;num+) /顯示年月日write_data(tablenum); delay(5);write_com(0x80+0x40+6); /寫出時(shí)間顯示部分的兩個(gè)冒號(hào)write_data(':');delay(5);write_com(0x80+0x40+9);w

18、rite_data(':');delay(5);write_sfm(4,shi); /分別送去液晶顯示write_com(0x80+0x40+4);write_sfm(7,fen);write_com(0x80+0x40+7);write_sfm(10,miao);write_com(0x80+0x40+10)4.3 鬧鐘的實(shí)現(xiàn)鬧鐘功能的實(shí)現(xiàn)涉及到兩個(gè)方面:鬧鈴時(shí)間設(shè)定和是否鬧鈴判別與相應(yīng)處理。鬧鈴時(shí)間設(shè)定模塊的設(shè)計(jì)可參照時(shí)間設(shè)定模塊,這里著重闡述鬧鈴判別與處理模塊的設(shè)計(jì)問題。鬧鈴判別與鬧鈴處理的關(guān)鍵在于判別何時(shí)要進(jìn)行鬧鈴。當(dāng)時(shí)十位、時(shí)個(gè)位、分十位、分個(gè)位中任一位發(fā)生改變(進(jìn)位

19、)時(shí),就必須進(jìn)行鬧鈴判別。程序設(shè)計(jì)思想如圖4.3。時(shí)十位、個(gè)位,分十位、個(gè)位改變了設(shè)置鬧鈴標(biāo)志是否設(shè)置了鬧鈴清除鬧鈴標(biāo)志判當(dāng)前時(shí)間是設(shè)定時(shí)間中斷返回中斷返回鬧鈴判別處理4.4 LCD顯示顯示程序包括時(shí)鐘顯示和定時(shí)顯示程序。具體程序見附錄。液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,表4.1是TC1602EL液晶模塊的內(nèi)部顯示地址。表4.1 內(nèi)部顯示地址12345678910111213141516000102030405060708090A0B0C0D0E0F404

20、142434445464748494A4B4C4D4E4F5 實(shí)驗(yàn)與結(jié)果分析5.1 Proteus仿真總電路圖5.2 實(shí)驗(yàn)過程(1)設(shè)置現(xiàn)在時(shí)間,假設(shè)為08:08:08;(2)設(shè)置鬧鐘時(shí)間,假設(shè)為08:10;(3)查看鬧鈴時(shí)間;(4)啟動(dòng)鬧鈴,鬧鈴時(shí)間到后。5.3 實(shí)驗(yàn)結(jié)果分析在仿真電路時(shí),通過給AT89C51單片機(jī)加載.hex文件使電路運(yùn)作,發(fā)光二極管發(fā)光頻率與LCD上秒表一致,當(dāng)鬧鐘設(shè)定時(shí)間與現(xiàn)在時(shí)間一致時(shí),發(fā)出響聲,此時(shí)給P2.3引腳一個(gè)低電平,使繼電器工作,開關(guān)翻轉(zhuǎn),外圍擴(kuò)展電路接通,燈泡發(fā)光,當(dāng)按鍵K4按下時(shí),打斷鬧鈴,此時(shí)P2.3引腳一個(gè)高電平,繼電器不工作,外圍擴(kuò)展電路斷開,燈泡

21、熄滅。6 小結(jié)與體會(huì)經(jīng)過為期一周半的單片機(jī)課設(shè),通進(jìn)對(duì)仿真軟件的學(xué)習(xí)和完成一個(gè)定時(shí)鬧鐘設(shè)計(jì)并進(jìn)行簡單調(diào)試,我學(xué)到了很多東西!課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域, 在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)生來說掌握單片機(jī)的開發(fā)技術(shù)是十分重要的。雖然課設(shè)時(shí)遇到過這樣或那樣的問題,但是在自己的的不斷努力下,我最終順利的完成了實(shí)驗(yàn)。在整個(gè)的課設(shè)的過程中我學(xué)習(xí)了很多的東西,使我眼界大開,感受頗深。簡單的軟件與硬件學(xué)習(xí)使我了

22、解到了人生學(xué)習(xí)的真諦,課設(shè)雖然結(jié)束了,但學(xué)習(xí)還沒結(jié)束,電子的世界將為我打開,只有繼續(xù)以從中獲得感受作為指導(dǎo)思想走下去,在不斷前進(jìn)中去提升自己,才能真正提升自己的能力。參 考 文 獻(xiàn)1 張毅剛主編,單片機(jī)原理及應(yīng)用,北京:高等教育出版社,20042 陳濤編著,單片機(jī)應(yīng)用及C51程序設(shè)計(jì),北京:機(jī)械工業(yè)出版社,20083 周潤景主編,PROTEUS入門實(shí)用教程,北京:機(jī)械工業(yè)出版社,20074 皮大能主編,單片機(jī)課程設(shè)計(jì)指導(dǎo)書,北京:北京理工大學(xué)出版社,20105 樓然苗主編, 單片機(jī)實(shí)驗(yàn)與課程設(shè)計(jì)(Proteus仿真版),浙江:浙江大學(xué)出版社, 2010 附錄#include <reg52

23、.h>#include "intrins.h"#include "24C08.h"#define uint unsigned int#define uchar unsigned charuchar code table="NOW TIME:"uchar code table1="SET NOW TIME:"uchar code table2="SET ALARM TIME:"uchar code alarm="ALARM TIME:"sbit lcden=P22;sbi

24、t lcdrs=P20;sbit lcdrw=P21;sbit K1=P10;sbit K2=P11;sbit K3=P12;sbit K4=P13;sbit beep=P27;sbit led=P24;sbit relay=P23;uchar flag,num,num1,count,k1num,k2num,k3num,k4num=0;char miao,shi,fen,ashi,afen,i=0;/延時(shí)1ms函數(shù)void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);/蜂鳴器子程序void di()beep=0;de

25、lay(100);beep=1;/寫命令函數(shù)void write_com(uchar com)lcdrs=0;lcdrw=0;lcden=0;P3=com;delay(5);lcden=1;delay(5);lcden=0;/寫數(shù)據(jù)函數(shù)void write_data(uchar date)lcdrs=1;lcdrw=0;lcden=0;P3=date;delay(5);lcden=1;delay(5);lcden=0;/寫時(shí)間函數(shù)void write_sfm(uchar add,uchar date)uchar shi,ge;shi=date/10;ge=date%10;write_com(0

26、x80+0x40+add);write_data(0x30+shi);write_data(0x30+ge);/顯示時(shí)間初始化void TimeInit()write_com(0x01);write_com(0x80);for(num=0;num<9;num+)write_data(tablenum);delay(5);write_com(0x80+0x40+6);write_data(':');delay(5);write_com(0x80+0x40+9);write_data(':');delay(5);write_sfm(4,shi);write_c

27、om(0x80+0x40+4);write_sfm(7,fen);write_com(0x80+0x40+7);write_sfm(10,miao);write_com(0x80+0x40+10);/設(shè)置當(dāng)前時(shí)間void SetNowTime()if(K1=0)delay(5);if(K1=0)while(!K1);di();shi+;if(shi=24)shi=0;write_sfm(4,shi);write_com(0x80+0x40+4);write_byte(3,shi);if(K2=0)delay(5);if(K2=0)while(!K2);di();fen+;if(fen=60)f

28、en=0;write_sfm(7,fen);write_com(0x80+0x40+7);write_byte(2,fen);if(K3=0)delay(5);if(K3=0)while(!K3);di();k1num=0;TR0=1;TimeInit();/設(shè)置鬧鐘時(shí)間void SetAlarmTime()flag=0;if(K1=0)delay(5);if(K1=0)while(!K1);di();ashi+;if(ashi=24)ashi=0;write_sfm(4,ashi);write_com(0x80+0x40+4);write_byte(4,ashi);if(K2=0)delay

29、(5);if(K2=0)while(!K2);di();afen+;if(afen=60)afen=0;write_sfm(7,afen);write_com(0x80+0x40+7);write_byte(5,afen);if(K3=0)delay(5);if(K3=0)while(!K3);di();k3num=0;EA=1;flag=1;TimeInit();/顯示鬧鐘函數(shù)void DisplayAlarmTime()write_com(0x01);write_com(0x80);for(num=0;num<11;num+)write_data(alarmnum);delay(5)

30、;write_com(0x80+0x40+6);write_data(':');delay(5);write_sfm(4,ashi);write_com(0x80+0x40+4);write_sfm(7,afen);write_com(0x80+0x40+7);/鍵盤掃描函數(shù)void keyscan()if(K1=0)delay(5);if(K1=0)TR0=0;while(!K1);di();k1num+;if(k1num!=0)write_com(0x80);for(num=0;num<13;num+)write_data(table1num);delay(5);Se

31、tNowTime();elseif(K2=0)delay(5);if(K2=0)while(!K2);di();k2num+;if(k2num=1)EA=0;DisplayAlarmTime();k2num=2;if(k2num=3)k2num=0;EA=1;TimeInit();elseif(K3=0)delay(5);if(K3=0)while(!K3);di();k3num+;write_com(0x01);if(k3num=1)EA=0;write_com(0x80);for(num=0;num<15;num+)write_data(table2num);delay(5);write_com(0x80+0x40+6);write_data(':');delay(5);write_sfm(4,ashi);write_com(0x80+0x40+4);write_sfm(7,afen);write_com(0x80+0x40+7);SetAlarmTime();elseif(K4=0)delay(5);if(K4=0)while(!K4);di();k4num+; if(k4num=1)di();k4num=2;flag=0;if(k

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論