单片机1602液晶显示 单片机LCM1602液晶显示实验

实验九LCM1602液晶显示实验

一、实验目的

1、掌握keil C51软件与Protues软件联合仿真调试的方法;

2、掌握LCM1602液晶模块显示西文的原理及使用方法;

3、掌握8位数据模式驱动LCM1602液晶的C语言编程方法。

4、掌握用LCM1602液晶模块显示数字的C语言编程方法。

二、实验内容

1、用Protues设计一LCM1602液晶显示接口电路。要求利用P0口接LCM1602液晶的数据段,P2.0~P2.2做LCM1602液晶的控制信号输入端。P3.0~P3.3口扩展三个功能键K1~K3。

2、编写程序,实现字符的静态和动态显示。字符为“姓名全拼+学号”。液晶的初始化、字符显示程序可参考STC官网上的程序文件。

3、编写程序,利用功能键实现字符的纵向滚动和横向滚动等效果显示。

三、实验原理及步骤

1、用Protues设计1602液晶显示接口电路;

2、在Keil C51中编写液晶显示控制程序,编译通过后,与Protues联合调试;

3、按动功能按键,观察字符及效果是否正确显示。

四、实验仪器与设备

1.微机1台? 2. keilC51集成开发环境?? 3.Proteus仿真软件

五、电路设计及调试

(1)实验电路

(2)程序设计与调试

#include<reg52.h>

#include<string.h>

#include"lcd.h"

#define uint unsigned int

#define uchar unsigned char

uchar num,TEMP;

bit flag=1;

uchar keynum;

sbit K1=P3^0;

sbit K2=P3^1;

sbit K3=P3^2;

void delay(uint x)

{

?? ????? uchar i;

????? while(x--) for(i=0;i<120;i++);

}

uchar keypress()

{

?if(P3!=0XFF)????

? {

?? delay(5);

?? num=0;

?? if(P3!=0XFF)

??? {

????? ?TEMP=P3;

????? ?switch(TEMP)

????? ? {

????? ?? case 0xfe:num=1;break;

????? ?? case 0xfd:num=2;break;

????? ? }

????? ?while(TEMP==0XFF);

????? }

?? return num;

单片机1602液晶显示 单片机LCM1602液晶显示实验

? }

}

void main()

{

??? uchar i;

??? P0=P3=0XFF;

????? IT0=1;

????? EX0=1;EA=1;

单片机LCM1602液晶显示实验_lcd1602显示原理

?? ????? Initialize_LCD();

????? display_string(0,0,"?? gaoqinag????");

????? display_string(0,1,"201012301043????? ");

????? while(flag)??????????????????????????? ?

????? {

????? ?keypress();

????? ?if(num==1)

????? ? {

?????????? for(i=0;i<16;i++)

?????????? ?{

?????????? ?? Write_LCD_Command(0x1c);

????? ????? ??display_string(16-i,0," gaoqiang");

?????????? ?? display_string(16-i,1,"201012301043");

?????????? ?? display_string(16+i,0,"? gaoqinag");

?????????? ?? display_string(16+i,1,"201012301043");

?????????? ?? display_string(0x0f,0,"? gaoqinag");

?????????? ?? display_string(0x0f,1,"201012301043");

?????????? ?? delay(20);

?????????? ?}

?????????? display_string(0x0f,0,"? gaoqinag");

????? ??? display_string(0x0f,1,"201012301043");

?????????? delay(20);

?????????? if(num==2){Write_LCD_Command(0x01);break;}

????? ? }

???? if(num==2)

????? ? {

?????????? ? display_string(0,0,"gaoqinag");

?????????? ? delay(100);

?????????? ? display_string(0,1,"201012301043");

?????????? ? delay(100);

?????????? ? display_string(0,1,"gaoqinag");

?????????? ? delay(100);

?????????? ? display_string(0,0,"201012301043");

?????????? ? delay(100);

?????????? ? if(num==1) {Write_LCD_Command(0x01);break;}

????? ? }

????? }

}

void exter0()interrupt 0

{

?flag=~flag;

}

(3)实验中遇到的问题:

1.编写的实验程序不能正确显示学号,输入学号时不能加入空格,不然液晶显示屏幕显示不开!

六、实验总结

1.掌握了proteus基本的操作方法.

2.做实验时要仔细,要按步骤来,,避免人为错误。

3.做实验要独立完成,学会了液晶显示屏幕的控制程序.

七、对实验课的建议

做实验应多给学生时间自主练习,让同学们对于实验有更深刻的理解,从实践中找出问题,解决问题.

  

爱华网本文地址 » http://www.aihuau.com/a/8104270103/228366.html

更多阅读

自制液晶1602A 显示模块图,电路 1602液晶模块

这个是显示效果,呵呵,还不错LOVE U FOREVERMADE BYCC由于手机拍,效果不太好,液晶显示的效果是很好的此液晶模块采用的是1602a,最普遍的一种小型显示器,16*2这个是它的元件,市场价格17左右电路板焊接材料大致是,单片机89c52rc一块7元,电

学习单片机心得

学了一年多的单片机,对单片机也有了一个基础的了解。在这一年里,我学了DS18B20、128*64大液晶、数码管显示等。从最初的跑马灯,到整体融合,经历了一段时间。单片机只有P0,P1,P2,P3,如果想把很多功能合在一起的话,就得复用,或着用到扩展,但是

在12864液晶上显示任何图像 12864液晶

一,所需软件:Any to Icon 作用:用来把随意彩图,转化成黑白2色图。windows画图软件 作用:用来编辑DIY2色图片,并可改属性改成128X64像素字模提取软件作用:把128X64像素的图片,生成编程所需要的十六进制代码。二,自己完全DIY一副图画(就像

中国最大茶具批发市场 中国成液晶显示最大市场

根据DisplaySearch最新一季桌上型显示器出货与预测报告指出,2009年第二季的桌上型液晶显示器出货持续上升将近6%,达4千50万台,而中国在2009年第二季以及在2009上半年成为全球液晶显示器最大的市场。不过DisplaySearch预估EMEA在2009下

声明:《单片机1602液晶显示 单片机LCM1602液晶显示实验》为网友淩望夜空分享!如侵犯到您的合法权益请联系我们删除