LCD1602液晶顯示器設(shè)計(jì)_第1頁
LCD1602液晶顯示器設(shè)計(jì)_第2頁
LCD1602液晶顯示器設(shè)計(jì)_第3頁
LCD1602液晶顯示器設(shè)計(jì)_第4頁
LCD1602液晶顯示器設(shè)計(jì)_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、LCD1602 液晶顯示課程設(shè)計(jì)第一章 緒論1.1 課題背景當(dāng)今時(shí)候是一個(gè)信息化的時(shí)代, 信息的重要性不言而喻的, 獲取手段顯得尤其重要。人們所接受的信息有 70%來自于人的視覺,無論用何種方式獲取的信息最終需要有某種顯示方式來表示。 在當(dāng)代顯示技術(shù)中, 主流的有 LED顯示屏和 LCD 液晶顯示,而在這些顯示技術(shù)中,尤其以液晶顯示器LCD(Liquid crystal display )為代表的平板顯示器發(fā)展最快,應(yīng)用最廣。LCD 是典型的發(fā)光器件,它一材料科學(xué)為基礎(chǔ),綜合利用了精密機(jī)械,光電及計(jì)算機(jī)技術(shù),并正在微機(jī)械,微光學(xué),纖維光學(xué)等前沿領(lǐng)域研究基礎(chǔ)上,向高集成化,智能化方向發(fā)展。液晶

2、顯示技術(shù) 發(fā)展迅猛 ,市 場預(yù)測表 明,液晶 顯示 平均年銷 售呈增長10%13%,不久的將來有可能取代 CRT,成為電子信息產(chǎn)品的主要顯示器件,另外,液晶顯示器對空間電磁輻射的干擾不敏感,且在緊湊的儀器空間不需要專門的屏蔽保護(hù),因而課大大簡化儀器的結(jié)構(gòu)和制造成本,在各種便攜式儀器, 儀表將會越來越廣泛的應(yīng)用。特別是在電池供電的單片機(jī)產(chǎn)品中,液晶顯示更是必選的顯示器件。1.2 課題設(shè)計(jì)目標(biāo)本設(shè)計(jì)是基于 AT89C51 芯片單片機(jī)為主控芯片, 結(jié)合 1602 液晶顯示模板等外圍電路,通過軟件程序, 來實(shí)現(xiàn)液晶顯示英文字母。 本次設(shè)計(jì)的目的在于利用單片機(jī)和 IIC 技術(shù)來顯示英文字母。1.3 課程

3、設(shè)計(jì)的主要工作( 1)對系統(tǒng)的各個(gè)模塊的各個(gè)功能進(jìn)行深入分析和研究,在對課題所采用的方案進(jìn)行可行詳細(xì)的研究后設(shè)計(jì)具體功能電路。( 2)熟悉所選芯片的功能并完成具體電路設(shè)計(jì)。( 3)對系統(tǒng)的最終指標(biāo)進(jìn)行測試,針對系統(tǒng)的不足,進(jìn)行分析并提出一些改正方法。1.4 設(shè)計(jì)要求( 1)運(yùn)行 IIC 總線技術(shù)。( 2)循環(huán)顯示字母。第二章硬件設(shè)計(jì)2.1 LCD1602 簡介2.1.1LCD1602引腳功能LCD1602 引腳如圖 2.1 所示圖 2.1 LCD1602 引腳圖引腳圖的功能如表21 所示2表 引腳功能圖2.1.2LCD1602 顯示模指令集(1)清屏功能:清 DDROM 值和 AC 值(2)歸

4、位功能:光標(biāo)復(fù)位,光標(biāo)返回到地址00H(3)輸入方式設(shè)置功能:設(shè)置光標(biāo),畫面移動(dòng)方式。其中: I/D=1 :數(shù)據(jù)讀寫操作后, AC 自加一;I/D=0 :數(shù)據(jù)讀寫操作后, AC 自減一;S=1:數(shù)據(jù)讀寫操作,畫面平移;S=0:數(shù)據(jù)讀寫操作,畫面不動(dòng);(4)顯示開關(guān)控制3功能:設(shè)置顯示、光標(biāo)和閃爍開關(guān)。其中: D 表示顯示開關(guān), D=1 為開, D=0 為關(guān); C 表示光標(biāo)開關(guān), C=1 為開, C=0 為關(guān); B 表示閃爍開關(guān), B=1 為開, B=0 為關(guān)。(5)光標(biāo)、畫面位移功能:光標(biāo)、畫面移動(dòng)。其中: S/C=1 畫面移動(dòng)一個(gè)字符位;S/C=0 光標(biāo)移動(dòng)一個(gè)字符位;R/L=1 :右移;

