課程設計-可編程作息時間控制器.doc

上傳人:good****022 文檔編號:116507737 上傳時間:2022-07-05 格式:DOC 頁數:33 大?。?11.50KB
收藏 版權申訴 舉報 下載
課程設計-可編程作息時間控制器.doc_第1頁
第1頁 / 共33頁
課程設計-可編程作息時間控制器.doc_第2頁
第2頁 / 共33頁
課程設計-可編程作息時間控制器.doc_第3頁
第3頁 / 共33頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《課程設計-可編程作息時間控制器.doc》由會員分享,可在線閱讀,更多相關《課程設計-可編程作息時間控制器.doc(33頁珍藏版)》請在裝配圖網上搜索。

1、微處理器與接口課程設計設計題目:可編程作息時間控制器學 院:年 級:專 業(yè):姓 名:學 號:指導教師:張明波 王積翔 2015 年 12 月 15 日電子技術課程設計目錄1.1 前言21.2設計內容及意義12.原理及工作過程說明43.1系統(tǒng)電路圖63.2詳細設計73.31602LCD液晶顯示器74,心得與問題85,具體程序10參考文獻321.1 前言本課程既是一門專業(yè)基礎課,又是一門實踐性很強的課程,對培養(yǎng)學生解決工程問題的能力和其他后續(xù)課程的教學都具有重要意義。課程目標是通過理論和實驗學習,使學生掌握單片機的工作原理、基本接口技術和使用單片機構成應用系統(tǒng)的基本方法、設計原理。為本課程實踐環(huán)節(jié)

2、打下基礎,為傳感器與檢測技術、PLC,機電傳動與控制、機電一體化系統(tǒng)設計等課程創(chuàng)造條件,為學生從事機電一體化專業(yè)技術工作打下基礎。 本課程的教學,要求學生先行學習C語言程序設計、電子技術基礎等,同時掌握程序編制與接口電路設計的基本知識,著力培養(yǎng)和提高學生運用各項基本理論和方法解決實際問題的分析能力和動手能力,增強學生工程素質和創(chuàng)新能力。1.2 設計內容及意義實驗名稱: 可編程作息時間控制器 實驗要求:本項目利用單片機定時計數器及LCD接口實現實時時鐘顯示,并具有可調整的上下課打鈴,燈光控制等功能的作息時間控制器。實驗涉及內容:定時器實驗,LCD顯示實驗,8279鍵盤顯示接口實驗 具體原理說明:

3、1定時器部分:定時器/計數器的工作原理計數器輸入的計數脈沖源系統(tǒng)的時鐘振蕩器輸出脈沖經12分頻后產生;T0或T1引腳輸入的外部脈沖源。計數過程每來一個脈沖計數器加1,當加到計數器為全1(即FFFFH)時,再輸入一個脈沖就使計數器回零,且計數器的溢出使TCON中TF0或TF1置1,向CPU發(fā)出中斷請求(定時器/計數器中斷允許時)。如果定時器/計數器工作于定時模式,則表示定時時間已到;如果工作于計數模式,則表示計數值已滿。定時應用用作定時器:此時設置為定時器模式,加1計數器是對內部機器周期計數(1個機器周期等于12個振蕩周期,即計數頻率為晶振頻率的1/12)。計數值N乘以機器周期Tcy就是定時時間

4、t 。計數運用用作計數器:此時設置為計數器模式,外部事件計數脈沖由T0或T1引腳輸入到計數器。每來一個外部脈沖,計數器加1。但單片機對外部脈沖有基本要求:脈沖的高低電平持續(xù)時間都必須大于1個機器周期。2.LCD顯示;液晶顯示器(LCD)是一種功耗極低的顯示器件,它廣泛應用于便攜式電子產品中,它不僅省電,而且能夠顯示大量的信息,如文字、曲線、圖形等,其顯示界面較之數碼管有了質的提高。近年來液晶顯示技術發(fā)展很快,LCD顯示器已經成為僅次于顯象管的第二大顯示產業(yè)。LCD顯示器由于類型、用途不同,其性能、結構不可能完全相同,但其基本形態(tài)和結構卻是大同小異,通??蓪CD為筆段型、字符型和點陣圖形型3.

5、8279鍵盤顯示接口:INTEL 8279是一種可編程鍵盤、顯示器接口芯片,它含有鍵盤輸入和顯示器輸出兩種功能。鍵盤輸入時,它提供自動掃描,能與按鍵或傳感器組成的矩陣相連,接受輸入信息,它能自動消除開關抖動并能對多鍵同時按下提供保護。顯示輸出時,它有一個16*8位顯示RAM,其內容通過自動掃描,可由8或16位LED數碼管顯示。2.原理及工作過程說明制作一個可編程作息時間控制器鬧鐘,當4路鬧鐘中的任一路到時,均會點亮燈、打鈴。如有需求,可對程序進行調整,增加鬧鐘的路數及到時后的處理方式。定時鬧鐘的基本功能如下。(1)顯示時鐘時間,格式為“時時:分分”,并可重新設置。(2)顯示鬧鈴時間,格式為“時

