单片机控制的LCD 1602的电子广告牌

时间:2019-05-14 04:49:04下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《单片机控制的LCD 1602的电子广告牌》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《单片机控制的LCD 1602的电子广告牌》。

第一篇:单片机控制的LCD 1602的电子广告牌

单片机控制的LCD 1602的电子广告牌

设计要求:

用单片机控制字符型LCD 1602显示字符信息“Hello everyone!”和“Welcome to Harbin”。字符信息“Hello everyone!”、“Welcome to Harbin”分别从LCD 1602右侧第一行、第一行滚动移入,然后再从左侧滚动移出,循环显示。

功能说明:由于液晶模块用怎样的命令控制显示由模块本身在制造时已经给出,实现相应的显示功能参照说明即可,液晶模块与单片机的连接不采用添加多个与非门的方式,而采用更直接、清晰的方式,使WR、RD直接与LCD的R/W、RS相连,使能端与P3^5相连,由软件给出下降沿,电路图如下:

详细的功能说明:

1)给LCD写命令、送数据等均需要进行选中寄存器、发送命令或数据代码、使能端有效等过程,若逐一写出会使程序混乱冗长,因此将写命令、写数据、初始化等分别封装在子函数中,方便随时调用。

2)为实现滚动显示,使用命令打开整体显示移动。

3)由于显示字母只需将相应的ASCII代码发送给LCM即可,因此将需要显示的字符直接设为数组中的元素,显示时逐一写入液晶。4)若数组中只有相应的字符,显示的末尾会出现预料之外的字符,因此加入足够的空格避免这种现象发生。

5)为实现循环不断显示的功能,只需将函数整体放入while(1)中即可,但应注意下一次循环开始前将DDRAM的地址回复为第一行。C语言程序: #include #define uchar unsigned char #define uint unsigned int #define LCDPORT P0 uchar code tab[]=“Hello everyone!

uchar code tab1[]=”Welcome to Harbin 出现不该出现的字符 sbit LCDE=P3^5;sbit LCDRW=P3^6;sbit LCDRS=P3^7;

void WriteCMD(uchar);

void init();

void WriteData(uchar);

void Delay();

void mydelay(int);

void main(){

uint i;

init();

while(1)

{

for(i=0;i<32;i++)

{

WriteData(tab[i]);的“忙”状态

mydelay(50);

}

mydelay(50);

WriteCMD(0x01);

WriteCMD(0x80+0x40+15);行末尾,从此处开始进入字符

for(i=0;i<33;i++)

{

WriteData(tab1[i]);

mydelay(50);

}

mydelay(50);

“;

”;//字符后面加若干个空格,防止滚动显示时

//定义写命令函数

//定义初始化函数

//定义写数据函数

//定义延迟函数

//定义无符号整形变量

//液晶模块的初始化

//使之一直进行滚动显示程序,不断循环 //显示第一行字符

//每显示一个字符后停留一会,越过液晶

//清屏,准备进行下一行显示

//改变DDRAM的地址,更改为第二 //开始输入第二行字符

WriteCMD(0x01);

WriteCMD(0x80+15);

进入下一次循环,显示重新开始

} }

void Delay(){

uint uiCount;

for(uiCount=0;uiCount<250;uiCount++);}

void WriteCMD(uchar Command)

寄存器 {

Delay();

LCDE=1;

LCDRS=0;

LCDRW=0;

LCDPORT=Command;

LCDE=0;

执行命令 }

void WriteData(uchar dat)

符 {

Delay();

LCDE=1;

LCDRS=1;

LCDRW=0;

LCDPORT=dat;

LCDE=0;

}

void init()

{

LCDRW=0;

LCDE=0;

WriteCMD(0x38);

WriteCMD(0x0c);

WriteCMD(0x07);

WriteCMD(0x01);

WriteCMD(0x80+15);

//DDRAM的地址改回第一行,准备 //写命令函数,用于修改液晶的状态

//先延时,越过液晶“忙”状态

//使能端先置1 //设置RS为0,打开指令寄存器

//设置为写寄存器状态

//输出命令

//使能端由1变0,出现下降沿有效,//写数据函数,用于提供液晶的显示的字

//把LCD改为写入数据状态

//再输出数据

//使能端有效,显示数据

//初始化程序,模块化使程序更清晰

//设置双行显示、8位数据接口

//设置整体显示开、光标关、字符不闪烁//设置为增量方式,整体显示移动开 //清屏

//设置字符进入屏幕的初始位置

}

