版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
./專業(yè)資料LCD1602液晶顯示課程設(shè)計(jì)緒論1.1課題背景當(dāng)今時(shí)候是一個(gè)信息化的時(shí)代,信息的重要性不言而喻的,獲取手段顯得尤其重要。人們所接受的信息有70%來自于人的視覺,無論用何種方式獲取的信息最終需要有某種顯示方式來表示。在當(dāng)代顯示技術(shù)中,主流的有LED顯示屏和LCD液晶顯示,而在這些顯示技術(shù)中,尤其以液晶顯示器LCD〔Liquidcrystaldisplay為代表的平板顯示器發(fā)展最快,應(yīng)用最廣。LCD是典型的發(fā)光器件,它一材料科學(xué)為基礎(chǔ),綜合利用了精密機(jī)械,光電及計(jì)算機(jī)技術(shù),并正在微機(jī)械,微光學(xué),纖維光學(xué)等前沿領(lǐng)域研究基礎(chǔ)上,向高集成化,智能化方向發(fā)展。液晶顯示技術(shù)發(fā)展迅猛,市場預(yù)測表明,液晶顯示平均年銷售呈增長10%~13%,不久的將來有可能取代CRT,成為電子信息產(chǎn)品的主要顯示器件,另外,液晶顯示器對(duì)空間電磁輻射的干擾不敏感,且在緊湊的儀器空間不需要專門的屏蔽保護(hù),因而課大大簡化儀器的結(jié)構(gòu)和制造成本,在各種便攜式儀器,儀表將會(huì)越來越廣泛的應(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課程設(shè)計(jì)的主要工作〔1對(duì)系統(tǒng)的各個(gè)模塊的各個(gè)功能進(jìn)行深入分析和研究,在對(duì)課題所采用的方案進(jìn)行可行詳細(xì)的研究后設(shè)計(jì)具體功能電路?!?熟悉所選芯片的功能并完成具體電路設(shè)計(jì)?!?對(duì)系統(tǒng)的最終指標(biāo)進(jìn)行測試,針對(duì)系統(tǒng)的不足,進(jìn)行分析并提出一些改正方法。1.4設(shè)計(jì)要求〔1運(yùn)行IIC總線技術(shù)?!?循環(huán)顯示字母。第二章硬件設(shè)計(jì)2.1LCD1602簡介2.1.1LCD1602引腳如圖2.1所示圖2.1LCD1602引腳圖引腳圖的功能如表2—1所示表2—1引腳功能圖LCD1602顯示模指令集〔1清屏功能:清DDROM值和AC值〔2歸位功能:光標(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)控制功能:設(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)?!?光標(biāo)、畫面位移功能:光標(biāo)、畫面移動(dòng)。其中:S/C=1畫面移動(dòng)一個(gè)字符位;S/C=0光標(biāo)移動(dòng)一個(gè)字符位;R/L=1:右移;R/L=0左移?!?功能設(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)陣顯示?!?CGRAM地址設(shè)置功能:設(shè)置CGRAM地址,A5~A0=0~3FH?!?DDRAM地址設(shè)置功能:設(shè)置DDRAM地址。其中:N=0,一行顯示A6~A0=0~4FH;N=1兩行顯示,首行A6~A0=0~2FH,次行A6~A0=40~67H?!?讀BF及AC值功能:讀忙BF和地址計(jì)數(shù)器AC的值。其中:BF=1:忙,BF=0:準(zhǔn)備好。此時(shí)AC值意義為最近一次地址設(shè)置〔CGRAM或DDRAM定義?!?0寫數(shù)據(jù)功能:根據(jù)最近設(shè)置的地址性質(zhì),數(shù)據(jù)寫入CGRAM或DDRAM中。〔11讀數(shù)據(jù)功能:根據(jù)最近設(shè)置的地址性質(zhì),從CGRAM或DDRAM數(shù)據(jù)讀出。2.2IIC總線IIC總線是PHILIPS公司推出的兩線式串行總線。用于連接微控制器及其外圍設(shè)備。IIC總線產(chǎn)生于在80年代,最初為音頻和視頻設(shè)備開發(fā),如今主要在服務(wù)器管理中使用,其中包括單個(gè)組件狀態(tài)的通信。例如管理員可對(duì)各個(gè)組件進(jìn)行查詢,以管理系統(tǒng)的配置或掌握組件的功能狀態(tài),如電源和系統(tǒng)風(fēng)扇。可隨時(shí)監(jiān)控內(nèi)存、硬盤、網(wǎng)絡(luò)、系統(tǒng)溫度等多個(gè)參數(shù),增加了系統(tǒng)的安全性,方便了管理。IIC總線的特點(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ù)傳輸可以通過沖突檢測和仲裁防止數(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>連接到相同總線的IC數(shù)量只受到總線的最大電容400pF限制。IIC協(xié)議總線信號(hào)時(shí)序〔1數(shù)據(jù)的有效性SDA線上的數(shù)據(jù)必須在時(shí)鐘的高電平周期保持穩(wěn)定數(shù)據(jù)線的高或低電平狀態(tài)只有在SCL線的時(shí)鐘信號(hào)是低電平時(shí)才能改變。如圖2.2IIC總線的位傳輸所示。圖2.2IIC總線的為傳輸〔2起始和停止條件在IIC總線中唯一出現(xiàn)的是被定義為起始<S>和停止<P>條件〔見圖2.3的情況。其中一種情況是在SCL線是高電平時(shí),SDA線從高電平向低電平切換,這個(gè)情況表示起始條件。當(dāng)SCL是高電平時(shí)SDA線由低電平向高電平切換表示停止條件。起始和停止條件一般由主機(jī)產(chǎn)生,總線在起始條件后被認(rèn)為處于忙的狀態(tài)。在停止條件的某段時(shí)間后,總線被認(rèn)為再次處于空閑狀態(tài)。如果產(chǎn)生重復(fù)起始<Sr>條件而不產(chǎn)生停止條件,總線會(huì)一直處于忙的狀態(tài),此時(shí)的起始條件<S>和重復(fù)起始<Sr>條件在功能上是一樣的。因此在本文檔的剩余部分,符號(hào)<S>將作為一個(gè)通用的術(shù)語既表示起始條件又表示重復(fù)起始條件,除非有特別聲明的<Sr>。如果連接到總線的器件合并了必要的接口硬件,那么用它們檢測起始和停止條件十分簡便。但是,沒有這種接口的微控制器在每個(gè)時(shí)鐘周期至少要采樣SDA線兩次來判別有沒有發(fā)生電平切換。圖2.3起始和停止條件〔3總線空閑狀態(tài)SDA和SCL兩條信號(hào)線都處于高電平,即總線上所有的器件都釋放總線,兩條信號(hào)線各自的上拉電阻把電平拉高?!?數(shù)據(jù)傳輸與應(yīng)答信號(hào)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.4IIC總線響應(yīng)。圖2.4IIC總線響應(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)備好接收下一個(gè)數(shù)據(jù)字節(jié)并釋放時(shí)鐘線SCL后,數(shù)據(jù)傳輸繼續(xù)。如圖2.5IIC總線數(shù)據(jù)傳輸所示。圖2.5IIC總線數(shù)據(jù)傳輸IIC總線器件尋址方式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ù)傳輸一般由主機(jī)產(chǎn)生的停止位〔P終止。但是如果主機(jī)仍希望在總線上通訊,它可以產(chǎn)生重復(fù)起始條件〔Sr,和尋址另一個(gè)從機(jī),而不是首先產(chǎn)生一個(gè)停止條件。在這種傳輸中,可能有不同的讀/寫格式結(jié)合。如圖2.6IIC總線完整的數(shù)據(jù)傳輸。圖2.6IIC總線的數(shù)據(jù)傳輸2.3系統(tǒng)電路圖系統(tǒng)的電路圖如2.7所示:圖2.7系統(tǒng)電路圖運(yùn)行狀況如圖2.8:圖2.9運(yùn)行狀態(tài)第三章軟件設(shè)計(jì)3.1系統(tǒng)框圖本課題的程序設(shè)計(jì)是在C語言的基礎(chǔ)之上的,可分為兩大模塊,分別是:〔1IIC協(xié)議;〔2LCD顯示。程序總體框圖如圖3.1所示:圖3.1總程序框圖LCD顯示程序框圖如圖3.2所示:圖3.2LCD顯示程序框圖3.2程序清單〔一#include<reg52.h>#include<stdio.h>#defineuintunsignedint#defineucharunsignedchar ucharcodedisplay_1[]={"goodmorning"};ucharcodedisplay_2[]={"missyou"};sbitlcden=P3^4; sbitlcdrs=P3^5;//sbitlcdrw=P3^6;ucharnum;uinti=0; voiddelayms<uintz>{ uintx,y; for<x=z;x>0;x--> for<y=110;y>0;y-->;}voidwrite_com<ucharcom>{ lcdrs=0; lcden=0; P0=com; delayms<5>; lcden=0; lcden=1; delayms<5>; lcden=0;}voidwrite_data<uchardate> { lcdrs=1; P0=date; delayms<5>; lcden=0; lcden=1; delayms<5>; lcden=0;}voidinit<> { lcden=0; write_com<0x38>; write_com<0x0f>; write_com<0x06>; write_com<0x01>;}voidmain<>{ init<>; //lcdrw=0; write_com<0x80+0x1a>; while<display_1[i]!='\0'> { write_data<display_1[i]>; i++; delayms<5>; } write_com<0x80+0x5f>; for<num=0;num<10;num++> { write_data<display_2[num]>; delayms<5>; } for<num=0;num<16;num++> { write_com<0x18>; delayms<100>; } while<1>;}〔二/*****************************************************************************File:main.c*功能:向LCD輸出HelloWorld****************************************************************************/#include"config.h"#definers<1<<8>#definerw<1<<9>#defineen<1<<10>#definebusy<1<<7>uint8txt[]={"HelloWorld"};/*****************************************************************************名稱:ChkBusy<>*功能:檢查總線是否忙****************************************************************************/voidChkBusy<>{ IODIR=0x700; while<1> { IOCLR=rs; IOSET=rw; IOSET=en; if<!<IOPIN&busy>>break; IOCLR=en; } IODIR=0x7ff;}/*****************************************************************************名稱:WrOp<>*功能:寫函數(shù)****************************************************************************/voidWrOp<uint8dat>{ ChkBusy<>; IOCLR=rs; //全部清零 IOCLR=rw; IOCLR=0xff; //先清零 IOSET=dat; //再送數(shù) IOSET=en; IOCLR=en;}/*****************************************************************************名稱:WrDat<>*功能:寫數(shù)據(jù)函數(shù)****************************************************************************/voidWrDat<uint8dat> { ChkBusy<>; IOSET=rs; IOCLR=rw; IOCLR=0xff; //先清零 IOSET=dat; //再送數(shù) IOSET=en; IOCLR=en;}/*****************************************************************************名稱:lcd_init<>*功能:lcd初始化函數(shù)****************************************************************************/voidlcd_init<void>{ WrOp<0x38>; WrOp<0x06>; //光標(biāo)加1 WrOp<0x0c>; //開顯示}/*****************************************************************************名稱:DisText<>*功能:顯示文本函數(shù)****************************************************************************/voidDisText<uint8addr,uint8*p>{ WrOp<addr>; while<*p!='\0'>WrDat<*<p++>>;}/*****************************************************************************名稱:main<>*功能:顯示文本****************************************************************************/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文件**別的C代碼不必使用ARM〔32位代碼方式編譯********************************************************************************************************/#defineIN_TARGET#include"config.h"/***********************************************************************************************************函數(shù)名稱:IRQ_Exception**功能描述:中斷異常處理程序,用戶根據(jù)需要自己改變程序**********************************************************************************************************/void__irqIRQ_Exception<void> {while<1>;//這一句替換為自己的代碼 }/***********************************************************************************************************函數(shù)名稱:FIQ_Exception**功能描述:快速中斷異常處理程序,用戶根據(jù)需要自己改變程序**********************************************************************************************************/voidFIQ_Exception<void>{while<1>;//這一句替換為自己的代碼}/***********************************************************************************************************函數(shù)名稱:TargetInit**功能描述:目標(biāo)板初始化代碼,在需要的地方調(diào)用,根據(jù)需要改變********************************************************************************************************/voidTargetInit<void>{/*添加自己的代碼*/}/***********************************************************************************************************函數(shù)名稱:TargetResetInit**功能描述:調(diào)用main函數(shù)前目標(biāo)板初始化代碼,根據(jù)需要改變,不能刪除********************************************************************************************************/voidTargetResetInit<void>{/*設(shè)置系統(tǒng)各部分時(shí)鐘*//*PLLCON=1;#if<<Fcclk/4>/Fpclk>==1VPBDIV=0;#endif#if<<Fcclk/4>/Fpclk>==2VPBDIV=2;#endif#if<<Fcclk/4>/Fpclk>==4VPBDIV=1;#endif#if<Fcco/Fcclk>==2PLLCFG=<<Fcclk/Fosc>-1>|<0<<5>;#endif#if<Fcco/Fcclk>==4PLLCFG=<<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>;#endifPLLFEED=0xaa;PLLFEED=0x55;while<<PLLSTAT&<1<<10>>==0>;PLLCON=3;PLLFEED=0xaa;PLLFEED=0x55;*//*設(shè)置存儲(chǔ)器加速模塊*/MAMCR=2; //MAMCR8u200-MAM功能被禁止、01-MAM功能部分使能、10-MAM功能完全使能/*MAMTIM8u3000=0-保留001=1-一段時(shí)間內(nèi)只有1個(gè)處理器時(shí)鐘〔cclk用于MAM取指。010=2-一段時(shí)間內(nèi)只有2個(gè)處理器時(shí)鐘〔cclk用于MAM取指。011=3-一段時(shí)間內(nèi)只有3個(gè)處理器時(shí)鐘〔cclk用于MAM取指。100=4-一段時(shí)間內(nèi)只有4個(gè)處理器時(shí)鐘〔cclk用于MAM取指。101=5-一段時(shí)間內(nèi)只有5個(gè)處理器時(shí)鐘〔cclk用于MAM取指。110=6-一段時(shí)間內(nèi)只有6個(gè)處理器時(shí)鐘〔cclk用于MAM取指。111=7-一段時(shí)間內(nèi)只有7個(gè)處理器時(shí)鐘〔cclk用于MAM取指。*/#ifFcclk<20000000MAMTIM=1;#else#ifFcclk<40000000MAMTIM=2;#elseMAMTIM=3;#endif#endif/*初始化VIC*/VICIntEnClr=0xffffffff;//清所有中斷使能,即關(guān)中斷VICVectAddr=0;//默認(rèn)向量地址寄存器VICIntSelect=0;//1:對(duì)應(yīng)的中斷請求分配為FIQ。0:對(duì)應(yīng)的中斷請求分配為IRQ。/*添加自己的代碼*/}#include"rt_sys.h"#include"stdio.h"#pragmaimport<__use_no_semihosting_swi>#pragmaimport<__use_two_region_memory>int__rt_div0<inta>{a=a;return0;}intfputc<intch,FILE*f>{ch=ch;f=f;return0;}intfgetc<FILE*f>{f=f;return0;}int_sys_close<FILEHANDLEfh>{fh=fh;return0;}int_sys_write<FILEHANDLEfh,constunsignedchar*buf,unsignedlen,intmode>{fh=fh;buf=buf;len=len;mode=mode;return0;}int_sys_read<FILEHANDLEfh,unsignedchar*buf,unsignedlen,intmode>{fh=fh;buf=buf;len=len;mode=mode;return0;}void_ttywrch<intch>{ch=ch;}int_sys_istty<FILEHANDLEfh>{fh=fh;return0;}int_sys_seek<FILEHANDLEfh,longpos>{fh=fh;return0;}int_sys_ensure<FILEHANDLEfh>{fh=fh;return0;}long_sys_flen<FILEHANDLEfh>{fh=fh;return0;}int_sys_tmpnam<char*name,intsig,unsignedm
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025上半年四川達(dá)州事業(yè)單位考試招聘工作人員1651人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上半年四川瀘州市龍馬潭區(qū)事業(yè)單位招聘工作人員29人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上半年四川樂山高新區(qū)事業(yè)單位招聘3人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 云南財(cái)經(jīng)大學(xué)《材料工程基礎(chǔ)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度崗位股權(quán)激勵(lì)與公司技術(shù)創(chuàng)新協(xié)議3篇
- 2025年度分公司與總公司農(nóng)業(yè)科技合作框架協(xié)議
- 2025年度帶品牌沙發(fā)商品房買賣合同法2篇
- 2025年度二零二五年度文化旅游產(chǎn)業(yè)發(fā)展定金合同3篇
- 2025年度高速公路設(shè)施維修服務(wù)委托協(xié)議3篇
- 2025年度房地產(chǎn)營銷策劃代理合同標(biāo)準(zhǔn)版2篇
- 機(jī)電安裝工程施工質(zhì)量標(biāo)準(zhǔn)及驗(yàn)收規(guī)范
- 過程控制系統(tǒng)及儀表 王再英等 課后答案(全)
- 《綠色化學(xué)化工技術(shù)》課件
- 民法典中的勞動(dòng)法與勞動(dòng)糾紛解決的法律適用
- 廣東省廣州市黃埔區(qū)2023-2024學(xué)年八年級(jí)上學(xué)期期末生物試卷+
- 四川省達(dá)州市2023-2024學(xué)年八年級(jí)上學(xué)期期末歷史試題(含答案)
- 國開電大??啤侗O(jiān)督學(xué)》期末紙質(zhì)考試總題庫2024版
- 合伙開學(xué)校協(xié)議
- 武漢理工大學(xué)2019-2020學(xué)年第一學(xué)期2018級(jí)軟件工程專業(yè)《Java語言程序設(shè)計(jì)》期末考試-
- GB/T 26334-2023燃?xì)獗戆惭b配件
- 五年級(jí)中隊(duì)日志全解
評(píng)論
0/150
提交評(píng)論