液晶显示广告牌的设计_第1页
液晶显示广告牌的设计_第2页
液晶显示广告牌的设计_第3页
液晶显示广告牌的设计_第4页
液晶显示广告牌的设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录 TOC o 1-5 h z HYPERLINK l bookmark4 o Current Document 1技术要求1 HYPERLINK l bookmark6 o Current Document 设计方案及原理1 HYPERLINK l bookmark8 o Current Document 实现方案23. 1 LM016L基本资料3 HYPERLINK l bookmark16 o Current Document 硬件连接图7 HYPERLINK l bookmark18 o Current Document 源程序代码7 HYPERLINK l bookmark22 o

2、 Current Document 调式过程及结果13 HYPERLINK l bookmark24 o Current Document 5. 1调式过程13 HYPERLINK l bookmark26 o Current Document 结果14 HYPERLINK l bookmark28 o Current Document 心得体会15 HYPERLINK l bookmark30 o Current Document 参考文献16液晶显示广告牌的设计1技术要求在日常生活中,经常可见各种广告牌,本设计要求利用单片机控制液晶显示屏显示相 关的信息,需完成下列任务:(1)利用LCD显

3、示某一条固定语句;(2)能够通过按键对固定语句的显示方式进行修改,比如按一次按键,显示的字符 少一个,一直到最后所有字符完全消失;或者按一次按键所有字符显示的位置 左移一格等。2设计方案及原理让LCD显示固定语句在C语言环境下只需将字符吊直接赋给LCD即可,让LCD显 示的字符方式进行修改就得给LCD传递相关指令。第一步利用LCD显示某一条固定语句。LCD显示字符的时候,是一个一个字符显示, 显示一个字符后,光标加一或减一表示下一个字符显示的位置。因此显示固定语句的时 候,我们可以先将固定语句存在一个字符吊数组,光标操作为当写一个字符后地址指针加 一。选择好初始地址后,利用一个循环结构程序将整

4、个字符申数组内容显示出来。第二步让LCD显示的字符串显示方式进行修改。鉴于LCD自身就能将字符串以不同 方式的显示出来,因此我们只需将对应指令语句传递给LCD即可,通过外部按键产生中 断,让LCD来响应对应指令语句。方案流程图如图1所示。图1程序流程图3实现方案3.1 LM016L基本资料3.1.1引脚说明LM016L为字符型液晶显示器LCD,其图形符号、引脚及属性如图2所示。引脚说明如下:数据线D7DO控制线(有3根:RS、RW、E)1根地线Vss一根电源线(心)LH016L ;:工图2 LCD图形符号和引脚3. 1. 2 LM016L属性及RAM地址:LM016L的属性设置如下:每行的字符

5、数为16,行数为2:时钟为250KHz;行1的字符地址为80H8FH行2的字符地址为COHCFH3.1.3基本操作时序其具体时序见表io表1 LM016L信号真值表RSRAVE功能0()下降沿写指令代码01高电平读忙标志和AC值10下降沿写数据11高电平读数据3.1.4 LCD指令集(1)清屏指令RSR/WDB7DB6DB5DB4DB3DB2DB1DBO0()()()()0()()()1功能:1清除液晶显示器,即将DDRAH的内容全部填入“空CT的字符码20H;2光标归位,即将光标撤回液晶显示屏的左上方;3将地址计数器(AC)的值设为0。(2)光标归位指令RSR/WDB7DB6DB5DB4DB

6、3DB2DB1DBO0()()()00()01功能:1把光标撤回到显示器的左上方;2把地址计数器(AC)的值设置为0;3保持DDRAH的内容不变(3)输入模式指令设置RSR/WDB7DB6DB5DB4DB3DB2DB1DBO0()()()00()1I/DS功能:设定每次写入1位数据后光标的移位方向,并且设定每次写入的一个字符 是否移动。其中:I/D二1:数据读、写操作后,AC自动增一;I/D二0:数据读、写操作后,AC自动减一;S二1:数据读、写操作,画面平移;S二0:数据读、写操作,画面不动。(4)显示开关控制指令RSR/WDB7DB6DB5DB4DB3DB2DB1DB00()()0()()

