多功能数字钟的设计论文Word文件下载.docx
《多功能数字钟的设计论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《多功能数字钟的设计论文Word文件下载.docx(29页珍藏版)》请在冰豆网上搜索。
0前言
近年来随着科技的飞速发展,单片机的应用正在不断的走向深入,同时带动着传统控制检测日新月异更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面的知识是不够的,还要根据具体的硬件结构,以及针对具体的应用对象的软件结合,加以完善。
单片机的应用的重要意义在于,它从根本上改变了传统意义设计理念和设计方法。
曾经必须要通过模拟电路或者是数字电路实现的功能,单片机应用软件技术就可以实现,这种微控技术不仅简化了电路,而且还可以改变软件程序或者参数实现不同的设计。
数字钟已经成为人们日常生活中不可缺少的必需品,广泛的应用于家庭以及办公室等公共场所。
给我们生活、学习、工作、娱乐带来了极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
尽管目前市场上已有现成的数字中集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时功能也可以完成数字钟的电路设计,因此进行数字钟的设计是必要的。
本次设计的多功能数字钟就是应用单片机的计时功能为设计核心,当计时器满则实行中断程序,对LCD的显示的数字按进制进行刷新,当设定的闹铃时间与当前显示的时间相同时,则蜂鸣器和闹铃灯开始工作,达到提醒时间的作用。
1总体方案设计
针对本课题的设计任务,进行分析得到:
本次设计用单片机做为总控制系统,由LCD进行数字显示,由6个开关键作为键盘进行对时间的调整和闹铃设定。
根据设计要求采用AT89C52单片机做为控制器,时钟电路方案设计有两种:
方案一:
直接采用单片机定时计数器提供的秒信号,使用软件编程实现时、分、秒计数。
采用此种方案可以减少芯片的使用,节约成本,实现的时间误差较小,但软件编程比较麻烦。
方案二:
采用时间专用芯片实现时钟,时钟芯片是一种高性能的针对时钟的芯片,可自动对秒、分、时、日、周、月、年进行计数,而且精度比较高,芯片用的多,成本高,但软件程序设计较易实现。
综合各方面因素,针对此次多功能数字钟的设计,我采用方案一来实现本次设计的要求。
该多功能数字钟的设计,总体上大致可分为以下几个部分组成:
1.时钟电路部分;
2.复位电路部分;
3.LCD显示电路部分;
4.按键选择电路部分;
5.蜂鸣器电路部分。
系统原理框图如图1所示。
AT89C52
图1系统原理框图
整个电路的工作原理是由晶振芯片提供准确的时钟电路,由键盘调整数字钟的功能,并通过软件编程把时间数字通过LCD显示出来。
2硬件电路设计
2.1单片机最小系统
单片机最小系统电路主要包括复位电路和时钟电路,是单片机工作的基础。
所谓最小系统,是指一个真正可用的单片机的最小配置系统。
对于单片机内部资源已能够满足系统的需要的,可直接采用最小系统。
由于MCS—51系列单片机片内不能集成时钟电路所需要的晶体振荡器,也没有复位电路,因此在构成最小系统时,必须外接这些部件。
根据片内有无程序存储器,MCS—51的单片机最小系统分为两种情况。
第一种情况:
8051/8751片内有4KB的ROM/EPROM,因此,只需要外接晶体振荡器和复位电路就可以构成最小系统。
第二种情况:
8031片内无程序存储器,因此,在构成最小系统时,不仅要外接晶体振荡器和复位电路,还应在外扩展程序存储器。
本设计采用的89C52单片机,故无需外扩程序存储器。
所需的电路如图2所示。
图2单片机最小系统
2.1.1时钟电路设计
MCS-51单片机内部的振荡电路是一个到增益反相放大器,引线XTAL1和XTAL2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。
单片机内部虽然有震荡电路,但要形成时钟,外部还需要附加电路。
石晶振荡和陶瓷振荡均可采用.有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
51单片机的时钟产生方式有两种,分别为:
内部时钟方式和外部时钟方式。
利用其内部的震荡电路XTAL1和XTAL2引线上外接定时元件,内部震荡电路便产生自激震荡,用示波器可以观察到XTAL2输出的时钟信号。
在MCS-51单片机一般常用内部时钟方式,也就是在XTAL1和XTAL2之间连接晶体震荡器与电容构成稳定的自激震荡器,电路如下图3所示:
图3时钟电路
电路中,电容器C1和C2对振荡器有微调作用,通常的取值X围是30+/-10PF;
石英晶体选择6MHZ或12MHZ都可以。
其结果只是机器周期时间不同,影响计数器的计数初值。
2.1.2复位电路设计
复位是单片机的初始化操作,其主要功能是把程序计数器PC的内容初始化为0000H,也就是使单片机从0000H单元开始执行程序,同时使CPU及其他的功能部件都从一个确定的初始状态开始工作。
除了系统上电时需要进行正常的初始化外,当程序运行出错或操作错误导致处于“死机”状态时都需要进行复位操作。
复位后PC=0000H,SP=07H,P0--P3=0FFH。
复位电路通常采用上电复位方式,上电复位时通过外部复位电路的电容充电来实现的。
当电源Vcc接通时只要电压上升时间不超过1ms,就可以实现自动上电复位。
复位电路如下图4所示。
图4复位电路
电路中阻容器件的参考值如图中所示,电解电容C3取1u,R1取1K,R2取100,开关按键可以选择专门的复位按键,也可以选择轻触开关。
在时钟电路工作后,只要在RST引脚上出现2个机器周期以上的高电平,就能确保单片机可靠复位。
2.2LCD显示电路设计
单片机应用系统中,通常都需要进行人-机对话。
这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示运行状态与运行结果。
显示器和键盘电路就是用来完成人-机对话活动的人-机通道。
由于单片机的并行口不能直接驱动LED显示器,必须采用专用的驱动电路芯片,使之产生足够大的电流,显示器才能够正常工作,所以采用LED显示装置较为麻烦。
本设计采用LCD显示装置。
液晶显示器简称LCD显示器,它是利用液晶经过处理后能改变光线的传输方向的特性实现显示信息的。
液晶显示器具有体积小、重量轻、功耗极低、显示内容丰富等特点。
液晶显示器按其功能可分为三类:
笔段式液晶显示器、字符点阵式液晶显示器和图形点阵式液晶显示器。
本设计采用的是字符点阵式液晶显示器,它是一种专门用于显示字母、数字、符号等的点阵式液晶显示模块。
它是由若干个5x7或5x11等点阵符位组成的,每一个点阵字符位都可以显示一个字符。
点阵字符位之间有一定点距的间隔,这样就起到了字符间距和行距的作用。
此显示器接法简单,即把时钟信号显示在液晶显示器上,不仅结构简单清晰可见,而且又容易控制。
LCD液晶显示电路如下图5所示。
图5LCD液晶显示电路
其中,数据的传输采用P0口进行控制,其引脚VSS/VEE接地,VDD接+5V电压,E和RS端由P2.6和P2.7口进行控制。
2.3按键选择电路设计
数字钟的应用系统工作应具备两个基本功能,一是随时输入定时(闹钟)时间,二是随时对当前时间进行调整。
要实现这两项功能,可以接入键盘输入电路。
键盘结构可以分为独立式键盘和行列式键盘(矩阵式)两类,本设计中需要八个按键,因此选择独立式键盘,按键分别命名为:
调整时间按键,调整闹钟时间按键,调整时针按键,调整分针按键,开闹钟按键、关闹钟按键、24或12时制转换开关和复位开关,按键可以采用轻触开关。
按键选择电路如下图6所示。
图6按键选择电路
其中,调整时间按键的功能是设置当前时间,即当数字钟的时间有误差时,随时对它进行调整;
调整闹钟时间按键的功能是设置定时(闹钟)时间;
调整时针按键的功能是对时间值的小时位进行调整,每按一次+1;
调整分针按键的功能是对时间值的分位进行调整每按一次+1;
开闹钟按键的功能是开闹钟;
关闹钟按键的功能是关闹钟;
24或12时制转换开关的功能是对数字钟进行24或12时制转换,当开关闭合时为12时制数字钟,打开时为24时制数字钟;
复位开关的功能是对当前显示时间值进行复位,复位后,即从00:
00:
00开始计时。
键盘的硬件电路设计只能保证八个按键信号的可靠进入,要想完成键盘的输入功能,还要靠软件编程来具体实现。
2.4蜂鸣器电路设计
设计要求定时(闹钟)时间到时要有声音提醒信号产生,可选择一只蜂鸣器来实现这个功能。
蜂鸣器有长声和短声两种,本设计中选择短声蜂鸣器--压电式蜂鸣器(HA)即可。
工作时约需10MA的驱动电流,具体驱动电路如下图7所示。
图7蜂鸣器电路
蜂鸣器(HA)一端接单片机的P3.6引脚,另一端接+5V的高电平,所以只要P3.6引脚上为低电平时,蜂鸣器就会发出鸣叫声音,否则,蜂鸣器不发声。
3软件设计
根据设计方案要求,应用ICIC软件对电路进行仿真,实现了设计的要求,具备了对时间即时的显示,对时间和闹铃的设定,24或12时制转换功能,并且设有一个“复位”按键等功能。
该课题的软件设计采用了模块化设计的思想即将程序划分为若干个相对独立的功能模块,接着画出每一个功能模块的详细流程图,并根据流程图编写程序,最后按照软件设计的总体结构框图,将各模块连接成一个完整的主程序。
软件的设计主要采用模块化的程序设计方法。
采用自顶向下的设计方法。
从总体到局部,再到细节,按要求将各功能以子模块的形式实现。
采用模块化设计可使程序的可读性好,修改与完善比较方便。
本设计中数字钟的系统软件程序由主程序和子程序组成,主程序包含初始化参数设置、按键处理、数码管显示模块等,在设计时各个模块都采用子程序结构设计,在主程序中调用。
由于定时器/计数器采用中断方式处理,因此还要编写定时器/计数器中断服务子程序,在定时器/计数器中断虎屋子程序中对时钟进行调整。
下面对软件各部分程序进行简要介绍:
3.1主程序设计
主程序的内容一般包括:
主程序的起始地址、中断服务程序的起始地址、有关内存单元及相关部件的初始化和一些子程序调用等。
主程序主要是先对显示单元和定时器/计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有键按下,则转入相应的功能程序。
主程序执行流程图如下图8所示。
否
是
图8主程序流程框图
3.1.1.中断服务子程序
定时器/计数器T0用于时间计时,选择方式1,重复定时,定时时间设为50ms,定时时间到则中断,在中断服务程序中用一个计数器对50ms计数,计20次则对秒单元加1,秒单元加到60则对分单元加1,同时秒单元清零;
分单元加到60则对时单元加1,同时分单元清零;
时单元加到24则对时单元清零,标志一天时间计满。
在对各单元计数的同时,把它们的值放到存储单元的指定位置,之后把计数内容送到显示缓存区准备显示。
定时器/计数器T0的中断程序流程框如图9所示。
Y
图9中断子程序流程框图
3.2LCD显示子程序:
LCD1602有64B的CGRAM,可用来写入自定义字符,5*8点阵的可写8个(每个占8字节),5*11点