課程設(shè)計(jì)-可編程作息時(shí)間控制器.doc
《課程設(shè)計(jì)-可編程作息時(shí)間控制器.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《課程設(shè)計(jì)-可編程作息時(shí)間控制器.doc(33頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、微處理器與接口課程設(shè)計(jì)設(shè)計(jì)題目:可編程作息時(shí)間控制器學(xué) 院:年 級(jí):專 業(yè):姓 名:學(xué) 號(hào):指導(dǎo)教師:張明波 王積翔 2015 年 12 月 15 日電子技術(shù)課程設(shè)計(jì)目錄1.1 前言21.2設(shè)計(jì)內(nèi)容及意義12.原理及工作過(guò)程說(shuō)明43.1系統(tǒng)電路圖63.2詳細(xì)設(shè)計(jì)73.31602LCD液晶顯示器74,心得與問(wèn)題85,具體程序10參考文獻(xiàn)321.1 前言本課程既是一門專業(yè)基礎(chǔ)課,又是一門實(shí)踐性很強(qiáng)的課程,對(duì)培養(yǎng)學(xué)生解決工程問(wèn)題的能力和其他后續(xù)課程的教學(xué)都具有重要意義。課程目標(biāo)是通過(guò)理論和實(shí)驗(yàn)學(xué)習(xí),使學(xué)生掌握單片機(jī)的工作原理、基本接口技術(shù)和使用單片機(jī)構(gòu)成應(yīng)用系統(tǒng)的基本方法、設(shè)計(jì)原理。為本課程實(shí)踐環(huán)節(jié)
2、打下基礎(chǔ),為傳感器與檢測(cè)技術(shù)、PLC,機(jī)電傳動(dòng)與控制、機(jī)電一體化系統(tǒng)設(shè)計(jì)等課程創(chuàng)造條件,為學(xué)生從事機(jī)電一體化專業(yè)技術(shù)工作打下基礎(chǔ)。 本課程的教學(xué),要求學(xué)生先行學(xué)習(xí)C語(yǔ)言程序設(shè)計(jì)、電子技術(shù)基礎(chǔ)等,同時(shí)掌握程序編制與接口電路設(shè)計(jì)的基本知識(shí),著力培養(yǎng)和提高學(xué)生運(yùn)用各項(xiàng)基本理論和方法解決實(shí)際問(wèn)題的分析能力和動(dòng)手能力,增強(qiáng)學(xué)生工程素質(zhì)和創(chuàng)新能力。1.2 設(shè)計(jì)內(nèi)容及意義實(shí)驗(yàn)名稱: 可編程作息時(shí)間控制器 實(shí)驗(yàn)要求:本項(xiàng)目利用單片機(jī)定時(shí)計(jì)數(shù)器及LCD接口實(shí)現(xiàn)實(shí)時(shí)時(shí)鐘顯示,并具有可調(diào)整的上下課打鈴,燈光控制等功能的作息時(shí)間控制器。實(shí)驗(yàn)涉及內(nèi)容:定時(shí)器實(shí)驗(yàn),LCD顯示實(shí)驗(yàn),8279鍵盤顯示接口實(shí)驗(yàn) 具體原理說(shuō)明:
3、1定時(shí)器部分:定時(shí)器/計(jì)數(shù)器的工作原理計(jì)數(shù)器輸入的計(jì)數(shù)脈沖源系統(tǒng)的時(shí)鐘振蕩器輸出脈沖經(jīng)12分頻后產(chǎn)生;T0或T1引腳輸入的外部脈沖源。計(jì)數(shù)過(guò)程每來(lái)一個(gè)脈沖計(jì)數(shù)器加1,當(dāng)加到計(jì)數(shù)器為全1(即FFFFH)時(shí),再輸入一個(gè)脈沖就使計(jì)數(shù)器回零,且計(jì)數(shù)器的溢出使TCON中TF0或TF1置1,向CPU發(fā)出中斷請(qǐng)求(定時(shí)器/計(jì)數(shù)器中斷允許時(shí))。如果定時(shí)器/計(jì)數(shù)器工作于定時(shí)模式,則表示定時(shí)時(shí)間已到;如果工作于計(jì)數(shù)模式,則表示計(jì)數(shù)值已滿。定時(shí)應(yīng)用用作定時(shí)器:此時(shí)設(shè)置為定時(shí)器模式,加1計(jì)數(shù)器是對(duì)內(nèi)部機(jī)器周期計(jì)數(shù)(1個(gè)機(jī)器周期等于12個(gè)振蕩周期,即計(jì)數(shù)頻率為晶振頻率的1/12)。計(jì)數(shù)值N乘以機(jī)器周期Tcy就是定時(shí)時(shí)間
4、t 。計(jì)數(shù)運(yùn)用用作計(jì)數(shù)器:此時(shí)設(shè)置為計(jì)數(shù)器模式,外部事件計(jì)數(shù)脈沖由T0或T1引腳輸入到計(jì)數(shù)器。每來(lái)一個(gè)外部脈沖,計(jì)數(shù)器加1。但單片機(jī)對(duì)外部脈沖有基本要求:脈沖的高低電平持續(xù)時(shí)間都必須大于1個(gè)機(jī)器周期。2.LCD顯示;液晶顯示器(LCD)是一種功耗極低的顯示器件,它廣泛應(yīng)用于便攜式電子產(chǎn)品中,它不僅省電,而且能夠顯示大量的信息,如文字、曲線、圖形等,其顯示界面較之?dāng)?shù)碼管有了質(zhì)的提高。近年來(lái)液晶顯示技術(shù)發(fā)展很快,LCD顯示器已經(jīng)成為僅次于顯象管的第二大顯示產(chǎn)業(yè)。LCD顯示器由于類型、用途不同,其性能、結(jié)構(gòu)不可能完全相同,但其基本形態(tài)和結(jié)構(gòu)卻是大同小異,通??蓪CD為筆段型、字符型和點(diǎn)陣圖形型3.
5、8279鍵盤顯示接口:INTEL 8279是一種可編程鍵盤、顯示器接口芯片,它含有鍵盤輸入和顯示器輸出兩種功能。鍵盤輸入時(shí),它提供自動(dòng)掃描,能與按鍵或傳感器組成的矩陣相連,接受輸入信息,它能自動(dòng)消除開(kāi)關(guān)抖動(dòng)并能對(duì)多鍵同時(shí)按下提供保護(hù)。顯示輸出時(shí),它有一個(gè)16*8位顯示RAM,其內(nèi)容通過(guò)自動(dòng)掃描,可由8或16位LED數(shù)碼管顯示。2.原理及工作過(guò)程說(shuō)明制作一個(gè)可編程作息時(shí)間控制器鬧鐘,當(dāng)4路鬧鐘中的任一路到時(shí),均會(huì)點(diǎn)亮燈、打鈴。如有需求,可對(duì)程序進(jìn)行調(diào)整,增加鬧鐘的路數(shù)及到時(shí)后的處理方式。定時(shí)鬧鐘的基本功能如下。(1)顯示時(shí)鐘時(shí)間,格式為“時(shí)時(shí):分分”,并可重新設(shè)置。(2)顯示鬧鈴時(shí)間,格式為“時(shí)
6、時(shí):分分”,且顯示閃爍以便與時(shí)鐘時(shí)間相區(qū)分。鬧鈴時(shí)間可重新設(shè)置。(3)程序執(zhí)行后工作指示燈LED閃爍,表示時(shí)鐘工作為時(shí)鐘顯示模式LCD顯示的初始時(shí)間為“23:58”。按下K2,閃爍顯示的“00:00”為鬧鈴的時(shí)間,單擊K3又返回時(shí)鐘顯示模式。時(shí)鐘從“23:58”開(kāi)始計(jì)時(shí),定時(shí)時(shí)間“00:00”到時(shí),繼電器開(kāi)關(guān)接通,控制電器的開(kāi)啟,且可發(fā)出聲響(可控)。時(shí)鐘與鬧鈴時(shí)問(wèn)的設(shè)置可通過(guò)4個(gè)功能按鍵KlK4實(shí)現(xiàn),具體說(shuō)明如下。(1)時(shí)鐘時(shí)間的設(shè)置:首先單擊Kl進(jìn)入時(shí)鐘設(shè)置模式。此時(shí)每單擊一下Kl,則小時(shí)增l,單擊一下K2,則分鐘增1,再單擊K3則設(shè)置完成,返回時(shí)鐘顯示模式。此時(shí)小時(shí)和分鐘均已發(fā)生變化。(
7、2)鬧鈴的時(shí)間設(shè)置:首先單擊,K3進(jìn)入鬧鈴的設(shè)置模式。此時(shí)每單擊一下Kl,則小時(shí)增1,單擊一下K2,則分鐘增l,最后單擊K3則設(shè)置完成,返回鬧鈴顯示模式。此時(shí)鬧鈴的小時(shí)和分鐘均已發(fā)生變化。(3) K4的功能:鬧鐘更換。(4) K2單獨(dú)的功能:顯示鬧鈴時(shí)間。3.1系統(tǒng)電路圖實(shí)際圖3.2詳細(xì)設(shè)計(jì)程序部分主要采用了程序結(jié)構(gòu)的模塊化設(shè)計(jì),避免了一些函數(shù)的不必要的重復(fù)書(shū)寫,使程序變得單間易懂。程序在執(zhí)行時(shí),主程序要須通過(guò)調(diào)用子函數(shù)就可完成相應(yīng)的功能 。主程序流程圖如下鬧鈴2時(shí)間到?定時(shí)計(jì)數(shù)器時(shí)間顯示日期顯示鬧鈴4時(shí)間到?鬧鈴3時(shí)間到?鬧鈴1時(shí)間到?3.3 1602LCD液晶顯示器4 問(wèn)題及心得:?jiǎn)栴}:由
8、于準(zhǔn)備的不夠充分對(duì)于燈光的控制并沒(méi)有完美實(shí)現(xiàn)。心得:通過(guò)自己的不懈努力,我終于完成了設(shè)計(jì)的任務(wù)要求。功能上基本達(dá)標(biāo):時(shí)鐘的顯示,日期顯示,調(diào)時(shí)功能、校時(shí)功能、上課下課功能。在本次設(shè)計(jì)的過(guò)程中,我發(fā)現(xiàn)很多的問(wèn)題,雖然以前沒(méi)有做過(guò)這樣的設(shè)計(jì)但通過(guò)這次設(shè)計(jì)我學(xué)會(huì)了很多東西,單片機(jī)課程設(shè)計(jì)重點(diǎn)就在于軟件算法的設(shè)計(jì),需要有很巧妙的程序算法,雖然以前寫過(guò)幾次程序,但我覺(jué)的寫好一個(gè)程序并不是一件簡(jiǎn)單的事,比如寫一個(gè)程序看其功能很少認(rèn)為編寫程序簡(jiǎn)單,但到編程的時(shí)候才發(fā)現(xiàn)一些細(xì)微的知識(shí)或低級(jí)錯(cuò)誤經(jīng)常犯做不到最后常常失敗,所以有些東西只有學(xué)精弄懂并且要細(xì)心才行,只學(xué)習(xí)理論有些東西是很難理解的,更談不上掌握。從這次
9、的課程設(shè)計(jì)中,我們真真正正的意識(shí)到,在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們所學(xué)的理論知識(shí)用到實(shí)際當(dāng)中,程序只有在經(jīng)常的練習(xí)的過(guò)程中才能提高,我想這就是我在這次課程設(shè)計(jì)中的最大收獲。5具體程序圖:#include #include #define uint unsigned int#define uchar unsigned char#define CON8279 0 xCFE9#define DATA8279 0 xCFE8#define s_site_x 6#define s_site_y 0/y為所在列#define m_site_x 3#define m_site_y 0/y為所在列#d
10、efine h_site_x 0#define h_site_y 0/y為所在列static uchar hour,min,scond; /計(jì)時(shí)時(shí)間static uchar s_hour,s_min,s_scond;/上課時(shí)間設(shè)置static uchar s_hour2,s_min2,s_scond2;/下課時(shí)間設(shè)置static uchar set_ok;/設(shè)置標(biāo)志位static uchar set_ok2;uchar count = 0;/用于記錄定時(shí)器進(jìn)入中斷次數(shù),以實(shí)現(xiàn)長(zhǎng)時(shí)間定時(shí)uchar code keyval=0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0
11、 x06,0 x07,0 x08,0 x09,0 x0a,0 x0b,0 x10,0 x11,0 x12,0 x13,0 x18,0 x19,0 x1a,0 x1b;uchar code SEG=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71,0 x00;uchar key;sbit BUSY = P34;sbit STOBE = P35;void init();void scan_tim();void delay(uint tem);void KbD
12、isInit();uchar ReadKey();void Display(uchar y);void time0_init();void send(uint tem);void lcd_init();void lcd_disp_ascii(uint x,uint y,uchar dat);void disp_time(uint x,uint y,uchar s);void init()/初始化set_ok = 0;/允許設(shè)定時(shí)間set_ok2 = 0 ;hour = 12;/設(shè)定時(shí)鐘初值min = 0;scond = 0;s_hour =12;/設(shè)定鬧鐘初值s_min = 0;s_scond
13、= 0;s_hour2 =12;/設(shè)定鬧鐘初值s_min2 = 0;s_scond2= 0;lcd_init();KbDisInit();disp_time(s_site_x,s_site_y,scond);disp_time(m_site_x,m_site_y,min);disp_time(h_site_x,h_site_y,hour);disp_time(s_site_x+8,s_site_y+17,scond);disp_time(m_site_x+8,m_site_y+17,min);disp_time(h_site_x+8,h_site_y+17,hour);disp_time(s_
14、site_x+8,s_site_y+25,scond);disp_time(m_site_x+8,m_site_y+25,min);disp_time(h_site_x+8,h_site_y+25,hour);lcd_disp_ascii(2,0,58);lcd_disp_ascii(5,0,58);time0_init();uchar ReadKey()if(XBYTE0 xCFE9&0 x07)XBYTE0 xCFE9=0 x40;key=XBYTE0 xCFE8;return 0;void Display(uchar y)XBYTE0 xCFE9=0 x80;XBYTE0 xCFE8=S
15、EGy;void lcd_disp_ascii(uint x,uint y,uchar dat) / send(0 xf1);send(x);send(y);send(dat);void lcd_disp_hanzhi(uint x,uint y,uchar dat1,uchar dat2) / send(0 xf0);send(x);send(y);send(dat1);send(dat2);void disp_time(uint x,uint y,uchar s)/X為行 Y為列 s要顯示的時(shí)間(s,m,h對(duì)應(yīng)的x,y要區(qū)分)uchar i,j; i = s/10 + 48;j = s%1
16、0 + 48;lcd_disp_ascii(x+1,y,j);lcd_disp_ascii(x,y,i);void nokey()void k0()s_scond += 5 ;/秒加1 if(s_scond = 60)s_scond = 0;disp_time( s_site_x+8 ,s_site_y+17,s_scond);delay(10);delay(10);void k1()s_min += 5;/分加1if (s_min = 60)s_min = 0;disp_time( m_site_x+8 ,m_site_y+17,s_min);void k2()s_hour+;/時(shí)加1if
17、(s_hour = 12)s_hour = 0;disp_time( h_site_x+8 ,h_site_y+17,s_hour);void k3()s_scond2 += 5 ;/秒加1 if(s_scond2 = 60)s_scond2 = 0;disp_time( s_site_x+8 ,s_site_y+25,s_scond2);void k4()s_min2 += 5;/分加1if (s_min2 = 60)s_min2 = 0;disp_time( m_site_x+8 ,m_site_y+25,s_min2);void k5()s_hour2+;/時(shí)加1if (s_hour2
18、= 12)s_hour2 = 0;disp_time( h_site_x+8 ,h_site_y+25,s_hour2);void k6()/確定 set_ok = 1 ;set_ok2 = 1 ;void k7()/取消 set_ok = 0 ;set_ok2 = 0 ;/code void (code * keyproctab)() = nokey,k0,k1,k2,k3,k4,k5,k6,k7 ;/讀取鍵值并執(zhí)行對(duì)應(yīng)函數(shù)void send(uint tem)while(BUSY);P1 = tem;STOBE = 1;while(!BUSY);STOBE = 0;void key_wor
19、k()if(key = 0) k0();if(key = 1) k1();if(key = 2) k2();if(key = 3) k3();if(key = 4) k4();if(key = 5) k5();if(key = 6) k6();if(key = 7) k7();void main()init();/全部功能初始化lcd_disp_hanzhi(4,0,33,85);lcd_disp_hanzhi(5,0,28,50);lcd_disp_hanzhi(6,0,19,41);/lcd_disp_hanzhi(7,0,28,68);while(1)if(XBYTE0 xCFE9&0
20、x07)ReadKey();key=key-192;Display(key);/( * keyproctabReadKey()();/執(zhí)行按鍵對(duì)應(yīng)的功能key_work();delay(10);void Time0(void) interrupt 1 using 0/中斷函數(shù)服務(wù)子程序count+;if(count = 20)scan_tim();/一秒時(shí)間到/顯示時(shí)間count = 0;TH0=(65536-46083)/256;TL0=(65536-46083)%256;void scan_tim()/時(shí)間記錄函數(shù)scond+;disp_time(s_site_x,s_site_y,sco
21、nd);if(scond = 60)scond = 0;min +;disp_time(s_site_x,s_site_y,scond);disp_time(m_site_x,m_site_y,min);if(min = 60)min = 0;hour +;disp_time(m_site_x,m_site_y,min);disp_time(h_site_x,h_site_y,hour);if(hour = 24)hour = 0;disp_time(h_site_x,h_site_y,hour);if( (set_ok=1) & (scond=s_scond) & (hour = s_hou
22、r) & (s_min=min) )/上課時(shí)間到set_ok = 0;/關(guān)閉 lcd_disp_ascii(0,15,); /lcd_disp_hanzhi(0,1,41,47);/lcd_disp_hanzhi(1,1,31,46);if( (set_ok2=1) & (scond=s_scond2) & (hour = s_hour2) & (s_min2=min) )/下課時(shí)間到set_ok2 = 0;/關(guān)閉 lcd_disp_ascii(0,25,); /lcd_disp_hanzhi(0,1,47,34);/lcd_disp_hanzhi(1,1,31,46);void lcd_in
23、it()STOBE = 0;BUSY = 1;send(0 xf4);delay(10);void time0_init()EA=1;ET0=1;TMOD=0 x01;TH0=(65536-46083)/256;TL0=(65536-46083)%256;TR0=1;void KbDisInit()XBYTE0 xCFE9=0 x00;XBYTE0 xCFE9=0 xD1;while (XBYTE0 xCFE9&0 x80);XBYTE0 xCFE8=0 x34;void delay(uint tem)uint ii,jj;for (ii = 0;ii tem; ii +)for (jj =
24、0;jj 100; jj+);/*/*ASCII 碼說(shuō)明:48-74 對(duì)應(yīng) 0-958 為 :30 為 上課31 為 下課14 為 到點(diǎn)*/*/ uchar i = 0;/time0_init();/KbDisInit();/Display(0);/lcd_init();/send(0 xf0);/send(00);/send(00);/send(26);/send(58);/send(0 xf1);/send(8);/send(18);/send(29);/send(0 xf1);/send(10);/send(18);/send(29);參考文獻(xiàn)微處理器原理及接口實(shí)驗(yàn)指導(dǎo)書(shū)黑龍江大學(xué)電子實(shí)驗(yàn)中心 王積翔,莊培棟 編3132
- 溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 造紙納米碳酸鈣
- 2019中考物理第1章機(jī)械運(yùn)動(dòng)復(fù)習(xí)課件新人教版1
- LRBG的技能模型與角色模型
- 轉(zhuǎn)子間骨折的個(gè)手術(shù)技巧
- 生命之源血液
- 表情符號(hào)與藝術(shù)-美術(shù)ppt課件
- 壓力管理和積極心態(tài)
- 部編版初中語(yǔ)文春優(yōu)質(zhì)課課件
- 教育行業(yè)聯(lián)盟解決方案培訓(xùn)-new
- 控制與接口技術(shù)-基于模糊推理的智能控制 1226
- 八年級(jí)物理-聲音的特征-課件
- 藤野先生余映潮教案課件
- 興趣及其培養(yǎng)(發(fā)展職業(yè)生涯要立足本人實(shí)際)詳解課件
- 學(xué)會(huì)調(diào)控情緒_課件(教育精品)
- (廣州版)五年級(jí)英語(yǔ)下冊(cè)課件-Module-4-Unit-112