电子钟设计报告_第1页
电子钟设计报告_第2页
电子钟设计报告_第3页
电子钟设计报告_第4页
电子钟设计报告_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上广东工贸职业技术学院单片机C程序课程设计报告书题 目:电子钟设计报告姓 名:李楚森学 号:指导老师:刘益标设计时间:2014年5月 单片机课程设计报告摘要: 数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。目前,数字钟的功能越来越强,并且有多种专门的大规模集成电路可供选择。从有利于学习的角度考虑,这里主要介绍以中小规模集成电路设计数字钟的方法。经过了数字电路设计这门课程的系统学习,特别经过了关于

2、组合逻辑电路与时序逻辑电路部分的学习,我们已经具备了设计小规模集成电路的能力,借由本次设计的机会,充分将所学的知识运用到实际中去。本次课程设计要求设计一个数字钟,基本要求为数字钟的时间周期为24小时,数字钟显示时、分、秒,数字钟的时间基准一秒对应现实生活中的时钟的一秒。供扩展的方面涉及到定时自动报警、按时自动打铃、定时广播、定时启闭路灯等。因此,研究数字钟及扩大其应用,有着非常现实的意义。目录一、 设计目的4二、 设计任务4三、 硬件分析与方案选择4 四、 电子钟设计程序框图8五、 电子钟的主程序15六、 功能说明20七、 原理图21八、 检测与调试21九、 总结与体会22一.设计目的1)学习

3、51单片机内部定时/计数器的原理及应用;2)了解使用单片机处理复杂逻辑的方法;3)掌握多位数码动态显示的方法;4)掌握独立式按键的读键和处理方法。二.设计任务以51单片机AT89C51作为控制元件,设计一个数字电子钟。1)基本要求用AT89C51单片机的定时/计数器T0产生数字电子钟的基本计时单位秒;显示时、分、秒,其中分和秒为六十进制,时为二十四进制。计满60秒,分加1;计满60分,时加1;计满24时,返回00-00-00重新开始计时。时、分、秒之间用“”隔开,例如9时25分45秒显示为09-25-45;开机时显示时间为00-00-00;在P1口接4个按钮开关,分别用于调节秒、分、时以及时间

4、复位。每按下一次秒、分、时按钮,秒、分、时对应增1;按下复位按钮,时间被复位为00-00-00。2)进阶要求在P1口另接4个按钮开关,其中一个用于切换时间设定和闹钟设定,当时间设定有效时,可设定时间;当闹钟设定有效时,可设定闹钟时间。在P2.0引脚接一个发光二极管,当计时到闹钟设定时间的前5秒发光二极管开始闪烁,持续10秒后熄灭。三硬件分析与方案选择1.系统的组成与原理方框图本系统由单片机最小系统、时间设定电路、闹钟设定电路、8位数码管动态显示电路、闹钟响应模拟电路组成,如图1所示。闹钟设定电路时间设定电路8位数码管动态显示电路闹钟响应模拟电路AT89C51单片机图1系统硬件组成框图2.系统电

5、路模块1)AT89C51单片机最小系统系统,如图2所示。图2AT89C51单片机最小系统系统2)时间设定和闹钟设定电路,如图3所示。时间设定:在P1口的P1.0P1.3引脚接4个按钮开关,分别用于调节秒、分、时以及时间复位。每按下一次秒、分、时按钮,秒、分、时对应增1;按下复位按钮,时间被复位为00-00-00。闹钟设定:在P1口的P1.4P1.6引脚另接3个按钮开关,分别用于设定闹钟的秒、分、时。图中P1.7引脚的按钮开关用于切换时间设定和闹钟设定,当时间设定有效时,可设定时间;当闹钟设定有效时,可设定闹钟时间。图3时间设定和闹钟设定电路3)8位数码管动态显示电路,如图4所示。本实训需用个数

