单片机电子时钟课程设计_第1页
单片机电子时钟课程设计_第2页
单片机电子时钟课程设计_第3页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、拗#1)寧虎电子线路设计课程设计说明书数字电子钟系、部:电气与信息工程系学生姓名:l雷锋专业:电子信息工程班级:电子0901班完成时间:2012-12-18摘要时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学 技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。 怎样让 时钟更好的为人民服务, 怎样让我们的老朋友焕发青春呢?这就要求人们不断设 计出新型时钟。数字电子钟的设计方法有多种, 其中,利用单片机实现的电子钟具有编程灵 活,便于电子钟功能的扩充, 即可用该电子钟发出各种控制信号, 精确度高等特 点,同时可以用该电子钟发出各种控制信号。本文主要介绍用单片机内部

2、的定时 / 计数器来实现电子时钟的方法,本设计 由单片机AT89S52芯片和LED数码管为核心,辅以必要的电路,构成了一个单片 机电子时钟。与传统机械表相比,它具有走时精确 , 显示直观等特点。它的计时 周期为 24小时,显满刻度为“ 23 时59 分59 秒”,另外具有校时功能等特点。 该电子钟可以做到的功能:上电或按键复位后能自动显示系统提示符“P. ”进入时钟准备状态。第一次按电子钟启动 /暂停键,电子钟从 0时 0分 0秒开始运行,进入时钟运行状态。 再次按电子钟启动 / 暂停键,则电子钟进入时钟暂停状态,此时可按下调整键调 整时间,分别通过时间加,时间减两个按键调整时间。调整结束后可

3、按启动 / 暂 停键再次进入时钟运行状态。通过设置的 A、B、C、D四个键来调整运行,并且 利用了 8位LED显示时分秒。此电子钟严格按照要求设计,最终达到预期的效果,能够正确显示“P”点以及时分秒的计时,算是一次比较成功的设计了。关键词 :电子钟;单片机;汇编ABSTRACTClock, since it was invented that day, becomes the friend of mankind, but as time goes on, the continuous development of science and technology, people on the ti

4、me measurement accuracy is higher and higher, more and more wide application. How to let the clock to better serve the people, how to make our old friend bloom? This requests the people to continue to design a new clock.The design of digital electronic clock methods are various, among them, realize

5、the use of single-chip electronic clock with programming flexibility, ease of electronic clock function expansion, can use the electric clock out of control signal, high accuracy, and can use the electric clock out of control signal.This paper mainly introduces the MCU internal timer / counter to re

6、alize the electronic clock method, designed by the MCU and AT89S52 chip and LED digital tube as the core, supplemented by necessary circuit, composed of a single-chip electronic clock. Compared with the traditional mechanical watches, it has a precise path, intuitive display characteristics. Its tim

7、e period is 24 hours, was in full scale as " twenty-three fifty-nine 59 seconds", and a school function etc. The electronic clock can achieve the function of:Power on or reset button to automatically display the system prompt" P." into clock ready state 2 for the first time by el

8、ectronic clock start / adjusting keys, electronic bell from 0 when 0 minute 0 seconds start running, enter the clock running state. Again by the electronic clock start / adjusting keys, electronic bell clock adjustment state is entered, this time by the adjusting button to adjust the time, after adj

9、ustment according to the start / adjusting key again into the clock running state. By setting the A, B, C, D four keys to adjust the operation, and the use of 8 bit LED is displayed every minute.The electronic clock in strict accordance with the requirements of the design, finally achieve the desire

10、d effect, can correctly display" P" and of accurate timing, is a successful design.Key words: electronic clock; single-chip microcomputer; compilation目录1 电子钟功能及总体方案的介绍 11.1 电子钟功能介绍 . 11.1.1 基本功能要求 11.2 总体方案介绍 . 11.2.1 计时方案 11.2.2 键盘/显示方案 12 硬件系统设计 32.1 硬件系统各模块功能介绍 . 32.1.1 显示电路 . 32.1.2 键盘

