基于单片机的简易时钟设计设计
基于单片机电子时钟的设计与实现
基于单片机电子时钟的设计与实现一、设计目标设计一个基于单片机的电子时钟,能够准确显示时间并能够进行设置和调整。
二、硬件设计1.时钟部分:采用晶振芯片提供准确的时钟信号2.数码管显示部分:使用共阴数码管进行数字显示3.按键部分:设计几个按键用于设置和调整时间4.电源部分:采用直流电源供电三、软件设计1.功能设计a.时间设置功能:通过按键可以设置当前的时间,包括小时、分钟和秒钟。
b.时间调整功能:通过按键可以调整当前的时间,包括小时、分钟和秒钟。
c.时间显示功能:通过数码管可以实时显示当前的时间。
2.代码实现以C语言为例,以下是一个基于单片机的电子时钟的代码实现示例:```c#include <reg51.h>sbit DS18B20=P1^3; // 定义18B20数据线接口sbit beep=P2^3; // 定义蜂鸣器接口unsigned char hour,min,sec; // 定义小时、分钟、秒钟变量//函数声明void Delay_1ms(unsigned int count);bit Ds18b20Init(;unsigned char Ds18b20ReadByte(;void ReadTime(;void WriteTime(;void DisplayTime(;//主函数void mainP2=0x00;WriteTime(; // 写入时间while(1)ReadTime(; // 读取时间DisplayTime(; // 显示时间Delay_1ms(1000); // 延时1秒}//毫秒延时函数void Delay_1ms(unsigned int count) unsigned int i, j;for(i=0; i<count; i++)for(j=0; j<1275; j++);//18B20初始化函数bit Ds18b20Initbit presence;DS18B20=0;Delay_1ms(100); // 延时450us~1000us DS18B20=1;Delay_1ms(10); // 延时15us~60us presence=DS18B20;Delay_1ms(30); // 延时60us~240us return presence;//18B20读取字节函数unsigned char Ds18b20ReadByte unsigned char i, dat;for(i=0; i<8; i++)DS18B20=0;//主机发起读时序_nop_(; // 延时1us_nop_(; // 延时1us_nop_(; // 延时1usDS18B20=1;//主机释放总线_nop_(; // 延时1us_nop_(; // 延时1us_nop_(; // 延时1usdat,=(DS18B20<<i); // 读取数据位,存放在dat变量中Delay_1ms(3); // 读时序完成后等待48us再接收下一位}return dat;//读取时间函数void ReadTimeunsigned char temp;temp=0x00;while(temp!=0xaa)Ds18b20Init(; // 初始化温度传感器Delay_1ms(1);DS18B20=0xcc;Delay_1ms(1);DS18B20=0xbe;Delay_1ms(1);temp=Ds18b20ReadByte(; // 读取时间数组的标志位}for(temp=0; temp<7; temp++)//写入时间函数void WriteTimeunsigned char i,j;while(1)Ds18b20Init(;Delay_1ms(1);DS18B20=0xcc;Delay_1ms(1);DS18B20=0x4e;Delay_1ms(1);for(i=0; i<7; i++)DS18B20=0x55;Delay_1ms(1);DS18B20=0xaa;Delay_1ms(1);Ds18b20Init(;Delay_1ms(1);DS18B20=0xcc;Delay_1ms(1);DS18B20=0x48;Delay_1ms(1);j=Ds18b20ReadByte(; // 判断是否写入成功if(j==0x0a)break;}//显示时间函数void DisplayTimeP1=seg[hour/10]; // 显示十位小时P2=(P2&0xf0),0x08; // 点亮第一个数码管Delay_1ms(5); // 延时一段时间P2=0x0f;//熄灭数码管P1=seg[hour%10]; // 显示个位小时P2=(P2&0xf0),0x04; // 点亮第二个数码管Delay_1ms(5); // 延时一段时间P2=0x0f;//熄灭数码管P1=seg[min/10]; // 显示十位分钟P2=(P2&0xf0),0x02; // 点亮第三个数码管Delay_1ms(5); // 延时一段时间P2=0x0f;//熄灭数码管P1=seg[min%10]; // 显示个位分钟P2=(P2&0xf0),0x01; // 点亮第四个数码管Delay_1ms(5); // 延时一段时间P2=0x0f;//熄灭数码管P1=0x00;//空显示P2=0x00;//熄灭数码管```四、总结通过以上的硬件设计和软件实现,可以实现一个基于单片机的电子时钟。
基于单片机电子时钟的设计
基于单片机电子时钟的设计一、设计背景随着科技的不断进步,电子设备在我们的生活中扮演着越来越重要的角色。
时钟作为时间的测量工具,也从传统的机械时钟逐渐发展为电子时钟。
单片机作为一种集成度高、功能强大的微控制器,为电子时钟的设计提供了高效、可靠的解决方案。
基于单片机的电子时钟具有精度高、易于编程、成本低等优点,能够满足人们对时间测量和显示的各种需求。
二、系统设计方案1、硬件设计单片机选择:选择合适的单片机是整个系统设计的关键。
常见的单片机如STM32、AT89C51 等,具有不同的性能和特点。
根据系统需求,我们选择了 AT89C51 单片机,其具有成本低、性能稳定等优点。
时钟芯片:为了保证时间的准确性,需要选择高精度的时钟芯片。
DS1302 是一款常用的实时时钟芯片,具有低功耗、高精度等特点,能够为系统提供准确的时间信息。
显示模块:显示模块用于显示时间。
常见的显示模块有液晶显示屏(LCD)和数码管。
考虑到显示效果和成本,我们选择了 1602 液晶显示屏,能够清晰地显示时间、日期等信息。
按键模块:按键模块用于设置时间和调整功能。
通过按键可以实现时间的校准、闹钟的设置等功能。
电源模块:为整个系统提供稳定的电源。
可以选择电池供电或外部电源供电,根据实际使用场景进行选择。
2、软件设计编程语言:选择合适的编程语言进行软件编程。
C 语言是单片机编程中常用的语言,具有语法简单、可读性强等优点。
主程序流程:主程序首先进行系统初始化,包括单片机端口初始化、时钟芯片初始化、显示模块初始化等。
然后读取时钟芯片中的时间信息,并将其显示在液晶显示屏上。
通过按键检测模块,判断是否有按键操作,如果有,则进行相应的处理,如时间校准、闹钟设置等。
中断服务程序:为了保证时间的准确性,需要使用定时器中断来实现时钟的计时功能。
在中断服务程序中,对时钟芯片进行时间更新,确保时间的准确性。
三、硬件电路设计1、单片机最小系统单片机:AT89C51 单片机是整个系统的核心,负责控制和协调各个模块的工作。
基于单片机的简易时钟设计
基于单片机的简易时钟设计引言:随着科技的迅猛发展,数字化时钟的需求也越来越大。
而基于单片机的简易时钟设计,具有体积小、功耗低、精确度高等优势,被广泛应用于各个领域。
本文将从硬件设计、软件设计、功能完善等方面介绍基于单片机的简易时钟设计。
一、硬件设计1.电源部分时钟的电源部分通常采用直流电源,由电源模块提供稳定的电压和电流。
可以通过使用稳压器或者降压模块,将输入的直流电源稳定为所需电压(通常是3.3V或者5V)。
2.时钟显示部分时钟显示通常采用数码管进行显示。
数码管分为共阳数码管和共阴数码管两种。
共阳数码管是指数码管的阳极(COM)接VCC,数码管的每一个LED阴极(Segment)通过控制脚控制。
共阴数码管则是数码管的阴极接地,数码管的每一个LED阳极通过控制脚控制。
3.按键部分按键用于对时钟进行设置和调整。
常用的按键有4个,分别为设置按键、调整按键、确认按键和返回按键。
通过按下不同的按键,可以对时钟进行不同的设置和调整。
4.单片机部分单片机是时钟的核心部分,负责控制全部的功能。
可以选择各种不同的单片机,如AVR、STM32等。
根据需求选择合适的单片机,具有较好的处理能力和存储容量。
二、软件设计1.初始化在启动时,需要对单片机进行初始化,包括端口的设置、时钟的设置、定时器的设置等。
通过初始化,可以保证系统正常运行。
2.时钟计时通过定时器控制单片机的工作频率,实现时钟的精确计时。
可以设置定时器的计数周期,根据设定的时钟频率进行计时,并将计时结果转换为时、分和秒显示在数码管上。
3.按键控制通过按键控制可以对时钟进行设置和调整。
可以通过编程实现按键的检测和响应,并且根据按键的不同操作进行相应的功能。
4.时钟显示时钟显示是时钟设计的核心部分。
通过将时钟计时得到的时、分和秒显示在数码管上,实现时间的显示功能。
可以通过多个数码管的组合方式,实现不同格式的时间显示,如时、分、秒的显示、年、月、日的显示等。
三、功能完善1.闹钟功能可以在时钟中添加闹钟功能。
基于单片机电子时钟设计与制作
基于单片机电子时钟设计与制作一、设计需求与原理我们的目标是设计一款能够准确显示时间(包括小时、分钟和秒),具备设置时间功能,并且可以在不同的显示模式(如 12 小时制和 24小时制)之间切换的电子时钟。
其工作原理主要基于单片机的控制。
单片机作为核心控制器,接收来自时钟芯片的时间数据,并将其处理后输出到显示模块进行显示。
同时,通过按键模块,用户可以向单片机输入指令,实现时间的设置和显示模式的切换等操作。
二、硬件设计1、单片机选择我们选用常见的 STC89C52 单片机,它具有性能稳定、价格低廉、易于编程等优点。
2、时钟芯片DS1302 时钟芯片被用于提供准确的时间信息。
它能够在掉电情况下保持时间数据不丢失,保证了时钟的可靠性。
3、显示模块为了清晰直观地显示时间,采用了液晶显示屏(LCD1602)。
它能够显示多行字符,满足我们显示小时、分钟、秒以及其他相关信息的需求。
4、按键模块设置四个独立按键,分别用于时间的调整(增加、减少)、显示模式的切换以及时间设置的确认。
5、电源模块为整个系统提供稳定的 5V 直流电源,可以通过 USB 接口或者电池进行供电。
三、软件设计1、编程语言使用 C 语言进行编程,它具有语法简单、可读性强、可移植性好等特点。
2、程序流程初始化系统后,单片机不断从时钟芯片读取时间数据,并将其显示在液晶显示屏上。
当检测到按键操作时,进入相应的处理函数,实现时间设置和显示模式切换等功能。
四、制作过程1、硬件焊接首先,将各个元器件按照原理图焊接在电路板上。
注意焊接的质量,避免虚焊和短路。
2、软件烧录使用编程器将编写好的程序烧录到单片机中。
3、系统调试接通电源,检查液晶显示屏是否正常显示,按键是否能够准确响应操作。
如果出现问题,通过调试工具(如示波器、逻辑分析仪等)进行故障排查和修复。
五、系统测试1、时间准确性测试将制作好的电子时钟与标准时间进行对比,观察其在长时间运行中的时间准确性。
2、功能测试测试时间设置功能、显示模式切换功能是否正常,按键操作是否灵敏可靠。
基于51单片机的简易电子钟设计
基于51单片机的简易电子钟设计一、设计目的现代社会对于时间的要求越来越精确,电子钟成为家庭和办公场所不可缺少的设备之一、本设计基于51单片机,旨在实现一个简易的电子钟,可以显示当前的时间,并且能够通过按键进行时间的调整和设置闹钟。
二、设计原理本设计主要涉及到51单片机的IO口、定时器、中断、LCD显示技术等方面知识。
1.时钟模块时钟模块采用定时器0的中断进行时间的累加和更新。
以1秒为一个时间单位,每当定时器0中断发生,就将时间加1,并判断是否需要更新小时、分钟和秒的显示。
同时,根据用户按键的操作,可以调整时间的设定。
2.显示模块显示模块采用16x2字符LCD显示屏,通过51单片机的IO口与LCD连接。
可以显示当前时间和设置的闹钟时间。
初次上电或者重置后,LCD显示时间为00:00:00,通过定时器中断和键盘操作,实现时间的更新和设定闹钟功能。
3.键盘模块键盘模块采用矩阵键盘连接到51单片机的IO口上,用于用户进行时间的调整和设置闹钟。
通过查询键盘的按键状态,根据按键的不同操作,实现时间的调整和闹钟设定功能。
4.中断模块中断模块采用定时器0的中断,用于1秒的定时更新时间。
同时可以添加外部中断用于响应用户按键操作。
三、主要功能和实现步骤1.系统初始化。
2.设置定时器,每1秒产生一次中断。
3.初始化LCD显示屏,显示初始时间00:00:00。
4.查询键盘状态,判断是否有按键按下。
5.如果按键被按下,根据不同按键的功能进行相应的操作:-功能键:设置、调整、确认。
-数字键:根据键入的数字进行时间的调整和闹钟设定。
6.根据定时器的中断,更新时间的显示。
7.判断当前时间是否与闹钟设定时间相同,如果相同,则触发闹钟,进行提示。
8.循环执行步骤4-7,实现连续的时间显示和按键操作。
四、系统总结和改进使用51单片机设计的简易电子钟可以显示当前时间,并且实现时间的调整和闹钟设定功能。
但是由于硬件资源有限,只能实现基本的功能,不能进行其他高级功能的扩展,例如闹铃的音乐播放、温度、湿度的显示等。
基于单片机的电子时钟设计
基于单片机的电子时钟设计电子时钟是人们日常生活中常见的设备之一,它不仅能够准确显示时间,还可以搭配其他功能,如闹钟、温度显示等。
本文将介绍基于单片机的电子时钟的设计原理和步骤,并探讨其在现代生活中的应用。
一、设计原理基于单片机的电子时钟主要由以下几个模块组成:时钟模块、显示模块、控制模块和电源模块。
时钟模块负责获取当前时间并进行计时,显示模块用于将时间信息显示出来,控制模块用于处理用户的输入操作,电源模块为电子时钟提供稳定的电源。
1. 时钟模块时钟模块的核心是一个定时器,它可以定时触发中断,通过中断服务程序来更新时间。
在单片机中,我们可以使用定时器模块来实现这个功能,通过设定合适的定时器参数,可以实现从毫秒级到秒级的计时精度。
2. 显示模块显示模块通常采用数码管或者液晶显示屏来显示时间信息。
数码管可以直接显示数字,在低功耗和成本方面具有优势;液晶显示屏可以显示更多的信息,具有更好的可视角度和美观性。
在电子时钟中,我们可以通过控制显示模块的引脚,以适当的方式显示小时、分钟和秒数。
3. 控制模块控制模块主要用于处理用户的输入操作,如设置闹钟时间、调整时间等。
可以通过按键开关、旋转编码器或者触摸屏等方式来实现用户交互。
当用户按下按键或者滑动触摸屏时,控制模块会相应地改变时钟模块中的时间数据或者触发其他操作。
4. 电源模块电子时钟需要一个稳定的电源来工作,通常使用交流电转直流电的方式进行供电。
电源模块可以通过整流、滤波和稳压等电路来提供稳定的直流电源。
二、设计步骤基于单片机的电子时钟的设计步骤如下:1. 确定需求和功能:首先需要明确设计的需求和功能,包括显示方式、时间格式、附加功能等。
2. 选择单片机:根据需求选择适合的单片机型号,考虑处理性能、存储空间、外设接口等因素。
3. 设计电路图:根据选择的单片机和其他模块,设计电子时钟的电路图。
包括时钟模块、显示模块、控制模块和电源模块的连接方式。
4. 编写源代码:根据电路图和功能需求,编写单片机的源代码。
基于单片机的时钟设计6位LED
基于单片机的时钟设计6位LED1. 引言时钟是我们日常生活中必不可少的工具之一。
设计一个基于单片机的6位LED时钟,不仅可以提供时间显示功能,还能够增加一些附加功能,如闹钟、计时器等。
本文将介绍基于单片机的时钟设计方案,并提供详细的电路原理图和源代码。
2. 设计思路基于单片机的时钟设计通常采用时分秒的显示方式,并通过按键进行时间的调整和功能的切换。
考虑到使用方便和成本等因素,我们选择采用6位LED数码管作为显示屏,并使用74HC595芯片进行驱动。
2.1 电路设计电路的主要部分包括单片机、时钟模块、数码管及驱动芯片。
单片机的核心是时钟芯片,用于计时和存储时间数据。
时钟模块提供了精确的时间信号,可以与单片机进行通信。
数码管通过74HC595芯片进行驱动,以实现数字的显示。
2.2 软件设计软件设计是基于单片机的时钟设计中非常重要的一环。
主要包括以下功能:•时间显示:将时、分、秒的数据转换为数码管的显示信息,并实现动态显示效果。
•时间调整:通过按键对时钟进行时间的调整,包括调整小时、分钟、秒钟。
•附加功能:实现闹钟、计时器等附加功能,可以通过按键进行设置和开关。
3. 电路原理图电路的原理图如下:+--------------+| 数码管 |+--------------+|+--------------------------+| 74HC595驱动芯片 |+--------------------------+|+--------------+| 单片机 |+--------------+|+---------------------+| 时钟模块 |+---------------------+4. 源代码以下是基于单片机的时钟设计的部分源代码示例:#include <reg52.h>sbit SCLK=P1^0; // 74HC595芯片时钟输入sbit RCLK=P1^1; // 74HC595芯片锁存输出sbit DIO=P1^2; // 74HC595芯片串行数据输入// 数字码表unsigned char code number[10]={0x3F, // 00x06, // 10x5B, // 20x4F, // 30x66, // 40x6D, // 50x7D, // 60x07, // 70x7F, // 80x6F// 9};void delay(unsigned int t){unsigned int i, j;for(i=0; i<t; i++)for(j=0; j<123; j++);}void display(unsigned char *num){unsigned char i;for(i=0; i<8; i++){DIO = num[i];SCLK = 0;SCLK = 1;}RCLK = 0;RCLK = 1;}void main(){unsigned char time[8] = {0, 0, 0, 0, 0, 0, 0, 0};unsigned char i, j;while(1){// 获取当前时间// 进行时间调整// 显示时间display(time);// 延时0.5秒delay(500);}}5. 结语基于单片机的6位LED时钟设计,通过硬件和软件的设计实现了时间的显示和调整功能,并可以扩展其他附加功能。
基于STC89C52单片机时钟的设计与实现
基于STC89C52单片机时钟的设计与实现1. 本文概述本文主要介绍了基于STC89C52单片机和DS1302时钟芯片的电子时钟设计与实现。
该电子时钟系统具有年月日等基本时间显示功能,并集成了秒表计时处理、闹钟定时、蜂鸣器和温度显示等附加功能。
系统采用LCD1602作为液晶显示器件,通过单片机对时钟和温度等数据进行处理后传输至LCD进行显示。
用户可以通过按键对时间进行调节,同时,单片机还通过扩展外围接口实现了温度采集等功能。
本文的目标是提供一个功能丰富、易于操作的电子时钟系统,为学习和应用单片机技术提供一个实用的案例。
2. 系统设计要求在设计基于STC89C52单片机的时钟系统时,我们需要考虑以下几个关键的设计要求:时钟系统必须具备基本的时间显示功能,能够以小时、分钟和秒为单位准确显示当前时间。
系统还应支持设置闹钟功能,允许用户设定特定的时间点进行提醒。
系统需要保证长时间稳定运行,具备良好的抗干扰能力,确保在各种环境下都能准确计时。
还应具备一定的容错能力,即使在操作失误或外部干扰的情况下,也能保证系统的正常运行。
用户界面应简洁直观,便于用户快速理解和操作。
时钟的显示部分应清晰可见,即使在光线较暗的环境下也能保持良好的可视性。
同时,设置和调整时间的操作应简单易懂,方便用户进行日常使用。
在设计时钟系统时,应考虑到未来可能的功能扩展,如温度显示、日期显示等。
系统的设计应具有一定的灵活性和扩展性,以便在未来可以轻松添加新的功能模块。
鉴于时钟系统可能需要长时间运行,能耗是一个重要的考虑因素。
设计时应选择低功耗的元件,并优化电源管理策略,以延长电池寿命或减少能源消耗。
在满足上述所有要求的同时,还需要控制成本,确保产品的市场竞争力。
这可能涉及到对单片机的编程优化、选择性价比高的外围元件等措施。
通过满足上述设计要求,我们可以确保开发出一个功能完善、稳定可靠、用户友好、易于扩展、节能环保且成本效益高的STC89C52单片机时钟系统。
基于单片机的时钟设计
基于单片机的时钟设计时钟是现代社会不可或缺的电子产品,它不仅能方便地显示时间,还可以提供闹铃、定时器等功能。
基于单片机的时钟设计通过集成电路的形式实现各种功能,具有节省空间、功耗低和设计灵活的优势。
一、设计需求设计一个基于单片机的时钟,具有以下功能:1.实时时间显示:通过液晶显示屏显示当前的小时、分钟和秒钟,并能够自动更新时间。
2.闹铃功能:设定闹铃时间后,在设定时间时会自动响铃。
3.定时器功能:设定一个时间段后,经过设定时间后会弹出提醒。
二、硬件设计1.单片机选择:选择一款适合时钟设计的单片机,具有较高的计算能力和丰富的接口资源。
2.时钟模块:通过连接实时时钟模块,获取准确的时间数据。
实时时钟模块通常采用DS1302或DS3231芯片。
3.液晶显示屏:通过连接液晶显示屏模块,将时间数据显示出来。
液晶显示屏通常采用16x2字符型液晶显示屏。
4.按键开关:通过连接按键开关模块,实现对时钟功能的设置和切换。
5.喇叭:通过连接喇叭模块,实现闹铃功能。
6.其他辅助电路:例如稳压电路、外部晶振等。
三、软件设计1.时钟显示:通过读取实时时钟模块中的时间数据,将其显示在液晶显示屏上。
可以设置定时器中断来实现每秒钟更新一次时间。
2.闹铃功能:用户可以通过按键设置闹铃时间,当实时时钟模块的时间与设定的闹铃时间相同时,触发闹铃,通过喇叭发出声音。
3.定时器功能:用户可以通过按键设置定时时间,当设定的时间到达时,弹出提醒提示。
4.按键处理:通过检测按键的状态进行相应的操作,如切换功能、设置闹铃时间、定时时间等。
5.其他功能:根据实际需求可以添加更多的功能,如自动亮度调节、温度显示等。
四、总结基于单片机的时钟设计具有灵活、可扩展性强的特点,可以根据用户需求自定义各种功能。
通过合理的硬件设计和软件编程,可以实现实时时间显示、闹铃功能和定时器功能等。
这种设计不仅能满足人们对时钟的基本需求,还能提供更多的便利功能。
总之,基于单片机的时钟设计是一种相对成熟和常见的设计,通过合理的硬件布局和软件编程,可以实现各种功能,满足人们对时钟的需求。
基于单片机的简易电子时钟设计
基于单片机的简易电子时钟设计1 设计任务与要求1.1 设计背景数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时器功能也可以完成数字钟电路的设计,因此进行数字钟的设计是必要的。
在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。
单片根据以上的电子时钟的设计要求可以分为以下的几个硬件电路模块:单片机模块、数码显示模块与按键模块,模块之间的关系图如下面得方框电路图1所示。
机具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。
1.2 课程设计目的(1)巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;(2)培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力;(3)过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤。
1.3 设计要求1).时制式为24小时制。
2).采用LED数码管显示时、分,秒采用数字显示。
3).具有方便的时间调校功能。
4).计时稳定度高,可精确校正计时精度。
2 总体方案设计2.1 实现时钟计时的基本方法利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现时钟计数。
(1) 计数初值计算:把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位秒,而100次计数可用软件方法实现。
基于51单片机的简易电子钟设计
基于51单片机的简易电子钟设计孟羽佳【摘要】in this paper, STC89C51 microcontroller as the core controller, on its pin connected to other electronic components and peripheral circuits, the design of an electronic clock. The electronic clock display time is the realization of digital control, digital tube is used in this design is 6 digital tube, to achieve the "time", "sub", "seconds" digital display, the interval between them with digital tube decimal point to segmentation, using74HC573 to drive six 8 digital tube latch, and generates a clock pulse using quartz crystal, and the use of single-chip internal timer count, through the program and control circuit in the digital tube dynamic display. This paper provides a simple and inexpensive design, the majority of electronic technology enthusiasts can refer to and make their own.%本文以STC89C51单片机为核心控制器,在它的引脚上接上其他电子元器件以及外围电路,设计了一个电子时钟.这个电子钟显示时间是用数码管实现的,本设计选用的数码管是6位数码管,以分别实现对"时"、"分"、"秒"进行数字显示,它们之间的间隔用数码管上的小数点来分割,采用74HC573锁存器来驱动六位8段数码管,并利用石英晶振产生时钟脉冲,并利用单片机内部的定时器计数,通过程序和外围电路控制数码管进行动态显示.本文提供一种简单且廉价的设计方案,广大的电子科技爱好者可以参考并自行制作.【期刊名称】《电子测试》【年(卷),期】2017(000)007【总页数】4页(P24-26,28)【关键词】电子钟;数码管;STC89C51单片机【作者】孟羽佳【作者单位】东北林业大学机电工程学院,黑龙江哈尔滨,150040【正文语种】中文电子钟是当前市面上十分普及的计时装置,它成本低廉,计时准确,而且由于其显示装置可以发光,因此夜间也清晰可见,它的性价比是比较高的,现在人们尤其是在青年人群中,使用电子计时装置的人数已经大大超过了传统的上弦表。
基于单片机的电子时钟的设计
基于单片机的电子时钟的设计基于单片机的电子时钟是一种采用单片机作为主控芯片的数字显示时钟。
它能够准确显示时间,并可以通过编程实现其他功能,如闹钟、倒计时、温湿度显示等。
本文将介绍基于单片机的电子时钟的设计原理、硬件电路和软件编程等内容。
1.设计原理基于单片机的电子时钟的设计原理是通过单片机的计时器和定时器模块来实现时间的计数和显示。
单片机的计时器可以通过设定一个固定的时钟频率进行计数,而定时器可以设定一个固定的计数值,当计数到达设定值时,会触发一个中断,通过中断服务程序可以实现时间的更新和显示。
2.硬件电路基于单片机的电子时钟的硬件电路主要包括单片机、显示模块、按键模块和时钟模块。
其中,单片机作为主控芯片,负责控制整个电子时钟的运行;显示模块一般采用数字管或液晶屏,用于显示时间;按键模块用于设置和调整时间等功能;时钟模块用于提供稳定的时钟信号。
3.软件编程基于单片机的电子时钟的软件编程主要分为初始化和主程序两个部分。
初始化部分主要是对单片机进行相关寄存器的设置,包括计时器和定时器的初始化、中断的使能等;主程序部分是一个循环程序,不断地进行时间的计数和显示。
3.1初始化部分初始化部分首先要设置计时器模块的时钟源和计数模式,一般可以选择内部时钟或外部时钟作为时钟源,并设置计时器的计数模式,如自动重装载模式或单次模式;然后要设置定时器模块的计数值,一般可以通过设定一个固定的计数值和计数频率来计算出定时时间;最后要设置中断使能,使得当定时器计数器达到设定值时触发一个中断。
3.2主程序部分主程序部分主要是一个循环程序,通过不断地读取计时器的计数值,并计算得到对应的时间,然后将时间转换成显示的格式,并显示在显示模块上。
同时,还可以通过按键来实现时间的设置和调整功能,如增加和减少小时和分钟的值,并保存到相应的寄存器中。
4.功能扩展-闹钟功能:设置闹钟时间,并在设定的时间到达时触发报警;-温湿度显示:通过连接温湿度传感器,实时显示当前的温度和湿度数据;-倒计时功能:设置一个倒计时的时间,并在计时到达时触发相应的动作。
基于单片机的电子时钟的设计与实现
基于单片机的电子时钟的设计与实现电子时钟是一种使用微处理器或单片机作为主控制器的数字时钟。
它不仅能够显示当前时间,还可以具备其他附加功能,如闹钟、日历、温度显示等。
一、设计目标设计一个基于单片机的电子时钟,实现以下功能:1.显示时间:小时、分钟和秒钟的显示,采用7段LED数码管来显示。
2.闹钟功能:设置闹钟时间,到达设定的时间时会发出提示音。
3.日历功能:显示日期、星期和月份。
4.温度显示:通过温度传感器获取当前环境温度,并显示在LED数码管上。
5.键盘输入和控制:通过外部键盘进行时间、日期、闹钟、温度等参数的设置和调整。
二、硬件设计1.单片机选择:选择一款适合的单片机作为主控制器,应具备足够的输入/输出引脚、中断和定时器等功能,如STC89C522.时钟电路:使用晶振为单片机提供稳定的时钟源。
3.7段LED数码管:选择合适的尺寸和颜色的数码管,用于显示小时、分钟和秒钟。
4.温度传感器:选择一款适合的温度传感器,如DS18B20,用于获取环境温度。
5.喇叭:用于发出闹钟提示音。
6.外部键盘:选择一款适合的键盘,用于设置和调整时间、日期、闹钟等参数。
三、软件设计1.初始化:设置单片机定时器、外部中断和其他必要的配置。
2.时间显示:通过定时器中断,更新时间,并将小时、分钟和秒钟分别显示在相应的LED数码管上。
3.闹钟功能:设置闹钟时间,定时器中断检测当前时间是否与闹钟时间一致,若一致则触发警报。
4.日历功能:使用定时器中断,更新日期、星期和月份,并将其显示在LED数码管上。
5.温度显示:通过定时器中断,读取温度传感器的数据,并将温度显示在LED数码管上。
6.键盘输入和控制:通过外部中断,读取键盘输入,并根据输入进行相应的操作,如设置时间、闹钟、日期等。
7.警报控制:根据设置的闹钟时间,触发警报功能,同时根据用户的设置进行控制。
四、测试与调试完成软件设计后,进行系统测试与调试,包括验证显示时间、日期、温度等功能的准确性,以及闹钟和警报功能的触发与控制。
单片机简易时钟课程设计
单片机简易时钟课程设计一、课程目标知识目标:1. 学生能理解单片机的基本原理,掌握时钟电路的组成及工作原理。
2. 学生能运用所学编程知识,编写简易时钟程序,实现时、分、秒的正常显示。
3. 学生了解单片机在日常生活和工业中的应用,认识到单片机技术的重要性。
技能目标:1. 学生能独立完成单片机简易时钟的电路搭建,提高动手实践能力。
2. 学生能通过编程实现对时钟时间的调整,培养问题解决能力和逻辑思维能力。
3. 学生能够运用所学知识,进行课程项目的展示和汇报,提高沟通表达能力。
情感态度价值观目标:1. 学生对单片机技术产生兴趣,培养积极探索、求知若渴的学习态度。
2. 学生在课程实践中,养成团队协作、共同解决问题的良好习惯。
3. 学生通过单片机简易时钟的制作,认识到科技改变生活,增强社会责任感和创新意识。
课程性质:本课程为实践性较强的课程,结合理论知识,培养学生的动手能力和创新精神。
学生特点:学生在本年级已具备一定的单片机基础知识和编程能力,对实践操作有较高的兴趣。
教学要求:教师应注重理论与实践相结合,关注学生的个体差异,引导学生主动探究,培养实际操作能力。
在教学过程中,将课程目标分解为具体的学习成果,以便进行有效的教学设计和评估。
二、教学内容1. 理论知识:- 单片机基础原理复习;- 时钟电路的组成和工作原理;- 程序设计基础,重点讲解循环结构和条件判断;- 单片机I/O口编程及应用。
2. 实践操作:- 电路搭建:指导学生搭建简易时钟电路,熟悉相关电子元器件的使用;- 程序编写:指导学生编写简易时钟程序,实现时、分、秒的显示和调整;- 系统调试:教授学生如何对程序进行调试,确保时钟运行稳定。
3. 教学大纲:- 第一阶段:复习单片机基础原理,学习时钟电路原理,为期2课时;- 第二阶段:学习程序设计基础,进行I/O口编程实践,为期3课时;- 第三阶段:进行电路搭建和程序编写,为期4课时;- 第四阶段:系统调试,课程项目展示与评价,为期1课时。
基于单片机的简易电子时钟设计
基于单片机的简易电子时钟设计引言:电子时钟是人们日常生活中广泛应用的一种设备,基于单片机的电子时钟可以实现精确的时间显示、闹钟设置、定时功能等。
本设计将使用单片机控制电子时钟的各种功能,通过一个LCD显示屏来显示时间和其他信息。
一、设计目标:1.实现准确显示时间功能;2.设计带有闹钟设置的功能;3.实现定时功能。
二、设计原理:该电子时钟工作原理主要是通过单片机将外部的时钟信号进行调整和处理,然后控制液晶显示屏显示时间。
电子时钟的核心是单片机,通过单片机的计时功能实现时钟的准确显示,并通过输入设备设置闹钟功能和定时功能。
三、设计流程:1.系统初始化:首先,将单片机初始化,设置时钟和计时器的相关参数,开启显示屏的显示功能。
2.时间显示功能:通过计时器中断,定时更新时间,并将时间值传递给液晶显示屏显示出来。
3.闹钟设置功能:通过按键输入设置闹钟时间,将设置好的闹钟时间存储到单片机中。
4.定时功能:通过按键输入设置定时时间,将设置好的定时时间存储到单片机中,当定时时间到达时,触发相应的动作,如报警等。
四、硬件设计:1.单片机选择:选用一款适合的单片机,如51系列单片机。
2.时钟电路:通过外部晶振或者RTC芯片来提供准确的时钟信号。
3.输入设备:使用按键作为输入设备,用于设置闹钟和定时功能;4.显示屏:选用合适的液晶显示屏,用于显示时间。
五、软件设计:1.系统初始化:设置时钟和计时器的相关参数,开启显示屏的显示功能。
2.时间显示功能:通过计时器中断,定时更新时间,并将时间值传递给液晶显示屏显示出来。
3.闹钟设置功能:通过按键输入设置闹钟时间,将设置好的闹钟时间存储到单片机中。
4.定时功能:通过按键输入设置定时时间,将设置好的定时时间存储到单片机中,当定时时间到达时,触发相应的动作,如报警等。
六、实验结果:本设计可以准确显示时间,并可以设置闹钟和定时功能。
当闹钟和定时时间到达时,会触发相应的动作,实现了基本要求。
基于单片机的电子钟设计
基于单片机的电子钟设计摘要:电子钟是一种普遍使用的时钟类型。
通过单片机,可以实现数字时钟的各种功能,例如:时间显示、闹钟功能、温度显示等。
本文介绍了基于单片机的电子钟设计方案,其中包括硬件系统的设计和程序代码的实现。
该电子钟的基本功能包括:时钟模式、闹钟模式、温度显示和日期显示。
设计方案使用的单片机是AT89C52,时钟模块为DS1302。
实验结果表明,该电子钟系统具有稳定性高、精度高、实用性强等特点。
关键词:单片机、电子钟、DS13021. 概述电子钟是目前流行的现代时钟类型之一。
通过单片机,可以实现数字时钟的各种功能,例如:时间显示、闹钟功能、温度显示等。
作为一种普遍应用于家庭以及公共场所的计时工具,电子钟能够提高人们的时效性、管理效率。
本文将介绍基于单片机的电子钟设计方案,其中包括硬件系统的设计和程序代码的实现。
该电子钟的基本功能包括:时钟模式、闹钟模式、温度显示和日期显示。
设计方案使用的单片机是AT89C52,时钟模块为DS1302。
实验结果表明,该电子钟系统具有稳定性高、精度高、实用性强等特点。
2. 硬件设计2.1 系统原理系统的核心是AT89C52单片机,其包括了8051架构下所有标准的特殊功能寄存器以及升级的功能模块。
DS1302是常用的实时时钟模块,它包含一个时钟/日历的B类时钟芯片、一个31个字节的静态RAM 以及一个摆振电路。
通过与AT89C52的串行通信接口,可以实现时钟芯片与单片机的通信。
2.2 电路设计电路设计包括AT89C52单片机、DS1302时钟芯片、4个7段数码管以及相关的外围元件。
其中,输入电源电压为5V直流电压,4个7段数码管均采用共阴极的连接方式。
2.3 电路说明(1) 时钟模块DS1302DS1302是一种时钟模块,其具有许多特性,例如:硬件控制时间的计数、在停电情况下,仍能保持时间记录、考虑到掉电情况、在无外部纪念日的情况下,为计时器提供64字节的RAM等特点。
基于单片机的LCD1602电子时钟设计
基于单片机的LCD1602电子时钟设计近年来,随着物联网和智能设备的快速发展,电子时钟作为一种常见的智能设备,广泛应用于家庭、办公室等各种场合。
本文将基于单片机设计一款LCD1602电子时钟,实现时间显示、闹钟设置等功能。
一、硬件设计1.单片机选择在本设计中,选择常用的51系列单片机AT89C51,具有丰富的外设资源和强大的处理能力。
该单片机具有8位数据总线、16位地址总线,并且集成了定时/计数器、中断控制器和串行通信接口等外设。
2.显示模块选择3.时钟模块选择通过接入DS1302时钟模块,可以实现实时时钟的功能。
DS1302模块具有时钟计数器、电压检测电路、串行通信接口等,并且具有低功耗特点。
4.控制板设计根据LCD1602的引脚连接方式,设计一个控制板,用于将单片机、显示模块和时钟模块等连接在一起。
同时,需注意设计供电电路、外设输入输出电平等电路。
二、软件设计1.初始化设置通过单片机的GPIO口配置,将LCD1602和DS1302对应的引脚设置为输出模式,同时初始化LCD显示屏并进行清屏操作。
此外,需设置DS1302时钟模块的时钟、日期、闹钟等参数。
2.时间显示通过读取DS1302时钟模块的计数器,获得当前的小时、分钟和秒数,然后将其格式化为HH:MM:SS的形式,并通过LCD显示出来。
3.时间设置通过单片机的外部中断,当用户按下设置按钮后,进入时间设置模式。
在时间设置模式下,用户可以通过按下不同的按键来调整小时、分钟和秒数。
调整完成后,再次按下设置按钮即可保存设置。
4.闹钟设置通过单片机的定时器中断,设定一个闹钟定时器。
当闹钟定时器触发时,触发相应的中断,然后通过LCD显示闹钟提示。
此外,用户也可以通过按下按钮来设置闹钟时间,并通过单片机的外部中断进行处理。
5.闹钟响铃当闹钟时间到达时,触发相应的中断,通过LCD显示闹钟提示,并通过蜂鸣器发出响铃声。
总结通过本设计,可以实现一款功能齐全的LCD1602电子时钟。
基于单片机的电子时钟设计
基于单片机的电子时钟设计
要设计基于单片机的电子时钟,需要以下步骤:
1. 选择适合的单片机:根据具体的应用要求和芯片性能、价格等方面的考虑,选择一款适合的单片机。
常用的单片机有PIC、AVR、8051等。
2. 确定时钟显示方式:可以选择使用数码管、点阵字体、LCD液晶等显示方式。
需要考虑到显示效果、成本、功耗等因素。
3. 确定时钟计时方式:时钟可以通过外部晶体振荡电路、内部RC振荡电路等方式计时。
需要根据使用要求和单片机性能选择合适的计时方式。
4. 实现时间的设置和显示功能:可以通过按钮、旋钮等方式设置时间,并通过单片机控制实现时间的显示。
需要考虑到界面友好性、操作方便性等因素。
5. 实现闹钟功能:可以通过设置闹钟时间和闹铃音乐等方式实现闹钟功能,需要根据使用要求和单片机性能选择合适的硬件和软件实现方式。
6. 网络同步时间:可以通过接收网络时间协议(NTP)来实现网络同步时间,需要考虑到网络连接稳定性、实时性等因素。
7. 考虑功耗和电源电路设计:需要考虑到电子时钟的使用场景和电源供应方式,选择合适的工作电压和功耗设计、电源管理等方面的问题。
以上是设计基于单片机的电子时钟的主要步骤,需要根据具体的应用需求和技术水平进行具体的实现。
基于51单片机的电子时钟设计
基于51单片机的电子时钟设计
电子时钟是一种使用电子元件和计算机技术制造的时计,它可以显示年、月、日、时、分、秒等时间信息,并且具有显示精确、功能齐全、操
作简便等特点。
本文将基于51单片机设计一个电子时钟。
一、硬件设计:
1.时钟模块:我们可以使用DS1302时钟模块作为实时时钟芯片,它
可以提供精确的时间信息,并且可以通过单片机与之进行通信。
2.显示模块:我们可以使用共阳数码管进行时间的显示,将时钟设计
成6位7段显示器。
3.按键模块:我们可以使用按键作为输入方式,通过按键调整时间信息。
二、软件设计:
1.初始化:首先,我们需要初始化时钟模块和显示模块,使它们正常
工作。
同时,设置时钟的初始时间为系统当前时间。
2.获取时间:通过与时钟模块的通信,获取当前的时间信息,包括年、月、日、时、分、秒等。
3.显示时间:将获取到的时间信息通过显示模块显示出来,分别显示
在6个数码管上。
4.时间调整:通过按键模块的输入,判断用户是否需要调整时间。
如
果需要,可以通过按键的不同组合来调整时、分、秒等时间信息。
5.刷新显示:通过不断更新显示模块的输入信号来实现时钟的流动性,保持秒针不断运动的效果。
6.时间保存:为了保证时钟断电后依然能够保持时间,我们需要将时
钟模块获取到的时间信息保存在特定的EEPROM中。
7.闹钟功能:可以通过按键设置闹钟,当到达闹钟时间时,会通过蜂
鸣器发出响声。
以上就是基于51单片机的电子时钟设计方案。
通过对硬件和软件的
综合设计,我们可以实现一个功能齐全的电子时钟。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的简易时钟设计设计广西理工职业技术学院毕业设计(论文)说明书题目:简易电子时钟设计系别:电气工程系专业班级:11机电2姓名:黄武锦学号:20112323指导教师:黎有好二〇一三年七月二十四日目录1.概论 (1)2.整体设计思路 (2)2.1硬件各部分所能完成的功能 (3)2.2系统工作原理 (4)2.3时钟各功能分析及图解 (4)2.4.1电路各功能图解分析 (4)2.4.2电路功能使用说明 (7)3. 软件设计思路 (8)3.1 主程序模块 (8)3.2 数码管动态扫描模块 (9)3.3 当前时间计时模块 (9)3.4 闹钟输入输出模块 (10)3.5 当前时间调整模块 (12)3.6复位模块 (13)4.系统的调试和性能分析 (14)4.1系统的调试方法 (14)4.1.1输入按键的调试 (14)4.1.2复位电路的调试 (14)4.1.3显示电路的调试 (14)4.1.4整个系统的联调 (14)4.2心得体会 (15)参考文献 (15)附录 (16)附录A 系统原理图 (16)附录B 程序源代码 (17)电气信息学院课程设计评分表 (28)1.概论单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件电路设计和软件编程设计两个方面,其调试过程一般分为软件调试、硬件测试、系统调试3个过程。
如果采用单片机系统的虚拟仿真软件——Proteus,则不用制作具体的电路板也能够完成以上工作。
数字钟是采用数字电路实现对时,分,秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。
数字钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便[4]。
不仅如此,在现代化的进程中,也离不开电子钟的相关功能和原理,比如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
而且是控制的核心部分。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
电子钟在工业控制和日常生活中是很重要的,它不仅可以用于计时、提醒又可用于对机器的控制,在自动化的过程中必然有电子钟的参与,因此电子钟的应用会越来越广泛。
而且向着精确、低功耗、多功能发展。
基于单片机设计的数字钟精确度较高,因为在程序的执行过程中,任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。
从而,使数字钟的精度仅仅取决于单片机的产生机器周期电路和定时器硬件电路的精确度。
另外,程序较为简洁,具有可靠性和较好的可读性。
如果我们想将它应用于实时控制之中,只要对上述程序和硬件电路稍加修改,便可以得到实时控制的实用系统,从而应用到实际工作与生产中去。
数字电子钟的设计方法有多种,例如,可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟还可以利用单片机来实现电子钟等等。
这些方法都各有特点,其中,利用单片机实现的电子钟具有编程灵活,便于功能扩充,精确度高等特点。
2.整体设计思路这部分主要介绍工作安排和整体设计的思想。
工作过程规划如下:图2.1 整体设计思路针对要实现的功能,拟采用AT89C51单片机进行设计,AT89C51单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构[7]。
这样,既能做到经济合理又能实现预期的功能。
在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。
程序可分为显示程序、调时显示运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。
本电子钟设计主要是依照图2.1中的流程做出来的,时间分配比较均匀。
首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。
这是前期准备工作。
第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和液晶电路等。
第三部分是软件部分:先学习理解C语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。
第四部分是软件画图部分:设计好电路后进行画图,包括电路图和仿真图的绘制。
第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。
第六部分是硬件实现部分:连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。
2.1硬件各部分所能完成的功能(1)单片机发送的信号通过程序控制最终在数码管上显示出来。
(2)单片机通过输出各种电脉冲信号来驱动控制各部分正常工作。
(3)为使时钟走时与标准时间一致,校时电路是必不可少的,键盘用来校正数码管上显示的时间。
(4)单片机通过控制闹铃电路来完成定时闹钟的功能。
(5)单片机通过程序对闹铃信号灯进行控制,可方便我们对闹铃的开关以及是否在闹铃进行观察。
(6)由于要设置定时功能,所以配置了对闹钟设置的键盘。
2.2系统工作原理设计的电路主要由四模块构成:时间显示电路、信号显示电路、键盘控制电路、外设闹铃电路以及核心控制电路详细电路功能图如图2-2:图2-2 详细电路功能图本设计采用汇编语言程序设计,使单片机控制数码管显示时、分、秒,当秒计数计满60时就向分进位,分计数器计满60后向时计数器进位,小时计数器按“23翻0”规律计数。
时、分、秒的计数结果经过数据处理可直接送显示器显示。
设计采用的是时、分、秒显示,单片机对数据进行处理同时在数码管上显示。
2.3时钟各功能分析及图解2.4.1电路各功能图解分析(1)时钟运行图仿真开始运行时,或按下K7键时,时钟从00:00:00开始运行,其中按下K1键可进入当前时间调节,K2和K3分别负责加一和减一,K5键为确认键。
时钟运行图如图2-3 所示:图2-3 时钟运行图(2)闹钟开关指示图当按下K4键后,可进入闹钟设时控制,设置完后按确认,按下K6,即开闹钟,信号显示区得开/关闹钟信号灯点亮,表示当时间到达闹钟的时间时,闹铃响;再次按下闹铃,为关闹铃,此时的信号显示区得开/关闹钟信号灯熄灭。
如下图2-4:图2-4闹钟开关指示图(3)闹铃运行图当时间到达闹钟设置的时间时,蜂鸣器会按每秒两次的频率响,闹钟指示灯也会闪烁。
如下图2-5:图2-5闹铃运行图该数字钟是用一片AT89C51单片机通过编程去驱动8个数码管实现的。
通过7个开关控制,从上到下7个开关K1-K7的功能分别为:K1:设置当前时间时/分/秒K2:加一按键K3:减一按键K4:设置闹钟时间时/分/秒K5: 确认/关闭闹铃K6:开/关闹钟K7: 复位控制键分别与P1.0~P1.6口连接,通过P2口和P3口去控制数码管的显示如图所示P2口接数码管的a——g端,是控制输出编码,P3口接数码管的1——8端,是控制动态扫描输出.从P3.6输出一个信号使二极管发光,二极管在设置的闹钟时间到了时候发光,P3.7接一个蜂鸣器,若有乐曲可以去驱动扬声器实现。
2.4.2电路功能使用说明(1)各个控制键的功能:可对时间进行校准调节(只能加1);按下设置键数字时钟进入闹钟设置状态,设置闹钟的时间;时加1、分加1键是在校准时间时或设置闹钟时间对小时数或分钟数调节而设置的;按下秒切换键就可以进入秒表模式,同时秒表也开始计时,按下秒表暂停、复位键就暂停、归零,如果要重新对秒计时则可以按秒表开始、复位;清零键可以对闹钟清零。
(2)AT89C51单片机,通过编写程序对数码显示进行控制。
(3) 八个7段数码管显示时钟信号。
3. 软件设计思路根据设计的要求与内容,我们将该软件设计成七个模块,他们包括:主程序、数码管动态扫描模块、当前时间计时模块、闹钟输入输出模块、当前时间调整模块、数制转换模块以及复位模块。
3.1 主程序模块主程序模块是单片机最先编译运行的模块,所以在这个模块里,我们要设置主程序和各个中断服务程序的入口地址、各种初始化以及开关扫描等。
MCS-51系列单片机复位后,(PC)=0000H,而0003H~002BH分别为各中断的入口地址。
所以,编程时应在0000H处写一条跳转指令。
当CPU接受到中断请求信号并予以相应后,CPU把当前的PC内容压入栈中进行保护,然后转入相应的只能中断服务程序入口处执行。
一般应在相应的中断服务程序入口处写一条跳转指令,并以跳转指令的目标地址作为中断服务程序的起始地址进行编程。
初始化,是对将要用到的MCS-51系列单片机内部部件或扩展芯片进行初始工作状态设定。
下图3-1是我们设计该主程序模块的程序框图。
图3-1主程序设计框图3.2 数码管动态扫描模块在数码管动态扫描模块里,包含了两个子程序,一个是显示子程序,另一个是显示延时1MS子程序。
其中显示延时1MS子程序是用软件延时的方法进行的,过程较简单,这里就不画出它的程序框图,下图3-2为显示子程序的程序框图。
图3-2显示子程序3.3 当前时间计时模块本软件中的当前时间计时模块实际上是T0定时器的中断服务程序,我们将T0定时器工作在方式一中,并让它每50MS产生一次中断。
每产生一次中断,进入中断服务程序后,T0定时器重新转载初始值。
MS50(它是对50MS中断次数统计的存储单元地址标号)就会自加一,接着对MS50进行判断,如果MS50没有到达20次(即一秒的时间),就返回到主程序。
如果到达20次,MS50将清零,并将MIAO(MIAO是对秒进行计数的存储单元地址标号)将自加一。
接着判断MIAO是否到达60次,没到就返回,到了60秒,MIAO将被清零,FEN(FEN是对分进行计数的存储单元地址标号)自加一。
再判断FEN,过程与判断MIAO相识,也是到达60分就进1时并对分清零,时的寄存器地址标号是SHI,因为一天只有24小时,所以,如果SHI计数到了24时,它将对SHI、FEN、MIAO同时清零。
下图3-3为该中断服务的程序框图图3-3T0中断服务程序3.4 闹钟输入输出模块由于闹钟输入输出模块要实现的功能较多,所以它是我们该软件中设计耗时最长的一个模块,也是最复杂的一个模块。
而我们对其采取再分子模块策略,我们对该模块划分了6个子模块:设置闹钟时间子模块、闹钟开关子模块、检查闹钟子模块、闹钟指示灯亮子模块、闹钟转换子模块、蜂鸣器子模块。