




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、單片機原理與應(yīng)用課程設(shè)計說明書題目:基于單片機的電動伸縮門控制系統(tǒng)設(shè)計學(xué)生姓名: 王艷 學(xué) 號: 20120311121 院(系): 職業(yè)教育師范學(xué)院 專 業(yè): 電子信息工程 指導(dǎo)教師: 張開生 2014年 12月 12日 目 錄1 選題背景12 方案論證13 過程(設(shè)計或?qū)嶒灒┱撌? 3.1 硬件設(shè)計1 3.1.1 LCD液晶顯示1 3.1.2 直流電機模塊3 3.1.3 按鍵控制時間顯示電路3 3.1.4 鍵盤控制電機工作電路4 3.1.5 DS1302時鐘芯片電路4 3.1.6 總設(shè)計仿真圖53.2 軟件設(shè)計6 3.2.1 主程序6 3.2.2 DS1302時鐘芯片程序與LCD1602顯
2、示程序設(shè)計7 3.2.3 按鍵掃描程序74 結(jié)果分析74.1 LCD液晶顯示模塊74.2 電動伸縮門控制75 歸納和總結(jié)7附錄9參考文獻資料I 1 選題背景隨著科技的發(fā)展,人們的生活水平不斷的提高,各種方便人們生活的自動控制系統(tǒng)開始進入人們的生活。為了使自動伸縮門能夠更好的為人們和各種企業(yè)單位服務(wù), 需要得到一種電路簡單,軟件功能完善,控制系統(tǒng)可靠,性價比較高的自動伸縮門系統(tǒng)。以單片機為核心的自動門系統(tǒng)就是其中之一,本文設(shè)計了基于單片機的自動伸縮門控制系統(tǒng)。該系統(tǒng)以單片機為主體,步進電機為控制實體,實現(xiàn)伸縮門的自動控制。電動機與人的生活息息相關(guān),密不可分。電動伸縮門是廣泛使用在人員進出流動比較
3、頻繁的各個單位、住宅小區(qū)以及公園景點的入口處。隨著社會的不斷發(fā)展,人們擁有自己的汽車的情況越來越普遍,交通堵塞的問題比較嚴重,有了電動伸縮門的幫助可以使得我們?nèi)菀讓Υ罅康能嚵骺刂葡到y(tǒng)開始進入人們的生活以單片機為核心的自動門系統(tǒng)就是其中之一本文設(shè)計了基于單片機的自動伸縮門控制系統(tǒng)該系統(tǒng)以單片機為主體,實現(xiàn)伸縮門的自動控制。本設(shè)計要求制作完成一個電動伸縮門控制系統(tǒng)。電動伸縮門控制系統(tǒng)即通過按鍵實現(xiàn)門的自動開啟和關(guān)閉,以及其安全性等方面的要求。故電動伸縮門控制系統(tǒng)的關(guān)鍵在于對門開啟和關(guān)閉條件的檢測和對電機的控制。具體要求如下:(1)用遙控器或者紅外遙控器控制電動伸縮門的運行;(2)系統(tǒng)運行時顯示時鐘
4、信息和“您好歡迎光臨陜西科技大學(xué)”等字樣;(3)設(shè)計時應(yīng)考慮電動門的運行速度以及安全性等因素;(4)以單片機的最小系統(tǒng)為基礎(chǔ)硬件,用匯編或者C語言編寫程序;(5)有人或者汽車靠近時門應(yīng)該打開;自動伸縮門上的LCD顯示屏顯示相對應(yīng)的漢字。此外,該系統(tǒng)設(shè)計充分發(fā)揮了單片機的性能,具有較好的可靠性和實用性。2 方案論證電動伸縮門控制系統(tǒng)主要基于硬件和軟件的要求。硬件方面采用簡單高效的AT89C52單片機系統(tǒng)板來實現(xiàn)。在電機的選取上,由于直流電機相比較步進電機更加簡單方便,并在一定程度上可以實現(xiàn)所要求的功能,所以在此選取直流電機控制伸縮門的工作。我們采用小車的前進后退和停止模擬電動伸縮門的運行,通過對
5、速度開關(guān)的調(diào)節(jié),實現(xiàn)小車加速減速達到控制速度的目的?;诎踩缘目紤],當(dāng)有人或車輛突然經(jīng)過伸縮門時,設(shè)置中斷停止按鍵使行進中的伸縮門立即停止,起到保護的效果。時間顯示方面采用LCD液晶顯示,并設(shè)置時間調(diào)節(jié)按鍵設(shè)置顯示時間。3 過程(設(shè)計或?qū)嶒灒┱撌?.1 硬件設(shè)計硬件方面包括LCD1602的引腳和DS1302時鐘芯片的引腳連接以及按鍵設(shè)置。用小車 的前進后退模擬伸縮門的運動。 3.1.1 LCD液晶顯示(1) 元件說明模塊組建內(nèi)部主要由LCD顯示屏、控制器、列驅(qū)動器和偏壓產(chǎn)生電路構(gòu)成。控制器接受來自MPU的指令和數(shù)據(jù),控制著整個模塊的工作,由CGROM、CGRAM和DDRAM等字符存儲區(qū)域、以
6、及與MPU和列驅(qū)動器的I/O接口、指令寄存和譯碼機構(gòu)、地址計數(shù)器等部分組成。在控制器的控制下,模塊通過數(shù)據(jù)總線DB0DB7和E、R/W、RS三個輸入控制端與MPU接口。這三根控制線按照規(guī)定的時序相互協(xié)調(diào)作用,使控制器通過數(shù)據(jù)總線DB接受MPU發(fā)送來的指令和數(shù)據(jù),從CGROM中找到欲顯示字符的字符碼,送入DDRAM,在LCD顯示屏上與DDRAM存儲單元對應(yīng)的規(guī)定位置顯示出該字符??刂破鬟€可以根據(jù)MPU的指令,實現(xiàn)字符的顯示、閃爍和位移效果。下面是其引腳圖: 圖3-1 引腳圖(2) 模塊應(yīng)用LCD數(shù)據(jù)輸入輸出口是與P0口相連,寄存器選擇輸入端與單片機P2.6相連,讀寫控制輸入端接P2.5,使能端接
7、P2.7。將顯示屏初始化,使“年、月、日、時鐘等信息”通過LCD顯示屏顯示出來,并通過按鍵對日期時間進行調(diào)整,其中第一行顯示“年、月、日、星期”,第二行顯示“時、分、秒”的信息,下圖為其仿真圖:圖3-2 LCD仿真圖3.1.2 直流電機模塊(1) 直流電機驅(qū)動電路L293D采用16引腳DIP封裝,其內(nèi)部集成了雙極型H-橋電路, L293通過內(nèi)部邏輯生成使能信號。H-橋電路的輸入量可以用來設(shè)置馬達轉(zhuǎn)動方向,使能信號可以用于脈寬調(diào)整(PWM)。另外,L293將2個H-橋電路集成到1片芯片上,這就意味著用1片芯片可以同時控制2個電機。每1個電機需要3個控制信號EN12、IN1、IN2,其中EN12是
8、使能信號,IN1、IN2為電機轉(zhuǎn)動方向控制信號,IN1、IN2分別為1、0時,電機正轉(zhuǎn);反之,電機反轉(zhuǎn)。選用一路PWM連接EN12引腳,通過調(diào)整PWM的占空比可以調(diào)整電機的轉(zhuǎn)速。以下為L293驅(qū)動電機的邏輯圖和內(nèi)部仿真圖: 表3-1 驅(qū)動電機邏輯圖EN A(B)IN1(IN3)IN2(IN4)電機運行情況HHL正轉(zhuǎn)HLH反轉(zhuǎn)H同IN2(IN4)同IN1(IN3)快速停止LXX停止(2) 直流電機仿真圖本設(shè)計采用一路直流電機實現(xiàn)其正轉(zhuǎn)、反轉(zhuǎn)和停止,IN1和IN2分別接到單片機的P2.0,P2.1口,使能端EN1接到單片機的P2.2口,當(dāng)使能端有效,輸入端分別為不同電平時,電機可實現(xiàn)正反轉(zhuǎn)和停止。
9、 圖3-3 直流電機仿真圖3.1.3 按鍵控制時間顯示電路P1.0P1.2控制LCD時間顯示的調(diào)整。其中觸發(fā)P1.0按鍵,停止DS1302計數(shù),LCD光標閃爍顯示調(diào)節(jié)位置,表示開始調(diào)節(jié)時間。P1.1按鍵實現(xiàn)增加顯示時間,P1.2按鍵實現(xiàn)減小時間。3.1.4 鍵盤控制電機工作電路設(shè)置三個按鍵實現(xiàn)電機的正轉(zhuǎn)、反轉(zhuǎn)和停止,三個按鍵分別接至P3.0,P3.1,P3.2口,再設(shè)置調(diào)節(jié)速度開關(guān),將其連接在P1.3引腳上。當(dāng)一直按下正轉(zhuǎn)鍵,小車前進,若此時有速度調(diào)節(jié)按鍵按下時,執(zhí)行調(diào)節(jié)速度后的程序,否則,執(zhí)行未調(diào)節(jié)速度后的程序;當(dāng)一直按下反轉(zhuǎn)鍵時,小車就會后退,速度調(diào)節(jié)時,執(zhí)行調(diào)節(jié)速度后的程序。如果遇到突然
10、發(fā)生的情況,比如當(dāng)有行人或者車輛通過正在運行的電動伸縮門時,就需要電動伸縮門立即停止,這時可以按下P1.3口連接的按鍵,使正在行駛中的小車立即停下。 圖3-4 按鍵和鍵盤控制仿真圖3.1.5 DS1302時鐘芯片電路 (1) DS1302芯片說明DS1302慢速充電時鐘芯片包括實時時鐘/日歷提供秒分時日周月和年等信息。對于小于31天的月,月末的日期就會自動進行調(diào)整,同時還包括了閏年校正的功能。時鐘的運行可以采用24小時制或者帶AM(上午)或PM(下午)的12小時格式。使用同步串行通信,簡化了DS1302與微處理器的通信。數(shù)據(jù)可以以每次一個字節(jié)或者多達31個字節(jié)的多字節(jié)形式傳送至?xí)r鐘/RAM或從
11、其中送出。(2) 工作原理串行時鐘芯片的組成部分有:位移寄存器控制邏輯振蕩器實時時鐘以及RAM。為了初始化任何的數(shù)據(jù)傳送,把RST置為高電平且并把提供地址和命令信息的8位裝入到移位寄存器。數(shù)據(jù)在SCLK的上升沿串行輸入。下圖為引腳排列: 圖3-5 引腳排列無論是讀周期還是寫周期發(fā)生,也無論傳送方式是單字節(jié)傳送還是多字節(jié)傳送,開始8位指定40個字節(jié)中的哪個將被訪問。在開始8個時鐘周期把命令字裝入移位寄存器之后,另外的時鐘在讀操作時輸出數(shù)據(jù),在寫操作時輸入數(shù)據(jù)。以下為引腳說明: 表3-2 引腳說明X1,X232.768kHz晶振引腳GND 地RST 復(fù)位I/O 數(shù)據(jù)輸入/輸出SCLK 串行時鐘Vc
12、c1,Vcc2 電源引腳(3)DS1302的仿真圖將DS1302芯片的片選端,數(shù)據(jù)信號端,時鐘信號端分別接至P3.5,P3.4,P3.6口,通過軟件設(shè)置,實現(xiàn)地址和數(shù)據(jù)的傳送。在時間修改的時候,按下功能鍵,DS1302停止計時。當(dāng)修改時間完畢后,重新恢復(fù)DS1302的工作,將地址和數(shù)據(jù)送入DS1302中,計數(shù)器開始計時,LCD1602開始顯示。以下是DS1302的仿真圖:圖3-6 DS1302仿真圖3.1.6 總設(shè)計仿真圖下圖為電動伸縮門的總仿真圖:圖3-7 總仿真圖3.2 軟件設(shè)計軟件設(shè)計包括主程序的設(shè)計以及各個子程序的設(shè)計。主程序主要實現(xiàn)了小車的運行,子程序?qū)崿F(xiàn)了LCD液晶的顯示,具體如下
13、:3.2.1 主程序主程序主要實現(xiàn)電機的正轉(zhuǎn)、反轉(zhuǎn)、停止和安全性實現(xiàn),首先將液晶顯示和DS1302時鐘芯片進行初始化,對時間調(diào)節(jié)按鍵進行掃描,確定有無按鍵按下,當(dāng)功能鍵按下時光標顯示,進行時間調(diào)節(jié),并將調(diào)節(jié)后的時間送入LCD1602進行顯示。當(dāng)一直按小車前進鍵時,判斷是否進行伸縮門調(diào)速,若需要則執(zhí)行調(diào)速后的前進程序,否則執(zhí)行未調(diào)速程序,當(dāng)一直按小車后退鍵時,其原理同上。在伸縮門安全性實現(xiàn)上,當(dāng)模擬開門或者關(guān)門工作時,若遇到突發(fā)狀況,比如有行人或者車輛通過時,按下停止按鈕,執(zhí)行中斷程序,伸縮門停止工作。3.2.2 DS1302時鐘芯片程序與LCD1602顯示程序設(shè)計該模塊程序分為以下子程序,分別
14、為寫命令與數(shù)據(jù)函數(shù),寫時分秒、年月日的日期函數(shù),對LCD1602的初始化函數(shù)。程序見附錄:3.2.3按鍵掃描程序首先定義三個調(diào)節(jié)按鍵,分別為功能鍵,增大鍵,減小鍵,當(dāng)功能鍵按下1次時,LCD光標顯示在“年”位置處,表明開始調(diào)節(jié)時間,液晶停止從DS1302讀數(shù)據(jù),記錄按下功能鍵次數(shù),分別將其定位到LCD不同位置處。當(dāng)功能鍵按下8次后,表明已調(diào)節(jié)完畢,不顯示光標,將調(diào)解后的日期寫入DS1302,并讓液晶從中讀取數(shù)據(jù)顯示。當(dāng)功能鍵定位在某一位置,按下增大鍵,相應(yīng)數(shù)據(jù)加1,并將調(diào)整后的數(shù)據(jù)送入DS1302。減小鍵與增大鍵的原理相同。部分程序見附錄:4 結(jié)果分析本次設(shè)計主要實現(xiàn)了小車運行,包括前進、后退
15、和停止,以及時間日期的顯示,結(jié)果分析主要從LCD顯示和電動伸縮門的運行兩個方面考慮。4.1 LCD液晶顯示模塊將程序燒入單片機中,LCD顯示日期與時間,第一行顯示年、月、日和星期,第二行顯示時、分、秒,當(dāng)對時間顯示進行調(diào)節(jié)時,按下功能鍵光標定位在年的位置,實現(xiàn)時間調(diào)節(jié)的增大與減小,當(dāng)功能鍵按到第8次,即已經(jīng)將時間調(diào)整完畢后,調(diào)節(jié)后的時間即可通過LCD顯示出來。4.2 電動伸縮門控制在未調(diào)節(jié)速度按鈕前,一直按下前進鍵,小車前進,小車后退同上。在調(diào)節(jié)速度后,按下前進與后退鍵,小車速度有明顯改變。當(dāng)遇到突發(fā)情況時,按下停止鍵,小車能在運行的情況下立即停止,實現(xiàn)其安全性能。由于小車自身存在機械缺陷,該
16、部分功能顯示不太明顯。5 歸納和總結(jié)此次有關(guān)自動伸縮門的控制系統(tǒng)的設(shè)計,讓我感覺到了單片機的復(fù)雜深度性,它并不是想象中的那么簡單,也并非是無法克服的堡壘。首先設(shè)計硬件之前,要收集好有關(guān)的基礎(chǔ)性資料,應(yīng)備有良好的應(yīng)用類參考書和專業(yè)類參考書。對于有關(guān)的科技期刊和專利文獻,也要經(jīng)常閱讀以便了解最新的發(fā)展情況,借鑒現(xiàn)成的經(jīng)驗,避免重復(fù)勞動。在設(shè)計中,要充分了解所用芯片的使用條件及輸入輸出的特性,這樣才能避免因使用錯誤而多走彎路。電路設(shè)計部分應(yīng)該有的精神就是廣集資料。只憑借自己頭腦中的知識是遠遠不夠的。哪里出現(xiàn)了問題,就要翻書本,或上網(wǎng)查資料。當(dāng)然也要開動自己的腦筋怎樣使系統(tǒng)電路更完美。例如我的設(shè)計題目
17、是基于單片機的自動伸縮門控制系統(tǒng)設(shè)計。有自動門,自然會用到電動機,每種電機都有不同的特性和功能,這就要進行選擇了。例如對電機的選擇,就要選擇我所熟悉的,所了解的。在電路設(shè)計時,應(yīng)充分發(fā)揮單片機的記憶運算、判斷控制能力,避免采用復(fù)雜的、穩(wěn)定性較差的模擬電路。本設(shè)計程序以匯編語言語言編寫,易于讀寫、易于調(diào)試和修改,同時匯編語言用來編制系統(tǒng)軟件和過程控制軟件,其目標程序占用內(nèi)存空間少,運行速度快。為了使微機控制系統(tǒng)各種硬件設(shè)備能夠正常運行,有效地實現(xiàn)電機各個控制環(huán)節(jié)的實時控制和管理,除了要設(shè)計合理的硬件電路,還必須要有高質(zhì)量的軟件支持。因此用匯編語言編寫電機單片機實施控制的應(yīng)用程序,使整個系統(tǒng)中十分
18、重要的內(nèi)容。一直以來,都在強調(diào)單片機對專業(yè)的重要性,但也只是了解了大概,在這次課程設(shè)計中,才真正認識到它功能的強大,同時也對單片機設(shè)計的工程產(chǎn)生了濃厚的興趣。這次設(shè)計雖然只是一個很小的系統(tǒng),但運用了單片機開發(fā)板上的多個功能,讓我有機會學(xué)習(xí)到這些知識,同時整個設(shè)計的實現(xiàn),也為我今后想要繼續(xù)這方面的學(xué)習(xí)打下了基礎(chǔ),比如要首先清楚每個器件的功能作用,看懂它的資料說明,才能更好的運用。另外在軟件的編寫過程中,也查閱了各類資料,豐富了我其他方面的知識。這次課程設(shè)計雖然結(jié)束了,但我卻將它作為以后學(xué)習(xí)的起點,要想真正提高自己的動手能力還需要不斷的學(xué)習(xí)與實踐。我想在自己的努力下,一定會有所收獲。附錄:#inc
19、lude<reg51.h>#include<lcd1602.h>#include<ds1302.h>#include<key scan.h>Sb it d j_2=P21;/電機2Sb it d j_en=P22;/電機使能端Sb it open=P30;Sb it close=P31;Sb it bia su=P13;unsigned char i i;unsigned char j j;int a,b;void delay numbers(unsigned int n)/延時函數(shù)unsigned char ii;while(n-)for(ii
20、=0;ii<150;ii+);void door open(void) /開門d j_1=1;d j_2=0;if(bi an s u=0)d j_en=0;/使d j_en產(chǎn)生PWM波 delay numbers(10);d j_en=1;delay numbers(90);else d j_en=0;/使d j_en產(chǎn)生PWM波 delay numbers(30);d j_en=1;delay numbers(70);void door close(void)/關(guān)門d j_1=0;d j_2=1;if(biansu=0)d j_en=0;/使d j_en產(chǎn)生PWM波 delay nu
21、mbers(10);d j_en=1;delay numbers(90);else d j_en=0;/使d j_en產(chǎn)生PWM波 delay numbers(30);d j_en=1;delay numbers(70);void stop(void)d j_en=1;/使能端有效控制停轉(zhuǎn)d j_1=d j_2=0;void main()LCD_INITIAL();/液晶初始化INITIAL_1302();/DS1302初始化while(1)Key scan();/按鍵掃描if(flag=0)/當(dāng)標志位為0,允許讀取DS1302數(shù)據(jù),將數(shù)據(jù)送入液晶顯示second=READ_1302(0x81
22、);LCD_WRITE_SFM(10,second);/從DS1302讀取秒送入液晶顯示minute=READ_1302(0x83);LCD_WRITE_SFM(7,minute);/從DS1302讀取分送入液晶顯示hour=READ_1302(0x85);LCD_WRITE_SFM(4,hour);/從DS1302讀取時送入液晶顯示week=READ_1302(0x8b);LCD_WRITE_WEEK(week);/從DS1302讀取星期送入液晶顯示day=READ_1302(0x87);LCD_WRITE_NYR(9,day);/從DS1302讀取日送入液晶顯示month=READ_130
23、2(0x89);LCD_WRITE_NYR(6,month);/從DS1302讀取月送入液晶顯示 year=READ_1302(0x8d);LCD_WRITE_NYR(3,year);/從DS1302讀取年送入液晶顯示LCD_WRITE_NYR(漢字);/從DS1302讀取漢字送入液晶顯示if(!open)/開門 EX0=1;EA=1;TCON=0x01;Door open();elseEX0=0;EA=0;stop();if(!close)/關(guān)門EX0=1;EA=1;TCON=0x01;Door close();elseEX0=0;EA=0;stop(); void myint0(void)
24、 interrupt 0 /外部中斷0stop();Delay numbers(5000);EX0=0;EA=0; (1) 地址數(shù)據(jù)發(fā)送子函數(shù)void WRITE_1302(unsigned char add,unsigned char date)/地址、數(shù)據(jù)發(fā)送子程序unsigned char i,temp;RST=0;/RST引腳為低,數(shù)據(jù)傳送中止SCLK=0;/清零時鐘總線RST=1;/RST引腳為高,邏輯控制有效for(i=8;i>0;i-)/發(fā)送地址,循環(huán)8次移位SCLK=0;temp=add;DIO=(bit)(temp&0x01);/每次傳送低字節(jié)add>&g
25、t;=1;/右移一位SCLK=1;for(i=8;i>0;i-)/發(fā)送數(shù)據(jù)SCLK=0;temp=date;DIO=(bit)(temp&0x01);date>>=1;SCLK=1;RST=0; (2) 讀取數(shù)據(jù)函數(shù)unsigned char READ_1302(unsigned char add)/讀取數(shù)據(jù)unsigned char i,temp,date1,date2;RST=0;SCLK=0;RST=1;for(i=8;i>0;i-)/循環(huán)8次移位SCLK=0;temp=add;DIO=(bit)(temp&0x01);/每次傳送低字節(jié)add>
26、;>=1;/右移一位SCLK=1;for(i=8;i>0;i-)ACC_7=DIO;SCLK=1;ACC>>=1;SCLK=0;RST=0;date1=ACC;date2=date1/16;/數(shù)據(jù)進制轉(zhuǎn)換date1=date1%16;/十六進制轉(zhuǎn)十進制date1=date1+date2*10;return(date1) ;void LCD_WRITE_COM(unsigned char com)/寫命令函數(shù)LCD_RS=0;LCD_RW=0;LCD_E=1;P0=com;delay(5);LCD_E=0;void LCD_WRITE_DATA(unsigned char
27、 date)/寫數(shù)據(jù)函數(shù) LCD_RS=1; LCD_RW=0; LCD_E=1; P0=date; delay(5); LCD_E=0;void LCD_WRITE_SFM(unsigned char add,unsigned char date)/寫時分秒函數(shù)unsigned char sh,g;sh=date/10;g=date%10;/分解2位數(shù)的十位和個位LCD_WRITE_COM(0x80+0x40+add);/設(shè)置顯示位置LCD_WRITE_DATA(0x30+sh);/送去液晶顯示十位LCD_WRITE_DATA(0x30+g);/送去液晶顯示個位 void LCD_WRITE
28、_NYR(unsigned char add,unsigned char date)/寫年月日函數(shù) char sh,g; sh=date/10; g=date%10;/分解2位數(shù)的十位和個位 LCD_WRITE_COM(0x80+add);/設(shè)置顯示位置 LCD_WRITE_DATA(0x30+sh);/送去液晶顯示十位 LCD_WRITE_DATA(0x30+g);/送去液晶顯示個位void LCD_WRITE_WEEK(unsigned char week)/寫液晶星期顯示函數(shù)LCD_WRITE_COM(0x80+12);/設(shè)置顯示位置switch(week)case 1: LCD_WRI
29、TE_DATA('M');delay(5);LCD_WRITE_DATA('O');delay(5);LCD_WRITE_DATA('N');break;case 2: LCD_WRITE_DATA('T');delay(5);LCD_WRITE_DATA('U');delay(5);LCD_WRITE_DATA('E');break;case 3: LCD_WRITE_DATA('W');delay(5);LCD_WRITE_DATA('E');delay(5);L
30、CD_WRITE_DATA('D');break;case 4: LCD_WRITE_DATA('T');delay(5);LCD_WRITE_DATA('H');delay(5);LCD_WRITE_DATA('U');break;case 5: LCD_WRITE_DATA('F');delay(5);LCD_WRITE_DATA('R');delay(5);LCD_WRITE_DATA('I');break;case 6: LCD_WRITE_DATA('S')
31、;delay(5);LCD_WRITE_DATA('A');delay(5);LCD_WRITE_DATA('T');break;case 7: LCD_WRITE_DATA('S');delay(5);LCD_WRITE_DATA('U');delay(5);LCD_WRITE_DATA('N');break;void LCD_INITIAL()/液晶初始化函數(shù)unsigned char i;LCD_WRITE_COM(0x38);/設(shè)置16*2顯示,5*7點陣,8位數(shù)據(jù)接口LCD_WRITE_COM(0x0c)
32、;/設(shè)置開顯示,不顯示光標LCD_WRITE_COM(0x06);/寫一個字符后地址指針加1LCD_WRITE_COM(0x80);/液晶第一行顯示for(i=0;i<16;i+)LCD_WRITE_DATA(str1i);delay(5);LCD_WRITE_COM(0x80+0x40);/液晶第二行顯示for(i=0;i<16;i+)LCD_WRITE_DATA(str2i);delay(5);LCD_WRITE_COM(0x80+0x40);/液晶第三行顯示for(i=0;i<16;i+)LCD_WRITE_DATA(str2i);delay(5);該模塊程序分為以下子
33、程序,分別為寫命令與數(shù)據(jù)函數(shù),寫漢字函數(shù) ORG 00HSTART6:MOV SP,#50H MOV P0,01H MOV P0,#38H CALL ENABLE MOV DPTR,TET0 CALL WRITECG MOV DPTR,TET1 CALL WRITECG MOV DPTR,TET2 CALL WRITECG MOV DPTR,TET3 CALL WRITECG MOV DPTR,TET4 CALL WRITECG MOV DPTR,TET5 CALL WRITECG MOV DPTR,TET6 CALL WRITECG MOV DPTR,TET7 CALL WRITECG MO
34、V DPTR,TET8 CALL WRITECG MOV DPTR,TET9 CALL WRITECG MOV DPTR,TET10 CALL WRITECG MOV DPTR,TET11 CALL WRITECGENABLE:CLR P2.5 CLR P2.7 CALL DELAY SETB P2.7 RETREPRINT: MOV R7,#00HPRINT1: MOV A,R7 MOVC A,A+DPTR CALL REWRITE INC R7 CJNE A,#0FEH,PRINT1 RET REWRITE: MOV P0,A SETB P2.5 CLR P2.7 CALL DELAY S
35、ETB P2.7 RETWRITECG:MOV R6,#00HWRITE: MOV A,R2 MOV P0,A CALL ENABLE MOV A,R6 MOVC A,A+DPTR CALL REWRITE INC R6 INC R2 CJNE A,#00H,WRITE RETDELAY:MOV R4,#01HDL2: MOV R5,#40HDL3: MOV R0,#00H DJNZ R0,$ DJNZ R5,DL3 DJNZ R4,DL2 RETTXT0:DB 15H,3FH,12H,17H,17H,13H,11H,00H;您TXT1:DB 10H,3FH,2FH,32H,0FH,32H,0
36、2H,00H;好TXT2:DB 02H,3FH,2AH,2AH,19H,21H,21H,00H;歡TXT3:DB 20H,17H,0FH,3FH,16H,16H,3FH,00H;迎TXT4:DB 15H,0EH,04H,1FH,0AH,0AH,23H,00H;光TXT5:DB 14H,1FH,32H,3FH,3FH,1FH,1FH,00H;臨TXT6:DB 02H,27H,32H,3FH,2FH,29H,29H,00H;陜TXT7:DB 00H,1FH,3FH,2BH,2BH,33H,3FH,00H;西TXT8:DB 0AH,15H,3FH,12H,3AH,12H,12H,00H;科TXT9:
37、DB 12H,3FH,12H,1FH,15H,32H,15H,00H;技TXT10:DB 04H,04H,3FH,04H,04H,0AH,12H,00H;大TXT11:DB 35H,3FH,1EH,02H,04H,3FH,04H,00H;學(xué) ENDvoid key scan()if(key0=0)/確認功能鍵按下delay(20);if(key0=0)/功能鍵確實按下while(!key0);/釋放number+;/按下次數(shù)記錄switch(number)case 1: flag=1;/修改時間,液晶禁止從DS1302讀數(shù)據(jù)TR0=0;/定時器關(guān)LCD_WRITE_COM(0x0f);/光標開始閃爍LCD_WRITE_COM(0x80+3);/第一次按下,光標定位到年位置break;case 2: LCD_WRITE_COM(0x80+6);/第二次按下,光標定位到月位置break;case 8: num=0;/第八次按下,記錄清零LCD_WRITE_COM(0x0c);/不顯示光標 WRITE_1302(WRITE_PROTECT,0x00)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)校安全培訓(xùn)給學(xué)生
- 住培崗前培訓(xùn)
- 腫瘤患者療后監(jiān)測體系構(gòu)建
- 子宮內(nèi)膜息肉超聲診斷與應(yīng)用
- 【MOOC答案】《人工智能基礎(chǔ)》(國防科技大學(xué))章節(jié)作業(yè)慕課答案
- 腫瘤病人化療后便秘護理
- 教培招生培訓(xùn)
- 主題教育動員部署會
- 外科護理工作講解
- 2025年虛擬現(xiàn)實在地理信息系統(tǒng)教育中的應(yīng)用技術(shù)成果鑒定報告
- AHU維修與保養(yǎng)記錄
- CMBS盡調(diào)清單目錄
- 機械原理課程設(shè)計-自動打印機設(shè)計說明書
- 建設(shè)工程消防設(shè)計審查申報表
- 2020新版?zhèn)€人征信報告模板
- FBI教你破解身體語言(完整版)(54頁)ppt課件
- 內(nèi)科護理學(xué)消化系統(tǒng)試習(xí)題及答案
- 華北電力大學(xué)-任建文-電力系統(tǒng)PPT(第1章)
- 《文殊真實名經(jīng)》
- 對敏視達雷達回波進行基于PHIDP的dBZ和ZDR訂正_2014年4月5日~18日
- 蘇教版五年級數(shù)學(xué)下冊-復(fù)習(xí)知識點整理資料(共9頁)
評論
0/150
提交評論