5、R/L=0 左移。(6)功能設(shè)置功能:工作方式設(shè)置(初始化指令)。其中: DL=1 ,8 位數(shù)據(jù)接口;DL=0 ,4 位數(shù)據(jù)接口 ;N=1,兩行顯示; N=0,一行顯示;F=1,5*10 點(diǎn)陣顯示; F=0,5*7 點(diǎn)陣顯示。(7)CGRAM 地址設(shè)置功能:設(shè)置 CGRAM 地址, A5A0=0 3FH。(8)DDRAM地址設(shè)置功能:設(shè)置 DDRAM地址。4其中: N=0,一行顯示 A6A0=04FH ;N=1 兩行顯示,首行 A6A0=02FH ,次行 A6A0=4067H 。(9)讀 BF 及 AC值功能:讀忙 BF 和地址計(jì)數(shù)器 AC 的值。其中:BF=1:忙,BF=0:準(zhǔn)備好。此時(shí) A

6、C 值意義為最近一次地址設(shè)置 (CGRAM或 DDRAM )定義。(10)寫數(shù)據(jù)功能:根據(jù)最近設(shè)置的地址性質(zhì),數(shù)據(jù)寫入CGRAM 或 DDRAM中。(11)讀數(shù)據(jù)功能:根據(jù)最近設(shè)置的地址性質(zhì),從CGRAM 或 DDRAM數(shù)據(jù)讀出。2.2 IIC 總線IIC 總線是 PHILIPS 公司推出的兩線式串行總線。用于連接微控制器及其外圍設(shè)備。 IIC 總線產(chǎn)生于在 80 年代,最初為音頻和視頻設(shè)備開發(fā),如今主要在服務(wù)器管理中使用,其中包括單個(gè)組件狀態(tài)的通信。 例如管理員可對各個(gè)組件進(jìn)行查詢,以管理系統(tǒng)的配置或掌握組件的功能狀態(tài), 如電源和系統(tǒng)風(fēng)扇。 可隨時(shí)監(jiān)控內(nèi)存、 硬盤、網(wǎng)絡(luò)、系統(tǒng)溫度等多個(gè)參數(shù),

7、增加了系統(tǒng)的安全性,方便了管理。2.2.1IIC 總線的特點(diǎn)(1) 只要求兩條總線線路 一條串行數(shù)據(jù)線 SDA 一條串行時(shí)鐘線 SCL。(2) 每個(gè)連接到總線的器件都可以通過唯一的地址和一直存在的簡單的主機(jī)從機(jī)關(guān)系軟件設(shè)定地址;主機(jī)可以作為主發(fā)送器或主機(jī)接收器。(3) 它是一個(gè)真正的多主機(jī)總線,如果兩個(gè)或更多主機(jī)同時(shí)初始化數(shù)據(jù)5傳輸可以通過沖突檢測和仲裁防止數(shù)據(jù)被破壞。(4) 串行的 8 位雙向數(shù)據(jù)傳輸位速率在標(biāo)準(zhǔn)模式下可達(dá)100kbit/s 快速模式下可達(dá) 400kbit/s 高速模式下可達(dá) 4Mbit/s 。(5) 片上的濾波器可以濾去總線數(shù)據(jù)線上的毛刺波保證數(shù)據(jù)完整。(6) 連接到相同總

8、線的 IC 數(shù)量只受到總線的最大電容 400pF 限制。2.2.2IIC 協(xié)議總線信號時(shí)序( 1)數(shù)據(jù)的有效性SDA 線上的數(shù)據(jù)必須在時(shí)鐘的高電平周期保持穩(wěn)定數(shù)據(jù)線的高或低電平狀態(tài)只有在 SCL 線的時(shí)鐘信號是低電平時(shí)才能改變。如圖2.2 IIC 總線的位傳輸所示。圖 2.2IIC 總線的為傳輸( 2)起始和停止條件在 IIC 總線中 唯一出現(xiàn)的是被定義為起始 (S)和停止 (P )條件(見圖 2.3)的情況。其中一種情況是在 SCL 線是高電平時(shí), SDA 線從高電平向低電平切換,這個(gè)情況表示起始條件。當(dāng) SCL 是高電平時(shí) SDA 線由低電平向高電平切換表示停止條件。起始和停止條件一般由主

