(精品)单片机AT89C51电子时钟精品单片机电子时钟(2013年优秀毕业设计)_第1页
(精品)单片机AT89C51电子时钟精品单片机电子时钟(2013年优秀毕业设计)_第2页
(精品)单片机AT89C51电子时钟精品单片机电子时钟(2013年优秀毕业设计)_第3页
(精品)单片机AT89C51电子时钟精品单片机电子时钟(2013年优秀毕业设计)_第4页
(精品)单片机AT89C51电子时钟精品单片机电子时钟(2013年优秀毕业设计)_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

课程设计说明书 题题 目目 单片机电子时钟 班班 级级 姓姓 名名 指导教师指导教师 时时 间间 目目录录 摘要摘要.1 第一章第一章 系统设系统设计计要求要求.2 1.1 基本功能 2 1.2 扩展功能 2 第二章第二章 硬件总体设计方案硬件总体设计方案.3 2.1 系统功能实现总体设计思路.3 2.2 各部分功能实现.4 2.3 系统工作原理.5 2.4 时钟各功能分析及图解.6 2.4.1 电路各功能图解分析6 2.4.2 电路功能使用说明10 第三章软件总体设计方案第三章软件总体设计方案.11 3.1 主程序流程图 11 3.2 总中断程序流程 12 3.3 控制电路的 C 语言源程序 16 第四章第四章 课程设计结果分析课程设计结果分析.23 第五章第五章 总结总结.24 致谢致谢.25 参考文献参考文献.26 1 单单片机片机电电子子时钟时钟 摘要摘要: :单片机 即单片微型计算机。(Single-Chip Microcomputer ),是 集 CPU ,RAM ,ROM ,定时,计数和多 种接口于一体的微控制器。他体积小,成本低,功能强,广泛 应用于工业自动化上和智能产品。时钟,自从它被发明的那 天起,就成为了人类的好朋友,但随着时间的推移,科学技 术的不断发展,时钟的应用越来越广范,人们对时间计量的 精度要求也越来越高。怎样让时钟更好的为人民服务,怎样 让我们的老朋友再次焕发青春呢?这就要求我们不断设计 出新型的时钟,来不断满足人们的日常生活需要。然而市场 上的时钟便宜的比较笨重,简单实用的又比较昂贵。那么, 有没有一款既简单实用价格又便宜的时钟呢? 我们课程设计小组设想:可不可以利用单片机功能集成 化高,价格又便宜的特点设计一款结构既简单,价格又便宜 的单片机电子时钟呢? 基于这种情况,我们课程设计小组成员多方查阅资料,反 复论证设计出了这款既简单实用,又价格便宜的单单片片 机机电电子子时钟时钟。 。 关关键词键词: :单单片机片机 时钟时钟 计时计时 2 第一章第一章 系统设计要求系统设计要求 1.1 基本功能基本功能 (1)能够显示时分秒 (2)能够调整时分秒 1.2 扩展功能扩展功能 (1)能够任意设置定时时间 (2)定时时间到闹铃能够报警 (3)实现了秒表功能 3 第二章第二章 硬件总体设计方案硬件总体设计方案 本次设计时钟电路,使用了 AT89C51 单片机芯片控制 电路,单片机控制电路简单且省去了很多复杂的线路,使得 电路简明易懂,使用键盘键上的按键来调整时钟的时、分、 秒,用一扬声器来进行定时提醒,同时使用 C 语言程序来控 制整个时钟显示,使得编程变得更容易,这样通过四个模块: 键盘、芯片、扬声器、显示屏即可满足设计要求。 2.1 系统功能实现总体设计思路系统功能实现总体设计思路 此设计原理框图如图 2-1 所示,此电路包括以下四个部 分:单片机,键盘,闹铃电路及显示电路。 51 单片机 独 立 键 盘 数码管显示 闹铃电路 4 图 2-1 设计原理框图 经多方论证硬件我们小组采用 AT89C51 单片机和 7SED 八位共阳极数码管等来实现单片机电子时钟的功能。 详细元器件列表如表 2.1 所示: 表 2.1 详细元器件列表 AT89c511 片片 7SED 八位共阳极数八位共阳极数码码管管1 片片 NPN 三极管三极管1 个个 104p 电电容容6 个个 30p 电电容容2 个个 10K 电电阻阻6 个个 560 欧姆欧姆电电阻阻8 个个 200 欧姆欧姆电电阻阻1 个个 100 欧姆欧姆电电阻阻6 个个 2.2 各部分功能实现各部分功能实现 (1(单片机发送的信号通过程序控制最终在数码管上显示 出来。 (2(单片机通过输出各种电脉冲信号来驱动控制各部分正 常工作。 5 (3(为使时钟走时与标准时间一致,校时电路是必不可少的, 键盘用来校正数码管上显示的时间。 (4(单片机通过控制闹铃电路来完成 定时闹钟的功能。 2.3 系统工作原理系统工作原理 设计的电路主要由四模块构成:单片机控制电路,显示 电路、闹铃电路以及校正电路。 详细电路功能图如图 2-2: AT89C51 XTAL1 XTAL2 10K10K10K 10K10K 10K 100100 100100 100 100 100pF 23 45 6 VCC 01 0203 04 05 06 Q1PNP 200 R13 LS1 Speaker VCC 22uf C7 22uf C8 PSEN ALE EA P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 01 02 03 04 05 06 07 08 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 1 2 3 4 5 6 7 8 VCC RST VCC 1 2 Y1 XTAL 1 2 3 4 5 6 7 8 a b c d e f g dp abc d ef g dp 1 图 2-2 详细电路功能图 本设计采用 C 语言程序设计,使单片机控制数码管显示 时、分、秒,当秒计数计满 60 时就向分进位,分计数器计满 60 后向时计数器进位,小时计数器按“23 翻 0”规律计数。时、 分、秒的计数结果经过数据处理可直接送显示器显示。当计 6 时发生误差的时候可以用校时电路进行校正。设计采用的是 时、分、秒显示,单片机对数据进行处理同时在数码管上显 示。 2.4 时钟各功能分析时钟各功能分析及图解及图解 2.4.1 电路各功能图解分析电路各功能图解分析 ( (1) ) 时钟运行图 仿真开始运行时,或按下 key4 键时,时钟从 12:00:00 开始运行,其中 key2 键对分进行调整,key3 对小时进行调 整,key6 可以让时钟暂停。 时钟运行图如图 2-3 所示: a b c d e f g dp a b c d e f g dp 8 1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 050604030201 01 02 03 04 05 06 07 08 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1 AT89C51 R13 LS1 SPEAKER X1 12MHz C7 30p C8 30p Q1 PNP 单单片片机机电电子子时时钟钟 电电子子信信息息0701 王王勇勇贵贵 曹曹文文忠忠 刘刘志志强强 原原娟娟慧慧 键键盘盘控控制制区区 时时间间显显示示区区 外外设设闹闹铃铃 核核心心控控制制区区 秒秒表表调调时时调调分分显显时时闹闹铃铃暂暂停停 主主要要功功能能: 1、秒秒表表 2、时时间间调调整整 3、数数字字显显示示 4、闹闹铃铃设设置置 7 图 2-3 时钟运行图 (2)秒表计时图 当按下 key1 键进入秒表计时状态,key6 是秒表暂停键, 可按 key4 键跳出秒表计时状态。 如图 2-4: a b c d e f g dp a b c d e f g dp 8 1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 050604030201 01 02 03 04 05 06 07 08 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1 AT89C51 R13 LS1 SPEAKER X1 12MHz C7 30p C8 30p Q1 PNP 单单片片机机电电子子时时钟钟 电电子子信信息息0701 王王勇勇贵贵 曹曹文文忠忠 刘刘志志强强 原原娟娟慧慧 键键盘盘控控制制区区 时时间间显显示示区区 外外设设闹闹铃铃 核核心心控控制制区区 秒秒表表调调时时调调分分显显时时闹闹铃铃暂暂停停 主主要要功功能能: 1、秒秒表表 2、时时间间调调整整 3、数数字字显显示示 4、闹闹铃铃设设置置 图 2-4 秒表计时图 8 (3)闹铃设置图及运行图 当按下 key5,开始定时,分别按 key2 调分,key3 调时设 置闹铃时间,然后按下 key4 键恢复时钟运行状态(图 2-5)当 闹铃设置时间到时,蜂鸣器将发出 10 秒中蜂鸣声(图 2-6)。 a b c d e f g dp a b c d e f g dp 8 1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 050604030201 01 02 03 04 05 06 07 08 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1 AT89C51 R13 LS1 SPEAKER X1 12MHz C7 30p C8 30p Q1 PNP 单单片片机机电电子子时时钟钟 电电子子信信息息0701 王王勇勇贵贵 曹曹文文忠忠 刘刘志志强强 原原娟娟慧慧 键键盘盘控控制制区区 时时间间显显示示区区 外外设设闹闹铃铃 核核心心控控制制区区 秒秒表表调调时时调调分分显显时时闹闹铃铃暂暂停停 主主要要功功能能: 1、秒秒表表 2、时时间间调调整整 3、数数字字显显示示 4、闹闹铃铃设设置置 图 2-5 闹铃时间设置图 9 a b c d e f g dp a b c d e f g dp 8 1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 050604030201 01 02 03 04 05 06 07 08 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1 AT89C51 R13 LS1 SPEAKER X1 12MHz C7 30p C8 30p Q1 PNP 单单片片机机电电子子时时钟钟 电电子子信信息息0701 王王勇勇贵贵 曹曹文文忠忠 刘刘志志强强 原原娟娟慧慧 键键盘盘控控制制区区 时时间间显显示示区区 外外设设闹闹铃铃 核核心心控控制制区区 秒秒表表调调时时调调分分显显时时闹闹铃铃暂暂停停 主主要要功功能能: 1、秒秒表表 2、时时间间调调整整 3、数数字字显显示示 4、闹闹铃铃设设置置 图 2-6 闹铃运行图 该数字钟是用一片 AT89C51 单片机通过编程去驱 动 8 个数码管实现的。通过 6 个开关控制,从上到下 6 个 开关 KEY1-KEY6 的功能分别为:KEY1,切换至秒表; KEY2,调节时间,每调一次时加 1;KEY3, 调节时间,每调 一次分加 1;KEY4,从其它状态切换至时钟状态;KEY5,切 换至闹钟设置状态,也可以对秒表清零;KEY6,秒表暂停. 控制键分别与 P1.0P1.5 口连接其中: A 通过 P2 口和 P3 口去控制数码管的显示如图所示 P2 口接数码管的 ag 端,是控制输出编码,P3 口接数码 管的 18 端,是控制动态扫描输出 B 从 P0.0 输出一个信号使二极管发光,二极管在设置的 闹钟时间到了时候发光,若有乐曲可以去驱动扬声器实 10 现。 2.4.2 电路功能使用说明电路功能使用说明 (1) 各个控制键的功能:可对时间进行校准调节(只能加 );按下设置键数字时钟进入闹钟设置状态,设置闹钟 的时间;时加、分加键是在校准时间时或设置闹钟时 间对小时数或分钟数调节而设置的;按下秒切换键就可 以进入秒表模式,同时秒表也开始计时,按下秒表暂停、 复位键就暂停、归零,如果要重新对秒计时则可以按秒 表开始、复位;清零键可以对闹钟清零。 (2( AT89C51 单片机,通过编写程序对数码显示进行 控制。 (3( 八个 7 段数码管显示时钟和秒表信号。 11 第三章软件总体设计方案第三章软件总体设计方案 3.1 主程序流程图主程序流程图: 软件程序从开始执行,先通过初始化各个寄存器,经过扫描按 键来决定是否设定参数来执行相应功能的程序,进而在数码管上显示。 如图 3-1: 图 3-1 主程序流程图 开始 定时器及中断定时器初始 化 执行时钟秒表 闹铃设定程序 是否设 定参数 执行显示程 序 N Y 12 3.2 总中断程序流程总中断程序流程 图 3-2 中断流程图 时间的显示通过此中断程序来控制,并且通过与设定的 时间进行比较来判断是否让闹铃工作。程序中包含时间的设 定,如设定 tcount 来使秒等工作,进而来控制分和时。如上 图图 3-2。 分数值 timeminute 加 1time.second 归零 Tcount 加 1 返回主程序 实数值 time1.boun 加 1time1.mintet 归零 Time1.bou r23 时数值 time1.hour 归零 Tount1=100 ? 秒数值 time1.second 加 1second 归零 执行闹钟程序 p0.0=1 判断时间与 闹钟时间是 否一致 闹钟程序是 否行完全 Time1.second= 60? Time.minute =60? 恢复初值保护 13 A. 秒表中断程序流程秒表中断程序流程 秒表功能通过另一个程序来实现。通过保护主程序的数 据来进行秒表功能。程序中需要设置秒表的具体显示方法。 如图 3-3: N Y N Y 图 3-3 秒表中断程序流程图 恢复初值保护 10ms 计数器加 1 恢复初值保护 秒计数器加 1,10ms 计数器归零, 即 sec+,ms=0 Sec60? Ms100? 输出字码,中断结束, 返回上级主程序 分计数器加 1,秒计数器 归零,即 minit+,sec=0 14 B.按按键键程序流程程序流程 图 3-4 为时钟和闹钟的调节,程序中通过扫描来判断按键 是否按下进行时间和闹钟的调节。 图 3-4 按键程序流程图 程序初始化 时十位归零 alarms【7】=0 分时位归零 alarms4=0 分十位归 零 输出时钟时 十位加一 输出闹钟时个 位加一,延时 输出时钟十位加 一 输出时钟十 个位加一 输出时钟分个 位加一,延时 输出闹钟 时分位加 一 输出闹钟时十 位加一 输出闹钟 分个位加 一,延 时 时十位归 零 判断标 志位是 否为零 Alarms4 2 Alarms7 2 Alarms【3 】0 Dat16 9 Dat17 Alarms6 9 Dat13 9 Dat142 判断标志 是否为零 判断时 i 加 键是否按 下 判断分加 键是否按 下 15 图 3-5 为进入中断和清零图,程序中通过扫描来判断按键是 否按下进行执行相应的中断来事实现相应的功能。 图 3-5 中断和清零程序流程图 判断分加键 tminute 是否按下,P1.1=0 判断秒表 miaobiao1 是否按下按下, P1.0=0 , tgsdhPP1.0=0 判断清零键 miaobiao2 是否按下,P1.3=0 进入秒表中断,执行 秒表中断程序 返回上级主程序 清零所有的计数器,各个 显示的字码。 16 3.3 控制电路的控制电路的 C 语言源程序语言源程序 根据流程图,经过认真分析得出控制电路的源程序如下: #include #define uchar unsigned char #define uint unsigned int #define delay_time 3/*宏定义 */ uchar k,dat=0,0,0,0,0,0,0,0; uint tcount,t,u; uchar dat1=0,0,0,0,0,0,2,1; uchar dat2=0,0,0,0,0,0,0,0; uchar alarms=0,0,0,0,0,0,0,0; uchar dis_bit=0x80,0x40,0x20,0x 10,0x08,0x04,0x02,0x01; unsigned char code SEG711=0xC0,/*0*/ 0xF9,/*1*/ 0xA4,/*2*/ 0xB0,/*3*/ 0x99,/*4*/ 0x92,/*5*/ 0x82,/*6*/ 0xF8,/*7*/ 0x80,/*8*/ 0x90,/*9*/ 0xBF,/*-*/ ;/*数字显示数组*/ sbit miaobiao1=P10; sbit tminute=P11; sbit thour=P12; sbit miaobiao2=P13; sbit alarm=P14; sbit P0_0=P00; sbit P1_5=P15; sbit P1_6=P16; sbit P1_7=P17;/*端口定义*/ uchar ms=0; uchar flag=0; uchar sec=0; 17 uchar minit=0; struct timeuchar second;uchar minute;uchar hour;time1; uchar n,i; void delay(n) while(n-) for(i=120;i0;i-); /*延时子程序*/ void modify(void) EA=0; if(thour=0) if(flag=0) dat16+;delay(280); if(dat169) dat16=0; dat17+; else if(dat171) dat16=0; if(flag=1) alarms6+;delay(300); if(alarms69) alarms6=0;alarms7+; if(alarms72) alarms7=0; dat6=alarms6; dat7=alarms7; 18 if(tminute=0) if(flag=0) dat13+;delay(280); if(dat3=9) dat14+;dat13=0; if(dat145) dat14=0; if(flag=1) alarms3+; delay(300); if(alarms39) alarms4+;alarms3=0; if(alarms45) alarms4=0; dat3=alarms3; dat4=alarms4; if(miaobiao1=0) TR0=0;ET0=0;TR1=1;ET1= 1; if(miaobiao2=0) TR0=1;ET0=1;TR1=0;ET1=0; dat20=0; dat21=0; dat23=0; dat24=0; 19 dat26=0; dat27=0; ms=0; sec=0; minit=0; if(P1_5=0) TR0=0;ET0=0;TR1=0; ET1=0; if(alarm=0) TR0=0;ET0=0;TR1=0;ET1 =0;flag=1; dat0=0; dat1=0; dat2=10; dat3=0; dat4=0; dat5=10; dat6=0; dat7=0; EA=1; /*按键扫描*/ void init(void) TMOD = 0x11; TH0 = 0xDB; TL0 =0xFF; TH1=0xDB; TL1=0xFF; ET0 = 1; /10ms ET1=1; /TR1=1; TR0=1; tcount=0; ms=0; sec=0; minit=0; EA = 1; /*初始化*/ 20 void test(void) for(k=0;k23) time1.hour=0; dat5=10; dat2=10; dat0=dat10; dat1=dat11; dat3=dat13; dat4=dat14; dat6=dat16; dat7=dat17; flag=0; P0=0x01; if(alarms7=dat17) sec+; dat23=sec%10; 22 dat24=sec/10; if(sec=60) sec=0; minit+; dat26=minit%10; dat27=minit/10; dat5=10; dat2=10; dat0=dat20; dat1=dat21; dat3=dat23; dat4=dat24; dat6=dat26; dat7=dat27; EA=1; 23 第四章第四章 课程设计结果分析课程设计结果分析 此时钟设计是利用 protues 仿真软件进行仿真,基本 上实现了课程设计要求实现的功能。 硬件部分设置了的六个按键。当按键一按下时,进入 秒表显示状态,秒表开始计时,当按键六按下时,秒表暂 停;当按键四按下时恢复到时间显示功能;当按键二按下 时,进入调分状态,按一次,分加一,60 一循环;按键三按 下时,进入调时状态,按一次,时加一,60 一循环;按键五 按下时,进入闹铃设置功能,紧接着按下按键二和按键三 进行时和分的设置,再按下按键 4 恢复显示时间,当显示 的时间和定时设置的时间一致时,蜂鸣器发出蜂鸣声,蜂 鸣时间我们设置为 10 秒。 另外,闹铃电路有音乐闹钟的扩展的功能(可以将蜂 鸣器换成扬声器再加一段音乐程序即可实现)。 调试阶段,出现一些问题。比如,实际小时显示到 29 才归零,分钟显示到 60 才进一经过软件调试,以上 问题均一一排除,结果达到预期目标。但时间有限,部分 扩展功能不能及时实现,比如音乐闹铃。 24 第五章第五章 总结总结 经过一周的单片机课程设计,我组成员已基本完成课题 要求。功能上基本达标:时钟的显示,秒表显示,定时功能, 调时功能。时钟显示功能,精确度完全可以满足日常生活显 示时间的需

温馨提示

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

评论

0/150

提交评论