6、時:分分”,且顯示閃爍以便與時鐘時間相區(qū)分。鬧鈴時間可重新設置。(3)程序執(zhí)行后工作指示燈LED閃爍,表示時鐘工作為時鐘顯示模式LCD顯示的初始時間為“23:58”。按下K2,閃爍顯示的“00:00”為鬧鈴的時間,單擊K3又返回時鐘顯示模式。時鐘從“23:58”開始計時,定時時間“00:00”到時,繼電器開關接通,控制電器的開啟,且可發(fā)出聲響(可控)。時鐘與鬧鈴時問的設置可通過4個功能按鍵KlK4實現,具體說明如下。(1)時鐘時間的設置:首先單擊Kl進入時鐘設置模式。此時每單擊一下Kl,則小時增l,單擊一下K2,則分鐘增1,再單擊K3則設置完成,返回時鐘顯示模式。此時小時和分鐘均已發(fā)生變化。(

7、2)鬧鈴的時間設置:首先單擊,K3進入鬧鈴的設置模式。此時每單擊一下Kl,則小時增1,單擊一下K2,則分鐘增l,最后單擊K3則設置完成,返回鬧鈴顯示模式。此時鬧鈴的小時和分鐘均已發(fā)生變化。(3) K4的功能:鬧鐘更換。(4) K2單獨的功能:顯示鬧鈴時間。3.1系統(tǒng)電路圖實際圖3.2詳細設計程序部分主要采用了程序結構的模塊化設計,避免了一些函數的不必要的重復書寫,使程序變得單間易懂。程序在執(zhí)行時,主程序要須通過調用子函數就可完成相應的功能 。主程序流程圖如下鬧鈴2時間到?定時計數器時間顯示日期顯示鬧鈴4時間到?鬧鈴3時間到?鬧鈴1時間到?3.3 1602LCD液晶顯示器4 問題及心得:問題:由

8、于準備的不夠充分對于燈光的控制并沒有完美實現。心得:通過自己的不懈努力,我終于完成了設計的任務要求。功能上基本達標:時鐘的顯示,日期顯示,調時功能、校時功能、上課下課功能。在本次設計的過程中,我發(fā)現很多的問題,雖然以前沒有做過這樣的設計但通過這次設計我學會了很多東西,單片機課程設計重點就在于軟件算法的設計,需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個程序并不是一件簡單的事,比如寫一個程序看其功能很少認為編寫程序簡單,但到編程的時候才發(fā)現一些細微的知識或低級錯誤經常犯做不到最后常常失敗,所以有些東西只有學精弄懂并且要細心才行,只學習理論有些東西是很難理解的,更談不上掌握。從這次

9、的課程設計中,我們真真正正的意識到,在以后的學習中,要理論聯系實際,把我們所學的理論知識用到實際當中,程序只有在經常的練習的過程中才能提高,我想這就是我在這次課程設計中的最大收獲。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; /計時時間static uchar s_hour,s_min,s_scond;/上課時間設置static uchar s_hour2,s_min2,s_scond2;/下課時間設置static uchar set_ok;/設置標志位static uchar set_ok2;uchar count = 0;/用于記錄定時器進入中斷次數,以實現長時間定時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;/允許設定時間set_ok2 = 0 ;hour = 12;/設定時鐘初值min = 0;scond = 0;s_hour =12;/設定鬧鐘初值s_min = 0;s_scond

13、= 0;s_hour2 =12;/設定鬧鐘初值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要顯示的時間(s,m,h對應的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+;/時加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+;/時加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í)行對應函數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í)行按鍵對應的功能key_work();delay(10);void Time0(void) interrupt 1 using 0/中斷函數服務子程序count+;if(count = 20)scan_tim();/一秒時間到/顯示時間count = 0;TH0=(65536-46083)/256;TL0=(65536-46083)%256;void scan_tim()/時間記錄函數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) )/上課時間到set_ok = 0;/關閉 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) )/下課時間到set_ok2 = 0;/關閉 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 碼說明:48-74 對應 0-958 為 :30 為 上課31 為 下課14 為 到點*/*/ 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);參考文獻微處理器原理及接口實驗指導書黑龍江大學電子實驗中心 王積翔,莊培棟 編3132

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!