您的当前位置:首页正文

基于单片机控制的自动打铃器设计

2023-03-15 来源:榕意旅游网
 - 好好学习,天天向上

目录

摘要 ............................................................................................. 1 第一章 系统设计要求 ............................................................... 2

基本功能 ............................................................................................................................................. 2 扩展功能 ............................................................................................................................................. 3

第二章 硬件总体设计方案 ....................................................... 3

系统功能实现总体设计思路 .............................................................................................................. 4 各部分功能实现 .................................................................................................................................. 4 系统工作原理...................................................................................................................................... 5 时钟各功能分析及图解 ...................................................................................................................... 6 2.4.1电路各功能图解分析............................................................................................................. 6 2.4.2电路功能使用说明 (1) 各个控制键的功能:可对时间进行校准调节(只能加1);按下设置键数字时钟进入闹钟设置状态,设置闹钟的时间;时加1、分加1键是在校准时间时或设置闹钟时间对小时数或分钟数调节而设置的;按下秒切换键就可以进入秒表模式,同时秒表也开始计时,按下秒表暂停、复位键就暂停、归零,如果要重新对秒计时则可以按秒表开始、复位;清零键可以对闹钟清零。 ........................................................................ 10

第三章软件总体设计方案 ....................................................... 11

主程序流程图.................................................................................................................................... 11 总中断程序流程 ................................................................................................................................ 12 控制电路的C语言源程序 ............................................................................................................... 17

-0

- 好好学习,天天向上

电子钟设计

摘要:单片机 即单片微型计算机。(Single-Chip

Microcomputer ),是 集 CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。他体积小,成本低,功能强,

-1

- 好好学习,天天向上

广泛应用于工业自动化上和智能产品。时钟,自从它被发明的那天起,就成为了人类的好朋友,但随着时间的推移,科学技术的不断发展,时钟的应用越来越广范,人们对时间计量的精度要求也越来越高。怎样让时钟更好的为人民服务,怎样让我们的老朋友再次焕发青春呢?这就要求我们不断设计出新型的时钟,来不断满足人们的日常生活需要。然而市场上的时钟便宜的比较笨重,简单实用的又比较昂贵。那么,有没有一款既简单实用价格又便宜的时钟呢?

我的毕业设计设想:可不可以利用单片机功能集成化高,价格又便宜的特点设计一款结构既简单,价格又便宜的单片机电子时钟呢?

基于这种情况,我多方查阅资料,反复论证设计出

了这款既简单实用,又价格便宜的——多功能电子时钟

关键词:单片机 时钟 计时

第一章 系统设计要求

基本功能

(1)能够显示时分秒 (2)能够调整时分秒

-2

- 好好学习,天天向上

扩展功能

(1)能够任意设置定时时间 (2)定时时间到闹铃能够报警 (3)实现了秒表功能

第二章 硬件总体设计方案

本次设计时钟电路,使用了AT89C51单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的时、分、秒,用一扬声器来进行定时提醒,同时使用C语言程序来控

-3

- 好好学习,天天向上

制整个时钟显示,使得编程变得更容易,这样通过四个模块:键盘、芯片、扬声器、显示屏即可满足设计要求。

系统功能实现总体设计思路

此设计原理框图如图2-1所示,此电路包括以下四个部分:单片机,键盘,闹铃电路及显示电路。

数码管显示 独立键盘 51单片机 闹铃电路

图2-1 设计原理框图

各部分功能实现

(1) 单片机发送的信号通过程序控制最终在数码管上显示

出来。

(2) 单片机通过输出各种电脉冲信号来驱动控制各部分正

-4

-5

系统工作原理

电路、闹铃电路以及校正电路。

(4) 单片机通过控制闹铃电路来完成 定时闹钟的功能。

(3) 为使时钟走时与标准时间一致,校时电路是必不可少

图2-2 详细电路功能图

常工作。

详细电路功能图如图2-2:

- 好好学习,天天向上

的,键盘用来校正数码管上显示的时间。

设计的电路主要由四模块构成:单片机控制电路,显示

本设计采用C语言程序设计,使单片机控制数码管显示

时、分、秒,当秒计数计满60时就向分进位,分计数器计

- 好好学习,天天向上

满60后向时计数器进位,小时计数器按“23翻0”规律计数。时、分、秒的计数结果经过数据处理可直接送显示器显示。当计时发生误差的时候可以用校时电路进行校正。设计采用的是时、分、秒显示,单片机对数据进行处理同时在数码管上显示。

时钟各功能分析及图解 2.4.1电路各功能图解分析

(1)

时钟运行图

仿真开始运行时,或按下key4键时,时钟从12:00:00开始运行,其中key2键对分进行调整,key3对小时进行调整,key6可以让时钟暂停。

时钟运行图如图 2-3 所示:

-6

- 好好学习,天天向上

