单片机应用系统设计实例111单片机电子时钟的设计
单片机课程设--电子钟设计
单片机MCS-51数钟课程设计系别:专业:班级:姓名及学号:日期:目录单片机MCS-51数钟 (1)课程设计 (1)一、课程设计的目的 (3)二、课程设计任务 (3)三、硬件结构概述 (4)(一)复位电路 (4)(二)晶振电路 (4)(三)按键电路 (4)(四)显示部分 (5)四、软件结构概述 (5)(一)代码说明 (5)(二)按键处理思路 (10)(三)秒表设计思路 (11)五、调试过程 (12)(一)系统仿真 (12)(二)仿真过程中出现的问题及解决方案 (12)六、心得体会 (13)七、参考文献 (14)一、课程设计的目的(1)巩固、加深和扩大单片机应用的知识面, 提高综合及灵活运用所学知识解决工业控制的能力;二、(2)培养针对课题需要, 选择和查阅有关手册、图表及文献资料的自学能力, 提高组成系统、编程、调试的动手能力;三、(3)过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程, 软硬件设计的方法、内容及步骤。
四、课程设计任务(1)在ZY15MCU12BD型综合单片机实验箱的硬件结构上编写软件完成设计。
也可以在其它MCS—51单片机硬件板上完成, 或自行设计硬件并制做完成。
(2)程序的首地址应使目标机可以直接运行, 即从0000H开始。
在主程序的开始部分必须设置一个合适的栈底。
程序放置的地址须连续且靠前, 不要在中间留下大量的空闲地址, 以使目标机可以使用较少的硬件资源。
(3)6位LED数码管从左到右分别显示时、分、秒(各占用2位), 采用24小时标准计时制。
开始计时时为000000, 到235959后又变成000000。
(4)在键盘上选定3个键分别作为小时、分、秒的调校键。
每按一次键, 对应的显示值便加1。
分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。
在调校时均不向上一单位进位 (例如分加到59后变为00, 但小时不发生改变)。
(5) 软件设计必须使用MCS-51片内定时器, 采用定时中断结构, 不得使用软件延时法。
基于单片机电子时钟的设计与实现
基于单片机电子时钟的设计与实现一、设计目标设计一个基于单片机的电子时钟,能够准确显示时间并能够进行设置和调整。
二、硬件设计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;//熄灭数码管```四、总结通过以上的硬件设计和软件实现,可以实现一个基于单片机的电子时钟。
毕业设计论文_单片机电子时钟的设计
毕业设计论文_单片机电子时钟的设计摘要:电子时钟作为一种常见的时间显示装置,在现代社会中应用广泛。
本文设计了一款基于单片机的电子时钟,使用DS1307实时时钟芯片来获取系统时间,并通过数码管进行显示。
设计过程中,通过对单片机的编程和电路的连接,实现了时间的显示与调节功能,具有较高的准确性和稳定性。
该设计方案简单、实用,可用于各种场合。
关键词:单片机;电子时钟;DS1307;数码管1.引言电子时钟是一种利用电子技术构造的显示时间的装置,具有时间准确、使用简单、显示清晰等特点,广泛应用于生活和工作中。
本文以单片机为核心,设计了一款实时准确的电子时钟,提高了时间的准确度和稳定性。
2.设计原理该设计的核心是通过单片机与DS1307实时时钟芯片的连接,使得单片机可以获取到准确的系统时间,并通过数码管进行显示。
DS1307芯片通过I2C总线与单片机连接,通过读取芯片中的时间寄存器,单片机可以获得当前的时间信息。
3.硬件设计本设计中使用了AT89S52单片机作为主控芯片,通过引脚与DS1307芯片相连。
单片机的P0口接到数码管的段选信号,P1口接到数码管的位选信号,通过控制这两个口的输出状态,可实现对数码管上显示的数字进行控制。
同时,为了使时钟可以正常运行,需外接一个晶振电路为单片机提供时钟信号。
4.软件设计通过对单片机的编程,实现了以下功能:(1)初始化DS1307芯片,设置初始时间;(2)每隔一秒读取一次DS1307芯片的时间寄存器,将时间信息保存到单片机的RAM中;(3)根据当前时间信息,在数码管上显示对应的小时和分钟。
5.调试与测试经过硬件的连接以及软件的编写,进行了调试与测试。
将初始时间设置为08:30,观察数码管上的显示是否正确,以及时间是否准确。
同时,通过手动调节DS1307芯片中的时间,检查单片机是否能正确获取时间,并进行显示。
6.总结与展望本文设计了一款基于单片机的电子时钟,通过单片机与DS1307芯片的连接和编程,实现了准确的时间显示功能。
基于单片机电子时钟的设计
基于单片机电子时钟的设计一、设计背景随着科技的不断进步,电子设备在我们的生活中扮演着越来越重要的角色。
时钟作为时间的测量工具,也从传统的机械时钟逐渐发展为电子时钟。
单片机作为一种集成度高、功能强大的微控制器,为电子时钟的设计提供了高效、可靠的解决方案。
基于单片机的电子时钟具有精度高、易于编程、成本低等优点,能够满足人们对时间测量和显示的各种需求。
二、系统设计方案1、硬件设计单片机选择:选择合适的单片机是整个系统设计的关键。
常见的单片机如STM32、AT89C51 等,具有不同的性能和特点。
根据系统需求,我们选择了 AT89C51 单片机,其具有成本低、性能稳定等优点。
时钟芯片:为了保证时间的准确性,需要选择高精度的时钟芯片。
DS1302 是一款常用的实时时钟芯片,具有低功耗、高精度等特点,能够为系统提供准确的时间信息。
显示模块:显示模块用于显示时间。
常见的显示模块有液晶显示屏(LCD)和数码管。
考虑到显示效果和成本,我们选择了 1602 液晶显示屏,能够清晰地显示时间、日期等信息。
按键模块:按键模块用于设置时间和调整功能。
通过按键可以实现时间的校准、闹钟的设置等功能。
电源模块:为整个系统提供稳定的电源。
可以选择电池供电或外部电源供电,根据实际使用场景进行选择。
2、软件设计编程语言:选择合适的编程语言进行软件编程。
C 语言是单片机编程中常用的语言,具有语法简单、可读性强等优点。
主程序流程:主程序首先进行系统初始化,包括单片机端口初始化、时钟芯片初始化、显示模块初始化等。
然后读取时钟芯片中的时间信息,并将其显示在液晶显示屏上。
通过按键检测模块,判断是否有按键操作,如果有,则进行相应的处理,如时间校准、闹钟设置等。
中断服务程序:为了保证时间的准确性,需要使用定时器中断来实现时钟的计时功能。
在中断服务程序中,对时钟芯片进行时间更新,确保时间的准确性。
三、硬件电路设计1、单片机最小系统单片机:AT89C51 单片机是整个系统的核心,负责控制和协调各个模块的工作。
基于单片机的电子时钟设计
基于单片机的电子时钟设计电子时钟是人们日常生活中常见的设备之一,它不仅能够准确显示时间,还可以搭配其他功能,如闹钟、温度显示等。
本文将介绍基于单片机的电子时钟的设计原理和步骤,并探讨其在现代生活中的应用。
一、设计原理基于单片机的电子时钟主要由以下几个模块组成:时钟模块、显示模块、控制模块和电源模块。
时钟模块负责获取当前时间并进行计时,显示模块用于将时间信息显示出来,控制模块用于处理用户的输入操作,电源模块为电子时钟提供稳定的电源。
1. 时钟模块时钟模块的核心是一个定时器,它可以定时触发中断,通过中断服务程序来更新时间。
在单片机中,我们可以使用定时器模块来实现这个功能,通过设定合适的定时器参数,可以实现从毫秒级到秒级的计时精度。
2. 显示模块显示模块通常采用数码管或者液晶显示屏来显示时间信息。
数码管可以直接显示数字,在低功耗和成本方面具有优势;液晶显示屏可以显示更多的信息,具有更好的可视角度和美观性。
在电子时钟中,我们可以通过控制显示模块的引脚,以适当的方式显示小时、分钟和秒数。
3. 控制模块控制模块主要用于处理用户的输入操作,如设置闹钟时间、调整时间等。
可以通过按键开关、旋转编码器或者触摸屏等方式来实现用户交互。
当用户按下按键或者滑动触摸屏时,控制模块会相应地改变时钟模块中的时间数据或者触发其他操作。
4. 电源模块电子时钟需要一个稳定的电源来工作,通常使用交流电转直流电的方式进行供电。
电源模块可以通过整流、滤波和稳压等电路来提供稳定的直流电源。
二、设计步骤基于单片机的电子时钟的设计步骤如下:1. 确定需求和功能:首先需要明确设计的需求和功能,包括显示方式、时间格式、附加功能等。
2. 选择单片机:根据需求选择适合的单片机型号,考虑处理性能、存储空间、外设接口等因素。
3. 设计电路图:根据选择的单片机和其他模块,设计电子时钟的电路图。
包括时钟模块、显示模块、控制模块和电源模块的连接方式。
4. 编写源代码:根据电路图和功能需求,编写单片机的源代码。
单片机课程设计电子时钟
xxxxxx大学课程设计报告课程设计名称:单片机系统综合课程设计课程设计题目:电子时钟院(系):专业:班级:学号:姓名:指导教师:完成日期:xxxxxx大学课程设计报告目录第1章总体设计方案 (1)1.1设计原理 (1)1.2设计思路 (1)1.3实验环境 (2)第2章详细设计方案 (3)2.1硬件电路设计 (3)2.2主程序设计 (3)2.3功能模块的设计与实现 (4)第3章结果测试及分析 (11)3.1结果测试 (11)3.2结果分析 (11)参考文献 (12)附录 A (13)附录 B (21)附录 C (22)第1章总体设计方案1.1 设计原理根据课程设计任务书的内容,要求实现在MCS51单片机上对数字电子钟的基本功能设计,对当前时间正确显示,并可根据需要对时间进行更改,以完成时间的校对和闹钟的设置。
时钟时间以时、分、秒在6位数码管上显示,小时以24小时计时模式,分秒均为60进位。
用6MHz晶振产生振荡脉冲,定时器进行秒计时。
调整设置时间的过程运用可编程键盘上的按键进行控制,共设有5个按键,首先按键A进入校时模式或E进入闹钟模式,再分别按键B对小时或C分钟进行更改,每按键一次数码管计数显示加一,更改结束后按键D退出设置,时钟正常显示。
闹钟时间到时,蜂鸣器鸣响10秒后时钟正常显示。
1.2 设计思路采用C语言程序设计结合硬件电路设计方法,利用Lab6000实验箱来实现数字电子钟的设计。
1)提出方案根据设计要求,可将本次设计分为3个模块进行:1)时钟显示模块:主要用于时间的正确显示。
2)校时模块:此模块用于时钟的校对,以完成用户更改时间的需求。
3)闹钟模块:用于实现闹钟的时间设置和定点闹铃的功能。
2)方案论证时钟显示模块中,利用可编程定时器中断进行秒计时,将时间显示在6位数码管上。
校时模块主要利用键盘上5个键的控制完成各项功能,并在数码管上动态显示改变结果,完成设置后进入时钟显示模块。
闹钟模块的设置过程与校时模块相似,但设置完成进入时间显示模块后则等待闹铃时间,到规定时间后,通过数码管闪烁及蜂鸣器的鸣响来实现定点闹铃提醒功能。
单片机原理及应用 课程的设计电子时钟-PPT课件
1系统设计方案
1.1目的 1.利用单片机和1602液晶来显示24小时制、60分
制、60秒制,年、月、日显示。 2.具有显示和手动校对功能,24小时制、60分制、 60秒制,年、月、日显示和手动校正功能; 3.具有闹铃功能,当达到1分钟时蜂鸣器报时; 1.2思路
1.2.1 计时单元有单片机内部结构的定时器/计数 器来实现。
write_sfm(7,fen);
write_com(0x80+0x40+7);
}
if(s1num==3)
{
shi++;
if(shi==24)
shi=0;
write_sfm(4,shi);
write_com(0x40+4);
}
}
}
if(s3==0)
while(!s2); if(s1num==1) {
miao++; if(miao==60)
miao=0;
write_sfm(10,miao);
write_com(0x80+0x40+10);
}
if(s1num==2)
{
fen++;
if(fen==60)
fen=0;
void write_date(uchar date) { lcdrs=1; lcden=0; P0=date; delay(5); lcden=1; delay(5); lcden=0; }
void init() { uchar num; lcden=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); for(num=0;num<15;num++
单片机电子时钟设计程序
单片机电子时钟设计程序
1.引用头文件和定义全局变量
首先需要引用相应的头文件,例如`reg52.h`,并定义全局变量用于
存储时间、闹钟时间以及其他相关参数。
2.初始化时钟
在主函数中,首先进行时钟的初始化。
这包括设置定时器和中断相关
的寄存器,以及初始化显示屏和按钮等外设。
3.时间更新
编写一个中断服务函数,用于根据定时器的中断来更新时间。
在该中
断服务函数中,需要将全局变量中的时间进行递增,并考虑到分钟、小时、日期和星期等的进位和换算。
4.按钮输入
设置一个子函数用于读取按钮输入,并根据按钮的状态来进行相应的
操作,比如切换时钟显示模式、设置闹钟等。
5.显示时间
编写一个子函数用于将时间信息显示在数码管上。
这需要先将时间信
息转换为数码管的显示格式,然后通过IO口输出控制数码管的显示。
6.闹钟设置
使用按钮输入的功能,可以设置闹钟时间和开关闹钟功能。
当闹钟时
间到达时,可以通过控制蜂鸣器发声或点亮LED等方式来进行提醒。
7.主函数
在主函数中,循环执行按钮输入的检测和相应操作,以及时间的更新和显示等功能。
可以通过一个状态机来控制整个程序的流程。
以上是一个简要的单片机电子时钟设计程序的概述。
实际的程序设计过程中,还需要考虑到各个模块之间的交互、错误处理、电源管理以及代码的优化等细节问题。
具体的程序实现可以根据具体需求和硬件平台的差异进行适当的修改和扩展。
单片机电子时钟课程设计报告
单片机电子时钟课程设计报告一、设计目的。
本课程设计旨在通过单片机技术的应用,设计并制作一个简单的电子时钟。
通过这一设计,学生将能够掌握单片机的基本原理和应用,培养学生的动手能力和创新意识,提高学生的实际操作能力。
二、设计原理。
本电子时钟采用单片机作为控制核心,通过晶振产生的时钟信号来实现时间的计时和显示。
利用数码管来显示小时和分钟,通过按键来调整时间。
同时,通过蜂鸣器发出报时信号,实现基本的闹钟功能。
三、设计方案。
1. 硬件设计。
(1)单片机选择,本设计选用常见的51单片机作为控制核心,具有成本低、易于编程的特点。
(2)时钟电路,采用晶振作为时钟信号源,通过单片机的定时器来实现时间的计时。
(3)显示模块,采用数码管来显示小时和分钟,通过数码管的扫描显示来实现时间的动态显示。
(4)按键输入,设计按键来调整时间,包括调整小时和分钟。
(5)报时功能,通过蜂鸣器来实现基本的报时功能,可以设置闹钟时间。
2. 软件设计。
(1)时钟控制,通过单片机的定时器来实现时间的计时和更新。
(2)显示控制,设计数码管的扫描显示程序,实现时间的动态显示。
(3)按键处理,设计按键扫描程序,实现对时间的调整。
(4)报时功能,设计蜂鸣器的报时程序,实现基本的闹钟功能。
四、设计实现。
1. 硬件实现。
根据上述设计方案,完成了电子时钟的硬件连接和布线,保证各个模块之间的正常通讯和工作。
2. 软件实现。
编写了单片机的程序,实现了时钟的计时、显示和控制功能,保证了电子时钟的正常运行。
五、实验结果。
经过调试,电子时钟能够准确显示当前的时间,并能够通过按键调整时间和设置闹钟功能,报时功能也能够正常工作。
六、总结与展望。
通过本课程设计,学生掌握了单片机的基本原理和应用,培养了动手能力和创新意识。
在今后的学习和工作中,学生将能够更好地应用单片机技术,设计和制作更加复杂的电子产品。
同时,也为学生今后的科研和创新工作奠定了良好的基础。
论文_单片机电子时钟的设计 含设计图
单片机电子时钟的设计摘要单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。
单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。
由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。
这次毕业设计通过对它的学习、应用,以AT89S51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由4.5V直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达学习、设计、开发软、硬件的能力。
关键词:单片机 AT89S51 电子时钟数码管Design of the singlechip electronics clockAbstractSingle slice machine from published in 70's for 20 centuries, is compare with its very high function price, is value by people and pay attention to, apply very widely, develop very quickly. Single slice the machine physical volume is small,the weight is light,the anti- interference ability is strong,the environment haven't high request,the price is cheap,the credibility is high,vivid good,develop more easy. In order to having an above-mentioned advantage, at the our country, single slice the machine is broadly applied already to turn an equipment at industrial automation control,automatic examination,intelligence instrument appearance,home appliances,electric power electronics,the machine electricity integral whole etc. each aspect, but 51 machines is is a typical model most and have a representative most in each machine of a kind. This graduation design passes to its study and application, Take the AT89S51 chips as core, assist with the electric circuit of the necessity, design a simple electronics clock, it from the 4.5 V direct current power supply power supply, pass the figures tube can accurate manifestation time, adjust time。
单片机应用系统设计实例
一、控制原理: 虚线表示允许水位变化的上下限。 水塔由电机带动水泵供水,单片 机控制电机转动以达到对水位控 制的目的。 ①当水位上升,达到上限时,因水导电,B、C棒连通+5V。b、c均为“1”,应停止电机和水泵的工作,不再供水; ②当水位降到下限时,B、C棒都不能与A棒导电。 b、c均为“0”,应启动电机,带动水泵工作,给水塔供水; ③当水位处于上下限之间时,B与A棒导通。 b为“1”, c为“0”,无论怎样都应维持原有的工作状态。
输出控制电路
输出高电平:双向可控硅导通,电热丝通电; 输出低电平:双向可控硅截止,电热丝断电。 8155 I/O端口的负载能力不足以驱动光电耦合器的发光 二极管,用1413作为功放。 控制算法:对于温度控制系统,系统具有大热惯性,系统采用脉冲宽度调制的控制方法。 也可用PID算法、Smith算法、Dalin算法等。
温度信号输入通道
MC14433是双积分3 ½ 位的A/D转换器:采用扫描的方法, 输出3 ½ 位的BCD码,从0000~1999共2000个数码。内部有时钟源(振荡器)。 VR:基准电压输入线,其值为200mV或2V; VX:被测电压输入线,最大为199.9mV或1.999V。 DS4~DS1:分别是个、十、百、千位的选通脉冲输出线; Q3~Q0 :BCD码数据输出线,动态地输出千位、百位、十位、个位值。 即DS4有效时,Q3~Q0表示的是个位值(0~9);依次类推。 EOC与INT0相接使得MC14433每次A/D结束后,同时启动下一次转换,使其处于 连续的A/D转换中,并使得单片机在中断服务程序中读入该次转换结果。
单击此处添加大标题内容
硬件:时钟电路片 软件:片内定时器 在单片机计时的过程中,每一次秒加1,都与规定的作 息时间比较,如比较相等就进行电铃或扩音设备的开关控制。 本系统共有4项控制内容:接通电铃和断开电铃; 接通和断开扩音设备。 由P1口输出控制码进行控制,其控制码定义为: 接通电铃:0FEH 断开电铃:0FDH 接通扩音设备:7FH 断开扩音设备:0BFH
利用单片机设计电子时钟
单片机课程设计一、设计内容该课程设计是利用MCS-51单片机内部的定时/计数器、中断系统、以及外围的按键和LED显示器等部件,设计一个单片机电子时钟。
设计的电子时钟通过数码管显示,并能通过按键实现设置时间和暂停、启动控制等。
二、电子时钟设计思想:用定时/计数器T0,工作于定时,采用方式1,对12MHZ 的系统时钟进行定时计数,初值设为XXYY(自己计算)。
形成定时时间为50ms。
用片内RAM的7BH单元对50ms计数,计20次1秒钟到,然后对秒计数器78H单元加1,秒计数器加到60后向分进位,则分计数器79H单元加1而秒计数器78H单元清零;分计数器加到60后又向时进位,则时计数器7AH单元加1而分计数器79H单元清零;时计数器加到24则时计数器清零。
然后把秒、分、时计数器分成十位和个位放到8个数码管的显示缓冲区,通过数码管显示出来。
显示格式为小时十位、小时个位---分十位、分个位---秒十位、秒个位。
在处理过程中加上了按键判断程序,能对按键处理。
三、电子时钟硬件图四、软件程序:;采用8位LED软件译码动态显示程序;使用AT89C51单片机,12MHZ晶振,P0输出字段码,P2口输出位选码,用共阳;LED数码管,P1.0为调时位选择按键,P1.1为加1键,P1.2为减1键。
;片内RAM的70H到77H单元为LED数码管的显示缓冲区;78H,79H,7AH分别为秒、分、小时计数单元;7BH为50ms计数器,7CH为调时按键计数器ORG 0000HLJMP STARTORG 000BH ;定时器/计数器T0中断程序入口LJMP INTT0;主程序START:MOV R0,#70HMOV R7,#0CHINIT: MOV @R0,#00H;存储单元清零INC R0DJNZ R7,INITMOV 72H,#10;时、分、秒之间的短横显示MOV 75H,#10MOV TMOD,#01HMOV TL0,#0B0H;50ms定时初值MOV TH0,#03CHSETB EASETB ET0SETB TR0START1:LCALL SCANLCALL KEYSCANSJMP START1;延时1MS子程序DL1MS:MOV R6,#14HDL1:MOV R7,#19HDL2:DJNZ R7,DL2DJNZ R6,DL1RET;延时20MS子程序DL20MS:ACALL SCANACALL SCANACALL SCANRET;数码管显示程序SCAN:MOV A,78H ;秒计数值由二进制转十进制后MOV B,#0AH; 送入显示缓冲区相应位置DIV ABMOV 71H,AMOV 70H,BMOV A,79H;分计数值由二进制转十进制后MOV B,#0AH; 送入显示缓冲区相应位置DIV ABMOV 74H,AMOV 73H,BMOV A,7AH;时计数值由二进制转十进制后MOV B,#0AH; 送入显示缓冲区相应位置DIV ABMOV 77H,AMOV 76H,BMOV R1,#70H ;循环扫描显示MOV R5,#80H ;显示秒个位的位码(LED共阳)MOV R3,#08HSCAN1:MOV A,R5MOV P2,A;位码从P2口送出MOV A,@R1MOV DPTR,#TABMOVC A,@A+DPTRMOV P0,A;字段码从P0口送出MOV A,R5LCALL DL1MS;延时1msINC R1MOV A,R5RR AMOV R5,ADJNZ R3,SCAN1MOV P2,#00HMOV P0,#0FFHRETTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH ;“0~9”,“-”的共阳极字段码;定时器/计数器T0中断服务程序INTT0:PUSH ACCPUSH PSWCLR ET0CLR TR0MOV TL0,#0B0HMOV TH0,#03CHSETB TR0INC 7BHMOV A,7BHCJNE A,#14H,OUTT0MOV 7BH,#00INC 78HMOV A,78HCJNE A,#3CH,OUTT0MOV 78H,#00INC 79HMOV A,79HCJNE A,#3CH,OUTT0MOV 79H,#00INC 7AHMOV A,7AHCJNE A,#18H,OUTT0MOV 7AH,#00OUTT0:SETB ET0pop pswpop accRETI;按键处理程序KEYSCAN:CLR EAJNB P1.0,KEYSCAN0JNB P1.1,KEYSCAN1JNB P1.2,KEYSCAN2 KEYOUT:SETB EARETKEYSCAN0:LCALL DL20MSJB P1.0,KEYOUTWAIT0:JNB P1.0,WAIT0INC 7CHMOV A,7CHCLR TR0CLR ET0CJNE A,#03H,KEYOUTMOV 7CH,#00SETB TR0;K0按3次后又恢复走时SETB ET0SJMP KEYOUTKEYSCAN1:LCALL DL20MSJB P1.1,KEYOUTWAIT1:JNB P1.1,WAIT1MOV A,7CHCJNE A,#02H,KSCAN11INC 79H;分计数器加1MOV A,79HCJNE A,#3CH,KEYOUTMOV 79H,#00SJMP KEYOUTKSCAN11:INC 7AH ;时计数器加1MOV A,7AHCJNE A,#18H,KEYOUTMOV 7AH,#00SJMP KEYOUTKEYSCAN2:LCALL DL20MSJB P1.2,KEYOUTWAIT2:JNB P1.2,WAIT2MOV A,7CHCJNE A,#02H,KSCAN21DEC 79HMOV A,79HCJNE A,#0FFH,KEYOUTMOV 79H,#3BH;把59给分计数器SJMP KEYOUTKSCAN21:DEC 7AHMOV A,7AHCJNE A,#0FFH,KEYOUTMOV 7AH,#17H;把23给时计数器SJMP KEYOUTEND五、要求:1、在PROTEUS中设计硬件,在KEIL51中编写软件,在PROTEUS中运行程序仿真实现。
基于单片机的电子时钟的设计
基于单片机的电子时钟的设计基于单片机的电子时钟是一种采用单片机作为主控芯片的数字显示时钟。
它能够准确显示时间,并可以通过编程实现其他功能,如闹钟、倒计时、温湿度显示等。
本文将介绍基于单片机的电子时钟的设计原理、硬件电路和软件编程等内容。
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. 选取合适的单片机芯片在设计基于单片机的智能电子时钟之前,首先需要选取合适的单片机芯片。
常见选择包括51系列、AVR系列和ARM系列等。
根据具体需求和功能要求进行选择,并考虑到其性价比、易用性和扩展性。
2. 时钟模块设计在整个系统中,准确显示时间是最基本也是最关键的功能之一。
因此,需要设计一个稳定可靠且精度高的时钟模块。
常见选择包括RTC 芯片和GPS模块等。
3. 显示模块选择与驱动为了实现时间的直观显示,需要选择合适的显示模块。
常见选择包括LED数码管、LCD液晶显示屏和OLED显示屏等。
同时,还需要设计合适的驱动电路,以实现对显示模块的控制。
4. 功能模块设计除了基本的时间显示功能外,智能电子时钟还可以具备一系列智能化功能。
常见功能包括闹钟、温湿度显示、定时开关等。
这些功能需要通过相应的传感器和控制电路来实现。
三、基于单片机的智能电子时钟应用1. 家庭生活基于单片机的智能电子时钟在家庭生活中有着广泛应用。
它可以作为家庭闹钟,准确地唤醒人们起床;同时也可以作为温湿度监测器,在家中监测室内温湿度,并提供相应数据。
2. 办公场所在办公场所中,基于单片机的智能电子时钟可以作为时间提醒器,在工作时间结束时提醒人们休息;同时也可以作为定时开关,在指定时间自动打开或关闭相应设备。
3. 公共场所在公共场所中,基于单片机的智能电子时钟具备更多应用场景。
例如,在火车站、机场等候车室中,它可以作为候车时间显示器,为旅客提供准确的候车时间信息。
四、基于单片机的智能电子时钟设计案例以基于51系列单片机的智能电子时钟设计为例,具体设计方案如下:1. 硬件设计选用51系列单片机作为主控芯片,搭配RTC芯片作为时钟模块。
基于单片机的简易电子时钟设计
基于单片机的简易电子时钟设计引言:电子时钟是人们日常生活中广泛应用的一种设备,基于单片机的电子时钟可以实现精确的时间显示、闹钟设置、定时功能等。
本设计将使用单片机控制电子时钟的各种功能,通过一个LCD显示屏来显示时间和其他信息。
一、设计目标:1.实现准确显示时间功能;2.设计带有闹钟设置的功能;3.实现定时功能。
二、设计原理:该电子时钟工作原理主要是通过单片机将外部的时钟信号进行调整和处理,然后控制液晶显示屏显示时间。
电子时钟的核心是单片机,通过单片机的计时功能实现时钟的准确显示,并通过输入设备设置闹钟功能和定时功能。
三、设计流程:1.系统初始化:首先,将单片机初始化,设置时钟和计时器的相关参数,开启显示屏的显示功能。
2.时间显示功能:通过计时器中断,定时更新时间,并将时间值传递给液晶显示屏显示出来。
3.闹钟设置功能:通过按键输入设置闹钟时间,将设置好的闹钟时间存储到单片机中。
4.定时功能:通过按键输入设置定时时间,将设置好的定时时间存储到单片机中,当定时时间到达时,触发相应的动作,如报警等。
四、硬件设计:1.单片机选择:选用一款适合的单片机,如51系列单片机。
2.时钟电路:通过外部晶振或者RTC芯片来提供准确的时钟信号。
3.输入设备:使用按键作为输入设备,用于设置闹钟和定时功能;4.显示屏:选用合适的液晶显示屏,用于显示时间。
五、软件设计:1.系统初始化:设置时钟和计时器的相关参数,开启显示屏的显示功能。
2.时间显示功能:通过计时器中断,定时更新时间,并将时间值传递给液晶显示屏显示出来。
3.闹钟设置功能:通过按键输入设置闹钟时间,将设置好的闹钟时间存储到单片机中。
4.定时功能:通过按键输入设置定时时间,将设置好的定时时间存储到单片机中,当定时时间到达时,触发相应的动作,如报警等。
六、实验结果:本设计可以准确显示时间,并可以设置闹钟和定时功能。
当闹钟和定时时间到达时,会触发相应的动作,实现了基本要求。
简易电子时钟设计单片机
简易电子时钟设计单片机
设计一个简易的电子时钟可以使用单片机实现。
以下是一个基本的设计方案,包括硬件和软件部分的实现。
硬件部分:
1.单片机选择:可以选择8051系列的单片机,如AT89C51或
AT89S52等。
2.时钟源:使用晶体振荡器作为时钟源,通常选择11.0592MHz。
3.显示器:选择合适的数码管或液晶显示器,用于显示时间。
4.键盘:选择合适的按钮或矩阵键盘,用于设置时间和功能选择。
5.蜂鸣器:可以选择一个蜂鸣器用于报时功能。
6.电源:选择适当的电源模块,例如稳压电源模块或直流电源。
软件部分:
1.初始化:设置片内RAM、定时器、IO端口等。
2.时间设置:通过按键输入设置时钟的小时和分钟,可以使用中断的方式进行按键扫描。
3.时间更新:使用定时器中断来更新时钟的显示,在中断处理程序中实现时间累加,包括秒数、分钟数和小时数。
4.时间显示:将时间显示在数码管或液晶显示器上,可以使用数码管驱动芯片或液晶显示驱动程序进行显示。
5.报时功能:当时钟显示到设置的时间时,触发蜂鸣器进行报时。
6.闹钟功能:设置一个闹钟时间,到达闹钟时间时触发蜂鸣器报警。
7.周期功能:设置一个周期,例如每天、每周等,当时钟显示到周期
时间时触发蜂鸣器报时或报警。
8.温度显示:如果有温度传感器,可以通过温度传感器测量室内温度,并在显示器上显示当前温度。
总结:
这只是一个基本的设计方案,你可以根据实际需求进行改进和扩展。
通过合适的单片机、显示器、键盘和蜂鸣器的选择,以及基于中断的软件
编程,你可以实现一个简易的电子时钟。
单片机课程设计--电子时钟设计
电子时钟设计课程设计:单片机原理与应用课程设计专业:班级:设计内容:设计一个简易时钟,设计内容包括:(1)使用8051单片机片内定时器设计一个简易时钟。
(2)使用8位LED对测量结果进行显示(3)能通过键盘对对时钟设计内容与设计要求进行实时调整。
(4)具有闹钟功能●注:带●者为选做设计要求:1)确定系统设计方案;2)进行系统的硬件设计;3)完成必要的参数计算与元器件选择;4)完成应用程序设计;5)进行软硬件调试;主要设计条件1、教材2、单片机开发板、PROTEUS软件3、参考书:1)单片机原理及运用电子工业出版社2)单片机应用技术新教程电子工业出版社目录设计内容: 0设计要求: (1)一、系统总体方案选择与说明 (1)1.系统总体方案选择 (1)2. 说明 (1)二、系统结构框图与工作原理 (3)1. 系统结构框图 (3)2.工作原理 (4)三、各单元硬件设计说明及计算方法 (5)1.定时器\计数器 (5)2 .中断系统: (6)3 .键盘 (6)4 .LED数码管显示器: (7)5 .LED数码显示器有两种连接方法 (7)图(1)LED引脚排列 (8)四、软件设计与说明(包括流程图) (8)1.主程序 (8)2.数码管显示模块 (9)3.定时器/计数器T0中断服务程序 (10)4.按键处理模块 (11)五、程序清单 (13)1.中断子程序 (13)2.延时程序 (13)3.主程序和定时器中断子程序 (13)4.LED显示子程序 (14)5.按键控制子程序 (15)6.数字电子时钟系统PROTUES仿真 (19)六、参考文献 (20)致谢 (21)一、系统总体方案选择与说明1.系统总体方案选择该课程设计是利用MCS-51单片机内部的定时/计数器、中断系统、以及行列键盘和LED显示器等部件,设计的一个单片机电子时钟。
设计的电子时钟通过数码管显示,并能通过按键实现设置时间和暂停、启动控制等,用定时/计数器T0,工作于定时,采用方式1,对12MHZ的系统时钟进行定时计数,初值设为50000。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11.1.3 系统软件程序的设计
电子时钟的软件系统由主程序和子程序组成,主程序程序包含初始化参数 设置、按键处理、数码管显示模块等,在设计时各个模块都采用子程序结构 设计,在主程序中调用。由于定时器/计数器采用中断方式处理,因此还要编 写定时器/中断服务子程序,在定时器/计数器中断服务程序中对时钟进行调 整。
三.定时器/计数器T0中断服务程序 定时器/计数器T0用于时间计时。选择方式1,重复定时,定时时间
设为50ms,定时时间到则中断,在中断服务程序中用一个计数器对50ms计 数,计20次则对秒单元加1,秒单元加到60则对分单元加1,同时秒单元清0; 分单元加到60则对时单元加1,同时分单元清0;时单元加到24则对时单元清 0,标志一天时间计满。在对各单元计数的同时,把它们的值放到存储单元 的指定位置。定时器/计数器T0中断服务程序流程图如图
开始
现场保护,重置初值 启动下一个50ms
50ms 计数器加1
否
50ms 计数器=20?
是
Байду номын сангаас
秒单元加1,50ms计数器清0,秒写入秒个位
和秒十位
否
秒单元=60?
是
分单元加1,秒单元清0,分写入分个位和分十
位
否
分单元=60?
是
时单元加1,分单元清0,时写入时个位和时十
位
否
时单元=24?
时单元清0 是
中断返回
11.2.2 系统硬件电路的设计
11.2.3 系统软件程序的设计
一.主程序 主程序包含初始化部分、调用A/D转换子程序和调用显示程序,如下图。
初始化包含存放通道数据的缓冲区初始化和显示缓冲区初始化。另外,对 于单路显示和循环显示,系统设置了一个标志位00H控制,初始化时00H位 设置为0,默认为循环显示,当它为1时改变为单路显示控制,00H位通过 单路/循环按键控制。
四.按键处理模块 按键处理设置为:如没有按键,则时钟正常走时。当按下K0按键
时,进入调分状态,时钟停止走动;按K1可K2按键可进行加1或减1操作; 继续按K0键可分别进行分和小时的调整;最后按K0键将退出调整状态,时 钟开始计时运行。
五.汇编语言源程序清单(略)
六.C语言源程序清单(略)
11.2 多路数字电压表的设计
一.主程序 主程序执行流程如图,主程序先对显示单元和定时器/计数器初始化, 然后重复调用数码管显示模块和按键处理模块,当有键按下,则转入相应 的功能程序。
开始
显示单元清零
T0、T1设为16位计数模式
允许T0中断
调用显示子程序 否
按下键否? 是
进入功能程序
二.数码管显示模块 本系统共用8个数码管,从右到左依次显示秒个位、秒十位、横线、分 个位、分十位、横线、时个位和时十位。数码管显示的信息用8个内存单元 存放,这8个内存单元称为显示缓冲区,其中秒个位和秒十位、分个位和分 十位、时个位和时十位分别由秒数据、分数据和小时数据分拆得到。在本 系统中数码管显示采用软件译码动态显示。在存储器中首先建立一张显示 信息的字段码表,显示时,先从显示缓冲区中取出显示的信息,然后通过 查表程序在字段码表中查出所显示的信息的字段码,从P0口输出,同时在 P2口将对应的位选码输出选中显示的数码管,就能在相应的数码管上显示 显示缓冲区的内容。
11.2.1 多路数字电压表的原理及功能
多路数字式电压表应用系统主要利用A/D转换器,处理过程如下:先用 A/D转换器对各路电压值进行采样,得到相应的数字量,再按数字量与模 拟量成正比关系运算得到对应的模拟电压值,然后把模拟值通过显示器显 示出来。设计时假设待测的输入电压为8路,电压值的范畴为0~5V,要求 能在四位LED数码管上轮流显示或单路选择显示。测量的最小分辨率为 0.019V,测量误差为0.02V。
开始 启动一次转换 A/D转换结束EOC=1? 取数据(OE=0) 0809通道地址加1 地址数小于8?
开始
四.汇编语言源程序清单(略) 五.C语言源程序清单(略)
根据系统的功能要求,控制系统采用AT89C52单片机,A/D转换器采用 ADC0809。ADC0809是8位的A/D转换器。当输入电压为5.00V时,输出的 数据值为255(0FFH),因此最大分辨率为0.0196V(5/255)。 ADC0809的具有8路模拟量输入端口,通过3位地址输入端能从8路中选择 一路进行转换。如每隔一段时间轮流依次改变3位地址输入端的地址,就能 依次对8路输入电压进行测量。LED数码管显示采用软件译码动态显示。通 过按键选择可8路循环显示,也可单路显示,单路显示可通过按键选择显示 的通道数。
开始
初始化
调用A/D转换子程序
调用显示子程序
二.A/D转换子程序
A/D转换子程序用于对ADC0809八路输入模拟电压进行A/D转换,并 将转换的数值存入8个相应的存储单元中,如下图。A/D转换子程序每隔一 定时间调用一次,也即隔一段时间对输入电压采样一次。
三.显示子程序
LED数码管采样软件译码动态扫描方式。在显示子程序中包含多路循环 显示程序和单路显示程序,多路循环显示程序把8个存储单元的数值依次取 出送到四个数码管上显示,每一路显示1秒。单路显示程序只对当前选中的 一路数据进行显示。每路数据显示时需经过转换变成十进制BCD码,放于 四个数码管的显示缓冲区中。单路或循环显示通过标志位00H控制。在显 示控制程序中加入了对单路或循环按键和通道选择按键的判断。