7、1DCB功能:控制显示器开/关、光标显示/关闭以及光标是否闪烁。其中:D表示显示开关:D=1为开,D=0为关;C表示光标开关:C=1为开,C=0为关;B表示闪烁开关;B=1为开,B=0为关。(5)设定显示屏或光标移动方向抬令RSR/WDB7DB6DB5DB4DB3DB2DB1DBO0()()()01S/CR/L*功能:使光标移位或使整个显示屏幕移位。其中:S/C二1:画面平移一个字符位;S/C二0:光标平移一个字符位;R/L=l:右移;R/L二0:左移。(6)功能设定指令RSR/WDB7DB6DB5DB4DB3DB2DB1DB00()0()1DLNF*功能:设定数据总线位数、显示的行数及字型。

8、其中:DL=1, 8位数据接口; DL二0, 4位数据接口;N=l,两行显示;N二0, 行显示;F=l, 5X10点阵字符;F二0, 5X7点阵字符。(7)设定DDRAM地址指令RSR/WDB7DB6DB5DB4DB3DB2DB1DBO00()A6A5A4A3A2A1AO功能:设定下一个要存入数据的CGRAH的地址。(8)读取忙信号或AC地址指令RSR/WDB7DB6DB5DB4DB3DB2DB1DB001BFAC6AC5AC4AC3AC2AC1AC0功能:1读取忙碌信号BF的内容,BF二1表示液晶显示器忙,暂时无法接收单片机送来的数据或指令;当BF二0时,液晶显示器可以接收单片机送来的数据或

9、指令;2读取地址计数器(AC)的内容。(9)数据写入DDRAM或CGRAM指令RSR/WDB7DB6DB5DB4DB3DB2DB1DB01()数据功能:1将字符码写入DDRAM,以使液晶显示屏显示出相对应的字符;2将用户自己设讣的图形存入CGRAMo(10)从CGRAM或DDRAM读出数据的指令RSR/WDB7DB6DB5DB4DB3DB2DB1DB011数据功能:读取DDRAM或CGRAM中的内容。3.1.5控制器接口时序说明3. 1.5. 1读操作时序RSDB01ODB7图3读操作时序3. 1.5.2写操作时序图4写操作时序3. 2 硬件连接图了解完LM016L基本资料,现在我们可以将LC

10、D与单片机接在一起。实现方案时,将89C31单片机的P1 口与LCD数据口连接起来,F3 口接液晶控制端口及按键。具体的硬件连接图如图5所示。丄- 匸.丄 . lcd ri xI CRY丄=-.T-12-AS1Z_ C2 .1nF P22P33P445PS一丄PB0P?75P83U1 .F06WX0FO 1A1XTX4.1F0么灿2AFOQAMFC.CUAK F0vA6FOW7rm iP2(WP2/W P2M10P3BJPZ.4W PZXWGEAPZEMP2.7JM0P1j0PHP12P3.2AKTGP15P3.3HKT1P1.4巧.50P1QPM.VT(P1QP对冠P1.7AT8aC5l f

11、EXT/图5液晶广告牌硬件设计图4源程序代码#include /定义控制信号端口sbit RS=P3A0;/P3.0sbit RW=P3A1;P31sbit E= P3A2;/P3.2int jishu=O;/声明调用函数void lcd_w_cmd(unsigned char com);写命令字函数void Icd_w_dat(unsigned char dat);耳数据函数unsigned char lcd_r_start();读状态函数void int 1();/LCD初始化函数/可控延时函数void delay(unsigned char t);void delay 1();软件实现延

12、时函数,5个机器周期void main()主函数unsigned char lcd=Hi am the best one mei bang si wei teH;unsigned char lcdl=Hi am yu yang yi from whutn;unsigned char i;EA=1;全局中断开EX1 = 1;外部中断0开rri=i;边沿触发,IT1=O表示电平触发Pl=Oxff;送全1到P0 口int 1();初始化LCDdelay(255);lcd_w_cmd(0 x80);设置显示位置delay(255);显示字符串for(i=0;iv36;i+)lcd_w_dat(lcdi

13、);delay(200);lcd_w_cmd(OxcO);delay(255);for(i=0;i25 ;i+)lcd_w_dat(lcdli);delay(200);)while(l)switch(jishu) case 0 :for(i=0;il ;i+)lcd_w_cmd(OxO8);delay(200);lcd_w_cmd(OxOd);delay(200);)break;case 1:for(i=0;il;i+)lcd_w_cmd(Ox 1 c);delay(200);)break;case 2: for(i=0;i 1 ;i+)/设置显示位置/显示字符串/闪烁左移右移lcd_w_cm

