电子钟实训报告.docx
《电子钟实训报告.docx》由会员分享,可在线阅读,更多相关《电子钟实训报告.docx(21页珍藏版)》请在冰豆网上搜索。
电子钟实训报告
液晶显示器的设计
一、绪论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]单片机课程设计指导编者:
李广飞楼然苗