6、码管,为节约I/O口资源,采用动态显示方法。这8位数码管的分配自左向右依次为:第一、二位显示“时”,第三位显示隔离符“-”,第四、五位显示“分”,第六位显示显示隔离符“-”,第七、八位显示秒。图48位数码管动态显示电路4)闹钟响应模拟电路,如图5所示。在P2.0引脚接一个发光二极管,当计时到闹钟设定时间的前5秒发光二极管开始闪烁,持续10秒后熄灭。图5闹钟响应模拟电路四电子钟设计程序框图1)计时中断函数设计使用定时/计数器0的中断方式来实现计时,方法是设置定时/计数器0工作于方式1,定时50ms为基本时间单元,每次计数溢出,TF0被置1,向CPU申请中断。将计时功能用中断函数实现,每中断一次,

7、基本时间单元增1,中断20次即为1s,此时“秒”加1并将基本时间单元清0;“秒”加到60时,“分”加1,并将“秒”清0;“分”加到60时,“时”加1,并将“分”清0;时加到24时,将“时”、“分”、“秒”和基本时间单元都清0。流程图如下。TCNT=20?开始T0初始化基本时间单元TCNT增1秒加1,TCNT清0秒=60?分加1,秒清0分=60?时加1,分清0时=24?TCNT、时、分、秒清0结束否是否是否是否是2)时间显示内容处理函数和闹钟显示内容处理函数定义一个数组dispbuf8,用于存放时、分、秒及其分隔符,通过下面函数存放时、分、秒的十位、个位和分隔符。程序中SECOND:秒;MINI

8、TE:分;HOUR:时。定义一个数组dispnz8,用于存放闹钟设定的时、分、秒及其分隔符,通过下面函数存放闹钟时、分、秒的十位、个位和分隔符。程序中SECOND1、MINITE1、HOUR1分别为闹钟设定的秒、分、时。3)时间动态扫描显示函数和闹钟设置动态扫描函数在程序开始,定义一个数组存放数码管显示的段码表, uchar code table13=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x39,0x00;将时间显示内容数组dispbuf8存放的内容进行动态显示,函数名为SCANDISP(),如下所示将闹钟显示内容数组d

9、ispbuf8存放的内容进行动态显示,函数名为SCANDISPNZ(),如下所示4)时间设定及复位按键扫描和键值处理函数5)闹钟设定按键扫描和键值处理函数6)主函数是否否切换开关断开开始时间和闹钟显示初始化T0初始化,开放T0中断熄灭闹钟响应模拟灯Restar=1?闹钟响应模拟灯闪烁HOUR=HOUR1?结束执行时间设定及复位按键扫描和键值处理函数执行闹钟设定按键扫描和键值处理函数MINITE=MINITE1?1SECOND1±5s?是否是是是否否7).主体模块划分五电子钟的主程序#include<reg51.h>#define uchar unsigned char;v

10、oid DISPLAY();void DISPLAYNZ();void KEY_TEST();void KEY1_TEST();void SCANDISP();void SCANDISPNZ();void alarm();uchar msec=0;uchar SECOND=0;uchar SECOND1=0;uchar MINITE=0;uchar MINITE1=0;uchar HOUR=0;uchar HOUR1=0;uchar i,value,p,q,n,t;uchar dispbuf=0,0,0,0,0,0,0,0;uchar dispnz=0,0,0,0,0,0,0,0;uchar

11、scan=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;uchar code table13=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x39,0x00;sbit S_SET=P10;sbit M_SET=P11;sbit H_SET=P12;sbit RESET=P13;sbit S1_SET=P14;sbit M1_SET=P15;sbit H1_SET=P16;sbit TRIGGER=P17;sbit P2_0=P20;bit restar;bit armbit;bit rtimbi

12、t;bit timbit;void delay(unsigned m)if(TRIGGER=0)while(m-)DISPLAYNZ();elsewhile(m-)DISPLAY();void main()restar=0;armbit=0;rtimbit=0;TMOD=0x01;TH0=0x3c;TL0=0xb0;EA=1;ET0=1;TR0=1;while(1)DISPLAY();KEY_TEST();while(!TRIGGER)DISPLAYNZ();KEY1_TEST();if(armbit=1)&&(rtimbit=0)if(HOUR=HOUR1)&&