void mydelay(int x){

int i,j;

for(i=x;i>0;i--)

for(j=255;j>0;j--);}

第二篇:基于51单片机的电子广告牌电路设计

基于51单片机的电子广告牌电路设计

2011-10-15 14:08:20

来源:互联网

关键字:51单片机 电子广告牌

0 引 言

现在城市中用于装点各种建筑物的绚丽色彩依旧是霓虹灯.但是霓虹灯具有发热量大,亮度较小,色彩较暗,价格较贵且耗电量较大等缺点已经不作为现在装饰的主要选择对象。点阵屏具有价格便宜,可视度远,亮度高,耗能较低,体积较小,且可以根据实际情况由几块小的点阵屏组合成较大面积的点阵块等优点。在此主要介绍以AT89S51为控制芯片,用8×8的点阵屏4块来级联实现16×16的点阵屏,从而用于广告牌显示等。系统设计方案

鉴于所设计的点阵屏为16×16单色显示,可以用8×8的点阵屏4块来级联实现,此时点阵屏的行列各为16管脚,需要扩展口,采用74LS164串行输入并行输出来实现。整个系统以AT89S51为控制芯片,P0/P2口为行控制,P3口为芯片74LS164的输入,且2片74LS164级联后为列控制,通过软件程序调用不同的代码来显示字符或文字。元器件介绍

2.1 AT89S51单片机简介

AT89S51拥有4 KB的可编程的闪存(FLASHProgrammahle AND Erasable Read Only Memory)。片上的闪存允许在系统内再编程,在系统开发时可以十分容易地进行程序修改,即使程序错误也不会成为废品。由于在单片机集成电路上包括用8位CPU和闪存,AT89S51成为强大的控制器,它为很多嵌入式系统提供一种高效灵活的解决方案。基于以上理由,选择了AT89S51。

2.2 74LS164芯片简介

在单片机系统中,如果并行口的I/O资源不够,而串行口又没有其他的作用,那么可以用74LS164来扩展并行I/O口,节约单片机资源。74LS164是一个串行输入/并行输出的移位寄存器,并带有清除端。硬件设计

图1电路为1块8×8点阵显示电路连接图。

(1)把“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“DR1~DR8”端口上;

(2)把“单片机系统”区域中的P3端口用8芯排芯连接到“点阵模块”区域中的“DC1~DC8”端口上;如果要显示大的图像可多个点阵拼在一起,将点阵的行和行相串联,列和列相串联,用741S164控制单个行即可。部分源代码

部分源代码如下:

SEND: MOV A,R1 ;送表首地址

ACALL TAB1 ;查列表

5结 语

在此研究了用AT89S51为控制芯片,用8×8的点阵屏来实现广告字的滚动显示,对环保、节能有重大意义。

