影音先锋男人资源在线观看,精品国产日韩亚洲一区91,中文字幕日韩国产,2018av男人天堂,青青伊人精品,久久久久久久综合日本亚洲,国产日韩欧美一区二区三区在线

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

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

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

15 積分

下載資源

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

資源描述:

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

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

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

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

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

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

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

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

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

9、的課程設(shè)計中,我們真真正正的意識到,在以后的學(xué)習(xí)中,要理論聯(lián)系實際,把我們所學(xué)的理論知識用到實際當(dāng)中,程序只有在經(jīng)常的練習(xí)的過程中才能提高,我想這就是我在這次課程設(shè)計中的最大收獲。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;/上課時間設(shè)置static uchar s_hour2,s_min2,s_scond2;/下課時間設(shè)置static uchar set_ok;/設(shè)置標志位static uchar set_ok2;uchar count = 0;/用于記錄定時器進入中斷次數(shù),以實現(xiàn)長時間定時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è)定時間set_ok2 = 0 ;hour = 12;/設(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要顯示的時間(s,m,h對應(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+;/時加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í)行對應(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í)行按鍵對應(yīng)的功能key_work();delay(10);void Time0(void) interrupt 1 using 0/中斷函數(shù)服務(wù)子程序count+;if(count = 20)scan_tim();/一秒時間到/顯示時間count = 0;TH0=(65536-46083)/256;TL0=(65536-46083)%256;void scan_tim()/時間記錄函數(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) )/上課時間到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) )/下課時間到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 碼說明:48-74 對應(yīng) 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);參考文獻微處理器原理及接口實驗指導(dǎo)書黑龍江大學(xué)電子實驗中心 王積翔,莊培棟 編3132

展開閱讀全文
溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


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