13、;(MINITE=MINITE1)&&(SECOND=SECOND1) timbit=1;if(timbit=1)alarm();if(restar=1)msec=0;MINITE=0;SECOND=0;HOUR=0;TH0=0x3c;TL0=0xb0;restar=0;void KEY_TEST()DISPLAY();P1=0xff;restar=0;if(S_SET=0)delay(20);if(S_SET=0)SECOND+;if(SECOND=60)SECOND=0;while(SECOND=0) DISPLAY();if(M_SET=0)delay(20);if(M_

14、SET=0)MINITE+;if(MINITE=60)MINITE=0;while(MINITE=0) DISPLAY();if(H_SET=0)delay(20);if(H_SET=0)HOUR+;if(HOUR=24)HOUR=0;while(HOUR=0) DISPLAY();if(RESET=0)delay(20);if(RESET=0)restar=1;void KEY1_TEST()DISPLAYNZ();P1=0xff;rtimbit=1;if(S1_SET=0)delay(20);if(S1_SET=0)SECOND1+;if(SECOND1=60)SECOND1=0;whil

15、e(S1_SET=0) DISPLAYNZ();armbit=1;if(M1_SET=0)delay(20);if(M1_SET=0)MINITE1+;if(MINITE1=60)MINITE1=0;while(M1_SET=0) DISPLAYNZ();armbit=1;if(H1_SET=0)delay(20);if(H1_SET=0)HOUR1+;if(HOUR1=24)HOUR1=0;while(H1_SET=0) DISPLAYNZ();armbit=1;rtimbit=0;void DISPLAY()SCANDISP();dispbuf6=SECOND/10;dispbuf7=SE

16、COND%10;dispbuf5=10;dispbuf3=MINITE/10;dispbuf4=MINITE%10;dispbuf2=10;dispbuf0=HOUR/10;dispbuf1=HOUR%10;void DISPLAYNZ()dispnz6=SECOND1/10;dispnz7=SECOND1%10;dispnz5=10;dispnz3=MINITE1/10;dispnz4=MINITE1%10;dispnz2=10;dispnz0=HOUR1/10;dispnz1=HOUR1%10;SCANDISPNZ();void SCANDISP()for(i=0;i<8;i+)P3

17、=0xff;value=tabledispbufi;P0=value;P3=scani;for(n=0;n<100;n+);void SCANDISPNZ()for(i=0;i<8;i+)P3=0xff;value=tabledispnzi;P0=value;P3=scani;for(n=0;n<100;n+);void alarm()P2_0=0;delay(20);P2_0=1;void clock() interrupt 1EA=0;TH0=0x3c;TL0=0xb0;if(msec!=20)msec+;elsemsec=0;if(SECOND!=59)SECOND+;

18、if(timbit=1) t+;if(t=10)t=0;timbit=0;elseSECOND=0;if(MINITE!=59)MINITE+;elseMINITE=0;if(HOUR!=23)HOUR+;else HOUR=0;EA=1;六功能说明40个引脚按引脚功能大致可分为4个种类:电源、时钟、控制和I/O引脚。(1) 电源: VCC - 芯片电源,接+5V; VSS - 接地端;注:1用万用表测试单片机引脚电压一般为0v或者5v,这是标准的TTL电平。但有时候在单片机程序正在工作时候测试结果并不是这个值而是介于0v-5v之间,其实这是万用表的响应速度没这么快而已,在某一个瞬间单片机引脚电压仍保持在0v或者5v。 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 控制线:控制线共有4根, ALE/PROG:地址锁存允许/片内EPROM编程脉冲 ALE功能:用来锁存P0口送出的低8位地址 PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。 PSEN:外ROM读选通信号。 RST/VPD:复位/备用电源。 RST(Reset)功能:复位信号输入端。 VPD功能:

温馨提示

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

评论

0/150

提交评论