9、機(jī)產(chǎn)生, 總線在起始條件后被認(rèn)為處于忙的狀態(tài)。 在停止條件的某段時(shí)間后,總線被認(rèn)為再次處于空閑狀態(tài)。如果產(chǎn)生重復(fù)起始(Sr)條件而不產(chǎn)生停止條件, 總線會一直處于忙的狀態(tài), 此時(shí)的起始條件 (S)和重復(fù)起始 (Sr)條件在功能上是一樣的。因此在本文檔的剩余部分,符號 (S)將作為一個(gè)通用的術(shù)語既表示起始條件又表示重復(fù)起始條件,除非有特別聲明的 (Sr)。6如果連接到總線的器件合并了必要的接口硬件,那么用它們檢測起始和停止條件十分簡便。但是,沒有這種接口的微控制器在每個(gè)時(shí)鐘周期至少要采樣 SDA 線兩次來判別有沒有發(fā)生電平切換。圖 2.3 起始和停止條件( 3)總線空閑狀態(tài)SDA 和 SCL 兩

10、條信號線都處于高電平,即總線上所有的器件都釋放總線,兩條信號線各自的上拉電阻把電平拉高。( 4)數(shù)據(jù)傳輸與應(yīng)答信號ACK發(fā)送到 SDA 線上的數(shù)據(jù)必須是 8 位的。每次傳輸可以發(fā)送的數(shù)據(jù)不受限制。每個(gè)字節(jié)后必須在時(shí)鐘的第 9 個(gè)脈沖期間釋放數(shù)據(jù)總線( SDA 為高),由接收器發(fā)送一個(gè) ACK (把數(shù)據(jù)總線的電平拉低 )來表示數(shù)據(jù)成功接收。如圖 2.4 IIC 總線響應(yīng)。圖 2.4 IIC 總線響應(yīng)首先傳輸?shù)氖菙?shù)據(jù)的最高位(MSB )。如果從機(jī)要完成一些其他功能后(例如一個(gè)內(nèi)部中斷服務(wù)程序) 才能接收或發(fā)送下一個(gè)完整的數(shù)據(jù)字節(jié),可以使時(shí)鐘 SCL保持低電平迫使主機(jī)進(jìn)入等待狀態(tài)。 當(dāng)從機(jī)準(zhǔn)備好接收

11、下一個(gè)數(shù)據(jù)字節(jié)并釋放時(shí)鐘線SCL 后,數(shù)據(jù)傳輸繼續(xù)。如圖2.5 IIC 總線數(shù)據(jù)傳輸所示。7圖 2.5 IIC 總線數(shù)據(jù)傳輸2.2.3IIC 總線器件尋址方式IIC 總線上的器件是共用總線的,因此,主器件在進(jìn)行數(shù)據(jù)傳輸前要選擇通信的從器件,即進(jìn)行總線尋址。 總線上的所有器件都有唯一的地址, 由器件地址和引腳地址兩部分構(gòu)成,共 7 位。引腳地址由 IIC 總線外圍器件的地址引腳 (A2 、A1、 A0 )決定的。數(shù)據(jù)的傳輸遵循如圖2.6 完整的數(shù)據(jù)傳送所示,在起始條件之后,發(fā)送一個(gè) 7 位的從機(jī)地址,緊接著第8 位是數(shù)據(jù)方向 (R/ W),0-表示發(fā)送數(shù)據(jù)(寫), 1-表示接收數(shù)據(jù)(讀)。數(shù)據(jù)傳

12、輸一般由主機(jī)產(chǎn)生的停止位(P)終止。但是如果主機(jī)仍希望在總線上通訊,它可以產(chǎn)生重復(fù)起始條件(Sr),和尋址另一個(gè)從機(jī),而不是首先產(chǎn)生一個(gè)停止條件。在這種傳輸中,可能有不同的讀/寫格式結(jié)合。如圖2.6 IIC 總線完整的數(shù)據(jù)傳輸。圖 2.6IIC 總線的數(shù)據(jù)傳輸2.3 系統(tǒng)電路圖系統(tǒng)的電路圖如2.7 所示 :8圖 2.7系統(tǒng)電路圖運(yùn)行狀況如圖 2.8 :圖 2.9運(yùn)行狀態(tài)9第三章軟件設(shè)計(jì)3.1 系統(tǒng)框圖本課題的程序設(shè)計(jì)是在C 語言的基礎(chǔ)之上的,可分為兩大模塊,分別是:(1)IIC 協(xié)議; (2)LCD 顯示。程序總體框圖如圖3.1 所示:10圖 3.1 總程序框圖LCD 顯示程序框圖如圖3.2