11、控制电路 . 32.1.3 电子钟的启、停及时间调整 . 43 软件系统设计 53.1 单片机的使用资源情况 . 53.2 电子钟程序流程框图 . 63.2.1 主程序流程框图 . 63.2.2 键扫子程序流程框图 73.2.3 中断服务程序流程框图 83.2.4 显示子程序流程框图 93.3 电子钟总体程序清单 . 104 电子钟设计结论 184.1 使用说明书 . 184.1.1 操作说明 184.2 电子钟运行结果 . 184.2.1 待机 184.2.2 启动 184.2.3 运行 194.3 误差分析 . 194.4 设计体会 . 19参考文献 20附 录 211 电子钟功能及总体方

12、案的介绍1.1 电子钟功能介绍1.1.1 基本功能要求可调整运行的电子钟具有三种工作状态: “P. ”状态、运行状态、调整状态。(1) 、“P. ”状态,依靠上电或按复位键进入,在此状态下,按B、C、D键均 无效,按 A 键有效,进入运行状态;(2) 、运行状态,按A键进入,在此状态下,按B、C、D键均无效,只有按A 键有效,按下A键后,退出运行状态,进入暂停状态;(3) 、调整状态,在暂停此状态下,按 A、B、C、D键均有效。如按下A键, 则退出调整状态,进入运行状态;按下 B键,则分别对时、分、秒位进行选择, 按下C、D键对选择的位进行加减,调整结束后必须按A键,即可退出调整状态, 进入运

13、行状态。基本功能要求:“P. ”稳定地显示在LED显示器的最左端数码管上,无 A键按下(在“ P. ” 状态下,按下B、C、D键无效),则不进入电子钟的运行状态,继续显示“ P.”。按下A键后,电子钟以起始时间:00时00分00秒开始运行。再次按下A键后,电子钟退出运行状态,进入暂停状态,利用 B、C、D键 把电子钟的显示时间修改为当前实时时间, 时间修改正确后可再次按下 A键,电 子钟则退出调整状态,进入运行状态。注意:每次按下C、D键,只允许加一,不允许连加。1.2 总体方案介绍1.2.1 计时方案利用AT89S52单片机内部的定时/计数器进行中断定时,配合软件延时实现 时、分、秒的计时。