(本文转自电子工程世界:http://)

第三篇:单片机课程设计报告LCD显示温度

《单片机原理与应用》

课程设计报告

题 目:LCD数字式温度湿度测量计 专 业:自动化 班 级:A1332 学 号:10 姓 名:曾志勇 指导老师:查兵

2016-06-08

目 录

1.设计题目、要求及分工..................................1 1.1.设计要求.........................................1 1.2.分工.............................................1 2.系统设计方案论证与选择................................1 3.系统硬件电路设计......................................1 3.1.单片机的选择......................................1 3.2.温度传感器电路的设计..............................2 3.3.LCD1602显示设计..................................3 4.系统软件设计..........................................4 4.1.主程序...........................................4 4.2.读出温度子程序....................................6 5.系统仿真调试结果记录及分析...........................11 6.总结.................................................13 参考文献................................................14

设计题目、要求及分工

1.1.设计要求

(1)熟悉掌握单片机的中断,定时器及各并行口的应用;(2)熟悉掌握单片机温度湿度的测量方法;(3)利用温度传感器及单片机完成对温度的检测;(4)掌握将检测的温度信号转换为数码管显示的数字信号;

(5)设计一个简单数字温度计,能够测量通常环境下的温度,能够实现零下温度的测量,能够测量小数,精度为0.01度。

1.2.分工

经过我和队友的商讨,为了能最大发挥各自的长处。我主要负责程序的编写与单片机的调试。他主要负责一些相关资料文献的查找与课程设计报告。

1.系统设计方案论证与选择

在日常生活和生产中,我们经常要测量环境的温度湿度,传统的测量方式采用水银温度计和干湿球湿度计查算法,存在着误差大,操作使用不便等问题,采用工业级测量仪表价格昂贵。采用AT89C51和温度传感器等构成的LCD数字式温度湿度测量计精度高且价格便宜。

由于本设计是测温电路,可以使用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行A/D转换,将数据传入80C51单片机中,单片机处理后,通过LED显示出当前实测温度。

2.系统硬件电路设计

2.1.单片机的选择

单片80C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统。

本次设计需要注意的几个端口: P0口(39—32):是一组8位漏极开路行双向I/O口,也既地址/数据总线复用口。可作为输出口使用时,每位可吸收电流的方式驱动8个TTL逻辑电路,对端口写“1”可作为高阻抗输入输入端用。在访问外部数据存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,PO口接收指令字节,而在程序校验时,输出指令字节,校验时,要求接上拉电阻。P3口(10—17):是一组带有内部上拉电阻的8位双向I/O口,P1的输入缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输出端口。作输出端口时,被外部拉低的P3口将用上拉电阻输出电流。

2.2.温度传感器电路的设计

DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器TH和TL,可通过软件写入户报警上下限。DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为8字节的存储器,结构如图2.3所示。头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义:低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率S18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。温度传感器18B20汇编程序,采用器件默认的12位转化,最大转化时间750微秒,可以将检测到的温度直接显示到80C51的两个数码管上。

高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。

当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单 片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB式表示。

当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表2是一部分温度值对应的二进制温度数据。

DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令做出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。

在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。

另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。

图 2-1 温度传感器电路

2.3.LCD1602显示设计

图 2-2 LCD显示电路图

LCD1602显示流程:

图3-3 流程图

3.系统软件设计

3.1.主程序

主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值。温度测量每1s进行一次。主程序流程图如图4.1所示:

#include #include“lcd.h” #include“temp.h” void LcdDisplay(int);void main(){ LcdInit();

//初始化LCD1602

//写地址 80表示初始地址 LcdWriteCom(0x88);LcdWriteData('C');while(1){ LcdDisplay(Ds18b20ReadTemp());Delay1ms(1000);//1s钟刷一次 // } }

/* 函数名 : LcdDisplay()* 函数功能

: LCD显示读取到温度/ void LcdDisplay(int temp)//lcd显示

{ unsigned char datas[] = {0, 0, 0, 0, 0};//定义数组

float tp;if(temp< 0)

//当温度值为负数

{

LcdWriteCom(0x80);

//写地址 80表示初始地址 LcdWriteData('-');//显示负

temp=temp-1;

temp=~temp;

tp=temp;

temp=tp*0.0625*100+0.5;} else {

LcdWriteCom(0x80);

LcdWriteData('+');

tp=temp;

temp=tp*0.0625*100+0.5;

} datas[0] = temp / 10000;datas[1] = temp % 10000 / 1000;datas[2] = temp % 1000 / 100;datas[3] = temp % 100 / 10;datas[4] = temp % 10;LcdWriteCom(0x82);

//写地址 80表示初始地址

LcdWriteData('0'+datas[0]);//百位 LcdWriteCom(0x83);

//写地址 80表示初始地址

LcdWriteData('0'+datas[1]);//十位 LcdWriteCom(0x84);

//写地址 80表示初始地址

LcdWriteData('0'+datas[2]);//个位 LcdWriteCom(0x85);

//写地址 80表示初始地址 //显示 ‘.’

//写地址 80表示初始地址 LcdWriteData('.');LcdWriteCom(0x86);

LcdWriteData('0'+datas[3]);//显示小数点 LcdWriteCom(0x87);

//写地址 80表示初始地址

} LcdWriteData('0'+datas[4]);//显示小数点

图 3-1主程序流程图

3.2.读出温度子程序

读出温度子程序的主要功能是读出RAM中的9字节。在读出时必须进行CRC 校验,校验有错时不能进行温度数据的改写。读出温度子程序流程图如下图所示:

#include“temp.h” void Delay1ms(uint y){ uint x;

} uchar Ds18b20Init(){

uchar i;DSPORT = 0;i = 70;

//将总线拉低480us~960us for(;y>0;y--){ for(x=110;x>0;x--);} while(i--);//延时642us DSPORT = 1;

//然后拉高总线,如果DS18B20做出反应会将在15us~60us后总线拉低

} void Ds18b20WriteByte(uchar dat)i = 0;while(DSPORT)//等待DS18B20拉低总线 {

} return 1;//初始化成功 i++;if(i>5)//等待>5MS { } Delay1ms(1);return 0;//初始化失败 { uint i, j;for(j=0;j<8;j++)

{

DSPORT = 0;i++;DSPORT = dat & 0x01;//然后写入一个数据,从最低位开始 i=6;while(i--);//延时68us,持续时间最少60us DSPORT = 1;

//然后释放总线,至少1us给总线恢复时间才能接 //每写入一位数据之前先把总线拉低1us 着写入第二个数值

} uchar Ds18b20ReadByte(){

uchar byte, bi;uint i, j;for(j=8;j>0;j--){

DSPORT = 0;//先将总线拉低1us i++;DSPORT = 1;//然后释放总线 i++;i++;//延时6us等待数据稳定

bi = DSPORT;//读取数据,从最低位开始读取

/*将byte左移一位,然后与上右移7位后的bi,注意移动之后移掉 } dat >>= 1;那位补0。*/ byte =(byte >> 1)|(bi << 7);

} i = 4;//读取完之后等待48us再接着读取下一个数

