高仿真数码管电子钟课程设计报告分析.docx
- 文档编号:15617770
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:26
- 大小:334.57KB
高仿真数码管电子钟课程设计报告分析.docx
《高仿真数码管电子钟课程设计报告分析.docx》由会员分享,可在线阅读,更多相关《高仿真数码管电子钟课程设计报告分析.docx(26页珍藏版)》请在冰点文库上搜索。
高仿真数码管电子钟课程设计报告分析
高仿真数码管电子钟
高仿真数码管电子钟
摘要
电子时钟主要是利用电子技术将时钟电子化、数字化,拥有时钟精确、体积小、界面友好、可拓展性能强等特点,被广泛应用于生活和工作当中。
本文主要为实现一款可正常显示时间、带有
制调整、带有
显示以及时间校准功能的一款基于单片机仿真的多功能电子钟。
本文对当前的电子钟开发手段进行了比较与分析,最终确定了采用单片机技术实现高仿真电子钟的设计。
本设计采用
芯片作为核心,采用外部时钟脉冲定时,用
软件自带的电子钟组件实现高度仿真的显示效果。
软件部分主要采用简单且流通性强的
语言编写实现。
这种高度仿真的电子钟具有电路简单,读取方便、显示直观、功能多样、时间精度较高、操作简单、编程容易成本低廉等诸多优点。
本次设计主要是用
电路软件实现了高仿真数码管电子钟的仿真。
稍加改装,增加部分功能所生产出的实际产品即可应用于一般的生活和工作中,从而给人们的生活和生产带来便利,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
关键词:
电子钟、单片机、
、
1引言
时间是人类生活必不可少的重要元素,如果没有时间的概念,社会将不会有所发展和进步。
从古代的铜壶滴漏、十二天干地支,到后来的机械钟表以及当今的石英钟,都充分显现了时间的重要,同时也代表着科技的进步。
致力于计时器的研究和充分发挥时钟的作用,将有着主要的意义。
1.1本系统研究的背景和意义
20世纪末,电子技术获得了飞速的发展。
在其推动下,现代电子产品几乎渗透到了社会的各个领域,有利的推动和提高了社会生产力的发展与信息化程度,同时也使现代电子产品性能进一步提升,产品更新换代的节奏也越来越快。
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂容易使人忘记当前的时间。
然而遇到重大事情的时候,一旦忘记时间,就会给自己或他人造成很大麻烦。
平时我们要求上班准时,约会或召开会议要提前时间;火车要准时到达,航班准时起飞;工业生产中,很多环节都需要用时间来确定工序替换时刻。
所以说能随时准确知道时间并利用时间,是我们生活和工作中必不可少的。
电子钟是采用电子电路实现对时分秒进行数字显示的及时装置,广泛应用于个人家庭,车站,码头办公室等办公场所。
由于数字集成电路的发展,使得数字钟的精度远远超过老式机械钟表,钟表的数字化给人们的生产生活带来了极大的方便,而且大大的扩展了原先钟表的功能。
诸如定时自动报警、0按时自动打铃、定时广播、自动启闭路灯、定时开关烘箱、通断电力设备,设置各种定时电气的自动启用等,所有这些都已钟表数字化为基础的,因此,研究数字电子钟及扩大其应用,有着非常现实的意义。
1.2本系统主要研究内容
本设计采用
芯片作为核心,采用外部时钟脉冲定时,用
软件自带的电子钟组件实现高度仿真的显示效果。
本次设计的电子钟主要研究内容:
(1)研究电子时钟的原理与实现方法
(2)51单片机的原理与应用
(3)构思基于单片机的高仿真电子时钟的实现方案
(4)熟悉运用C51单片机语言编写软件系统
(5)熟悉运用KeilC软件与Proteus软件仿真和调试系统
2系统总体设计
2.1系统设计方案与论证
电子时钟既可以通过纯硬件实现,也可以通过软硬件结合实现,根据电子时钟里的核心部件——秒信号的产生原理,通常有以下三种形式:
2.11FPGA设计方案
现场可编程门阵列(即FPGA)是20世纪70年代发展起来的一种可编程逻辑器件,是目前数字系统设计的主要硬件基础。
FPGA在设计过程中方便、快捷,而且FPGA技术功能强大,能够应用其制作诸如基代码发生器、数字频率计、电子琴、电梯控制器、自动售货机控制系统、多功能波形发生器、步进电机定位控制系统、电子时钟等。
应用FPGA能够将时钟设计为四种类型:
全局时钟、门控时钟、多级逻辑时钟和波动式时钟。
多时钟系统能够包括上述四种时钟类型的任意组合。
2.12NE555时基电路设计方案
采用NE555时基电路或其他振荡电路产生秒脉冲信号,作为秒加法电路的时钟信号或为处理器的外部中断输入信号,可构成电子钟。
通过调整相关参数可使输出的频率为精确的1HZ。
图2.12基于NE555的秒信号发生器
采用NE555定时器设计电子时钟,成本低,容易实现。
但是受芯片引脚数量和功能的限制,不容易实现电子时钟的多功能性。
2.13单片机设计方案
利用单片机的智能性,可方便的实现具有智能的电子钟设计。
单片机具有时钟振荡系统,利用系统时钟借助微处理器的定时器/计数器可实现电子钟功能。
然而系统时钟误差较大,电子钟的积累误差也可能较大,所以通过误差修改软件加以修正,或者在设计高精度的时钟日历芯片,以精确时间,另外很多功能不同的单片机是兼容的,这就更便于实现产品的多功能性。
2.14最终设计方案
在比较了三种方案之后,考虑单片机货源充足、价格低廉,可软硬件结合使用,能够较方便的实现系统的多功能性,故采用单片机作为本次设计的硬件基础。
本次设计用Proteus软件本身的50HZ激励源作为时钟脉冲,接入单片机的外部中端口来仿真是想基准时钟信号输入。
2.2系统原理及总体结构图
本系统采用51单片机中
芯片控制整个系统,连接各部分模块,下面为系统的设计原理组成框图:
图2.2系统原理组成框图
本系统主要采用单片机作为主控芯片,外接复位模块、调整校时模块、驱动显示模块和外部时钟脉冲。
本设计采用50HZ激励源仿真时钟脉冲,驱动显示模块主要由单片机P2.0—P2.2三个端口接74LS138译码器,8个输出端口接8片74100的使能端,P2.3接74LS138的使能端,P2.4—P2.7接到8片74100的输入端,采取动态扫描原理来驱动显示。
由于50HZ激励源仿真时钟脉冲接在AT89C51芯片的
中断端口,激励源时钟脉冲周期为0.02秒,在每一个时钟脉冲上升沿触发中断,调用中断子程序。
中断子程序主要为每0.5秒使显示组件中的LED[:
]点亮,每1秒LED[:
]关闭且秒递增,满60秒加分,同时每秒刷新时分秒显示。
系统设置了显示缓冲disp_Buffer[],共有7位,前6位为时分秒显示缓冲(各占两位),第7位控制AM、PM、SET标志以及LED发光管闪光显示。
disp_Buffer[6]从低位到高位,第1位为0时AM显示,为1时PM显示;第2位为0时12h制,为1时24h制,仅当第2位为1时,第1位才有效;第3位为SET标志位,为1时处于设置状态,发光管亮,为0时处于显示状态,发光管灭;第4位为LED闪烁控制位,为0时亮,为1时灭。
系统在显示状态时,中断开,循环执行中断子程序,秒递增,刷新显示,将当前时间current_Time中的相应位装入disp_Buffer中相应位,再从单片机P2端口输出驱动显示。
当系统处于设置状态时,关闭中断,显示暂停,执行调整与设置时钟程序。
3系统硬件设计
3.1芯片介绍
3.118051单片机简单介绍
AT89C51是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,片内含4KB的可反复擦除的只读程序存储器(PEROM)和128B随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和FLASH存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合。
主要性能参数:
①与MCS-51产品指令系统完全兼容
②4K字节可重擦写FLASH闪速存储器
③1000次擦写周期
④全静态操作:
0HZ-24MHZ
⑤三级加密程序存储器
⑥128
8字节内部RAM
⑦32个可编程I/O口线
⑧2个16位定时/计数器
⑨6个中断源
⑩可编程串行UART通道
图3.111AT89C51引脚封装图
芯片引脚介绍:
(1)主电源引脚
◇VCC:
+5V电源
◇VSS:
地线。
(2)时钟电路引脚
◇XTAL1和XTAL2:
外接晶体引线端。
当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
(3)控制信号引脚
◇RST/VPD:
复位信号。
当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作;当单片机掉电时,此引脚上可接备用电源,由VPD向片内RAM提供备用电源,一保持片内RAM中的数据不丢失。
◇ALE/PROG:
地址锁存控制信号。
在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。
此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。
对于EPROM型单片机,在EPRAM编程期间,此引脚接收编程脉冲。
◇PSEN:
片外程序存储器读选通信号输出端。
◇EA/VPP:
访问程序存储控制信号。
当EA信号为低电平时,对ROM的读操作限定在外部程序存储器;当EA信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。
对于EPROM型单片机,在EPRAM编程期间,此引脚接上加21VEPROM编程电源VPP。
(4)I/O引脚
P0.0~P0.7:
P0口8位双向口线。
P1.0~P1.7:
P1口8位双向口线。
P2.0~P2.7:
P2口8位双向口线。
P3.0~P3.7:
P3口8位双向口线。
P3口线的第二功能。
P3的8条口线都定义有第二功能,详见表3-1。
表3-11P3口各引脚与第二功能表
引脚
第二功能
信号名称
P3.0
RXD
串行数据接收
P3.1
TXD
串行数据发送
P3.2
INT0
外部中断0申请
P3.3
INT1
外部中断1申请
P3.4
T0
定时/计数器0的外部输入
P3.5
T1
定时/计数器1的外部输入
P3.6
WR
外部RAM写选通
P3.7
RD
外部RAM读选通
以上把8051单片机的全部信号引脚分别以第一功能和第二功能的形式列出。
对于各种型号的芯片,其引脚的第一功能信号是相同的,所不同的只在引脚的第二功能信号。
对于9、30和31三个引脚,由于第一功能信号与第二功能信号是单片机在不同工作方式下的信号,因此不会发生使用上的矛盾。
但是P3口的情况却有所不同,它的第二功能信号都是单片机的重要控制信号。
因此,在实际使用时,都是先按需要选用第二功能信号,剩下的才以第一功能的身份作数据位的输入/输出使用。
3.1274LS1383-8译码器介绍
74LS138为3线—8线译码器,其管脚图如下:
3.12174LS138管脚图
引脚端符号:
A、B、C译码地址输入端
G1选通端
、
选通端(低电平有效)
Y0~Y7译码输出端(低电平有效)
当一个选通端(G1)为高电平,另两个选通端(
和
)为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。
利用G1、
和
可级联扩展成24线译码器;若外接一个反相器还可级联扩展成32线译码器。
若将选通端中的一个作为数据输入端时,138还可作为数据分配器。
功能表:
表3—1274LS138功能表
其中
,H=高电平,L=低电平,X=任意。
74LS138的逻辑图为:
图3.12274LS138逻辑结构图
3.2系统硬件原理图
下面为系统的硬件原理图
图3.2系统硬件电路图
3.3复位模块
关于单片机的复位主要有三种方法:
上电复位、按键电平复位、按键脉冲复位,各自的电路搭建方法如下:
图3.31上电复位和按键复位电路
本次设计主要采取上电复位接法,电路原理如下:
图3.32复位模块图
3.4按键模块
按键模块为系统
制调整,校时、校分部分,具体电路原理图如下:
图3.4按键模块电路原理图
其中K1按键为
制调整按键,当K1处于开启状态时,为12h小时制,AM/PM显示标志亮,当K1处于闭合状态时,为24h小时制。
K2按键为时间设置按键,只有K2处于闭合状态时,K3、K4按键才有效。
K3为加时按键,K4为加分按键。
3.5显示驱动模块
本模块主要利用AT89C51的P2端口连接74LS1383—8译码器依次选通8个74100电子钟显示组件驱动芯片,来显示驱动的。
限于篇幅,具体电路图请看附件。
4系统软件设计
4.1系统软件总体设计
系统主源程序流程图如下图所示,源程序见附件。
图4.1系统主程序流程图
4.2中断子程序
MCS-51系列单片机有五个中断源,中断分为2个中断优先级,即高优先级和低优先级,每个中断源的优先级都可以由软件来设定。
中断地址表如表4-2所示。
表4-2中断地址表
本次设计主要通过将50HZ外部时钟基准脉冲接在
端口,以此来不断产生中断的,中断子程序的流程图如下图所示。
源程序见附件。
图4-2中断子程序的流程图
4.3按键扫描子程序
按键扫描子程序流程图如下图所示,该部分源程序见附件。
图4.3按键扫描程序流程图
5系统调试
5.1硬件调试
硬件调试是测试焊接完成后的成品的硬件电路的功能,发现及排除相关故障,主要包括主控芯片的调试以及各模块电路的调试。
由于本次设计仅仅处于软件仿真阶段,并没有去设计焊接电路,故该部分略。
在不久的毕业设计论文中一定会完善该部分。
5.2软件调试
本设计的软件编译是在KeiluVision3上进行的,此软件可以生成HEX文件用于下载到单片机上工作。
生成HEX文件后可以在PROTEUS上进行仿真调试。
6结论
本次设计我组只是较为粗糙地实现了一个电子钟的一些基本功能,完全由软件仿真实现的,系统中有关部分是用软件中相似功能模块替代的,主要有以下两个部分:
1)外部时钟是由软件中激励源替代的,在真正的设计,时钟部分是很重要的,可以由石英晶振或NE555芯片产生。
2)电子钟的显示部分是由软件中自带的电子钟组件替代的,实际设计中可以由多位数码管显示,应用LED显示的动静态原理驱动多位LED数码管;或者用LCD液晶显示模块来显示时间。
通过做这次课程设计,我组成员学到了很多东西,首先是Proteus及KeilC软件的运用,并对多功能数字电子钟的相关原理有了更深入的理解,以前只是对这些软件有个大概的了解,但通过这次实践,对这些软件有了更深刻的了解,相信在以后的学习中可以掌握得更好。
参考文献
[1]蔡美琴等.MCS-51系列单片机系统极其应用.北京:
高等教育出版社,2004
[2]林伸茂.8051单片机彻底研究实习篇.北京:
人民邮电出版社,2004
[3]胡学海.单片机原理极其应用系统设计.北京:
电子工业出版社,2005
[4]张毅刚.单片机原理极其应用.哈尔滨:
哈尔滨工业大学出版社,2004
[5]韩志军等.单片机应用系统设计.北京:
机械工业出版社,2005
[6]舒怀林.单片机原理与接口技术.武汉:
华中科技大学出版社,2001
附录
附件1:
源程序如下
//-------------------------------------------------------------------
//名称:
高度仿真数码管电子钟
//-------------------------------------------------------------------
//说明本例在Proteus中选用了高仿真的电子钟元器件,并添加了时分调整
//功能,闪烁显示,AM/PM切换,12h/24h制选择等。
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
uchartCount=0;
//时钟设置开关及按键
sbitK1=P0^0;//12h/24h
sbitK2=P0^1;//设置
sbitK3=P0^2;//小时加
sbitK4=P0^3;//时钟加
//当前时间:
时分秒
ucharcurrent_Time[]={12,59,00};
//时分秒显示缓冲(各占两位),最后的0x00控制AM,PM及发光管闪光等
uchardisp_Buffer[]={0,0,0,0,0,0,0x00};
//12h,24h,AM,PM及SET控制标志
ucharf_24=0,f_AM=0,f_set=0;
//--------------------------------------------------------------------
//延时
//--------------------------------------------------------------------
voidDelayMS(uintx)
{
uchari;
while(--x)for(i=0;i<120;i++);
}
//--------------------------------------------------------------------
//加时
//--------------------------------------------------------------------
voidAdd_Hour()
{
//小时数累加
++current_Time[0];
//24小时制时满24归零
if(f_24==1&¤t_Time[0]==24)current_Time[0]=0;
//12h制满13归1,且取反AM与PM标志
if(f_24==0&¤t_Time[0]==13)
{
current_Time[0]=1;
//将原来的AM与PM位取反
disp_Buffer[6]=(disp_Buffer[6]&0xFE)|(~(disp_Buffer[6]&0x01)&0x01;
}
}
//--------------------------------------------------------------------
//加分
//--------------------------------------------------------------------
voidAdd_Miniute()
{
//分钟数累加
++current_Time[1];
if(current_Time[1]==60)
{
current_Time[1]=0;
Add_Hour();
}
}
//--------------------------------------------------------------------
//根据当前时间刷新时分秒显示缓冲
//--------------------------------------------------------------------
voidRefresh_Disp_Buffer()
{
uchari;
//刷新显示缓冲
for(i=0;i<3;i++)
{
disp_Buffer[2*i]=current_Time[i]/10;
disp_Buffer[2*i+1]=current_Time[i]%10;
}
}
//--------------------------------------------------------------------
//外部中断
//--------------------------------------------------------------------
voidEX0_INT()interrupt0
{
++tCount;
if(tCount==25)disp_Buffer[6]&=0xF7;//每0.5秒LED[:
]点亮
if(tCount==50)//每秒刷新显示缓冲等
{
tCount=0;
disp_Buffer[6]|=0x08;//每1秒LED[:
]关闭
if(++current_Time[2]==60)//秒递增
{
current_Time[2]=0;
Add_Miniute();
}
Refresh_Disp_Buffer();//刷新时分秒的显示缓冲
}
}
//--------------------------------------------------------------------
//显示时间
//--------------------------------------------------------------------
voidDisplay_Time()
{
uchari;
for(i=0;i<7;i++)
{
P2=(disp_Buffer[i]<<4)|i|0x08;DelayMS(5);
P2=P2&0xF7;DelayMS(5);
}
}
//--------------------------------------------------------------------
//时钟调整与设置
//--------------------------------------------------------------------
voidadjust_and_set_clock()
{
//设置状态下,调整时与分,12h/24h制等
while(K2==0)
{
//设置12h/24h制
if(K1==0)//切换12h/24h制
{
f_24=1;disp_Buffer[6]|=0x02;
}
else
{
f_24=0;disp_Buffer[6]&=0xFD;
}
//加小时
if(K3==0)
{
DelayMS(150);//小时增加时会影响am,pm标志,因此这里可调用数
Add_Hour();
}
//加分钟
if(K4==0)
{
DelayMS(150);//因为加分钟的函数会向小时进位,故单独增加
current_Time[1]=(current_Time[1]+1)%60;
}
Refresh_Disp_Buffer();
Display_Time();
}
}
//-----------------------------------------------------------------
//按键扫描子程序
//---------------------------------------------------------------------
voidKeyboard_scan()
{
if(K1==0)//切换12h/24h制
{
f_24=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 仿真 数码管 电子钟 课程设计 报告 分析