作息時(shí)間系統(tǒng)_第1頁
作息時(shí)間系統(tǒng)_第2頁
作息時(shí)間系統(tǒng)_第3頁
作息時(shí)間系統(tǒng)_第4頁
作息時(shí)間系統(tǒng)_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余4頁可下載查看

下載本文檔

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

文檔簡介

1、長沙學(xué)院單片機(jī)技術(shù)和應(yīng)用 課程設(shè)計(jì)說明書 題目:學(xué)校作息時(shí)間系統(tǒng)的設(shè)計(jì) 系部:1信系專業(yè):電氣信息工程 一 姓名:唐玉紅學(xué)號: 2008044121指導(dǎo)老師:王新輝 劉輝謝明華起止時(shí)間:2010.12.20 12.31系(部):電子與通信工點(diǎn)1專業(yè):08級電子信息工程指導(dǎo)教師:王新輝、劉輝、謝明華課題名稱學(xué)校作息時(shí)間系統(tǒng)的設(shè)計(jì)設(shè) 計(jì) 內(nèi) 容 及 要 求(1)課題內(nèi)容:以單片機(jī)為核心,設(shè)一個(gè)智能化作息時(shí)間控制器。該控 制器要求的功能有:按本校作息時(shí)間接通/斷開電鈴(以蜂鳴器代替);并用 液晶屏顯示時(shí)鐘(可以用數(shù)碼管顯示)。作息時(shí)間控制器常用于學(xué)校教學(xué)樓的時(shí)間控制,利用單片機(jī)內(nèi)部定時(shí) 器實(shí)現(xiàn)時(shí)間基

2、準(zhǔn)定時(shí),顯示的內(nèi)容要求有時(shí)、分、秒各兩位(數(shù)碼管顯示 可以不顯示秒),并能調(diào)節(jié)小時(shí)和分鐘。(2)要求:完成該系統(tǒng)的硬件和軟件的設(shè)計(jì),在 Proteus軟件上仿真通過 后,下載到單片機(jī)進(jìn)行硬件驗(yàn)證。最后就課程設(shè)計(jì)本身提交一篇課程設(shè)計(jì) 說明書。設(shè) 計(jì) 工 作 量1、匯編或C51語百程序設(shè)計(jì);2、程序調(diào)試;3、在Proteus上進(jìn)行仿真成功后,進(jìn)行T載硬件實(shí)物驗(yàn)證;4、提交一份完整的課程設(shè)計(jì)說明書,包括封而,中文摘要,目錄,正文(正 文主要包括:設(shè)計(jì)原理、程序設(shè)計(jì)、程序分析、仿真分析、調(diào)試過程,調(diào) 試結(jié)果等部分),參考文獻(xiàn)、設(shè)計(jì)總結(jié)等。進(jìn) 度 安 排起止日期(或時(shí)間量)設(shè)計(jì)內(nèi)容(或預(yù)期目標(biāo))備注第f

3、課題介紹,答疑,收集材料,C51介紹第二天設(shè)計(jì)方案論證,練習(xí)編寫 C51程序第三天第六天程序設(shè)計(jì)第六天第八天程序調(diào)試、仿真第九天第十天系統(tǒng)測試并編寫設(shè)計(jì)說明書教研室 意見年 月日系(部)主 管領(lǐng)導(dǎo)意 見年 月日長沙學(xué)院課程設(shè)計(jì)鑒定表姓名唐玉紅 學(xué)號 2008044121專業(yè)08電子班級 一班設(shè)計(jì)題目學(xué)校作息時(shí)間系統(tǒng)的設(shè)計(jì)指導(dǎo)教師 王新輝、劉輝、謝明華指導(dǎo)教師意見:評定等級: 教師簽名: 日期: 答辯小組意見:評定等級: 答辯小組長簽名: 日期: 教研室總見:教研室主任簽名: 日期: 系(部)意見:系主任簽名: 日期:說明課程設(shè)計(jì)成績分“優(yōu)秀”、“良好”、“及格”、“不及格”四類;目錄一、設(shè)計(jì)說