while(i--);

}

return byte;void Ds18b20ChangTemp(){

Ds18b20Init();Delay1ms(1);Ds18b20WriteByte(0xcc);

//跳过ROM操作命令

Ds18b20WriteByte(0x44);//温度转换命令

//等待转换成功,而如果你是一直刷着的话,就不// Delay1ms(100);用这个延时了 } void Ds18b20ReadTempCom(){ Ds18b20Init();

} int Ds18b20ReadTemp(){ int temp = 0;

命令

tml = Ds18b20ReadByte();tmh = Ds18b20ReadByte();temp = tmh;temp <<= 8;Delay1ms(1);Ds18b20WriteByte(0xcc);//跳过ROM操作命令 Ds18b20WriteByte(0xbe);//发送读取温度命令

uchar tmh, tml;Ds18b20ChangTemp();Ds18b20ReadTempCom();

//先写入转换命令

//然后等待转换完后发送读取温度

//读取温度值共16位,先读低字节 //再读高字节

} temp |= tml;return temp;读出温度子程序 读出温度子程序的主要功能是读出RAM中的9字节。在读出时须进行CRC校验,校验有错时不进行温度数据的改写。得出温度子程序流程图如下图所示。

图 3-2

温度转换命令子程序 温度转换命令子程序主要是发温度转换开始命令。当采用12位分辨率时,转换时间约为750ms。在本程序设计中,采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如下图所示。

图 3-2

4.系统仿真调试结果记录及分析

硬件调试比较简单,首先检查电感的焊接是否正确,然后可用万用表测试或通电检测。软件调试可以先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和现实数据刷新子程序等的编程及调试 由于DS18B20与单片机采用串行数据传送,因此,对DS18B20进行读/写编程时必须严格地保证读/写时序;否则将无法读取测量结果。

电路Isis仿真测试

烧写程序至单片机:

液晶显示室温为+28.06度 用手触摸DS18B20,发现温度上升为+32.75度,证明温度传感正常工作。

5.总结

这次课程设计,主要是以STC89C51单片机为核心的,对温度的检测与显示进行了简单的设计与阐述。因没有湿度传感器模块,所以未进行湿度检测。本次课程设计可以说是软硬结合,又以硬件为主。当今科技发展迅速,单片机开发有着光明的前景。由于单片机经济实用、开发简便等特点依然在工业控制、家电等领域占据了广泛的市场。所以我选择这样的设计课题,并且能通过此次设计来提高自己软件编制和硬件电路设计的能力。在我完成这次课程设计的过程中,当看到自己将专业知识用于解决实际的问题时,那份成就感和喜悦感是难以形容的。在这次实际的编程以及调试程序过程中,我发现自己学很多课本以外的东西。光靠自己在书本上所学过的这点知识是远远不够的,真正地认识到了工作就是学习的道理。尤其是对于编程来说,需要硬件的功底,也需要软件的能力。当程序有一点点错误时,将使整个程序无效,需要自己静下心来发现错误,改正错误,一次又一次得进行调试,锻炼了沉着踏实的心态。

