奥鹏论文网

 找回密码
 立即注册
快捷导航
搜索
查看: 331|回复: 0
打印 上一主题 下一主题

基于Proteus的LCD显示系统设计

[复制链接]

1613

主题

1616

帖子

5587

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5587
跳转到指定楼层
楼主
发表于 2017-12-26 14:52:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
引言
  单片机这门课程是自动化、机械电子等专业的一门专业技术必修课程,更是他们找工作就业的一个主要特长和技能,但是很多同学反应这门课程学习起来晦涩难懂,主要原因就是单片机是一门实践性很强的专业技术课,光是理论上课再加上有限的几次硬件实验是不好掌握这门技能的。Proteus是由Labcenter Electronics开发的功能强大的单片机仿真软件,它包括原理图布图、混合模式仿真及PCB板制作等功能,它提供了丰富的外围硬件,可以仿真模拟电路、数字电路、数模混合电路,其最大的亮点在于能够对微控制器进行实物级的仿真,便于操作,效果逼真[1]。将Proteus软件引入到单片机教学过程,每节课都能见证单片机实物仿真,能够帮助学生理解很多难懂的概念和程序,让单片机不再那么抽象和难接近,使学习效率大大提高。LCD的显示控制一直是单片机学习中比较难理解和掌握的知识,用Proteus软件让学生仿真LCD的硬件和软件的实现过程,可以加深学生对LCD的硬件控制和软件编制的理解,由此来更好地掌握LCD显示技术。本文设计案例是让LCD滚动显示两行内容:Welcome to jd305和Good study MCU!
  1 LCD1602介绍及设置
  液晶显示器(Liquid Crystal Display),简称LCD,由于
  LCD具有功耗低、体积小、超薄型、显示高品质等特点,而广泛应用在便携式电子产品中。目前我们所使用的LCD是由LCD面板、驱动与控制电路组合而成的,大部分LCD都使用HD44780集成电路作为控制器,它是集驱动器与控制器于一体的专用于字符显示的LCD显示控制驱动集成电路。HD44780集成电路应用简单,只要将待显示的字符的ASCⅡ码放入内部数据显示存储器(DD RAM),内部控制线路就会自动通过HD44780的字符发生器将字符传送到显示器上。LCD1602型可以显示2行,每行可以显示16个字符。LCD1602共有16个引脚,引脚包括8条数据线、3条控制线和3条电源线,其中RS是寄存器选择引脚,当该引脚是1时,选择是数据,当該引脚是0时,选择的是命令。E是使能引脚,当E=高脉冲时,可以向LCD1602里写数据或命令。R/W是读写引脚,当该引脚是1时,读操作,当该引脚是0时,写操作,一般是写,所以该引脚一般接地即可。
  显示模式设置,要让LCD显示字符,必须对光标、字符移动方向等进行设置,显示才会符合预期要求。如要设置为16*2显示、5*7点阵、8位数据接口,指令代码为38H;光标和显示模式设置。指令代码:0000 01 I/D S,I/D-地址指针加1或减1选择位。I/D=1,读或写一个字符后地址指针加1;I/D=0,读或写一个字符后地址指针减1。如写完一个字符后,指针加1,光标右移,指令代码是06H。其他指令,清屏指令是01H,全屏左移字符指令是18H,全屏右移字符指令是1CH。
  2 LCD显示系统硬件电路设计
  LCD显示系统由AT89C51、LCD1602、电源电路和复位电路组成[2],LCD1602的D0-D7引脚接单片机的P2口,E引脚接P3.4引脚,RS接P3.5引脚,R/W引脚直接接地控制。单片机与LCD1602在Proteus软件的连接图如图1所示。
  3 LCD显示系统软件设计
  在Proteus软件画好电路图,并进行电气规则检查,如果没有错误就可以进行软件设计了。在keil软件里用C语言编制程序,编译,如果没有错误,即可生成可执行HEX文件。LCD显示系统C程序如下所示。
  #include
  #define uchar unsigned char
  #define uint unsigned int
  uchar code h1[]="Welcome to jd305";
  uchar code h2[]="Good study MCU!";
  sbit len=P3^4;        //液晶使能端
  sbit lrs=P3^5;        //液晶数据命令选择端
  uchar num;
  void delay(uint t) //延时子程序
  {
  uint x,y;
  for(x=t;x>0;x--)
  for(y=200;y>0;y--);
  }
  void write_cm(uchar cm) //写命令子程序
  {        lrs=0;
  P2=cm;
  len=0;
  delay(10);
  len=1;
  delay(10);
  len=0;
  }
  void write_shu (uchar shu) //写数据子程序
  {        lrs=1;
  P2=shu;
  len=0;
  delay(10);
  len=1;
  delay(10);
len=0;
  }
  void init()//初始化
  {        write_cm(0x38);
  write_cm(0x0e);
  write_cm(0x06); //显示模式設置:数据地址指针加1,光标右移,字符不移
  write_cm(0x01); //清屏
  }
  void main( )
  {        init();
  write_cm(0x80+0x10); //指定第一行地址
  for(num=0;num<16;num++)
  {
  write_shu(h1[num]); //写入第一行显示数据
  delay(10);
  }
  write_com(0x80+0x50); //指定第二行地址
  for(num=0;num<15;num++)
  {        write_shu(h2[num]); //写入第二行显示数据
  delay(10);
  }
  while(1)
  {
  for(num=0;num<15;num++)//滚动设置
  { write_cm(0x1c);
  delay(100);
  }
  }
  }
  4 Proteus仿真
  在KEIL里编译程序生成可执行文件后,利用Proteus软件将可执行HEX文件下载到Proteus电路图的单片机芯片里,具体方法是双击单片机芯片,就可将可执行HEX文件加载到单片机中[3]。然后点击仿真运行按钮就可观看LCD实物仿真效果,仿真图见图1所示。
  5 结束语
  基于Proteus的LCD显示系统设计,充分体现了Proteus电路设计、Keil程序设计以及联合仿真调试一体化的设计理念,并且用Proteus软件进行单片机仿真设计,节能、省钱、提高效率,简化了单片机系统设计过程,经过实践证明值得推广应用。
  参考文献:
  [1]张毅刚,俞洋,刘丹,等.单片机原理与应用设计[M].北京:电子工业出版社,2016.
  [2]张成法,安庆森,韩淑琴.基于单片机的LCD显示系统设计[J].信息与电脑,2016(15):128.
  [3]吴凌燕,王守权,郭伟波.基于Proteus的LCD显示研究[J].现代电子技术,2011,34(19):208.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

代写论文客服1代写论文客服1

代写论文客服2代写论文客服2

发表论文客服3发表论文客服3

发表论文客服4发表论文客服4

咨询热线
0591-87230077      13675012021        杨老师,刘老师
微信扫一扫

QQ|Archiver|手机版|小黑屋|奥鹏论文网  

GMT+8, 2025-5-25 03:19 , Processed in 0.596263 second(s), 23 queries .

中华论文库为您提供代写论文服务!
快速回复 返回顶部 返回列表