液晶显示模块docxWord文档格式.docx

上传人:b****6 文档编号:17301633 上传时间:2022-12-01 格式:DOCX 页数:24 大小:899.54KB
下载 相关 举报
液晶显示模块docxWord文档格式.docx_第1页
第1页 / 共24页
液晶显示模块docxWord文档格式.docx_第2页
第2页 / 共24页
液晶显示模块docxWord文档格式.docx_第3页
第3页 / 共24页
液晶显示模块docxWord文档格式.docx_第4页
第4页 / 共24页
液晶显示模块docxWord文档格式.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

液晶显示模块docxWord文档格式.docx

《液晶显示模块docxWord文档格式.docx》由会员分享,可在线阅读,更多相关《液晶显示模块docxWord文档格式.docx(24页珍藏版)》请在冰豆网上搜索。

液晶显示模块docxWord文档格式.docx

背光源地

8

D1

16

BLA

背光源正极

注意事项:

从该模块的正面看,引脚排列从右向左为:

15脚、16脚,然后才是1-14脚(线路板上已经标明):

VDD:

电源正极,4.5-5.5V,通常使用5V电压;

VL:

LCD对比度调节端,电压调节范围为0-5V。

接电源的正极时对比度最弱,接地电源时对比度最高,但对比度过高时会产生“鬼影”,因此通常使用一个10K的电位器来调整对比度,或者直接串接一个电阻到地;

RS:

MCU写入数据或者指令选择端。

MCU要写入指令时,使RS为低电平;

MCU要写入数据时,使RS为高电平;

R/W:

读写控制端。

R/W为高电平时,读取数据;

R/W为低电平时,写入数据;

E:

LCD模块使能信号控制端。

写数据时,需要下降沿触发模块。

D0-D7:

8位数据总线,三态双向。

如果MCU的I/O口资源紧张的话,该模块也可以只使用4位数据线D4-D7接口传送数据。

本充电器就是采用4位数据传送方式;

BLA:

LED背光正极。

需要背光时,BLA串接一个限流电阻接VDD,BLK接地,实测该模块的背光电流为50mA左右;

BLK:

LED背光地端。

DS18B20

反面

Dallas半导体公司的数字化温度传感器DS18B20是世界上第一片支持"

一线总线"

接口的温度传感器,在其内部使用了在板(ON-BOARD)专利技术。

全部传感元件及转换电路集成在形如一只三极管的集成电路内。

DS18B20具有微型化、低功耗、高性能、抗干扰能力强、可组网等优点,测温分辨率较高,为9~12位,精度为0.5℃。

DS18B20可直接将温度转化成串行数字信号,因此特别适合与单片机配合使用,直接读取温度数据。

目前DS18B20数字温度传感器已经广泛应用于恒温室、粮库、计算机机房温度监控及其他各种温度测控系统中。

DS18B20内部结构主要由四部分组成:

64位光刻ROM、温度传感器、非易失性的温度报警触发器TH和TL和配置寄存器。

DS18B20的外部结构图

DS18B20的引脚介绍

(1)DQ为数字信号输入/输出端;

(2)GND为电源地;