通过这次对数字温度计的设计与制作,让我们了解了设计电路的程序,也让我们了解了关于数字温度计的原理与设计理念,要设计一个电路总要先用仿真,仿真成功之后才实际接线的。

但是最后的成品却不一定与仿真时完全一样,因为,在实际接线中有着各种各样的条件制约着。并且,在仿真中无法成功的电路接法,在实际中因为芯片本身的特性而能够成功。所以,在设计时应考虑两者的差异,从中找出最适合的设计方法。

通过这次学习,让我们对各种电路都有了大概的了解,所以说,坐而言不如立而行,对于这些电路还是应该自己动手实际操作才会有深刻理解。从这次的课程设计中,我真正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识应用到实际当中,学习单机片机更是如此,程序只有在经常写和读的过程中才能提高,这就是我在这次课程设计中的最大收获。这次课程设计对我来说是一次比较全面的、富有创造性和探索性的锻炼,令我深有感触,对于我今后的学习、工作和生活都将是受益非浅。

参考文献

(1)江世明.单片机原理与应用.上海交通大学出版社.2013;(2)朱清慧.电子线路设计、制版与仿真.清华大学出版社.2011.6;

(3)黄同成.程序设计基础与教程(C语言).湖南人民出版社.2011.12;

(4)王东峰等.单片机C语言应用100例[M].北京电子工业出版社,2009;

(5)陈海宴.51单片机原理及应用[M].北京航空航天大学出版社.2010;

(6)胡汉才.单片机原理及接口技术[M].北京清华大学出版社.1996;

(7)高稚允,高岳.光电检测技术[M].北京国防工业出版社.1983;

第四篇:LCD电子钟程序(广工单片机课程设计)

#include

#define uchar unsigned char

#define uint unsigned int

#define KEY_IO P3

#define LCD_IO P0

sbit LCD_RS = P2^0;

sbit LCD_RW = P2^1;

sbit LCD_EN = P2^2;

sbit SPK = P1^2;

sbit LED = P2^4;

sbit KEY_0 = P3^7;

sbit KEY_1 = P3^6;

sbit KEY_2 = P3^5;

sbit KEY_3 = P3^4;

bit new_s, modify = 0;

char t0, sec = 0, min = 0, hour = 0;

char code LCD_line1[] = “I LOVE U”;

char code LCD_line2[] = “Timer: 00:00:00 ”;char Timer_buf[] = “00:00:00”;

char a,b,c,k = 0;

//--------------------void delay(uint z)

{

uintx, y;

for(x = z;x > 0;x--)

for(y = 100;y > 0;y--);

}//--------------------void W_LCD_Com(uchar com)//写指令 {

LCD_RS = 0;

LCD_IO = com;// LCD_RS和R/W都为低电平时,写入指令

LCD_EN = 1;delay(5);LCD_EN = 0;//用EN输入一个高脉冲 }

//--------------------void W_LCD_Dat(uchar dat)//写数据

