文档介绍:第二讲点阵和液晶屏
第1页,本讲稿共41页
8*8点阵外型和结构
第2页,本讲稿共41页
项目1:8*8点阵应用设计
与单片机连接图
第3页,本讲稿共41页
一、题目要求:用8051控制8*8点阵,使其先从左到程序
void main()
{
P3=0x80;
Num_Index=0; //从0 开始显示
TMOD=0x00; //T0 方式0
TH0=(8192-2000)/32; //2ms 定时,8192=213
TL0=(8192-2000)%32;
IE=0x82;
TR0=1; //启动T0
while(1);
}
第14页,本讲稿共41页
//T0 中断函数
void LED_Screen_Display() interrupt 1//1是T0中断服务程序代码
{
TH0=(8192-2000)/32; //恢复初值
TL0=(8192-2000)%32;
P0=0xff; //输出位码和段码
P0=~Table_of_Digits[Num_Index*8+i];//段码
P3=P3<<1;//位码
if(++i==8) i=0; //每屏一个数字由8 个字节构成
if(++t==250) //每个数字刷新显示一段时间
{
t=0;
if(++Num_Index==10) Num_Index=0; //显示下一个数字
}
}
第15页,本讲稿共41页
思考
若图中引入按键K1,每次按下K1 时,会使8X8LED点阵屏循环显示不同图形,试画出原理图、编写程序。
第16页,本讲稿共41页
参数:
显示容量:16×2个字符
芯片工作电压:—
工作电流:()
模块最佳工作电压:
字符尺寸:×(W×H)m
引脚:
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口。
1602液晶显示:
第17页,本讲稿共41页
第1脚:VSS为地电源。
第2脚:VDD接5V正电源。
第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15脚:背光源正极。
第16脚:背光源负极
第18页,本讲稿共41页
1602LCD的RAM地址映射:
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。
要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,下图是1602的内部显示地址。
第19页,本讲稿共41页
项目二:1602液晶显示
一、题目要求: 1602字符液晶滚屏显示
元件的选择
~7分别接LM016L的D0~D7
,,
第20页,本讲稿共41页
电路连接图:
第21页,本讲稿共41页
程序分析
#include<> //包含头文件
#define uint unsigned int //预定义一下
#define uchar unsigned char
sbit rs=P3^5; //1602的数据/指令选择控制线 sbit rw=P3^6; //1602的读写控制线
sbit en=P3^7; //1602的使能控制线
/*P0口接1602的D0~D7,注意不要接错了顺序*/ uchar code table[]=“welcome to LCD1602!”; //要显示的内容1放入数组
tablel uchar code table1[]=“nice to meet you!"; //要显示的内容2放入数组table1
第22页,本讲稿共41页
void delay(uint n) //延时函数
{ uint x,y;
for(x=n;x>0;x--)
for(y=110;y>0;y--); }
void lcd_wcom(uchar com) //1602写命令函