(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。

DS18B20的主要特性

(1)适应电压范围更宽,电压范围:

3.0~5.5V,在寄生电源方式下可由数据线供电。

(2)测温范围-55℃~+125℃,在-10℃~+85℃时精度为±

0.5℃。

(3)可编程的分辨率为9~12位,可在至多在750ms内将温度转换成为12位的数字,测温可分辨率为0.0625℃。

(4)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条线即可实现微处理器与DS18B20的双向通讯。

(5)DS18B20支持多点的组网功能,多个DS18B20可以并联在唯一的单线结构上,实现组网多点测温。

数字温度传感器DS18B20与单片机的连接电路非常简单,引脚1(GND)接地,引脚3(VCC)接电源+5V,引脚2(DQ)接单片机输入/输出一个端口,电源+5V和信号线(DQ)间接有一个4.7K上拉电阻。

单片机与温度传感器DS18B20的连接电路图

DS1302

DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。

采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。

DS1302内部有一个31×

8的用于临时性存放数据的RAM寄存器。

DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源和双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。

下图为DS1302的引脚排列,其中Vcc2为后备电源,Vcc1为主电源。

在主电源关闭的情况下,也能保持时钟的连续运行。

DS1302由Vcc1或Vcc2两者中的较大者供电。

当Vcc1大于Vcc2+0.2V时,Vcc1给DS1302供电。

当Vcc1小于Vcc2时,DS1302由Vcc2供电。

X1和X2是振荡源,外接32.768kHz晶振。

RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。

RST输入有两种功能:

首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;

其次,RST提供终止单字节或多字节数据的传送手段。

当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。

如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。

上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。

只有在SCLK为低电平时,才能将RST置为高电平。

I/O为串行数据输入输出端(双向)。

DS1302的引脚及内部结构如图13所示:

 

DS1302管脚功能表

引脚号

引脚名称

功能

Vcc2

后备电源

2.3

X1.X2

振荡源,外接32768Hz晶振

GND

地线

TST

复位/片选线

I/O

串行数据输入/输出端(双向)

SCLK

串行数据输入端

Voc1

主电源

DS1302管脚图及内部结构图

DS1302是与单片机连接起来的,其连接图如下:

DS1302与单片机连接图

总体仿真图:

驱动程序:

#include<

intrins.h>

#defineucharunsignedchar

##include<

reg52.h>

defineuintunsignedint

sbitlcd_rs=P2^0;

sbitlcd_en=P2^1;

sbitdo=P2^3;

sbitbeep=P2^2;

sbitdeserts=P2^5;

sbitds_sclk=P2^6;

sbitds_io=P2^7;

sbitwuxian1=P3^0;

sbitwuxian2=P3^5;

sbitwuxian3=P3^6;

sbitwuxian4=P3^7;

sbitkey0=P3^2;

sbitkey1=P3^3;

sbitkey2=P3^4;

sbitkey3=P2^4;

sbitdj11=P1^0;

sbitdj12=P1^1;

sbitdj21=P1^2;

sbitdj22=P1^3;

sbitkey4=P1^4;

sbitkey5=P1^5;

sbitkey6=P1^6;

sbitkey7=P1^7;

sbitacc0=ACC^0;

sbitacc7=ACC^7;

uchartable[]="

20--"

;

uchartable1[]="

:

.*c"

ucharflag,num,n,num1,num2,num3,num4,num5;

uinttemp;

floatf_temp;

charshi,fen,miao,week,nian,yue,ri;

voiddelayms(uintxms)

{

uinti,j;

for(i=xms;

i>

0;

i--)

for(j=110;

j>

j--);

}

voiddelay(uintz)

for(;

z>

z--);

voiddi()

beep=0;

delayms(100);

beep=1;

voidsend(ucharnum)

SBUF=num;

while(!

TI)

TI=0;

voidwrite_byte(ucharad)

uchari;

ACC=ad;

deserts=1;

for(i=8;

{

ds_io=acc0;

ds_sclk=1;

ds_sclk=0;

ACC>

>

=1;

}

ucharread_byte()

ds_io=1;

acc7=ds_io;

returnACC;

voidwrite_time(ucharadd,uchardate)

deserts=0;

ds_sclk=0;

date=date/10*16+date%10;

write_byte(add);

write_byte(date);

ds_sclk=1;

ucharread_time(ucharadd)

uchardate;

date=read_byte();

date=date/16*10+date%16;

returndate;

voidset_time()

write_time(0x8e,0);

write_time(0x80,0);

write_time(0x82,0);

write_time(0x84,0);

write_time(0x86,0);

write_time(0x88,0);

write_time(0x8a,1);

write_time(0x8c,0);

write_time(0xc1,1);

write_time(0xc3,0);

write_time(0xc5,0);

write_time(0xc7,0);

write_byte(0x8e);

write_byte(0x80);

voidds_init()

miao=read_time(0x81);

if(miao&

0x80)

set_time();

voidrespons()

do=0;

delay(50);

do=1;

uchartempread()

uchari,j,dat;

dat=0;

for(i=0;

i<

8;

i++)

do=0;

delay

(1);

do=1;

j=do;

dat=(j<

<

7)|(dat>

1);

delay(4);

returndat;

voidwritebyte(ucharval)

delay

(1);

do=val&

0x01;

delay(6);

val=val>

1;

delay

(1);

voidwrite_com(ucharcom)

lcd_rs=0;

P0=com;

delayms(5);

lcd_en=1;

lcd_en=0;

voidwrite_date(uchardate)

lcd_rs=1;

P0=date;

voidtempchange()

respons();

writebyte(0xcc);

writebyte(0x44);

uintget_temp()

uchara,b;

writebyte(0xbe);

a=tempread();

b=tempread();

temp=b;

temp<

=8;

temp=temp|a;

if(temp>

6348)

temp=65536-temp;

n=1;

else

n=0;

f_temp=temp*0.0625;

temp=f_temp*10+0.5;

returntemp;

voiddisplay(ucharcom,uchardate)

write_com(0x80+0x40+com);

if((date!

=10)&

&

(date!

=11)&

=12))

write_date(0x30+date);

elseif(date==10)

write_date('

-'

);

elseif(date==11)

'

elseif(date==12)

voiddis_temp(uintt)

{

if(n==1)

display(9,10);

else

display(9,11);

i=t/100;

if(i==0)

display(10,12);

display(10,i);

i=t%100/10;

display(11,i);

i=t%100%10;

display(13,i);

voidwrite_sfm(ucharadd,uchardate)

ucharshi,ge;

shi=date/10;

ge=date%10;

write_com(0x80+0x40+add);

write_date(0x30+shi);

write_date(0x30+ge);

voidwrite_nyr(ucharadd,uchardate)

charshi,ge;

write_com(0x80+add);

voidwrite_week(charwe)

write_com(0x80+12);

switch(we)

case1:

write_date('

M'

delayms(5);

O'

N'

break;

case2:

T'

U'

E'

case3:

W'

write_date('

D'

break;

case4:

H'

case5:

F'

R'

I'

case6:

S'

A'

case7:

}

voidkeycan()

if(key0==0)

if(key0==0)

{

num++;

while(!

key0);

di();

flag=1;

switch(num)

{

case1:

write_com(0x80+0x40+6);

write_com(0x0f);

break;

case2:

write_com(0x80+0x40+3);

case3:

write_com(0x80+0x40+0);

write_com(0x80+12);

write_com(0x80+9);

write_com(0x80+6);

write_com(0x80+3);

case8:

num=0;

write_com(0x0c);

flag=0;

write_time(0x80,miao);

write_time(0x82,fen);

write_time(0x84,shi);

write_time(0x86,ri);

write_time(0x88,yue);

write_time(0x8a,week);

write_time(0x8c,nian);

}

}

if(num!

=0)

if(key1==0)

delayms(5);

if(key1==0)

while(!

key1);

di();

switch(num)

{

case1:

miao++;

if(miao==60)

miao=0;

write_sfm(6,miao);

write_com(0x80+0x40+6);

case2:

fen++;

if(fen==60)

fen=0;

write_sfm(3,fen);

write_com(0x80+0x40+3);

case3:

shi++;

if(shi==24)

shi=0;

write_sfm(0,shi);

write_com(0x80+0x40+0);

case4:

week++;

if(week==8)

week=1;

write_week(week);

case5:

ri++;

if(ri==32)

ri=1;

write_nyr(9,ri);

write_com(0x80+9);

case6:

yue++;

if(yue==13)

yue=0;

write_nyr(6,yue);

write_com(0x80+6);

case7:

nian++;

if(nian==100)

nian=0;

write_nyr(3,nian);

write_com(0x80+3);

}

if(key2==0)

delayms(5);

if(key2==0)

key2);

di();

miao--;

if(miao==-1)

miao=59;

fen--;

if(fen==-1)

fen=59;

shi--;

if(shi==-1)

shi=23;

week--;

if(week==0)

week=7;

ri--;

if(ri==0)

ri=31;

yue--;

if(yue==0)

yue=12;

write_com(0x80+6);

nian--;

if(nian==-1)

nian=99;

以上程序经测试,可用

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 起诉状

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1