{LCD_RS = 1;LCD_IO = dat;// LCD_RS为高、R/W为低时,写入数据LCD_EN = 1;delay(5);LCD_EN = 0;//用EN输入一个高脉冲 }

//--------------------void W_LCD_STR(uchar *s)//写字符串 {while(*s)W_LCD_Dat(*s++);}

//--------------------

void W_BUFF(void)//填写显示缓冲区

{Timer_buf[7] = sec % 10 + 48;Timer_buf[6] = sec / 10 + 48;Timer_buf[4] = min % 10 + 48;Timer_buf[3] = min / 10 + 48;Timer_buf[1] = hour % 10 + 48;Timer_buf[0] = hour / 10 + 48;W_LCD_STR(Timer_buf);}

//--------------------

uchar read_key(void){ucharx1, x2;KEY_IO = 255;x1 = KEY_IO;if(x1!= 255){delay(100);x2 = KEY_IO;if(x1!= x2)return 255;while(x2!= 255)x2 = KEY_IO;if else if(x1 == 0xbf)return 1;else if(x1 == 0xdf)return 2;else if(x1 == 0xef)return 3;else if(x1 == 0xf7)return 4;}return 255;} //--------------------

void Init(){LCD_RW = 0;W_LCD_Com(0x38);delay(50);W_LCD_Com(0x0c);W_LCD_Com(0x06);W_LCD_Com(0x01);W_LCD_Com(0x80);W_LCD_STR(LCD_line1);W_LCD_STR(LCD_line2);

TMOD = 0x01;//T0定时方式1TH0 = 0x4c;TR0 = 1;//启动T0

PT0 = 1;//高优先级, 以保证定时精度

ET0 = 1;EA = 1;}

//--------------------

void main(){uint i, j;uchar Key;Init();while(1){//

if(new_s){ //如果出现了新的一秒, 修改时间

new_s = 0;sec++;sec %= 60;if(!sec){min++;min %= 60;if(!min){ hour++;hour %= 24;}}W_BUFF();//写显示

W_LCD_Com(0xc0 + 7);(x1 == 0x7f)return 0;W_LCD_Com(0xC0);

//

if(!sec &&!min){ //整点报时

for(i = 0;i < 200;i++){SPK = 0;for(j = 0;j < 100;j++);SPK = 1;for(j = 0;j < 100;j++);} }} //Key = read_key();//读出按键

switch(Key){//分别处理四个按键

case0: if(KEY_0){min++;min %= 60;W_BUFF();break;}case1: if(KEY_1){hour++;hour %= 24;W_BUFF();break;}case2: if(KEY_2){ a=sec;b=min;c=hour;sec = 0, min = 0, hour = 0;}case3: if(KEY_3){sec=a+sec;if(sec>60){sec=sec-60;min++;}min=b+min;if(min>60){min=min-60;hour++;}hour=c+hour;if(hour>24){hour=hour-24;} }} }} //--------------------

void timer0(void)interrupt 1//T0中断函数, 50ms执行一次{TH0 = 0x4c;t0++;t0 %= 20;//20, 一秒钟if(t0 == 0){new_s = 1;LED = ~LED;}if(modify)LED = 0;} K0分加一 K1时加一 K2秒表开始

K3秒表结束,恢复正常时间!

第五篇:电子,单片机毕业设计毕业论文

706.波形发生器、频率计和数字电压表设计 707.水位遥测自控系统 毕业论文

708.宽带视频放大电路的设计 毕业设计 709.简易数字存储示波器设计毕业论文 710.球赛计时计分器 毕业设计论文 711.IIR数字滤波器的设计毕业论文 712.PC机与单片机串行通信毕业论文 713.基于CPLD的低频信号发生器设计毕业论 714.基于51单片机的多路温度采集控制系统 715.仓库温湿度的监测系统 716.基于单片机的电子密码锁 717.单片机控制交通灯系统设计

718.智能抢答器设计

719.基于DSP的IIR数字低通滤波器的设计与实现 720.基于LabVIEW的PC机与单片机串口通信 721.DSP设计的IIR数字高通滤波器的设计 722.单片机数字钟设计 723.数字自动打铃系统

724.激光切割轨道系统的上位机设计 725.由AT89C51控制的太阳能热水器 726.单片机歩进电机转速控制器的设计 727.频率特性测试仪的设计

728.用集成温度传感器组成测温控制系统 729.微尺度观测仪的物理原理及应用 730.低频数字式相位差测量仪的设计 731.智能开关稳压电源的设计

732.智能家居系统CAN总线通信模块设计 733.智能家居系统GPRS通信模块设计 734.智能家居GUI模块设计

735.小型风光互补路灯控制器设计

736.基于MCS-51单片机的高精度数字测相装置的设计 737.基于单片机的火灾自动报警系统 738.数字显示多路电压设计 739.智能防盗报警系统设计 740.数字调频立体收音机

741.基于单片机的水温控制系统 742.电子广告牌的设计

743.电力变压器保护

744.变电站综合自动化系统研究 745.智能象棋比赛定时器的设计 746.基于单片机的电动车跷跷板 747.艺术彩灯设计

748.基于单片机的密码锁设计 749.双输出可调稳压电源的设计 750.用IC卡实现门禁管理系统

751.智能消毒柜控制系统 752.自动太阳光追踪器

753.基于89C51的点阵屏显示设计

754.利用AT89C5单片机实现节日彩灯控制 755.自动温度控制系统 756.室内温度控制报警器 757.8751H单片机控制步进电机 758.高精密多路计时器 759.小型触摸式防盗报警器 760.频率特性测试仪设计 761.出租车计价器

762.数控直流稳压电源设计

763.数字电度表--具有远程抄表功能

764.基于多单片机的数据测控硬件系统的设计

765.基于MATLAB的他励直流电机虚拟教学实验系统的设计与开发 766.基于87C196MC交流调速系统主电路硬件的设计与开发 767.基于80C196MC交流调速系统控制电路的硬件设计与开发 768.多环教学实验系统模拟电子电路控制模板的设计与开发 769.双闭环控制系统模拟控制模板设计

770.双闭环V-M直流调速虚拟实验系统的开发 771.双闭环PWM直流调速虚拟实验系统的开发 772.基于8098单片机实现的SPWM变频调速系统 773.调幅收音机的原理与调试 774.电力线载波系统

775.基于单片机的温室电炉的控制系统

776.基于MCS-51单片机的变色灯控制系统设计与实现 777.基于单片机的频率计的设计 778.烤箱温度控制系统 779.电容测量仪

780.基于AT89S51单片机的波形发生器设计 781.简易低频信号发生器

782.基于单片机的红外遥控开关

783.发动机电喷内核模型的研究及实践 784.基于AT89S52的函数信号发生器

785.智能住宅的功能设计与实现原理研究 786.基于PIC16F876A单片机的超声波测距仪 787.基于单片机的呼叫系统的设计 788.电容测量电路的设计

789.电压频率变换器

790.基于单片机的IC卡门禁系统设计 791.压阻式传感器在压力方面的技术应用 792.全集成电路高保真扩音机

793.单片机控制的三相全控桥触发系统设计 794.IC卡智能燃气表的研制

795.传感器信号模拟电路设计研究

796.基于C8051F040单片机的智能电导率分析仪 797.基于MODBUS协议的远程端口控制系统 798.两路电力线加载信号检测识别系统 799.单片机的语音存储与重放的研究 800.基于单片机的电器遥控器的设计

下载单片机控制的LCD 1602的电子广告牌word格式文档
下载单片机控制的LCD 1602的电子广告牌.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    单片机电子实习报告

    南 京 工 业 大 学 电 子 实学生姓名:学号:专业:班级:** ** ** ** 2011年9月 习(单片机和电位表) 一、实习时间:2011-8-29~2011-09.09 二、实习地点:** 三、指导老师:** 四、实习目......

    单片机课程设计-电子万年历

    单片机及接口技术综合实验 ——————电子万年日历系统 一、题目:电子实时时钟/万年日历系统 二、功能要求:1. 基本要求: ⑴ 显示准确的北京时间(时、分、秒),可用24小时制式; ⑵......

    电子实习心得体会单片机

    单片机实习心得体会随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么可编程控......

    道路电子广告牌安装方案

    ****通道电子广告牌安装方案 1、 工程简介:****动态电子广告牌,位于金明广场西,跨度42.6米;下弦标高9.7米,上弦标高14.83米。网架及其附属构件自重约18吨。 1、安装方案:网架支座......

    基于PLC的广告牌控制设计

    单片机课程设计论文 设计题目:基于PLC的广告牌控制设计 学院: 班级: 成员名单:1、姓名学号:2、姓名: 学号: 3、姓名: 学号: 设计要求: 在16X16点阵式LED显示“五角星”、“圆形”和心......

    基于单片机的LED点阵广告牌设计5篇

    基于单片机的LED点阵广告牌设计 摘要:单片机作为LED主控制模块,利用简单的外围电路来驱动64×16的点阵LED显示屏。利用多个系列高速单片机本身强大的功能,可以很方便的实现单片......

    基于LCD的电子时钟实验 HDL课设

    Ⅰ、课程设计(报告)题目: 基于LCD的电子时钟实验 Ⅱ、课程设计(论文)工作内容 一、课程设计目标 1、培养综合运用知识和独立开展实践创新的能力; 2、培养学生将理论知识与实际应用......

    电子实习报告单片机5则范文

    电子实习是大学生获取实践知识的一种有效途径,也是一种相对新兴的教学模式和手段,通过电子实习,学生们学到了新颖实用的知识,培养了动手操作技能。下面是小编为大家整理的电......