13、所示:11圖 3.2LCD 顯示程序框圖3.2 程序清單(一)#include#include#define uint unsigned int#define uchar unsigned charuchar code display_1=good morning;uchar code display_2=miss you;sbit lcden=P34;sbit lcdrs=P35;/sbit lcdrw=P36;uchar num;12uint i=0;void delayms(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void write

14、_com(uchar com)lcdrs=0;lcden=0;P0=com;delayms(5);lcden=0;lcden=1;delayms(5);lcden=0;void write_data(uchar date)lcdrs=1;P0=date;delayms(5);lcden=0;lcden=1;delayms(5);lcden=0;void init()lcden=0;13write_com(0x38);write_com(0x0f);write_com(0x06);write_com(0x01);void main()init();/lcdrw=0;write_com(0x80+

15、0x1a);while(display_1i!=0)write_data(display_1i);i+;delayms(5);write_com(0x80+0x5f);for(num=0;num10;num+)write_data(display_2num);delayms(5);for(num=0;num16;num+)write_com(0x18);delayms(100);while(1);(二)14/* * File: main.c* 功能:向 LCD 輸出 HelloWorld*/#includeconfig.h#define rs (18)#define rw (19)#defin

16、e en (110)#define busy (17)uint8 txt=HelloWorld;/* 名稱: ChkBusy()* 功能:檢查總線是否忙*/void ChkBusy()IODIR=0x700;while(1)IOCLR=rs;IOSET=rw;IOSET=en;if(!(IOPIN & busy)break;IOCLR=en;15IODIR=0x7ff;/* 名稱: WrOp()* 功能:寫函數(shù)*/void WrOp(uint8 dat)ChkBusy();IOCLR=rs;/全部清零IOCLR=rw;IOCLR=0xff;/先清零IOSET=dat;/再送數(shù)IOSET=en;

17、IOCLR=en;/* 名稱: WrDat()* 功能:寫數(shù)據(jù)函數(shù)*/void WrDat(uint8 dat)ChkBusy();IOSET=rs;IOCLR=rw;IOCLR=0xff;/先清零IOSET=dat;/再送數(shù)16IOSET=en;IOCLR=en;/* 名稱: lcd_init()* 功能: lcd 初始化函數(shù)*/void lcd_init(void)WrOp(0x38);WrOp(0x06);/光標(biāo)加 1WrOp(0x0c);/開顯示/* 名稱: DisText()* 功能:顯示文本函數(shù)*/void DisText(uint8 addr,uint8 *p)WrOp(addr

18、);while(*p !=0)WrDat(*(p+);/* * 名稱: main()* 功能:顯示文本17* */intmain(void)lcd_init();IODIR=0x7ff;/設(shè)置為輸出IOCLR=0x7ff;DisText(0x86,txt);while(1);/*-文件信息-* 文件名: target.c* 描 述: lpc210x(飛利浦的 ARM )目標(biāo)板特殊的代碼, 包括異常處理程序和目標(biāo)板初始化程序*每個(gè)工程應(yīng)當(dāng)具有這個(gè)文件的拷貝,用戶根據(jù)程序的需要修改本文件。* 注 意:本文件必須以 ARM (32 位代碼)方式編譯,否則,必須更改 init.s 和 vector.s

19、 文件*別的 C 代碼不必使用 ARM (32 位代碼)方式編譯* */#define IN_TARGET#include config.h/*函數(shù)名稱 : IRQ_Exception18* 功能描述 : 中斷異常處理程序,用戶根據(jù)需要自己改變程序*/void _irq IRQ_Exception(void)while(1);/ 這一句替換為自己的代碼/* * 函數(shù)名稱 : FIQ_Exception* 功能描述 : 快速中斷異常處理程序,用戶根據(jù)需要自己改變程序*/void FIQ_Exception(void)while(1);/ 這一句替換為自己的代碼/* * 函數(shù)名稱 : Target

20、Init* 功能描述 : 目標(biāo)板初始化代碼, 在需要的地方調(diào)用, 根據(jù)需要改變*/void TargetInit(void)/* 添加自己的代碼*/19/* * 函數(shù)名稱 : TargetResetInit* 功能描述 : 調(diào)用 main 函數(shù)前目標(biāo)板初始化代碼,根據(jù)需要改變,不能刪除*/void TargetResetInit(void)/* 設(shè)置系統(tǒng)各部分時(shí)鐘*/*PLLCON = 1;#if (Fcclk / 4) / Fpclk) = 1VPBDIV = 0;#endif#if (Fcclk / 4) / Fpclk) = 2VPBDIV = 2;#endif#if (Fcclk /

21、4) / Fpclk) = 4VPBDIV = 1;#endif#if (Fcco / Fcclk) = 2PLLCFG = (Fcclk / Fosc) - 1) | (0 5); #endif#if (Fcco / Fcclk) = 420PLLCFG = (Fcclk / Fosc) - 1) | (1 5); #endif#if (Fcco / Fcclk) = 8PLLCFG = (Fcclk / Fosc) - 1) | (2 5); #endif#if (Fcco / Fcclk) = 16PLLCFG = (Fcclk / Fosc) - 1) | (3 5); #endifP