14、d(Ox 18);delay(200);break;1void ISR_Key(void) interrupt 2 using 1jishii+;jishu=jishu%3 ;1函数名:delay函数功能:釆用软件实现可控延时形式参数:延时时间控制参数存入变量(中返回值:无void delay(unsigned char t)unsigned char j,i;for(i=0;ivt;i+)for(j=0;jv50;j+);1函数名:delay 1函数功能:釆用软件实现延时,5个机器周期形式参数:无返回值:无void delay 1()_nop_();_nop_();-nop_();)/函数名

15、:inti函数功能:led初始化形式参数:无返回值:无void intl()lcd_w_cmd(0 x3c);lcd_w_cmd(0 x0d);lcd_w_cmd(OxO 1); lcd_w_cmd(0 x06);lcd_w_cmd(0 x80);/函数名:lcd_r_sta函数功能:读状态字形式参数:无/设置工作方式/设置光标/清屏/设置输入方式/设置初始显示位置/RW=1, RS=O,读 LCD 状态/E端时序从LCD的数据口读状态返回值:返回状态字,最高位D7=0, LCD控制器空闲;D7=1,LCD控制器忙 unsigned char lcd_r_start()unsigned cha

16、r s;RW=1;delay 1();RS=0;delay 1();E=l;delay 1();s=Pl;delay 1();E=0;delayl();RW=0;delayl();return(s);返回读取的LCD状态字/函数名:lcd_w_cmd函数功能:写命令字形式参数:命令字已存入com单元中返回值:无void Icd_w_cmd(unsigned char com)unsigned char i;doi=lcd_r_start();i=i&0 x80;delay(2);while(i!=0);RW=0;delayl();RS=O;delayl();E=l;delayl();Pl=co

17、m;delayl();E=0;查LCD忙操作/调用读状态字函数/与操作屏蔽掉低7位/LCD忙,继续查询,否则退出循环/RW=1, RS=O,写 LCD 命令字/E端时序将com中的命令字写入LCD数据口delayl();RW=1;delay(255);)函数名:lcd_w_dat函数功能:写数据形式参数:数据已存入dat单元中返回值:无void Icd_w_dat(unsigned char dat) unsigned char i;do/查忙操作i=lcd_r_start();/调用读状态字函数i=i&0 x80;/与操作屏蔽掉低7位delay(2);while(i!=0);/LCD忙,继续

18、查询,否则退出循环RW=0;delay 1();RS=1;RW=1, RS=O,写 LCD 命令字delay 1();E=l;E端时序delay 1();Pl=dat;/将dat中的显示数据写入LCD数据口delay 1();E=0;delay 1();RW=1;delay(255);15调式过程及结果5. 1调式过程第一步显示固定语句,硬件图连接好,且程序编译通过没有错,主成.hex文件后下载 到protues单片机进行仿真,点开始后,液晶屏亮,但是液晶屏只有第一行有显示,原本 设定的笫二行显示未能如期实现。检查程序后,发现初始化时候没有给第二行设置显示的 物理地址,设定好第二行物理地址后第

19、二行便出现了预期的显示字符。笫二步通过按键修改显示方式,按照预期想法,在第一次按下按键后,字符串便呈闪 烁状态,在没有再次按下按键之前,LCD应该保持之前闪烁状态,可是实际情况确实再完 成一次闪烁后程序自动进行下一个模式即循环左移一次,左移完成之后乂进入循环右移, 再而回到闪烁状态,并在这三个状态间持续循环。分析后认为是程序段用了 switch循环, 这个循环将每个case语句顺序执行,于是在每个case语句后加上break语句,重新生成 HEX文件执行后果真这个问题得到解决,并且没有新的问题。5.2 纟吉果调试完成后,最终仿真运行结果。第一步,显示固定内容。即仿真开始后,不进行任何操作,LCD显示设置好的字符并 按照默认的显示方式(闪烁)进行显示。如图6。第二步,通过按键修改显示方式。按键一次后字符循环左移,再次按下按键后字符串 循环右移,图7为字符宙左移到最右端状态。6心得体会在选定课题与液晶显示器件相关后便上网搜集了一些芯片的资料,熟悉了一下芯片的 使用说明,这次是学习单片机以来笫一次接触字符型LCD,之前实验课中接触的都是数码 管显示芯片,直接通过芯片管脚电平的赋值便可以显示出相应字符,但这次是要显示出字 符吊,请教同学后

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论