单片机电子时钟主要功能:1、秒表2、时间调整3、数字显示4、闹铃设置abcdefgdp时间显示区12345678C730pC830p19X1键盘控制区12MHzU1核心控制区P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617abcdefgdp12345678R13XTAL118XTAL29Q1PNPRST010203040506293031外设闹铃LS1PSENALEEA010203040506070812345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51SPEAKER秒表调时调分显时闹铃暂停电子信息0701 王勇贵曹文忠刘志强原娟慧 图2-3 时钟运行图

(2)秒表计时图

当按下key1键进入秒表计时状态,key6是秒表暂停键,可按key4键跳出秒表计时状态。

如图2-4:

-7

- 好好学习,天天向上

单片机电子时钟主要功能:1、秒表2、时间调整3、数字显示4、闹铃设置abcdefgdp时间显示区12345678C730pC830p19X1键盘控制区12MHzU1核心控制区P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617abcdefgdp12345678R13XTAL118XTAL29Q1PNPRST010203040506293031外设闹铃LS1PSENALEEA010203040506070812345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51SPEAKER秒表调时调分显时闹铃暂停电子信息0701 王勇贵曹文忠刘志强原娟慧 图2-4 秒表计时图

(3)闹铃设置图及运行图

当按下key5,开始定时,分别按key2调分,key3调时设置闹铃时间,然后按下key4键恢复时钟运行状态(图2-5)当闹铃设置时间到时,蜂鸣器将发出10秒中蜂鸣声(图2-6)。

-8

- 好好学习,天天向上

单片机电子时钟主要功能:1、秒表2、时间调整3、数字显示4、闹铃设置abcdefgdp时间显示区12345678C730pC830p19X1键盘控制区12MHzU1核心控制区P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617abcdefgdp12345678R13XTAL118XTAL29Q1PNPRST010203040506293031外设闹铃LS1PSENALEEA010203040506070812345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51SPEAKER秒表调时调分显时闹铃暂停电子信息0701 王勇贵曹文忠刘志强原娟慧 图2-5 闹铃时间设置图

单片机电子时钟主要功能:1、秒表2、时间调整3、数字显示4、闹铃设置abcdefgdp时间显示区12345678C730pC830p19X1键盘控制区12MHzU1核心控制区P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617abcdefgdp12345678R13XTAL118XTAL29Q1PNPRST010203040506293031外设闹铃LS1PSENALEEA010203040506070812345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51SPEAKER秒表调时调分显时闹铃暂停电子信息0701 王勇贵曹文忠刘志强原娟慧 图2-6 闹铃运行图

该数字钟是用一片AT89C51单片机通过编程去驱动

-9

- 好好学习,天天向上

8个数码管实现的。通过6个开关控制,从上到下6个开关KEY1-KEY6的功能分别为:KEY1,切换至秒表;KEY2,调节时间,每调一次时加1;KEY3, 调节时间,每调一次分加1;KEY4,从其它状态切换至时钟状态;KEY5,切换至闹钟设置状态,也可以对秒表清零;KEY6,秒表暂停.控制键分别与~口连接.其中:

A通过P2口和P3口去控制数码管的显示如图所示P2口接数码管的a——g端,是控制输出编码,P3口接数码管的1——8端,是控制动态扫描输出.

B从输出一个信号使二极管发光,二极管在设置的闹钟时间到了时候发光,若有乐曲可以去驱动扬声器实现。 2.4.2电路功能使用说明 (1) 各个控制键的功能:可对时间进行校准调节(只能加1);按下设置键数字时钟进入闹钟设置状态,设置闹钟的时间;时加1、分加1键是在校准时间时或设置闹钟时间对小时数或分钟数调节而设置的;按下秒切换键就可以进入秒表模式,同时秒表也开始计时,按下秒表暂停、复位键就暂停、归零,如果要重新对秒计时则可以按秒表开始、复位;清零键可以对闹钟清零。

(2) AT89C51单片机,通过编写程序对数码显示进

行控制。

(3) 八个7段数码管显示时钟和秒表信号。

-10

- 好好学习,天天向上

第三章软件总体设计方案

主程序流程图:

软件程序从开始执行,先通过初始化各个寄存器,经过扫描按键来决定是否设定参数来执行相应功能的程序,进而在数码管上显示。如图3-1:

开始 定时器及中断定时器初始化

-11

是否设定参数 执行时钟秒表 闹铃设定程序 N Y 执行显示程序 - 好好学习,天天向上

图3-1 主程序流程图

总中断程序流程

恢复初值保护 Tcount加1 Tount1=100秒数值加1second归

判断时间与零

=60? 闹钟时间是执行闹钟程序=1 分数值time..minute加归零

闹钟程序是=60? 否行完全

实数值加归零 返回主程序

时数值归零 >23 -12

- 好好学习,天天向上

图3-2 中断流程图

时间的显示通过此中断程序来控制,并且通过与设定的时间进行比较来判断是否让闹铃工作。程序中包含时间的设定,如设定tcount来使秒等工作,进而来控制分和时。如上图图3-2。

-13

- 好好学习,天天向上

