




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 PAGE24 / NUMPAGES27課 程 設(shè) 計題 目LCD1602液晶字符串循環(huán)顯示學(xué) 院專 業(yè)班 級姓 名指導(dǎo)教師課程設(shè)計任務(wù)書題目要求 :使用LaunchPad上的板上資源,外接1602液晶,編寫程序使字符串在液晶上循環(huán)移動。時間安排:2014年元月1日2014年元月17日下午17:30指導(dǎo)教師簽名: 年 月 日系主任(或責(zé)任教師)簽名: 年 月 日目錄引言11 課程設(shè)計要求22 硬件電路32.1 MSP430G2553單片機32.1.1 MSP430G2553單片機特點32.1.2 MSP430G2553單片機結(jié)構(gòu)32.1.3 MSP430G2553的時鐘系統(tǒng)42.1.4 I/O
2、寄存器5 2.2 LCD1602液晶屏53 方案設(shè)計7 3.1 設(shè)計方案7 3.2 方案選擇74 程序設(shè)計84.1 程序結(jié)構(gòu)84.2 主程序源程序84.3 子程序源程序84.4 子程序頭文件125 調(diào)試135.1 CCSv5編譯軟件135.2 調(diào)試過程136 結(jié)束語15附錄1:代碼16附錄2:實物圖22參考文獻23本科生課程設(shè)計成績評定表24引言本次課程設(shè)計旨在設(shè)計一個基于 MSP430 系列微處理器的LCD1602液晶字符串循環(huán)移動。單片機是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計數(shù)
3、器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的微型計算機系統(tǒng),在工業(yè)控制領(lǐng)域廣泛應(yīng)用。當今時代是一個新技術(shù)層出不窮的時代,在電子領(lǐng)域尤其是自動化智能控制領(lǐng)域,傳統(tǒng)的分立元件或數(shù)字邏輯電路構(gòu)成的控制系統(tǒng),正在以前所未見的速度被單片機智能控制系統(tǒng)所代替。單片機的使用隨處可見,而人們的生活也越來越離不開單片機。液晶是相態(tài)的一種,因為其特殊的物理、化學(xué)、光學(xué)特性,20世紀中葉開始被廣泛應(yīng)用在輕薄型的顯示技術(shù)上液晶顯示器也被廣泛運用,也發(fā)揮著越來越大的作用。盡年來,液晶顯示技術(shù)飛速發(fā)展,運用更加廣泛。本課程設(shè)計通過MSP430G2
4、553單片機控制LCD1602液晶顯示器實現(xiàn)一串字符循環(huán)移動。1 課程設(shè)計要求使用LaunchPad上的板上資源,外接1602液晶,編寫程序使“Wuhan Uniwersity of Technology welcome You!”在液晶上循環(huán)移動顯示。2 硬件電路2.1 MSP430G2553單片機2.1.1 MSP430G2553單片機特點 MSP430G2系列是儀器近期推出的一款產(chǎn)品,在秉承MSP430超低功耗,高集成度的優(yōu)點的同時,具有高性價比的特點。該系列被稱為ValueLine,旨在以8位單片機的價格實現(xiàn)16位單片機的性能。MSP-EXP430Launchpad是TI推出的又一套用
5、于MSP430和電路實驗的開發(fā)板。除了學(xué)生自主創(chuàng)新實踐外,LaunchPad開發(fā)板還可以用于本科低年級課程,如嵌入式C語言,電子技術(shù)基礎(chǔ),微機原理,單片機等課程的自主實驗環(huán)節(jié)以與課程設(shè)計。該套開發(fā)板為單片機熱愛者提供了一個很好的學(xué)習(xí)平臺。2.1.2 MSP430G2553單片機結(jié)構(gòu) 如圖所示是板載一顆MSP430G2553單片機的Launch Pad評估實驗開發(fā)板:圖1 Launch Pad評估實驗開發(fā)板板上額外資源:板載 USB 調(diào)試與編程仿真器接口,無驅(qū)動可安裝支持所有采用 DIP14 和 DIP20 封裝 MSP430G2XX 和 MSP430F20 器紅綠兩粒 LED,兩個按鍵配套兩款
6、電容觸摸板所有管腳在板子兩邊引出2.1.3 MSP430G2553的時鐘系統(tǒng)MSP430G2系列單片機的時鐘系統(tǒng)需要支持系統(tǒng)低功耗運行的需要。通過對三個部時鐘信號的運用,用戶可很容易的選擇功耗最低,效率最高的系統(tǒng)時鐘方案。在軟件的控制下,MSP430G2系列單片機運行時可以不接外接晶振,也可接一只外接電阻或者接一到兩只外接晶振,也可以外接頻率發(fā)生器?;緯r鐘模塊包括二至四個時鐘源:LFXT1CLK:外接低頻或高頻振蕩器,如手表晶振,頻率發(fā)生器,外部時鐘源(400kHz至16MHz).XT2CLK:外接高頻晶振,圍在400kHz至16MHzDCOCLK:部時鐘震蕩VLOCLK:部低頻低功耗晶振,
7、標準頻率是12kHz三種時鐘信號可被CPU和外設(shè)所使用:ACLK:輔助時鐘,ACLK可被軟件配置成從LFXT1CLK或VLOCLK輸入震蕩ACLK可以被1,2,4,8分頻。ACLK可以被選用作為外圍模塊的時鐘輸入。MCLK:主時鐘,主時鐘可以從LFXT1CLK或VLOCLK,XT2CLK或DCOCLK輸入MCLK用在CPU系統(tǒng)之中。SMCLK:輔助主時鐘。SMCLK可被選擇從LFXT1CLK,VLOCLK,XT2CLK或DCOCLK輸入。SMCLK可以被1,2,4,8分頻。SMCLK可被選用為外圍模塊的時鐘。2.1.4 I/O寄存器 和大部分單片機類似,MSP430系列單片機也是將8個IO口編
8、為一組。每個IO口有四個控制寄存器,P1和P2還有額外的3個中斷寄存器。寄存器情況可參見表1。表1 I/O寄存器2.2 LCD1602液晶屏LCD1602采用8位并行數(shù)據(jù)傳輸,其操作時序如下圖所示:LCD1602接口由8位數(shù)據(jù)線,電源地電源正,液晶顯示偏壓信號(VL),數(shù)據(jù)命令選擇端(RS),讀寫選擇端(RW)組成。其接口信號說明如下圖所示:圖2接口信號說明圖可以在1602的液晶顯示偏壓信號端接一個可變電阻,調(diào)節(jié)顯示亮度,初始狀態(tài)時,調(diào)至1602上面一排顯示12個黑塊為止,LCD1602電路圖如下圖所示:3 方案設(shè)計3.1 設(shè)計方案 方案一:使用MSP430F1612編程控制LCD1602液晶
9、屏實現(xiàn)實現(xiàn)一串字符左右交替整屏移動。方案二:使用MSP430G2553編程控制LCD1602液晶屏實現(xiàn)一串字符左右交替整屏移動。3.2 方案選擇要完成控制LCD1602液晶屏實現(xiàn)一串字符左右交替整屏移動,MSP430G2553單片機足夠了,而且能夠比MSP430F1612節(jié)省資源,價格低,所以選擇方案二。4 程序設(shè)計4.1 程序結(jié)構(gòu)該程序主要由主程序源程序main.c、子程序源程序cry1602.c和子程序頭文件cry1602.h構(gòu)成采用這種程序結(jié)構(gòu),使程序更加清晰,一目了然,減少程序錯誤的機會,增強了程序的可移植性。在程序設(shè)計中MSP430G2553中P1口作為并行數(shù)據(jù)輸出端,P2.0、P2
10、.1、P2.2分別作為LCD1602液晶的RS、RW、E端。4.2 主程序源程序主程序中使用看門狗定時器進行計時,控制字符串移動的速度。字符串先左移,再右移,之后循環(huán)移動。程序如下:#include #include cry1602.h#define uchar unsigned charuchar *s1 = Wuhan University of Technology Welcome!;void main(void)WDTCTL = WDT_ADLY_250; /間隔定時器,定時250msuchar *s2;uchar j,k,l;uchar i = 0;s2 = s1;LcdReset(
11、);while(*s1+ != 0) i+; /計算字符串有效字符個數(shù)while(1)for(j = 0;j i;j+)l = j;for(k = 0;k 16;k+)if(l i)Disp1Char(k,0,s2l+);elseDisp1Char(k,0, );IFG1 &= WDTIFG; /清除中斷失效標志while(!(IFG1 & WDTIFG);IFG1 &= WDTIFG;4.3 子程序源程序子程序中包含一些宏定義,使程序可移植性增強,還包含一些對LCD1602液晶的操作程序與延時程序。程序如下:#include #include cry1602.h#define datadir
12、 P1DIR#define dataport P1OUT#define busy 0 x80#define ctrldir P2DIR#define CLR_RS P2OUT &= BIT0; /RS = P2.0#define SET_RS P2OUT |= BIT0;#define CLR_RW P2OUT &= BIT1; /RW = P2.1#define SET_RW P2OUT |= BIT1;#define CLR_EN P2OUT &= BIT2; /EN = P2.2#define SET_EN P2OUT |= BIT2;void DispStr(uchar x,uchar
13、 y,uchar *ptr) uchar *temp; uchar i,n = 0; temp = ptr; while(*ptr+ != 0) n+; /計算字符串有效字符個數(shù) for(i = 0; i n; i+) Disp1Char(x+,y,tempi); if(x = 0 x0f) x = 0; y = 1; void DispNChar(uchar x,uchar y,uchar n,uchar *ptr) uchar i; for(i = 0; i Build Project,進行編譯,編譯結(jié)果如圖2所示:圖2 程序調(diào)試界面在調(diào)試過程中,開始時LCD1602液晶一直沒有顯示,認為
14、是程序出了問題,不過經(jīng)過檢查和調(diào)試,發(fā)現(xiàn)程序沒問題。不是程序問題,就檢查硬件,最終發(fā)現(xiàn)了問題是LCD1602液晶屏的V0口與GND間的滑動變阻器沒有調(diào)節(jié)合適,導(dǎo)致無法觀察到顯示效果。經(jīng)過調(diào)節(jié)滑動變阻器,就可以觀察到課程設(shè)計所要求的效果。如圖3所示:圖4 LCD1602液晶顯示在調(diào)試過程中,有時候會出現(xiàn)無法脫機運行的情況,經(jīng)過檢查,發(fā)現(xiàn)是因為芯片管腳接觸不良導(dǎo)致的,壓緊芯片即可解決問題。6結(jié)束語通過完成本次課程設(shè)計,我學(xué)到了許許多多的知識,獲得了豐富的經(jīng)驗。在完成課程設(shè)計的過程中對MSP430G2553有了初步的了解,掌握了該單片機的一些使用技巧,例如:I/O口寄存器的設(shè)置與使用,定時器的使用和
15、中斷的使用等等。掌握并能夠熟練使用CCSv5這個編程軟件,在該軟件上進行編寫程序,下載并進行調(diào)試,最終完成了本次課程設(shè)計。在程序設(shè)計、編寫程序到調(diào)試的過程中,加強了我獨立發(fā)現(xiàn)問題解決問題的能力,同時使得實踐能力得到進一步的提高。在實踐中,充分將理論知識用于實踐,使自身對知識的理解更進一層,更加能夠熟練的掌握并使用理論知識。實踐是檢驗真理的唯一標準,只有通過實踐才能體現(xiàn)出理論知識的價值。附錄11 主程序/*程序功能:循環(huán)顯示字符串*/#include #include cry1602.h#define uchar unsigned charuchar *s1 = Wuhan University
16、 of Technology Welcome!;void main(void)WDTCTL = WDT_ADLY_250; /間隔定時器,定時250msuchar *s2;uchar j,k,l;uchar i = 0;s2 = s1;LcdReset();while(*s1+ != 0) i+; /計算字符串有效字符個數(shù)while(1)for(j = 0;j i;j+)l = j;for(k = 0;k 16;k+)if(l i)Disp1Char(k,0,s2l+);elseDisp1Char(k,0, );IFG1 &= WDTIFG; /清除中斷失效標志while(!(IFG1 & W
17、DTIFG);IFG1 &= WDTIFG; 2 子程序源程序#include #include cry1602.h/*宏定義*/#define datadir P1DIR#define dataport P1OUT#define busy 0 x80#define ctrldir P2DIR#define CLR_RS P2OUT &= BIT0; /RS = P2.0#define SET_RS P2OUT |= BIT0;#define CLR_RW P2OUT &= BIT1; /RW = P2.1#define SET_RW P2OUT |= BIT1;#define CLR_EN
18、P2OUT &= BIT2; /EN = P2.2#define SET_EN P2OUT |= BIT2;/*函數(shù)名稱:Dispstr功 能:讓液晶從某個位置起連續(xù)顯示一個字符串參 數(shù):x-位置的列坐標 y-位置的行坐標 ptr-指向字符串存放位置的指針返回值 :無*/void DispStr(uchar x,uchar y,uchar *ptr) uchar *temp; uchar i,n = 0; temp = ptr; while(*ptr+ != 0) n+; /計算字符串有效字符個數(shù) for(i = 0; i n; i+) Disp1Char(x+,y,tempi); if(x
19、= 0 x0f) x = 0; y = 1; /*函數(shù)名稱:DispNChar功 能:讓液晶從某個位置起連續(xù)顯示一個字符串參 數(shù):x-位置的列坐標 y-位置的行坐標 n-顯示字符個數(shù) ptr-指向字符串存放位置的指針返回值 :無*/void DispNChar(uchar x,uchar y,uchar n,uchar *ptr) uchar i; for(i = 0; i n; i+) Disp1Char(x+,y,ptri); if(x = 0 x0f) x = 0; y = 1; /*函數(shù)名稱:LocateXY功 能:向液晶輸入顯示字符位置的坐標信息參 數(shù):x-位置的列坐標 y-位置的行
20、坐標返回值 :無*/void LocateXY(uchar x,uchar y) uchar temp; temp = x&0 x0f; y &= 0 x01; if(y) temp |= 0 x40;/如果在第2行 temp |= 0 x80; LcdWriteCommand(temp,1);/*函數(shù)名稱:Disp1Char功 能:在某個位置顯示一個字符參 數(shù):x-位置的列坐標 y-位置的行坐標 data-顯示的字符數(shù)據(jù)返回值 :無*/void Disp1Char(uchar x,uchar y,uchar data) LocateXY(x,y); LcdWriteData(data);/*
21、函數(shù)名稱:LcdReset功 能:對1602液晶模塊進行復(fù)位操作參 數(shù):無返回值 :無*/void LcdReset(void) ctrldir |= 0 x07; /控制線端口設(shè)為輸出狀態(tài) datadir = 0 xff; /數(shù)據(jù)端口設(shè)為輸出狀態(tài) LcdWriteCommand(0 x38,0); /規(guī)定的復(fù)位操作 Delay5ms(); LcdWriteCommand(0 x38,0); Delay5ms(); LcdWriteCommand(0 x38,0); Delay5ms(); LcdWriteCommand(0 x38,1); /顯示模式設(shè)置 LcdWriteCommand(0
22、x08,1); /顯示關(guān)閉 LcdWriteCommand(0 x01,1); /顯示清屏 LcdWriteCommand(0 x06,1); /寫字符時整體不移動 LcdWriteCommand(0 x0c,1); /顯示開,不開游標,不閃爍/*函數(shù)名稱:LcdWriteCommand功 能:向液晶模塊寫入命令參 數(shù):cmd-命令, chk-是否判忙的標志,1:判忙,0:不判返回值 :無*/void LcdWriteCommand(uchar cmd,uchar chk) if(chk) WaitForEnable(); /檢測忙信號? CLR_RS; CLR_RW; _NOP(); dat
23、aport = cmd; /將命令字寫入數(shù)據(jù)端口 _NOP(); SET_EN; /產(chǎn)生使能脈沖信號 _NOP(); _NOP(); CLR_EN;/*函數(shù)名稱:LcdWriteData功 能:向液晶顯示的當前地址寫入顯示數(shù)據(jù)參 數(shù):data-顯示字符數(shù)據(jù)返回值 :無*/void LcdWriteData(uchar data) WaitForEnable(); /等待液晶不忙 SET_RS; CLR_RW; _NOP(); dataport = data; /將四顯示數(shù)據(jù)寫入數(shù)據(jù)端口 _NOP(); SET_EN; /產(chǎn)生使能脈沖信號 _NOP(); _NOP(); CLR_EN;/*函數(shù)名稱:WaitForEnable功 能:等待1602液晶完成部操作參 數(shù):無返回值 :無*/void WaitForEnable(void) P1DIR &= 0X00; /將P1口切換為輸入狀態(tài) CLR_RS; SET_RW; _NOP(); SET_EN; _NOP(); _NOP(); while(P1IN & busy) != 0); /檢測忙標志 CLR_EN; P1DIR |= 0 xff; /將P4口切換為輸出狀態(tài)/*函數(shù)名稱:De
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2020-2021廣東省深圳市寶安區(qū)寶城小學(xué)六年級小升初語文綜合測試卷及答案
- 主體模板工程施工方案
- 扣盤式腳手架施工方案
- 2025年中考物理模擬試卷猜題卷3(含答案)
- 2025屆浙江省臺州市團隊六校中考生物模擬預(yù)測題含解析
- 勞務(wù)合同保密合同范例
- 肝移植GVHD的護理
- 農(nóng)資服務(wù)代辦合同范例
- 學(xué)校秋季志愿服務(wù)計劃
- 制定有效的輪崗計劃
- (帶答案)初中物理第八章運動和力重難點歸納
- 梅毒的診斷與治療資料
- 《干眼診斷和治療》
- 報價單模板完整版
- 2022年水域救援考試題庫(含答案)
- GB/T 18658-2018擺錘式?jīng)_擊試驗機間接檢驗用夏比V型缺口標準試樣
- 罰款單的模板
- GB 16899-2011自動扶梯和自動人行道的制造與安裝安全規(guī)范
- 宏觀經(jīng)濟學(xué) 布蘭查德第六版 第6章勞動力市場
- 2022年江西建設(shè)職業(yè)技術(shù)學(xué)院單招語文試題及答案解析
- 高中信息技術(shù)《人工智能》優(yōu)質(zhì)教學(xué)課件
評論
0/150
提交評論