4、明5二、硬件設(shè)計(jì)5三、程序設(shè)計(jì)51、使用方法52、基本原理63、程序清單64、仿真測試11四、經(jīng)驗(yàn)總結(jié)11五、參考文獻(xiàn)12一、設(shè)計(jì)說明:( 1)課題內(nèi)容:以單片機(jī)為核心,設(shè)計(jì)一個(gè)智能化作息時(shí)間控制器。該控制器要求的功能有:按本校作息時(shí)間接通/ 斷開電鈴 ( 以蜂鳴器代替) ;并用液晶屏顯示時(shí)鐘(可用數(shù)碼管顯示) 。作息時(shí)間控制器常用于學(xué)校教學(xué)樓的時(shí)間控制, 利用單片機(jī)內(nèi)部定時(shí)器實(shí)現(xiàn)時(shí)間基準(zhǔn)定時(shí),顯示的內(nèi)容要求有時(shí)、分、秒各兩位(用數(shù)碼管可以不顯示秒) ,并能調(diào)節(jié)小時(shí)和分鐘。( 2)要求:完成該系統(tǒng)的硬件和軟件的設(shè)計(jì),在Proteus 軟件上仿真通過后,下載到單片機(jī)進(jìn)行硬件驗(yàn)證。最后就課程設(shè)計(jì)本

5、身提交一篇課程設(shè)計(jì)說明書二、硬件設(shè)計(jì)如下圖所示。單片機(jī) P3.3P3.5 與三個(gè)按鈕連接,起分別控制秒鐘、分鐘和時(shí)鐘, P2.6 與 led 燈相連代替喇叭,到一定時(shí)間燈亮, P1.0P1.7 接數(shù)碼管,控制數(shù)碼管數(shù)字的形成, P2.0P2.3 接數(shù) 碼管的控制端,控制數(shù)碼管的顯示。 三、程序設(shè)計(jì)1、使用方法接通電源后,程序開始工作,數(shù)碼管“ 0000”并開始計(jì)時(shí)。( 1) 設(shè)置現(xiàn)在時(shí)間按 s-set 鍵設(shè)置現(xiàn)在的秒鐘調(diào)整,按一下秒鐘加一;按m-set 鍵設(shè)置現(xiàn)在的分鐘調(diào)整,按一下分鐘加一; h-set 按鍵設(shè)置小時(shí)的調(diào)整,按一下小時(shí)加一。小時(shí)超過 24 小時(shí)時(shí)自動跳為0,當(dāng)分鐘超過60 時(shí)自

6、動跳到 0( 2) 設(shè)置作息時(shí)間在程序中嵌入了我們學(xué)校的一套作息時(shí)間。( 3) 電鈴的響停Proteus 仿真運(yùn)行時(shí)會自動判斷是否到了打鈴時(shí)間即燈亮的時(shí)間, 每一次亮燈時(shí) 時(shí)間為 10s 過了十秒之后自動熄滅。2、基本原理用獨(dú)立式按鍵來實(shí)現(xiàn)分鐘、小時(shí)、秒鐘的可調(diào),用中斷和動態(tài)顯示的方法時(shí)間數(shù)碼管上時(shí)間的顯示,用查詢的方法在程序中嵌入一套作息時(shí)間系統(tǒng)。3 、程序清單/ 硬件連接 :段選碼 P1.0P1.7(a,b,c,d,e,f,g,h,dp), 位選碼 P2.0P2.3( 高到低 )/ K1-P3.5;K2-P3.4;K3-P3.3;K4-P3.2#include "reg51.h&

