基于msp430G2533的LCD1602液晶字符串循環(huán)顯示_課程設計.doc_第1頁
基于msp430G2533的LCD1602液晶字符串循環(huán)顯示_課程設計.doc_第2頁
基于msp430G2533的LCD1602液晶字符串循環(huán)顯示_課程設計.doc_第3頁
基于msp430G2533的LCD1602液晶字符串循環(huán)顯示_課程設計.doc_第4頁
基于msp430G2533的LCD1602液晶字符串循環(huán)顯示_課程設計.doc_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

武漢理工大學微機原理與接口技術(shù)課程設計說明書 課課 程程 設設 計計 題題 目目 lcd1602 液晶字符串循環(huán)顯示 學學 院院 專專 業(yè)業(yè) 班班 級級 姓姓 名名 指導教師指導教師 武漢理工大學微機原理與接口技術(shù)課程設計說明書 課程設計任務書課程設計任務書 題目要求題目要求 : 使用 launchpad 上的板上資源,外接 1602 液晶,編寫程序 使字符串在液晶上循環(huán)移動。 時間安排:時間安排: 2014 年元月 1 日2014 年元月 17 日下午 17:30 指導教師簽名:指導教師簽名: 年年 月月 日日 系主任(或責任教師)簽名:系主任(或責任教師)簽名: 年年 月月 日日 武漢理工大學微機原理與接口技術(shù)課程設計說明書 目錄 引言1 1 課程設計要求2 2 硬件電路3 2.1 msp430g2553 單片機.3 2.1.1 msp430g2553 單片機特點. .3 2.1.2 msp430g2553 單片機結(jié)構(gòu). .3 2.1.3 msp430g2553 的時鐘系統(tǒng). .4 2.1.4 i/o 寄存器. .5 2.2 lcd1602液晶屏. .5 3 方案設計7 3.1 設計方案7 3.2 方案選擇7 4 程序設計8 4.1 程序結(jié)構(gòu)8 4.2 主程序源程序8 4.3 子程序源程序8 4.4 子程序頭文件.12 5 調(diào)試.13 5.1 ccsv5 編譯軟件13 5.2 調(diào)試過程.13 6 結(jié)束語.15 附錄 1:代碼. .16 附錄 2:實物圖. 武漢理工大學微機原理與接口技術(shù)課程設計說明書 .22 參考文獻.23 本科生課程設計成績評定表.24 武漢理工大學微機原理與接口技術(shù)課程設計說明書 1 引言 本次課程設計旨在設計一個基于 msp430 系列微處理器的 lcd1602 液晶 字符串循環(huán)移動。單片機是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù) 把具有數(shù)據(jù)處理能力的中央處理器 cpu 隨機存儲器 ram、只讀存儲器 rom、 多種 i/o 口和中斷系統(tǒng)、定時器/計數(shù)器等功能(可能還包括顯示驅(qū)動電路、脈 寬調(diào)制電路、模擬多路轉(zhuǎn)換器、a/d 轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的 一個小而完善的微型計算機系統(tǒng),在工業(yè)控制領域廣泛應用。當今時代是一個 新技術(shù)層出不窮的時代,在電子領域尤其是自動化智能控制領域,傳統(tǒng)的分立 元件或數(shù)字邏輯電路構(gòu)成的控制系統(tǒng),正在以前所未見的速度被單片機智能控 制系統(tǒng)所代替。單片機的使用隨處可見,而人們的生活也越來越離不開單片機。 液晶是相態(tài)的一種,因為其特殊的物理、化學、光學特性,20 世紀中葉開 始被廣泛應用在輕薄型的顯示技術(shù)上液晶顯示器也被廣泛運用,也發(fā)揮著越來 越大的作用。盡年來,液晶顯示技術(shù)飛速發(fā)展,運用更加廣泛。 本課程設計通過 msp430g2553 單片機控制 lcd1602 液晶顯示器實現(xiàn)一串 字符循環(huán)移動。 武漢理工大學微機原理與接口技術(shù)課程設計說明書 2 1 課程設計要求 使用 launchpad 上的板上資源,外接 1602 液晶,編寫程序使“wuhan uniwersity of technology welcome you!”在液晶上循環(huán)移動顯示。 武漢理工大學微機原理與接口技術(shù)課程設計說明書 3 2 硬件電路 2.1 msp430g2553 單片機 2.1.1 msp430g2553 單片機特點 msp430g2 系列是德州儀器近期推出的一款產(chǎn)品,在秉承 msp430 超低功耗, 高集成度的優(yōu)點的同時,具有高性價比的特點。該系列被稱為 valueline,旨 在以 8 位單片機的價格實現(xiàn) 16 位單片機的性能。msp-exp430launchpad 是 ti 推出的又一套用于 msp430 和電路實驗的開發(fā)板。除了學生自主創(chuàng)新實踐外, launchpad 開發(fā)板還可以用于本科低年級課程,如嵌入式 c 語言,電子技術(shù)基 礎,微機原理,單片機等課程的自主實驗環(huán)節(jié)以及課程設計。該套開發(fā)板為單 片機熱愛者提供了一個很好的學習平臺。 2.1.2 msp430g2553 單片機結(jié)構(gòu) 如圖所示是板載一顆msp430g2553單片機的launch pad評估實驗開發(fā)板: 圖1 launch pad 評估實驗開發(fā)板 板上額外資源: (1) 板載 usb 調(diào)試與編程仿真器接口,無驅(qū)動可安裝 武漢理工大學微機原理與接口技術(shù)課程設計說明書 4 (2) 支持所有采用 dip14 和 dip20 封裝 msp430g2xx 和 msp430f20 器 (3) 紅綠兩粒 led,兩個按鍵 (4) 配套兩款電容觸摸板 (5) 所有管腳在板子兩邊引出 2.1.3 msp430g2553的時鐘系統(tǒng) msp430g2系列單片機的時鐘系統(tǒng)需要支持系統(tǒng)低功耗運行的需要。通過對 三個內(nèi)部時鐘信號的運用,用戶可很容易的選擇功耗最低,效率最高的系統(tǒng)時 鐘方案。在軟件的控制下,msp430g2系列單片機運行時可以不接外接晶振, 也可接一只外接電阻或者接一到兩只外接晶振,也可以外接頻率發(fā)生器。 基本時鐘模塊包括二至四個時鐘源: lfxt1clk:外接低頻或高頻振蕩器,如手表晶振,頻率發(fā)生器,外部時鐘源 (400khz 至16mhz). xt2clk:外接高頻晶振,范圍在400khz 至16mhz dcoclk:內(nèi)部時鐘震蕩 vloclk:內(nèi)部低頻低功耗晶振,標準頻率是12khz 三種時鐘信號可被 cpu 和 外設所使用: 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 可被選用為外圍 武漢理工大學微機原理與接口技術(shù)課程設計說明書 5 模塊的時鐘。 2.1.4 i/o 寄存器 和大部分單片機類似,msp430系列單片機也是將8個 io 口編為一組。每個 io 口有四個控制寄存器,p1和 p2還有額外的3個中斷寄存器。寄存器情況可參見 表1。 表1 i/o 寄存器 2.2 lcd1602液晶屏 lcd1602 采用 8 位并行數(shù)據(jù)傳輸,其操作時序如下圖所示: lcd1602 接口由 8 位數(shù)據(jù)線,電源地電源正,液晶顯示偏壓信號(vl) , 數(shù)據(jù)命令選擇端(rs) ,讀寫選擇端(rw)組成。其接口信號說明如下圖所示: 武漢理工大學微機原理與接口技術(shù)課程設計說明書 6 圖2接口信號說明圖 可以在 1602 的液晶顯示偏壓信號端接一個可變電阻,調(diào)節(jié)顯示亮度,初 始狀態(tài)時,調(diào)至 1602 上面一排顯示 12 個黑塊為止,lcd1602 電路圖如下圖所 示: 武漢理工大學微機原理與接口技術(shù)課程設計說明書 7 3 方案設計 3.1 設計方案 方案一:使用 msp430f1612編程控制 lcd1602液晶屏實現(xiàn)實現(xiàn)一串字符左 右交替整屏移動。 方案二:使用 msp430g2553編程控制 lcd1602液晶屏實現(xiàn)一串字符左右交 替整屏移動。 3.2 方案選擇 要完成控制 lcd1602液晶屏實現(xiàn)一串字符左右交替整屏移動, msp430g2553單片機足夠了,而且能夠比 msp430f1612節(jié)省資源,價格低,所 以選擇方案二。 武漢理工大學微機原理與接口技術(shù)課程設計說明書 8 4 程序設計 4.1 程序結(jié)構(gòu) 該程序主要由主程序源程序 main.c、子程序源程序 cry1602.c 和子程序頭文 件 cry1602.h 構(gòu)成采用這種程序結(jié)構(gòu),使程序更加清晰,一目了然,減少程序錯 誤的機會,增強了程序的可移植性。在程序設計中 msp430g2553中 p1口作為 并行數(shù)據(jù)輸出端,p2.0、p2.1、p2.2分別作為 lcd1602液晶的 rs、rw、e 端。 4.2 主程序源程序 主程序中使用看門狗定時器進行計時,控制字符串移動的速度。字符串先 左移,再右移,之后循環(huán)移動。程序如下: #include #include “cry1602.h“ #define uchar unsigned char uchar *s1 = “ wuhan university of technology welcome!“; void main(void) wdtctl = wdt_adly_250; /間隔定時器,定時250ms uchar *s2; uchar j,k,l; uchar i = 0; s2 = s1; lcdreset(); while(*s1+ != 0) i+; /計算字符串有效字符個數(shù) while(1) for(j = 0;j #include “cry1602.h“ #define datadir p1dir #define dataport p1out #define busy 0x80 #define ctrldir p2dir #define clr_rs p2out /rs = p2.0 #define set_rs p2out |= bit0; #define clr_rw p2out /rw = p2.1 #define set_rw p2out |= bit1; #define clr_en p2out /en = p2.2 #define set_en p2out |= bit2; 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 build project,進行編譯, 編譯結(jié)果如圖 2 所示: 圖2 程序調(diào)試界面 在調(diào)試過程中,開始時 lcd1602液晶一直沒有顯示,認為是程序出了問題, 不過經(jīng)過檢查和調(diào)試,發(fā)現(xiàn)程序沒問題。不是程序問題,就檢查硬件,最終發(fā) 武漢理工大學微機原理與接口技術(shù)課程設計說明書 14 現(xiàn)了問題是 lcd1602液晶屏的 v0口與 gnd 間的滑動變阻器沒有調(diào)節(jié)合適,導 致無法觀察到顯示效果。經(jīng)過調(diào)節(jié)滑動變阻器,就可以觀察到課程設計所要求 的效果。如圖3所示: 圖4 lcd1602液晶顯示 在調(diào)試過程中,有時候會出現(xiàn)無法脫機運行的情況,經(jīng)過檢查,發(fā)現(xiàn)是因 為芯片管腳接觸不良導致的,壓緊芯片即可解決問題。 武漢理工大學微機原理與接口技術(shù)課程設計說明書 15 6 結(jié)束語 通過完成本次課程設計,我學到了許許多多的知識,獲得了豐富的經(jīng)驗。 在完成課程設計的過程中對 msp430g2553 有了初步的了解,掌握了該單片機 的一些使用技巧,例如:i/o 口寄存器的設置及使用,定時器的使用和中斷的使 用等等。掌握并能夠熟練使用 ccsv5 這個編程軟件,在該軟件上進行編寫程序, 下載并進行調(diào)試,最終完成了本次課程設計。在程序設計、編寫程序到調(diào)試的 過程中,加強了我獨立發(fā)現(xiàn)問題解決問題的能力,同時使得實踐能力得到進一 步的提高。 在實踐中,充分將理論知識用于實踐,使自身對知識的理解更進一層,更 加能夠熟練的掌握并使用理論知識。實踐是檢驗真理的唯一標準,只有通過實 踐才能體現(xiàn)出理論知識的價值。 武漢理工大學微機原理與接口技術(shù)課程設計說明書 16 附錄 1 1 主程序 /* 程序功能:循環(huán)顯示字符串 */ #include #include “cry1602.h“ #define uchar unsigned char uchar *s1 = “ wuhan university of technology welcome!“; void main(void) wdtctl = wdt_adly_250; /間隔定時器,定時250ms uchar *s2; uchar j,k,l; uchar i = 0; s2 = s1; lcdreset(); while(*s1+ != 0) i+; /計算字符串有效字符個數(shù) while(1) for(j = 0;j #include “cry1602.h“ /*宏定義*/ #define datadir p1dir #define dataport p1out #define busy 0x80 #define ctrldir p2dir #define clr_rs p2out /rs = p2.0 #define set_rs p2out |= bit0; #define clr_rw p2out /rw = p2.1 #define set_rw p2out |= bit1; #define clr_en p2out /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 = 0x0f) x = 0; y = 1; /* 函數(shù)名稱:dispnchar 武漢理工大學微機原理與接口技術(shù)課程設計說明書 18 功 能:讓液晶從某個位置起連續(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 = 0x0f) x = 0; y = 1; /* 函數(shù)名稱:locatexy 功 能:向液晶輸入顯示字符位置的坐標信息 參 數(shù):x-位置的列坐標 y-位置的行坐標 返回值 :無 */ void locatexy(uchar x,uchar y) uchar temp; temp = x y if(y) temp |= 0x40;/如果在第2行 temp |= 0x80; lcdwritecommand(temp,1); /* 函數(shù)名稱:disp1char 功 能:在某個位置顯示一個字符 參 數(shù):x-位置的列坐標 y-位置的行坐標 武漢理工大學微機原理與接口技術(shù)課程設計說明書 19 data-顯示的字符數(shù)據(jù) 返回值 :無 */ void disp1char(uchar x,uchar y,uchar data) locatexy(x,y); lcdwritedata(data); /* 函數(shù)名稱:lcdreset 功 能:對1602液晶模塊進行復位操作 參 數(shù):無 返回值 :無 */ void lcdreset(void) ctrldir |= 0x07; /控制線端口設為輸出狀態(tài) datadir = 0xff; /數(shù)據(jù)端口設為輸出狀態(tài) lcdwritecommand(0x38,0); /規(guī)定的復位操作 delay5ms(); lcdwritecommand(0x38,0); delay5ms(); lcdwritecommand(0x38,0); delay5ms(); lcdwritecommand(0x38,1); /顯示模式設置 lcdwritecommand(0x08,1); /顯示關閉 lcdwritecommand(0x01,1); /顯示清屏 lcdwritecommand(0x06,1); /寫字符時整體不移動 lcdwritecommand(0x0c,1); /顯示開,不開游標,不閃爍 /* 函數(shù)名稱:lcdwritecommand 功 能:向液晶模塊寫入命令 參 數(shù):cmd-命令, chk-是否判忙的標志,1:判忙,0:不判 返回值 :無 */ void lcdwritecommand(uchar cmd,uchar chk) if(chk) waitforenable(); /檢測忙信號? clr_rs; 武漢理工大學微機原理與接口技術(shù)課程設計說明書 20 clr_rw; _nop(); dataport = 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液晶完成內(nèi)部操作 參 數(shù):無 返回值 :無 */ void waitforenable(void) p1dir /將p1口切換為輸入狀態(tài) clr_rs; 武漢理工大學微機原理與接口技術(shù)課程設計說明書 21 set_rw; _nop(); set_en; _nop(); _nop(); while(p1in /檢測忙標志 clr_en; p1dir |= 0xff; /將p4口切換為輸出狀態(tài) /* 函數(shù)名稱:delay5ms 功 能:延時約5ms 參 數(shù):無 返回值 :無 */ void delay5ms(void) uint i = 40000; while(i != 0) i-; 3 子程序頭文件 #ifndef _cry1602_h #define _cry1602_h #defin

溫馨提示

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

評論

0/150

提交評論