可调简易数字电子钟的设计-演示文稿_第1页
可调简易数字电子钟的设计-演示文稿_第2页
可调简易数字电子钟的设计-演示文稿_第3页
可调简易数字电子钟的设计-演示文稿_第4页
可调简易数字电子钟的设计-演示文稿_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

可调简易 数字电子钟,电子钟设计一、 数字钟功能及原理二、结构框图三、硬件设计四、软件设计五、调试,一 电子钟功能及原理 功能: 可调数字电子钟采用6位LED数码管显示时、分、秒,以24小时计时方式。可以通过按键实现时分调整、秒表时钟功能转换、省电(关闭显示)、可根据设定的作息时间表按时输出警示信号等功能。原理: 石英晶体振荡器产生的时标信号送到分频器,分频电路将时标信号分成每秒一次的方波秒信号。秒信号送入计数器进行计数,并把累计的结果以“时”、“分”、“秒”的数字显示出来。“秒”的显示由两级计数器和译码器组成的六十进制计数电路实现:“分”的显示电路与“秒”相同,“时”的显示由两级计数器和译码器组成的二十四进制计数电路来实现。,二 简易框图,电路结构图:,AT89C51,晶振,LED数码管,74LS373,调时,复位,中 断,三 硬件设计,AT89C51单片机 :1、主电源引脚(2根) (1) VCC:电源输入,接+5V电源(2)GND:接地线2、外接晶振引脚(2根)(1) XTAL1:片内晶振电路的输入端 (2)XTAL2:片内晶振电路的输出端3、控制引脚(4根)(1) RST/VPP:复位引脚 (2)ALE/PROG:地址所存允许信号 (3)PSEN:外部存储器读选通讯信号 (4)EA/VPP:程序存储器的内外部选通,4、可编程输入/输出引脚(32根)(1)P0口:8位双向I/O口线,名称为P0.0-P0.7,作输入口时,应先软件置“ 1”。 (2)P1口:8位准双向I/O口线,名称为P1.0-P1.7,作输入口时,应先软件置“ 1”。 (3)P2口:8位准双向I/O口线,名称为P2.0-P2.7,作输入口时,应先软件置“ 1”。 (4)P3口:8位准双向I/O口线,名称为P3.0-P3.7,作输入口时,应先软件置“ 1”。,三 硬件设计,LED数码管 :,LED数码管的主要特点如下: (1)能在低电压、小电流条件下驱动发光,能与CMOS、ITL电路兼容。 (2)发光响应时间极短(01s),高频特性好,单色性好,亮度高。 (3)体积小,重量轻,抗冲击性能好。 (4)寿命长,使用寿命在10万小时以上,甚至可达100万小时。成本低。,三 硬件设计,74LS373 的输出端 O0O7 可直接与总线相连。 当三态允许控制端 OE 为低电平时,O0O7 为正常逻辑状态,可用来驱动负载或总线。当 OE 为高电平时,O0O7 呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响引出端符号: D0D7 数据输入端 OE 三态允许控制端(低电平有效) LE 锁存允许端 O0O7 输出端,三 软件设计,项目通过单片机定时器/计数器T0定时产生中断实现计时。将T0设置为定时工作方式1,以5ms为基本计时单元,每5ms产生一次中断,利用软件对中断计数累加。当定时器产生200次中断后(1s后),秒单元加1。同理,对分单元、时单元亦采用相同的计数原理。分别产生秒、分、时等各位时间值,经并行口连接的6位LED显示。,四 软件设计,初始化流程图:,开 始,初 始 化,设定时器工作方式,开中断、定时器,设定时器值,外部中断,开关,初始化定时器,四 软件设计,部分初始化程序:void init() TMOD=0x01; /设定时器工作方式1EA=1; /开启总中断位ET0=1; /开启定时器0中断TH0=(65536-50000)/256; /给定时器0的高8位装数TL0=(65536-50000)%256; /给定时器0的低8位装数TR0=1; /允许计数器0工作IT0=0; /设外部中断0的触发方式位低电平触发EX0=1; /开启外部中断0PX0=1; /将外部中断0的优先级设位最高aa=0; /初始化定时器中断0的控制位.key=1; /将开关控制置高电平temp_key=key; /将开关控制变量的值赋给开关暂存变量.,四 软件设计,INT0中断服务程序流程图 :,开 始,开 中 断,消除误差,调显示程序,检测,分或时计数单元内容加1,计时单元清零,返回,四 软件设计,INTO部分中断程序:/调分钟if(temp_minu=0) /判断调时开关(分钟)是否按下delay(5); /延时5毫秒 软件消除机械误差temp_minu=key_minu; /将开关控制变量的值赋给开关暂存变量if(temp_minu=0) /判断调时开关(分钟)是否真的按下display(); /调用显示函数while(temp_minu=0) /松手检测 temp_minu=key_minu; /如果开关一直处于按下状态,则死循环if(temp_minu=1) /判断调时开关(分钟)是否松开deplay(5); /延时5毫秒 软件消除机械误差temp_minu=key_minu; /将开关控制变量的值赋给开关暂存变量if(temp_minu=1) /判断调时开关(分钟)是否真的松开 minu+; /分钟自加1if(minu=60) /判断分钟是否为60 minu=0; /清0hour+; /小时自加1if(hour=24)hour=0:,四 软件设计,T0中断服务流程图 :,开 始,10ms秒单元加1,10ms秒单元=10?,10ms秒单元清零秒单元加1,秒单元=60?,秒单元清零,时分单元加1,分单元=60?,分单元清零,时单元加1,时单元=24?,时单元清零,调控制子程序,返回,四 软件设计,T0中断程序:void _TR0_() interrupt 1 TH0=(65536-50000)/256; /给定时器0的高8位装初值TL0=(65536-50000)%256; /给定时器0的低8位装初值50ms产生一次中断aa+; /中断控制变量自加if(aa=20) /判断控制变量是否为20及计时达到1s aa=0; /清0sec+; /秒自加1if(sec=60) /判断是否到60s sec=0; /清0minu+; /分自加1if(minu=60) /判断分是否到60 minu=0; /清0hour+; /小时自加1if(hour=24) hour=0;display(); /调用显示函数,四 软件设计,显示程序流程图 :,开 始,关 中 断,消除键抖动,分或时计数单元内容加1,十进制调整,A=计数基制?,计时单元清零,调显示程序,开中断,返回,四 软件设计,部分显示程序:void display() number(); /调用折数函数dule=1; /打开段选信号wele=1; /打开位选信号P2=0x3e; /使第一个数码管亮及数码管的位选位P0=tablehour_sw; /给数码管的P0口赋值及数码管的段选位dule=0; /关闭段选信号wele=0; /关闭为选信号delay(5); /调用延时程序5ms,五 调 试 系统的调试开始是把Keil编译生

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论