22、LLFEED = 0xaa;PLLFEED = 0x55;while(PLLSTAT & (1 10) = 0);PLLCON = 3;PLLFEED = 0xaa;PLLFEED = 0x55;*/* 設(shè)置存儲器加速模塊*/MAMCR = 2; /MAMCR 8u2 00 MAM 功能被禁止、 01 MAM 功能部分使能、 10MAM 功能完全使能/* MAMTIM 8u30000保留0011一段時(shí)間內(nèi)只有1 個(gè)處理器時(shí)鐘(cclk)用于 MAM取指。0102一段時(shí)間內(nèi)只有2 個(gè)處理器時(shí)鐘( cclk)用于 MAM 取指。0113一段時(shí)間內(nèi)只有3 個(gè)處理器時(shí)鐘(cclk)用于 MAM取指。1

23、004一段時(shí)間內(nèi)只有4 個(gè)處理器時(shí)鐘 (cclk)用于 MAM取指。1015一段時(shí)間內(nèi)只有5 個(gè)處理器時(shí)鐘(cclk)用于 MAM取指。211106一段時(shí)間內(nèi)只有6 個(gè)處理器時(shí)鐘(cclk)用于 MAM取指。1117一段時(shí)間內(nèi)只有7 個(gè)處理器時(shí)鐘 (cclk)用于 MAM取指。*/#if Fcclk 20000000MAMTIM = 1;#else#if Fcclk 40000000MAMTIM = 2;#elseMAMTIM = 3;#endif#endif/* 初始化 VIC */VICIntEnClr = 0xffffffff;/ 清所有中斷使能,即關(guān)中斷 VICVectAddr = 0

24、;/ 默認(rèn)向量地址寄存器VICIntSelect = 0;/1:對應(yīng)的中斷請求分配為 FIQ。0:對應(yīng)的中斷請求分配為 IRQ。/* 添加自己的代碼*/#include rt_sys.h#include stdio.h#pragma import(_use_no_semihosting_swi)#pragma import(_use_two_region_memory)int _rt_div0(int a)22a = a;return 0;int fputc(int ch,FILE *f)ch = ch;f = f;return 0;int fgetc(FILE *f)f = f;return

25、 0;int _sys_close(FILEHANDLE fh)fh = fh;return 0;int _sys_write(FILEHANDLE fh, const unsigned char * buf,unsigned len, int mode)fh = fh;buf = buf;len =len;23mode = mode;return 0;int _sys_read(FILEHANDLE fh, unsigned char * buf, unsigned len, int mode)fh = fh;buf = buf;len =len;mode = mode;return 0;void _ttywrch(int ch)ch = ch;int _sys_istty(FILEHANDLE fh)fh = fh;return 0;int _sys_seek(FILEHANDLE fh, long pos)fh = fh;return 0;int _sys_ensure(FILEHANDLE fh)24fh = fh;return 0;long _sys_flen(FILEHANDLE fh)fh = fh;return 0;int _sys_tmpnam(char * name, int sig, unsigned maxlen)n

溫馨提示

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

評論

0/150

提交評論