电子钟实训报告.docx

上传人:b****5 文档编号:28804761 上传时间:2023-07-19 格式:DOCX 页数:21 大小:173.24KB
下载 相关 举报
电子钟实训报告.docx_第1页
第1页 / 共21页
电子钟实训报告.docx_第2页
第2页 / 共21页
电子钟实训报告.docx_第3页
第3页 / 共21页
电子钟实训报告.docx_第4页
第4页 / 共21页
电子钟实训报告.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

电子钟实训报告.docx

《电子钟实训报告.docx》由会员分享,可在线阅读,更多相关《电子钟实训报告.docx(21页珍藏版)》请在冰豆网上搜索。

电子钟实训报告.docx

电子钟实训报告

液晶显示器的设计

一、绪论2

1.1介绍3

1.1.1基本原理3

1.1.2发展现状4

1.2.设计项目的任务4

1.2.1任务书4

1.2.2功能指标4

二、总体方案设计5

2.1.单片机选择5

2.1.1方案一:

AT89S515

三、硬件部分9

3.1硬件系统的总体设计框图9

3.2单片机AT89S529

3.2.1单片机各管脚的用10

四、软件部分11

4.1.主程序流程图11

五、调试及性能分析18

5.1.硬件调试18

5.2.软件调试19

5.3.性能分析19

六、课设心得19

七.参考文献

液晶显示驱动的设计

一、绪论

单片机控制系统是以单片机(CPU)为核心部件,扩展一些外部接口和设备,组成单片机工业控制机,主要用于工业过程控制。

要进行单片机系统设计首先必须具有一定的硬件基础知识;其次,需要具有一定的软件设计能力,能够根据系统的要求,灵活地设计出所需要的程序;第三,具有综合运用知识的能力。

最后,还必须掌握生产过程的工艺性能及被测参数的测量方法,以及被控对象的动、静态特性,有时甚至要求给出被控对象的数学模型。

在线控制系统用途还是比较广泛,可以用它来实现想单片机发出控制等等,从而加快单片机的发展以及单片机应用技术的成熟,单片机在线控制操作系统前景十分看好,因为现在单片机技术正在日趋成熟,以后单片机将成为我们生活中必不可少的,从而使得单片机在线控制操作系统尤为重要!

单片机控制技术应用十分广泛,其核心技术是单片机控制系统的设计。

介绍了对单片机控制系统的构成、硬件设计、软件设计和系统调试等各环节并进行了讨论,根据工作经验给出了调试方法。

随着半导体技术的飞速发展,单片机本身的设计中不断采用了一些新的抗干扰技术,使单片机的可靠性不断提高。

除选择抗干扰能力强的单片机外,单片机系统中其它辅助元器件的可靠性也至关重要,一些抑制干扰的元器件的使用有助于提高系统的可靠性。

此外,单片机系统在电路设计、印制电路板的设计、布线与制造工艺、系统安装时有无良好的接地等,都直接影响应用系统的可靠性。

1.1.项目的背景介绍

1.1.1基本原理

计时智能控制系统采用硬件触发加软件检测、控制的方法,利用机械设备运转时产生的振动信号,通过微处理器来判断是否有代表设备运行的信号出现,控制计时并进行简单运算,触发计时器进入工作状态,再由CPU读取开机时间参数,并存储;振动信号消失后,计时触发信号消失,计时器停止工作,并将当前工作时间和累计工作时间分别存储。

通过通讯口进行简单查询或与计算机连接读取数据并进行分析,得到机械设备工作的有关数据。

计时器核心采用性价比高、体积小、支持低功耗模式的87C51芯片作为微处理器,该芯片集成了2个定时/计时器、2个外中断源、串行I/O口、并行I/O口;具有算术运算、逻辑运算、控制转移等功能,并可对其编程实现多种功能。

工业芯片使用范围为-40~70℃,性能可靠稳定。

为增加计时精度,增加1片频率为32768Hz的手表晶振;数据存储选用E2PROM芯片,用耗能低且可靠性高的4位点阵液晶显示屏显示数据。

1.1.2发展现状

曾经计时工具来改进定时器,达到准确控制时间的目的。

现在控制时间的工作变得简单了许多。

人们甚至将定时器用在了军事方面,制成了定时炸弹,定时雷管。

现在的不少家用电器都安装了定时器来控制开关或工作时间等。

1.1.3前景

单片机的技术进步反映在内部结构、功率消耗、外部电压等级以及制造工艺上。

在这几方面,较为典型地说明了单片机的水平。

在目前,用户对单片机的需要越来越多,但是,要求也越来越高。