14、该方案节省硬件成本,且能使读者在定时 /计数器的使用、 中断及程序设计方面得到锻炼与提高,对单片机的指令系统能有更深入的了解, 从而对学好单片机技术这门课程起到一定的作用。1.2.2 键盘/显示方案AT89S52勺P0口和P2口外接由八个LED数码管(LED7LED0构成的显示器, 用P0 口作LED的段码输出口,P2口作八个LED数码管的位控输出线,P1 口外接 四个按键A、B C D构成键盘电路。AT89S52是一种低功耗,高性能的 CMOS位微型计算机。它带有 8K Flash 可编程和擦除的只读存储器(EPROM该器件采用ATMEL勺高密度非易失性存储 器技术制造,与工业上标准的80C

15、51和80C52的指令系统及引脚兼容,片内Flash 集成在一个芯片上,可用与解决复杂的问题,且成本较低。简易电子钟的功能不 复杂,采用其现有的I/O便可完成,所以本书中采用此的设计方案,结构如图 1 如示。图1电子钟原理框图2 硬件系统设计2.1 硬件系统各模块功能介绍2.1.1 显示电路在本次课程设计中,我采用的是八位共阳数码管,显示原理跟单个LED的显 示原理完全相同, 在段控线和位控线都串接一个电阻, 以提高其输出功率, 在这 里采用 470 欧母电阻。2.1.2 键盘控制电路键盘是最常用的输入设备, 是实现人机对话的纽带。 按其结构形式可分为非 编码键盘和编码键盘。编码键盘采用硬件方

16、法产生键码。 每按下一个键,键盘能自动生成键盘代码, 键数较多,且具有去抖动功能。这种键盘使用方便,但硬件较复杂。非编码键盘 仅提供按键开关工作状态,其键码由软件确定,这种键盘键数较少,硬件简单, 广泛应用于各种单片机应用系统, 在单片机控制电路中, 可把单片机使用的键盘 分为独立式和矩阵式两种。 独立式实际上就是一组独立的按键, 这些按键可直接 与单片机的 I/O 口连接, 即每个按键独占一条口线, 这种接法简单。 矩阵式键盘 也称行列式键盘, 因为键的数目较多, 所以键按行列组成矩阵。 本设计中键盘数 目较少,且为安装方便,因此在本设计中采用独立式接法。按从一个键到键的功能被执行主要应包括

17、两项工作: 一是键的识别, 即在键 盘中找出被按的是哪个键, 另一项是键功能的实现。 第一项工作是使用接口电路 实现的,而第二项工作则是通过执行相应服务程序来完成。 具体来说, 键盘接口 应完成以下操作功能:(1) 键盘扫描,以判定是否有键被按下(称之为“闭合键” )。(2) 键识别,以确定闭合键的行列位置。(3) 产生闭合键的键码。(4) 排除多键、串键(复键)及去抖动。以上这些内容通常是以软硬件结合的方式来完成的, 即在软件的配合下由接 口电路来完成。但具体哪些由硬件哪些由软件完成,要看接口电路的情况。 总的原则是,硬件复杂软件就简单,硬件简单软件就得复杂一些。2.1.3 电子钟的启、停及

18、时间调整电子钟设置4个按键通过程序控制来完成电子钟的启、停及时间调整A键控制电子钟的启、停;B键选择位;C键位加;D键位减。2.2 系统电路图2.2.1电路原理图见附录2.2.2 电路PCB图见附录2.2.3电路元器件布局图见附录2.3 元器件清单器件型号数量器件型号数量单片机AT89S521个按键普通4个晶振12MHZ1个开关6脚开关1个电容22uf,33pf若干数码管HSN5642S2个电阻普通若干下载接口10针接口1个单排针10针接口1个蜂鸣器脉冲式1个图2元器件清单3 软件系统设计3.1 单片机的使用资源情况3.1.1 资源使用说明P3 口为二极管的控制端P0 口用作地址/数据总线P2

19、 口用作地址/数据总线P1.0、P1.1、P1.2、P1.3 口线作为键盘输入端既在AT89S52的P3 口用来接八个发光二极管的阴极,控制其亮与灭,P0 口和P2 口外接由8个LED数码管构成的显示器,用 P0 口作LED的段码输出口(P0.0P0.7对应于LED的adp), P2 口作LED的位控输出线,P2 口外接四个 个按键A B C、D (分别对应于P1.0、P1.1、P1.2、P1.3 口)用于调整显示接 口电路。3.1.2 数码管显示模块 数码管显示是通过调用显示子程序来实现的,由于数码管的显示要有实时性,所以在执行其他程序时依然要经常调用显示子程序。数码管的段控由CPU改变P2

20、 口相应位电平来实现。3.1.3 按键控制模块 开始/暂停,位选择按键由外部中断来实现,加键,减键通过键盘扫描来实现。3.2电子钟程序流程框图3.2.1主程序流程框图开始1r系统初始化F1P.显示进入自动计时状态进入时间设置状态图3主程序流程框图322键扫子程序流程框图323中断服务程序流程框图秒加1图5中断服务程序流程框图3.2.4 显示子程序流程框图图 6 显示子程序流程图3.3 电子钟总体程序清单/* 课程设计 电子钟 */* 电子 0901 班 全昌炽 */* crystal=12Mhz */* P2 口位控口,P0 口段控口 ,键盘si控制P1 口 */#include<reg

21、52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int/* 共阳数码管字型码 */*0,1,2,3,4,5,6,7,8,9,p.,灭*/Char codedis_code=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x0c,0x ff,0xbf;/*P 点显示代码序号 */char find_code=11,11,11,10,11,11,11,11;char s=0,m=0,h=0;char x,y=0,n=0;bit s

22、2bz=0;bit s5bz=0;bit a=0;/ 函数名: void Delay1ms(uint count)/ 功能: 延时时间为 1ms/ 输入参数: count,1ms 计数/说明:总共延时时间为1ms乘以count,crystal=12Mhz/* 延迟函数 */void Delay1ms(uint count)uint j;while(count-!=0)for(j=0;j<80;j+);/* 显示函数 */ void put_on_leds()char i,j=0xfe;char k; for(i=0;i<8;i+)P2=j; k=find_codei; P0=dis

23、_codek; Delay1ms(1); j=_crol_(j,1);P0=0xff;/* 函数原型: keychuli();功能:处理与键盘相连的P1 口的内容,作为键值。*/ uchar keychuli()uchar k;/P1口内容送 Kk=P1;k=k;/取反return(k); /返回键值/* 函数原型: key();* 功能 : 键盘扫描函数,函数返回值即键值。*/uchar key() uchar keyzhi,keyzhii;/keyzhi=keychuli(); / if(keyzhi!=0) / 回put_on_leds(); put_on_leds(); keyzhi=

24、keychuli(); / if(keyzhi!=0) /keyzhii=keyzhi;while(keyzhi!=0) / 动等待释放电子钟键盘按键键值临时存放调 P1 口处理函数有键动作延时去抖动,否则函数返再次调P1 口处理函数真正有键按下,取键值并暂存判按键是否释放, 没有释放延时去抖put_on_leds();put_on_leds();keyzhi=keychuli();按键释放后恢复按键键值keyzhi=keyzhii; /返回按键键值return(keyzhi); /* 中断函数 */void TTC0() interrupt 1TH0=0x3c;TL0=0xb0;x+;if(

25、x=20)x=0; find_code4=s%10; find_code5=s/10; find_code3=11;s+;if(s>=60)s=0;find_code7=m%10; find_code0=m/10; m+;if(m>=60) m=0; find_code2=h%10; find_code3=h/10; h+;if(h>=24) h=0;/ 重装初值/ 判断是否循环 20 次,即/ 给显示缓冲数组赋值/ 秒自加/ 判断是否达到 1 分钟/ 秒清零/ 分自加/ 判断是否达到 1 小时/ 分清零/ 时自加/ 判断是否达到 1 天/ 时清零1s/* 显示初始化 */v

26、oid chushihua()find_code4=s%10; find_code5=s/10; find_code6=12; find_code7=m%10; find_code0=m/10; find_code1=12;find_code2=h%10;find_code3=h/10; put_on_leds();/* 按键中断函数 */void INTT0() interrupt 0 using 0s2bz=!s2bz;void INTT1() interrupt 2 using 2s5bz=1;/ 中断初始化 , 打开中断/* 主函数 */ void main() EA=1;ET0=1;

27、 EX0=1;EX1=1;IT0=1;IT1=1;ET1=1;TMOD=0X01;TH0=0x3c;TL0=0xb0;while(1)put_on_leds();if(s2bz=1)while(1)n=0; chushihua(); TR0=1; if(s2bz=0) while(s2bz=0) TR0=0; put_on_leds(); if(s5bz=1) s5bz=0; if(n<3) n+; else/ 显示 P 点/ 初始化/ 开定时器/ 判断是否按下暂停键/ 关定时器/ 显示暂停值/ 判断功能键是否按下/ 将功能键标志位清零n=1; switch(key()case 0x04

28、:/ 判断加减键是否按下/ 加按下switch(n)case 1:/n 等于 1,时自加h+;find_code3=h/10;find_code2=h%10;put_on_leds();if(h>=23)h=-1;break;case 2:/n 等于 2,分自加m+;find_code0=m/10;find_code7=m%10;put_on_leds();if(m>=59)m=-1;break;case 3:/n 等于 3 ,秒自加s+;find_code5=s/10;find_code4=s%10;put_on_leds();if(s>=59)s=-1;break; br

29、eak; case 0x08:/ 减按下switch(n)case 1:/n 等于 1,时自减 h=24;h-;case 2:case 3:find_code3=h/10;find_code2=h%10; put_on_leds();if(h=0)h=24;break;/n 等于 2,分自减m=60;m-;find_code0=m/10;find_code7=m%10; put_on_leds();if(m<=0)m=60;break;/n 等于 3,秒自减s=60;s-;find_code5=s/10;find_code4=s%10; put_on_leds();if(s<=0)s=60;break;bre

温馨提示

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

评论

0/150

提交评论