7、quot;#define uchar unsigned char#define uint unsigned int#define Hidden 0x10; /消隱字符在字形碼中的位置uchar code BitTab=0xfe,0xfd,0xfb,0xf7,0xef,0xdf; uchar codeDispTab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;uchar DispBuf6; /6/uchar minutevalue ;bit Sec; /1sbit Minute; /1mbit Hour; /1hbit H_up;bit H

8、_down;bit M_up;bit M_down;sbit P2_7=P2A7; sbit p2_6=P2A6; /void mDelay(unsigned int Delay);uchar led_alarm;/uchar SecValue; /uchar MinuteValue; /uchar HourValue; /uchar code TH0Val=63075/256;uchar codeTL0Val=63075%256;/值為 63036, 校準(zhǔn)值為 63075)到的標(biāo)記到的標(biāo)記到的標(biāo)記周期測試位 測試位字節(jié)的顯示緩沖區(qū)led秒計(jì)數(shù)分計(jì)數(shù)時(shí)計(jì)數(shù)晶振為12M,定時(shí)2.5ms定時(shí)器初值

9、(計(jì)算void alarm()/if(minutevalue=0)&&(secvalue=0)&&(hourvalue=8) ) if(MinuteValue=5)&&(SecValue=0)&&(HourValue=8) ) / p2_6=1;/ mDelay(10000);/p2_6=0;led_alarm=1;void Timer0() interrupt 1 uchar tmp;static uchar dCount; /示那個(gè)數(shù)碼管static uint Count; /const uint CountNum=400;

10、/P2_7=!P2_7;/TH0=TH0Val;TL0=TL0Val;tmp=BitTabdCount; /計(jì)數(shù)器 , 顯示程序通過它得知現(xiàn)在顯秒計(jì)數(shù)器預(yù)置值 (400*2.5ms=1minute)外部測試位,用于調(diào)整定時(shí)器初值根據(jù)當(dāng)前的計(jì)數(shù)值取位值P2=P2|0x3f; /P2 P2=P2&tmp; /P2 tmp=DispBufdCount; / 待顯示值tmp=DispTabtmp; /P1=tmp; / dCount+; / if(dCount=6) / dCount=0;/ 以下為秒計(jì)數(shù) Count+; / if(Count>=CountNum) / Count=0;

11、/ Sec=1; / SecValue+; / if(SecValue>=60) SecValue=0;Minute=1; / MinuteValue+; / if(MinuteValue>=60) Hour=1; /MinuteValue=0;HourValue+; /與 00111111 相或 , 將低 6 位置 1與取出的值相與, 將某一位清0根據(jù)當(dāng)前的計(jì)數(shù)值, 取顯示緩沖區(qū)的取字形碼送出字形碼計(jì)數(shù)值加 1如果計(jì)數(shù)值為 6, 歸 0計(jì)數(shù)值加 1到達(dá)預(yù)置計(jì)數(shù)值清零置 1 秒到標(biāo)志位秒值加 1置 1 分到標(biāo)志位分值加 1置 1 小時(shí)到標(biāo)志位小時(shí)值加 1if(HourValue=8

12、)&&(MinuteValue=0)|(HourValue=8)&&(MinuteValue=45)&& (SecValue<=10)p2_6=0; else p2_6=1;void Init() TMOD=0x01;TH0=TH0Val;TL0=TL0Val;ET0=1; /開 T0 中斷EA=1; /開總中斷TR0=1; /T0開始運(yùn)行void mDelay(unsigned int Delay) /延時(shí)程序,用于鍵盤消抖 unsigned int i; for(;Delay>0;Delay-) for(i=0;i<124;

13、i+); uchar Key() / uchar KValue;uchar tmp;P3|=0x3c;/KValue=P3;KValue|=0xc3; / if(KValue=0xff) / return(0); / mDelay(10); / KValue=P3;KValue|=0xc3; / if(KValue=0xff) return(0); for(;) tmp=P3;if(tmp|0xc3)=0xff) / break; return(KValue);void KProce(uchar KValue) / if(KValue&0x20)=0) /K1 H_up=1;鍵盤程序,