所以它向着巨型、单片、网络化发展。

时钟计时器也向着小型化,多功能,高精度的方向发展.

1.2.设计项目的任务

1.2.1任务书

设计电子时钟计时器的硬件电路,实现LCD显示器的数字显示。

用以配合软件实现时、分、秒的时间计时。

1.2.2功能指标

2.1采用LCD1602显示时间

2.2上电或复位后,能自动显示当前时间,每次上电复位显示为0时0分0秒,以后每次按RESET复位键均显示当前正确时间。

2.3设置3个控制键A,B,C.按下A,调整时,按下B,调整分,按下C,调整秒

二、总体方案设计

2.1.单片机选择

2.1.1方案一:

AT89S51

AT89S51单片机功能:

8位中央处理器和ISPFlash存储单元,片内含4kBytesFlash,128bytes的可以反复擦除1000次随机存取数据存储器(RAM),器件高密度、非易失性存储,32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡兼容标准AT80C51引脚结构,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。

2.1.2方案二:

AT89S52

AT89S52具有以下标准功能:

8k字节Flash,256字节RAM,32位I/O口线,看门狗定而且它体积小,硬件实现方便,安装方便,以及与编程技术和外围功能电路的配合技术比较娴熟。

另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路

 

2.1.3方案三:

AT89C51

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。

AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除100次。

该器件高密度、非易失存储器,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

 

综上所述选择AT89S52为合适

 

2.2.液晶1602等相关资料

2.2.1液晶1602采用标准的16脚接口

第1脚:

VSS为地电源

第2脚:

VDD接5V正电源

第3脚:

V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度

第4脚:

RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:

RW为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。

第6脚:

E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:

D0~D7为8位双向数据线。

第15~16脚:

空脚

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表1所示,这些字符有:

阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”

2.2.2液晶管脚连接图

三、硬件部分

3.1硬件系统的总体设计框图

硬件系统的总体设计框图

硬件分为单片机AT89s52、LCD1602、键盘、电源、复位开关、晶振这几个部分

3.2单片机AT89S52

AT89S52具有以下标准功能:

8k字节Flash,256字节RAM,32位I/O口线,看门狗定而且它体积小,硬件实现方便,安装方便,以及与编程技术和外围功能电路的配合技术比较娴熟。

另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路

3.2.1单片机各管脚的用

P0口输入数据;P2.0~P2.1口作列扫描输出;采用12MHz晶振,可提高秒施的精确性;RST作为复位开关;P2口作为数码管的输出端;Vcc和EA都作为单片机的电源输入端,为单片机供电;XTL1,XTL2是用于接晶振;Vss接地

3.2.2液晶1602

它的管脚有16管脚,Vdd接高电平,一般+5v,Vss接低电平;V0也是接低电平;D0~D7为8位双向数据线;RS为寄存器选择;RW为读写信号线;E端为使能端;15、16

脚一般可以不用(15接高电平,16接低电平)。

3.2.3按键调节部分

本设计中用到3个按键,用P3口接独立键盘即可满足需求

键盘功能如下:

按P3.0进入选择操作状态,P3.1键用于加时间调节,P3.2键用于减调节;

3.3硬件仿真图

3.4硬件实物展示图

 

四、软件部分

4.1.主程序流程图

4.2.T1中断程序流程图

4.3.T0中断计时程序流程图

4.4显示程序设计

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitRS=P2^0;

sbitE=P2^1;

sbitkey1=P3^0;

sbitkey2=P3^1;

sbitkey3=P3^2;

ucharcount,s1num;

charmiao,shi,fen;

ucharcodetable[]="2009-12-30WED";

ucharcodetable1[]="00:

00:

00";

voiddelay(uintz)

{

uintx,y;

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

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

}

voidwrite_com(ucharcom)

{

RS=0;

E=0;

P0=com;

delay(5);

E=1;

delay(5);

E=0;

}

voidwrite_date(uchardate)

{

RS=1;

E=0;

P0=date;

delay(5);

E=1;

delay(5);

E=0;

}

voidinit()

{

ucharnum;

E=0;

write_com(0x38);

write_com(0x0c);

write_com(0x06);

//write_com(0x01);

write_com(0x80);

for(num=0;num<15;num++)

{

write_date(table[num]);

delay(5);

}

write_com(0x80+0x40);

for(num=0;num<12;num++)

{

write_date(table1[num]);

delay(5);

}

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;

TR0=1;

}

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);

}

voidkeyscan()