A. 秒表中断程序流程

秒表功能通过另一个程序来实现。通过保护主程序的数

据来进行秒表功能。程序中需要设置秒表的具体显示方法。如图3-3:

-14

恢复初值保护 10ms计数器加1恢复初值保护 N Ms>100? Y 秒计数器加1,10ms计数器归零,即sec++,ms=0 N Sec>60? Y 分计数器加1,秒计数器归零,即minit++,sec=0 输出字码,中断结束,返回上级主程序 - 好好学习,天天向上

图3-3秒表中断程序流程图

B.中断和清零程序流程

图3-4为进入中断和清零图,程序中通过扫描来判断按键是否按下进行执行相应的中断来事实现相应的功能。

判断分加键tminute

是否按下,=0 判断秒表miaobiao1

是否按下按下,=0 进入秒表中断,执行秒表中断程序 返回上级主程序 判断清零键miaobiao2

是否按下,=0 清零所有的计数器,各个显示的字码。 -15

- 好好学习,天天向上

-16

图3-4 中断和清零程序流程图

- 好好学习,天天向上

控制电路的C语言源程序

根据流程图,经过认真分析得出控制电路的源程序如下:

-17

- 好好学习,天天向上

#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,0x10,0x08,0x04,0x02,0x01};

unsigned char code SEG7[11]={0xC0,/*0*/ 0xF9,/*1*/

0xA4,/*2*/

0xB0,/*3*/ 0x99,/*4*/

0x92,/*5*/ 0x82,/*6*/

0xF8,/*7*/ 0x80,/*8*/ 0x90,/*9*/

0xBF,/*-*/

};/*数字显示数组*/ sbit miaobiao1=P1^0; sbit tminute=P1^1; sbit thour=P1^2; sbit miaobiao2=P1^3;

-18

- 好好学习,天天向上

sbit alarm=P1^4; sbit P0_0=P0^0; sbit P1_5=P1^5; sbit P1_6=P1^6;

sbit P1_7=P1^7;/*端口定义*/ uchar ms=0; uchar flag=0; uchar sec=0; uchar minit=0; struct

time{uchar

second;uchar

hour;}time1; uchar n,i; void delay(n) {while(n--)

{

for(i=120;i>0;i--); } }

/*延时子程序*/ void modify(void) { EA=0;

-19

minute;uchar

- 好好学习,天天向上

if(thour==0) {

if(flag==0) {

dat1[6]++;delay(280); if(dat1[6]>9)

{

dat1[6]=0; dat1[7]++; }

}

if(flag==1) {

else if((dat1[7]>1)&&(dat1[6]>3)) {dat1[7]=0; dat1[6]=0; }

alarms[6]++;delay(300);

if(alarms[6]>9) {

alarms[6]=0;alarms[7]++;

if(alarms[7]>2) {

alarms[7]=0;

-20

- 好好学习,天天向上

}

}

dat[6]=alarms[6]; }

if(tminute==0) {

if(flag==0) {

dat1[3]++;delay(280);

if(dat[3]>=9) {

dat1[4]++;dat1[3]=0; }

if(dat1[4]>5) {

dat1[4]=0; }

dat[7]=alarms[7]; }

}

-21

if(flag==1) {

- 好好学习,天天向上

alarms[3]++; delay(300); if(alarms[3]>9) {

alarms[4]++;alarms[3]=0;

if(alarms[4]>5) {

alarms[4]=0;

}

}

dat[3]=alarms[3]; dat[4]=alarms[4]; }

if(miaobiao1==0) {TR0=0;ET0=0;TR1=1;ET1=1; }

if(miaobiao2==0)

{ }

TR0=1;ET0=1;TR1=0;ET1=0;

-22

dat2[0]=0; dat2[1]=0; dat2[3]=0;

- 好好学习,天天向上

dat2[4]=0; dat2[6]=0; dat2[7]=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; dat[0]=0; dat[1]=0;

dat[2]=10;

dat[3]=0;

-23

dat[4]=0; dat[5]=10; dat[6]=0; dat[7]=0;

- 好好学习,天天向上

} EA=1; }/*按键扫描*/ void init(void) {

TMOD = 0x11; TH0 = 0xDB; TL0 =0xFF;

TH1=0xDB; TL1=0xFF;

辉.孙东辉.编著MCS_51单片机应用

ET0 = 1;

教程清华大学出版社..

[2] 陆剑.单片机应用技术指导书 河南工业职业技术学院. [3] 汪道辉.单片机系统设计与实践.电子工业出版社 [4] 第二版.51系列单片机设计实例.北京航空航天大学出版社

[5] 辛友顺、胡永生、薛小玲.单片机应用系统设计与实现.福建科学技术出版社

[6] 黄庆华、张永格.单片机开发 与实例.电子工业出版社. [7] 闫玉德、俞红.MCS-51单片机原理与应用(C语言版).机械工业出版社

-24

因篇幅问题不能全部显示,请点此查看更多更全内容