14、獲得鍵值將 P3 口接鍵盤的4 位置1將未接的四位置1中間 4 位均為1,無鍵按下返回延時(shí)10mS?肖抖再次讀鍵盤等待按鍵釋放鍵值處理程序if(KValue&0x10)=0) /K2 H_down=1;if(KValue&0x08)=0) /K3M_up=1;if(KValue&0x04)=0) /K4 M_down=1;void main()存放鍵值 uchar KValue; / p2_6=0;if(MinuteValue=5)&&(SecValue=0)&&(HourValue=0) )p2_6=0;Init(); /初始化/ala

15、rm();DispBuf4=SecValue/10;DispBuf5=SecValue%10;for(;)DispBuf2=MinuteValue/10;DispBuf3=MinuteValue%10;DispBuf0=HourValue/10;DispBuf1=HourValue%10;if(Sec) /1s DispBuf4=SecValue/10;DispBuf5=SecValue%10;if(DispBuf4=0)/ DispBuf4=Hidden; /Sec=0; /if(Minute) if(DispBuf2=0)/ DispBuf2=Hidden; /Minute=0; /if(

16、Hour) if(DispBuf0=0)/ DispBuf0=Hidden; /Hour=0; /KValue=Key(); /if(KValue) / KProce(KValue); /if(H_up) / HourValue+;if(HourValue>=24) HourValue=0;H_up=0;if(H_down) HourValue-;H_down=0;if(M_up) / MinuteValue+;if(MinuteValue>=60)MinuteValue=0;M_up=0;if(M_down) MinuteValue-;M_down=0;時(shí)間到高位 0 消隱清除

17、1s 到標(biāo)志位高位 0 消隱清除1m到標(biāo)志位高位 0 消隱清除 1h 到標(biāo)志位調(diào)鍵盤程序獲得鍵值該值不等于0調(diào)鍵盤處理程序小時(shí)值調(diào)整分值調(diào)整4、仿真測試將寫好的程序仿真無誤后,導(dǎo)入到硬件圖的 51 芯片里面進(jìn)行測試,結(jié)果如下:把程序下載到實(shí)物上時(shí),一到設(shè)定時(shí)間蜂鳴器就會叫,表示打鈴。四 、經(jīng)驗(yàn)總結(jié)做了兩周的課程設(shè)計(jì),讓人感受頗深,有關(guān)于單片機(jī)知識的,但更多的是團(tuán)隊(duì)的合作。此次單片機(jī)的課程設(shè)計(jì)題目是作息時(shí)間系統(tǒng), 與我們學(xué)生的學(xué)習(xí)生活息息相關(guān), 自己對功能的實(shí)現(xiàn)不是很滿意, 因?yàn)橛幸粋€(gè)功能沒有實(shí)現(xiàn), 通過這次的課程設(shè)計(jì)作品的制作讓我對單片機(jī)的理論有了更加深入的了解, 同時(shí)在具體的制作過程中我們發(fā)現(xiàn)現(xiàn)在書本上的知識與實(shí)際的應(yīng)用存在著不小的差距, 書本上的知識很多都是理想化后的結(jié)論, 忽略了很多實(shí)際的因素,或者涉及的不全面,可在實(shí)際的應(yīng)用時(shí)這些是不能被忽略的,我們不得不考慮這方的問題,這讓我們無法根據(jù)書上的理論就輕易得到預(yù)想中的結(jié)果, 有時(shí)結(jié)果甚至很差別很大。 通過這次實(shí)踐使我更深刻的體會到了理論聯(lián)系實(shí)際的重要性, 我們在今后的學(xué)習(xí)工作中會更加的注重實(shí)際,避免稱為只會紙上談兵的趙括。單片機(jī)是很重要的一門課程,老師和一些已經(jīng)工作了的同學(xué)都說過, 如果學(xué)好

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論