{

if(key1==0)

{

delay(5);

if(key1==0)

{

s1num++;

while(!

key1);

if(s1num==1)

{

TR0=0;

write_com(0x80+0x40+10);

write_com(0x0f);

}

}

if(s1num==2)

{

write_com(0x80+0x40+7);

}

if(s1num==3)

{

write_com(0x80+0x40+4);

}

if(s1num==4)

{

s1num=0;

write_com(0x0c);

TR0=1;

}

}

if(s1num!

=0)

{

if(key2==0)

{

delay(5);

if(key2==0)

{

while(!

key2);

if(s1num==1)

{

miao++;

if(miao==60)

miao=0;

write_sfm(10,miao);

write_com(0x80+0x40+10);

}

if(s1num==2)

{

fen++;

if(fen==60)

fen=0;

write_sfm(7,fen);

write_com(0x80+0x40+7);

}

if(s1num==3)

{

shi++;

if(shi==24)

shi=0;

write_sfm(4,shi);

write_com(0x80+0x40+4);

}

}

}

if(key3==0)

{

delay(5);

if(key3==0)

{

while(!

key3);

if(s1num==1)

{

miao--;

if(miao==-1)

miao=59;

write_sfm(10,miao);

write_com(0x80+0x40+10);

}

if(s1num==2)

{

fen--;

if(fen==-1)

fen=59;

write_sfm(7,fen);

write_com(0x80+0x40+7);

}

if(s1num==3)

{

shi--;

if(shi==-1)

shi=23;

write_sfm(4,shi);

write_com(0x80+0x40+4);

}

}

}

}

}

voidmain()

{

init();

while

(1)

{

keyscan();

}

}

voidtimer0()interrupt1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

count++;

if(count==20)

{

count=0;

miao++;

if(miao==60)

{

miao=0;

fen++;

if(fen==60)

{

fen=0;

shi++;

if(shi==24)

{

shi=0;

}

write_sfm(4,shi);

}

write_sfm(7,fen);

}

write_sfm(10,miao);

}

}

五、调试及性能分析

5.1.硬件调试

硬件调试时可先检查印制板及焊接的质量情况,在检查无误后可通电检查LCD显示器的状况。

若亮度不理想,可以调整P0口的电阻大小,一般情况下取200R电阻即可获得满意的亮度效果。

实验室制作时,可结合示波器测试晶振及P0、P2端口的波形情况进行综合硬件测试分析。

5.2.软件调试

软件调试在Wave编译器下进行,源程序编译及仿真调试应分段或予以子程序为单位逐个进行,最后可结合硬件实时调试。

5.3.性能分析

按照设计程序分析,LCD显示器动态扫描的频率约为167HZ,实际使用观察时完全没有闪烁,由于计时中断程序中加了中断程序中加勒中断延时误差处理,所以实际计时精度非常高,可满足多种场合的应用需要,另外,上电时具有一个滚动显示子程序,可以方便地显示

制作日期等信息。

六、实训心得

看了郭天翔的单片机第十课,电子钟的设计。

刚开始下载到我的实验板上,不能正常运行,(而郭的板子可以运行,东东的也可以运行)按下按键时,光标乱跑。

估计是按键消抖问题,没释放按键。

想了一阵,也改了一些地方,主要是大括号的位置,结果不是没反应,就是光标乱跳,打算放弃,后来还是迫于压力,反复看了几遍程序,回到按键消抖上来,于是在每个判断中加入了一句while(!

k?

),问题终于解决。

哈,终于松了口气,还好没被自己的惰性所扼杀。

总结这么几点:

1程序中大括号的位置要注意,2液晶驱动严格按时序写。

3边写边编译,有错立马找寻原因,然后排除,当然,还有就是别轻易放弃。

七.参考文献

[1]张齐,杜群贵.单片机应用系统设计技术[M]. 北京:

电子工业出版社,2007

[2]中国机械工业教育协会组编.《单片机原理与应用》.机械工业出版社.2001

[3]杨金岩等.8051单片机数据传输接口扩展技术与应用实例[M].北京:

人民邮电出版社,2005.

[4]求是科技.单片机通信技术与工程实践[M].北京:

人民邮电出版社,2005

[5]杨金岩等.8051单片机数据传输接口扩展技术与应用实例[M].北京:

人民邮电出版社,2005.

[6]郭永贞主编数字电子技术[M]西安电子科技大学出版社2000

[7]李广弟单片机基础[M],北京:

北京航空航天大学出版社,2001

[8]张洪润电子线路与电子技术[M].清华大学出版社[M],2005

[9]单片机应用技术及项目化训练主编:

李庭贵

[10]单片机课程设计指导编者:

李广飞楼然苗

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

当前位置:首页 > 职业教育 > 其它

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

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