多功能电脑时钟设计报告含正确C语言程序96分
多功能电子时钟设计
多功能电子时钟设计设计一个多功能电子时钟可以使用汇编语言来实现。
电子时钟应包括以下功能:1.显示当前时间2.显示当前日期3.显示当前星期几4.闹钟设置和提醒5.24小时制和12小时制的切换6.定时器功能整体设计思路如下:1.初始化显示屏和设置相关寄存器,包括时钟控制和中断配置寄存器。
2.设置时钟中断,以确保时钟可以按照设定的时间间隔更新时间。
3.初始化闹钟和定时器的相关变量。
4.进入主循环,在循环中读取按键输入并处理各种功能。
5.根据按键输入进行相应的处理:-如果是设置时间按键,进入时间设置模式,等待用户输入。
通过设置小时和分钟变量来修改时间,并在显示屏上更新时间。
-如果是设置日期按键,进入日期设置模式,等待用户输入。
通过设置年、月和日变量来修改日期,并在显示屏上更新日期。
-如果是设置闹钟按键,进入闹钟设置模式,等待用户输入。
通过设置闹钟小时和分钟变量来修改闹钟时间。
-如果是闹钟启动按键,开启或关闭闹钟功能。
-如果是设定定时器按键,进入定时器设置模式,等待用户输入。
通过设置定时器小时和分钟变量来修改定时器时间。
-如果是定时器启动按键,开启或关闭定时器功能。
-如果是24小时制和12小时制的切换按键,切换时钟显示模式。
6.每次闹钟中断,检查当前时间是否与设定闹钟时间相匹配,如果匹配则触发闹钟,并在显示屏上显示提醒信息。
7.每次定时器中断,检查当前时间是否与设定定时器时间相匹配,并触发定时器提醒,并在显示屏上显示提醒信息。
此外,还需要编写相应的子程序来处理时钟中断和定时器中断的逻辑。
总之,这是一个简单的多功能电子时钟的设计,可以使用汇编语言来实现。
通过以上步骤,可以实现时钟的基本功能,并且可以通过按键进行设置和切换不同的功能。
通过设置闹钟和定时器,可以实现提醒功能。
多功能数字时钟的设计报告
多功能数字时钟的设计引言现代社会科技飞速发展,人们生活节奏加快,时间就是金钱,时间就是生命。
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。
忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。
但是,一旦重要事情,一时的耽误可能酿成大祸。
20世纪末,电子技术得到飞速发展,各类电子产品相继出现在市场,电子产品主要朝着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。
数字化电子产品已渗入到人类生活的方方面面。
单片计算机即单片微型计算机(Single-Chip Microcomputer ),是集CPU ,RAM ,ROM ,定时,计数和多输入输出口于一体的微控制器。
它体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。
而52 单片机是51单片机的升级版,功能更强大。
单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
基于以上发展与现实需要本次设计课题就是基于单片机的设计-----基于单片机的多功能数字钟。
数字钟是采用数字电路实现对时,分,秒,数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
一、设计目的:1.了解数字时钟的组成及工作原理2.熟悉数字钟的设计与制作:1).由晶振电路产生1HZ标准秒信号。
多功能电子时钟数字系统课程设计设计实验报告
多功能电子时钟数字系统课程设计设计实验报告数字系统课程设计设计实验报告———多功能电子时钟目录一、电子时钟的功能及工作介绍 01、本设计电子时钟具有的功能 02、本设计电子时钟工作介绍 0二、设计思路 0三、各模块具体介绍 (1)计数器模块: (1)控制模块: (3)四、仿真 (6)五、实验成果 (6)六、实验总结和感想 (6)1、实验错误排查和解决 (6)2、实验感想 (7)七、各模块代码 (8)1、计数器模块 (8)2、控制模块 (20)一、电子时钟的功能及工作介绍1、本设计电子时钟具有的功能1)具有显示时、分、秒的功能,能准确显示时间2)能够手动设置时间3)具有闹钟功能,可以设置闹钟的时间,然后再实际时间与设定时间相等是闹钟响,并有闹钟开关,可控制其是否响4)具有秒表功能,可以累计计时2、本设计电子时钟工作介绍此电子时钟开机后即会显示时间,其中后两位数码管显示秒,前两位数码管显示分,还可以通过拨盘开关S1来使得前两位数码管显示小时。
(开机后,按下按键1一次,会继续显示时间。
)此后,每按下按键1一次,会显示设置小时界面,按下按键1两次会显示设置分钟界面,按下按键1三次会显示闹钟设置小时界面,按下按键1四次会显示闹钟设置分钟界面,按下按键1五次会显示秒表界面。
而在每一个界面,按下按键2相应的位会开始跳动,在按下按键2时,跳动停止,此时按下按键3,即确认键,则会返回时间显示状态。
二、设计思路设计一个电子时钟,必然要用到计时器,而需要设置时间和闹钟,又需要控制器来控制系统所处的状态。
我们采用外部一个按键来切换系统的状态,用另一个按键来调整时间和启动秒表,再有一个按键来确认操作,并返回显示状态,继续等待命令。
在控制器中,需要接受外部信号,并给出信号给计时器,使其做出相应的动作。
电子钟设计c语言设计
电子钟设计c语言设计电子钟是一种使用数字或者模拟显示时间的时钟。
它通常使用数字显示屏或者液晶屏来显示时间。
电子钟的优势在于与传统机械钟相比,它更加准确、可靠、精准和方便。
通过使用c语言来设计电子钟可以使它更加智能化和强大。
我们知道,c语言是一种通用的高级编程语言,它非常适合用于系统编程和应用程序开发。
电子钟的设计需要运用c语言的数据结构、算法、指针和其他通用编程技术。
设计一个可靠的电子钟需要考虑到准确显示时间、时区调整、闹钟功能、定时器和更多的功能。
在设计电子钟时,我们首先需要考虑到选择合适的开发平台和硬件选型。
例如,我们可以使用Arduino或者Raspberry Pi 等开发板来设计电子钟。
这些开发板既能提供强大的计算能力,又可以提供足够的GPIO引脚和通信接口。
同时,我们还需要选择合适的时钟模块,例如DS1307、DS3231和DS1302等。
接下来,我们可以考虑设计程序框架。
设计程序框架需要考虑到用户需求,从而使程序有条不紊地进行。
我们可以设计菜单选项来满足用户需求,例如时钟显示、日期显示、温度显示等等。
此外,还可以考虑添加一些有趣的功能,例如给予经度和纬度计算日出日落时间以及天气预报等。
电子钟的时间显示通常使用RTC模块与单片机进行通信。
RTC模块可以提供秒、分、时、日、月、年等时间数据。
我们需要从RTC模块读取这些数据,并将它们转换成格式化的字符串进行显示。
我们还需要考虑到时区的调整,以便在不同时区下准确显示时间。
闹钟功能是电子钟的一个重要特性。
我们可以设计界面来设置闹钟时间和日期。
当闹钟响起时,电子钟可以触发警报并发出声音或声音和振动提醒。
我们还可以增加关闭闹钟的选项,以便用户可以在闹钟响起时快速关闭它。
另一个特色功能是定时器,它可以用来进行倒计时或计时操作。
我们可以使用按钮或者旋转编码器来设置定时器时间。
定时器可以在倒计时或计时完成时发出警报来通知用户,以便执行相应的操作。
最后,我们需要考虑到电子钟的可扩展性和灵活性。
用c语言实现钟表
1. 引入所需的头文件:你需要引入一些头文件来实现程序的功能,例如 stdio.h、stdlib.h、time.h 等。
2. 定义程序的数据结构:你可以定义一个结构体来表示钟表的时间,包括时、分、秒等字段。
3. 获取当前时间:使用 time 函数获取当前系统时间,并将其转换为时、分、秒等字段。
localTime->tm_sec);
22.
23.
// 暂停一秒钟
Байду номын сангаас
24.
sleep(1);
25. }
26.
27. return 0;
28. }
29. 这个程序会不断获取当前系统时间,并输出格式为"时:分:秒"的钟表界面。程序会每 秒钟更新一次时间,并在终端上显示。你可以根据需要进行适当的修改和扩展,例
time_t currentTime = time(NULL);
17.
struct tm *localTime = localtime(¤tTime);
18.
19.
// 输出钟表界面
20.
system("clear"); // 清屏(适用于 Linux 和 Mac)
21.
printf("%02d:%02d:%02d\n", localTime->tm_hour, localTime->tm_min,
7. 下面是一个简单的 C 语言实现钟表的代码示例:
8. c 复制代码
9. #include <stdio.h>
10. #include <stdlib.h>
多功能数字钟电路设计实验报告
多功能数字钟电路设计实验报告实验目的:设计一个多功能数字钟电路,能够显示当前时间,并具备闹钟、秒表和计时等功能。
实验原理:1. 数码管显示:使用4位共阴极数码管进行显示,采用BCD码方式输入。
2. 按键输入:使用按键进行时间的调节和选择功能。
3. 时钟频率:使用晶体振荡器提供系统时钟,通过分频电路控制时钟频率。
实验器材:1. 4位共阴极数码管2. 按键开关3. 74LS90分频器4. 时钟晶体振荡器5. 耐压电容、电阻等元件6. 电路连接线实验步骤:1. 连接电路:根据电路原理图,将数码管、按键开关、74LS90分频器、晶体振荡器等连接起来,注意接线正确。
2. 编写程序:根据实验要求,编写相应的程序,实现时钟、闹钟、秒表和计时等功能。
3. 调试电路:将电路通电并运行程序,观察数码管的显示情况和按键功能是否正常。
4. 测试功能:分别测试多功能数字钟的时钟、闹钟、秒表和计时等功能,确保功能正常。
5. 完善实验报告:根据实验结果和观察情况,完善实验报告,并附上电路原理图、程序代码等。
实验结果:经过调试和测试,多功能数字钟电路能够正常显示时间,并具备时钟、闹钟、秒表和计时功能。
使用按键进行时间调节和功能选择,数码管根据不同功能进行相应的显示。
实验总结:通过本次实验,我掌握了多功能数字钟电路的设计原理和实现方法,并且了解了数码管显示、按键输入、时钟频率控制等相关知识。
实验过程中,我发现电路连接正确性对功能实现起到关键作用,同时合理编写程序也是确保功能正常的重要环节。
通过实验,我对数字电路的设计和实现有了一定的了解,并且培养了动手实践和解决问题的能力。
单片机多功能电子数字钟课程设计报告
多功能电子数字钟设计数字钟在日常生活中最常见, 应用也最广泛。
本文主要就是设计一款数字钟, 以89C52单片机为核心, 配备液晶显示模块、时钟芯片、等功能模块。
数字钟采用24小时制方式显示时间, 定时信息以及年月日显示等功能。
文章的核心主要从硬件设计和软件编程两个大的方面。
硬件电路设计主要包括中央处理单元电路、时钟电路、人机接口电路、信号处理电路、执行电路等几部分组成。
软件用C语言来实现, 主要包括主程序、键盘扫描子程序、时间设置子程序等软件模块。
关键词单片机液晶显示器模块数字钟一硬件电路设计及描述;1.MCS-51单片机单片机是在一块硅片上集成了各种部件的微型计算机。
这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。
8051单片机的结构特点有以下几点: 8位CPU;片内振荡器及时钟电路; 32根I/O线;外部存储器ROM和RAM;寻址范围各64KB;两个16位的定时器/计数器; 5个中断源, 2个中断优先级;全双工串行口。
定时器/计数器8051内部有两个16位可编程定时器/计数器, 记为T0和T1。
16位是指他们都是由16个触发器构成, 故最大计数模值为2 -1。
可编程是指他们的工作方式由指令来设定, 或者当计数器来用, 或者当定时起来用, 并且计数(定时)的范围也可以由指令来设置。
这种控制功能是通过定时器方式控制寄存器TMOD来完成的。
在定时工作时, 时钟由单片机内部提供, 即系统时钟经过12分频后作为定时器的时钟。
技术工作时, 时钟脉冲由TO和T1输入。
中断系统8051的中断系统允许接受五个独立的中断源, 即两个外部中断申请, 两个定时器/计数器中断以及一个串行口中断。
外部中断申请通过INTO和INT1(即P3.2和P3.3)输入, 输入方式可以使电平触发(低电平有效), 也可以使边沿触发(下降沿有效)。
2.8051的芯片引脚如图1-2所示VCC: 供电电压。
电子综合设计多功能数字钟报告
电子综合设计多功能数字钟报告报告内容如下:一、设计目的和原理多功能数字钟是一种能够显示时间,并具有闹钟、计时、倒计时等功能的电子设备。
本设计的目的是通过FPGA实现一个多功能数字钟的功能,以实现时间的显示和闹钟的设置功能。
二、设计方案和实现1.硬件设计方案:本设计使用FPGA作为主控芯片,使用七段数码管作为显示器,通过与FPGA的IO口连接来实现时间的显示功能。
同时,使用按键作为输入进行功能的选择和设置。
2.硬件连接:将FPGA的IO口连接到七段数码管的控制端,通过IO口输出相应的数字信号来控制数码管的亮灭。
将按键连接到FPGA的IO口,通过IO口输入按键的信号。
此外,还需要连接一个晶振电路来提供时钟信号。
3.软件设计方案:本设计使用VHDL语言进行程序设计,通过状态机来实现多功能数字钟的功能。
具体实现包括时间的显示、闹钟的设置和启动、计时和倒计时功能的实现。
通过按键的输入来切换不同的状态,实现不同功能的切换和设置。
4.软件实现具体步骤:(1)定义状态机的状态,包括时间显示、闹钟设置、计时和倒计时等状态。
(2)在时间显示状态下,通过FPGA的IO口输出相应的数字信号来控制七段数码管的亮灭,实现时间的显示。
(3)在闹钟设置状态下,通过按键的输入来设置闹钟时间,并将设置好的时间保存在寄存器中。
(4)在计时和倒计时状态下,通过按键的输入来实现计时和倒计时功能,并通过七段数码管的显示来实时显示计时和倒计时的时间。
以下为本设计的完整程序代码:```vhdl--时钟频率--定义状态signal state : state_type;--定义时钟、按键和数码管信号signal clk : std_logic;signal key : std_logic_vector(1 downto 0);signal seg : std_logic_vector(6 downto 0);--闹钟时间寄存器signal alarm_hour_reg : std_logic_vector(5 downto 0);signal alarm_min_reg : std_logic_vector(5 downto 0);--计时和倒计时寄存器signal count_up_reg : std_logic_vector(23 downto 0); signal count_down_reg : std_logic_vector(23 downto 0); signal count_down_flag : std_logic := '0';beginclock : processbeginwhile true loopclk <= '0';wait for 10 ns;clk <= '1';wait for 10 ns;end loop;end process;key_scan : process(clk)beginif rising_edge(clk) thenkey <= key_scan_func; -- 按键扫描函数end if;end process;fsm : process(clk, key)beginif rising_edge(clk) thencase state isif key = "10" then -- 第一个按键按下state <= set_alarm;elsif key = "01" then -- 第二个按键按下state <= count_up;end if;when set_alarm =>seg <= set_alarm_func; -- 闹钟设置函数if key = "00" then -- 两个按键同时按下elsif key = "01" then -- 第一个按键按下state <= count_up;end if;when count_up =>seg <= count_up_func; -- 计时函数if key = "00" then -- 两个按键同时按下elsif key = "10" then -- 第二个按键按下state <= count_down;count_down_flag <= '1';end if;when count_down =>seg <= count_down_func; -- 倒计时函数if key = "00" then -- 两个按键同时按下count_down_flag <= '0';elsif key = "01" then -- 第一个按键按下state <= count_up;count_down_flag <= '0';end if;end case;end if;end process;--数码管信号和显示模块的连接display : entity work.seg_displayport mapclk => clk,seg => segend architecture;```四、总结与展望通过FPGA实现多功能数字钟的设计,在硬件和软件的配合下,实现了时间的显示和闹钟的设置功能。
C语言_时钟代码+报告
C语言_时钟代码+报告C语言程序设计课程设计报告选题名称:钟系(院):专业:班级:姓名学号::指导教师::2007~20081学年学期学年第学期2008年1月12日摘要:我们日常生活中有各种各样的时钟。
随着计算机的普及和计算机科学的飞速发展,人们开始越来越多的利用计算机解决实际问题。
开发一个易于查看的时钟有较大的现实意义。
同时,该时钟会听到时钟的喀哒声,程序与生活紧密结合,具体直观,开发应用简单。
利用C 语言编辑源程序,再进行编译链接生成可执行文件,运行时可以查看时间,听到喀哒声,具体直观,方便了生活。
:Turbo C关键词计算机;时钟;;函数目录4 6 程序调试……………………………………………………………………………总结 (8)致谢 (9)参考文献 (10)1程序概述程序设计是一种技术,也是一项工程。
程序设计语言是程序设计的工具。
一种程序设计语言凝聚了具有时代特征的程序设计理念和方法。
本程序利用C语言中的图形处理函数完成时间的模拟显示。
1.1课题来源这个C语言时钟的课程设计,可以初步理解C语言编程的方法,对C语言小程序有较深刻的理解。
利用C语言中的图形处理函数完成时间的模拟显示。
了解图形处理函数的基本功能,掌握C语言中的时间函数等。
1.2课题意义基于算法思维方法的训练是现代信息素养的重要内容。
程序设计是引导学习者利用计算机进行解题的能力培养过程。
为了有效地进行程序设计,正确地应用程序设计语言表达算法,必须准确地运用程序设计语言,掌握其语法设计。
用C语言编程,设计一个时钟,掌握声音函数sound()、系统时间函数gettime()、绘制多边形函数DrawPoly()的用法。
1.3预期目标本程序利用C语言中的图形处理函数完成时间的模拟显示。
在C 环境中编辑源程序,设置表盘刻度,模拟时针、分针、秒针的运动,声音,生成可执行文件之后并运行在屏幕上会显示一个时钟,便于查看系统的时间,并且会听到秒针运动时的喀哒声。
多功能电子钟设计实验报告
十二翻一模块
时间计数模块
图 4:“12 翻 1”小时计数器
第 8 页 共 17 页
多功能电子钟设计实验报告.doc
表 2:“12”翻一小时计数时序 思路:根据时序表,在 1~9 脉冲的作用下,正常加计数,用瞬时 1010 使触发器翻转, 在 10 号脉冲来到时 LS191 清零,在 12 号脉冲来到时,LS191 变成减法计数器,在 13 号 脉冲来到时,LS74 置 0。
OUTPUT PIN 12 ISTYPE 'COM';
COUNT1=[MG3,MG2,MG1,MG0];
第 11 页 共 17 页
多功能电子钟设计实验报告.doc
COUNT2=[MS2,MS1,MS0]; OUT=[MS2,MS1,MS0,MG3,MG2,MG1,MG0]; C,X=.C.,.X.;
OUTM
PIN 13 ISTYPE 'COM ISTYPE 'COM'; //时计数器的脉冲
"CONST DECLARATIONS
EQUATIONS OUTM=!(S2&CPSS # !S2&CP0); OUTH=!(S1&CPMS # !S1&CP0); 校时电路设计在 GAL3 中,详情请见附录的 GAL3 芯片报告。
仿电台报时电路:
仿电台报时即:在每个小时最后一分钟的 51,53,55,57 秒发出 500Hz 的叫声,在 59 秒发出 1KHz 的叫声。 其逻辑表达式为:OUT_COM=R4 & R6 & R0 & R3 & MS0 & MS2 & MG0 & MG3 & CP1K +
多功能数字钟的设计报告
多功能数字钟的设计报告
一、简介
本项目为一款多功能数字钟,考虑到时代的发展,利用计算机技术和
电子工艺,设计出一款全新的数字钟,它可以满足日常生活中的不同需求。
二、功能
1、设置时间和日期的功能。
2、支持闹钟功能,可以设置多个闹钟,每天自动响铃提醒。
3、支持倒计时功能,用户可以设置倒计时的时间,可以实现计时功能。
4、支持自定义界面功能,用户可以根据自己的喜好来设置数字钟的
界面和背景图案。
5、钟表外观强大,具有耐用、耐磨、耐高温等特点,能够满足不同
应用环境的要求。
三、硬件系统
本项目采用先进的微控制芯片技术,设计制造的多功能数字钟由主控
单元、传感器、触摸控制板、显示屏、外壳等组成。
1、主控单元:采用先进的微控制器进行控制,并结合定时器、中断
处理模块进行时间控制,主控单元负责接收传感器信号,控制显示屏信息,实现时钟的功能。
2、传感器:采用光电传感器、按键传感器等,可以有效地接收外部
信号,实现对外部信号的检测。
3、触控板:采用触摸传感技术,可以有效地实现用户对时钟的操作,例如调节时间、设置闹钟等。
多功能电子钟设计报告
单片机课程设计报告班级:学号:姓名:专业:学院:多功能电子时钟设计一、设计任务1、基本任务:利用定时器/计数器中断和静态显示或动态显示,实现电子钟的时分秒精确走时和校准。
时间显示用四个数码管分别显示时、分,秒用点表示,在时和分的中间闪动。
时间校准用2个键实现:一个键K1做选择(选中要修改的位,选中的位用闪烁指示),一个键K2做加1键(对选中的位要加1修改)。
2、功能增强型任务:在基本任务的基础上加日历功能,能实现时、分、秒和月、日计时,分两屏显示。
二、设计要求1、基本任务要求:(1)时间走时准确,每天误差不能超过3秒。
(2)仿照电子表的校时功能,校时修改时,被修改为能闪烁显示,按键要灵敏。
(3)若最高位为0,高位要能灭零显示。
三、硬件设计1、按键的设计按键K1、K2、K3、K4分别连接单片机芯片的P1.4、P1.5、P1.6、P1.7引脚,K1为时间与日期的切换显示键,K2为时间校正键,K3为加1键,K4为确定键。
2、定时器的设计定时器采用T0,T0的工作方式为方式1,定时器初值=216—62500=3036,化为十六进制即为0BDC,所以定时器T0由3036计到65536所需的时间为1/16s。
3、显示电路的设计本设计采用串行口静态显示方式,数据由RXD(P3.0)口送到74LS164中,4段数码管和4片74LS164相串联,TXD(P3.1)口作为移位脉冲,连接74LS164的第8引脚。
四、资源分配1/16计数单元:2FH月单元:30H日单元:31H时单元;:32H分单元:33H秒单元:34H校正状态标志位:20H.1 时间日期标志位:20H.0 校正指针单元:21H 五、流程图六、程序代码ORG 0000HSJMP MAINORG 000BHLJMP ITOPORG 0030HMAIN: MOV 50H,#0FFH ;按键信息初始化为未按键状态MOV 30H,#1 ;月单元MOV 31H,#1 ;日单元MOV 32H,#0 ;时单元MOV 33H,#0 ;分单元MOV 34H,#0 ;秒单元MOV 2FH,#16 ;2FH为十六分之一秒计数单元CLR 20H.1 ;校正状态标志清零,为正常走时状态SETB 20H.0 ;时间/日期标志置1MOV TMOD,#01H ;置T0工作于方式1MOV TH0,#0BH ;采用12M晶振,定时十六分之一秒MOV TL0,#0DCH ;装载定时器初值MOV IE,#82H ; 允许中断SETB TR0 ;启动定时器SJMP $ITOP: PUSH PSW ;现场保护PUSH ACCMOV TH0,#0BHMOV TL0,#0DCHDJNZ 2FH,KEY ;计数开始MOV 2FH,#16 ;十六分之一秒计数单元MOV A,34HADD A,#01H ;在0~9之间,加01HDA A ;进行十进制调整MOV 34H,A ;送到秒计数单元CJNE A,#60H,KEY ;未到六十秒转移到KEY,到了则顺序往下执行MOV 34H,#00H ;秒单元清零MOV A,33H ;分单元加1,并做十进制调整ADD A,#01HDA AMOV 33H,A ;送到分计数单元CJNE A,#60H,KEY ;未到六十分转移到KEYMOV 33H,#00H ;分单元清零MOV A,32H ;时单元加1,并做十进制调整ADD A,#01HDA AMOV 32H,A ;送到时单元CJNE A,#24H,KEY ;未到二十四小时转移,到了则顺序往下执行MOV 32H,#00H ;时单元清零MOV A,31H ;日单元加1,并做十进制调整ADD A,#01HDA AMOV 31H,A ;送到日单元CJNE A,#31H,KEY ;未到三十一天转移MOV 31H,#01H ;日单元变为一MOV A,30H ;月单元加1,并做十进制调整ADD A,#01HDA AMOV 30H,A ;送到月单元CJNE A,#12H,KEY ;未到十二个月转移MOV 30H,#01H ;月单元变为一KEY: JNB 20H.1,ZOUSHI ;判断是否校正状态,不是,则转非校正状态LJMP JIAOSHI ;是,则转为校正状态ZOUSHI: MOV A,P1CJNE A,50H,KEY1 ;判断是否与上次按键相同,不相同则转移到KEYLJMP NONE1 ;相同则不断判键KEY1: MOV 50H,A ;保存上次按键信息JNB ACC.4,SWITCH1 ;是否按下切换键JNB ACC.5,SET1 ;是否为校正键LJMP NONE1 ;没按与无效键均不作判断SWITCH1:CPL 20H.0 ;时间与日期的转换NONE1: JNB 20H.0,DATE1 ;判断日期与时间的标志MOV 3BH,32H ;将时间送到显示缓冲区MOV 3AH,33HLJMP DISPDA TE1: MOV 3BH,30H ;将日期送到显示缓冲区MOV 3AH,31HLJMP DISPSET1: SETB 20H.1 ;切换到校正标志MOV 21H,#0 ;校正指针并请零CLR 20H.0 ;选择日期标志MOV 3BH,30H ;将日期送到显示缓冲区MOV 3AH,31HLJMP DISPJIAOSHI:MOV A,P1CJNE A,50H,KEY2 ;判断是否与上次按键相同LJMP NONE2 ;若相同则不能判断按键KEY2: MOV 50H,A ;保存上次按键信息JNB ACC.5,SET2 ;是否为校正键JNB ACC.6,ADD2 ;是否为加键JNB ACC.7,SURE ;是否为确定键LJMP NONE2 ;空操作SET2: INC 21H ;校正指针并自动加1ANL 21H,#03HSJMP NONE2ADD2: MOV A,#30H ;指向需要校正的指针ADD A,21HMOV R0,AMOV A,@R0 ;需要校正的指针并自动加1ADD A,#1DA AMOV @R0,ACJNE R0,#30H,DATE ;判断月是否校正完成,校正完成跳转日CJNE @R0,#13H,NONE2MOV @R0,#1SJMP NONE2DA TE: CJNE R0,#31H,HOUR ;判断日是否校正完成,完成则跳转到时CJNE @R0,#32H,NONE2MOV @R0,#1SJMP NONE2HOUR: CJNE R0,#32H,MIN ;判断时是否校正完成,完成则跳转到分CJNE @R0,#24H,NONE2MOV @R0,#0SJMP NONE2MIN: CJNE @R0,#60H,NONE2 ;校正分MOV @R0,#0SJMP NONE2SURE: CLR 20H.1 ;校时完成跳转到走时标志SJMP TIME2NONE2: JNB 21H.1,DATE2 ;判断送到显示缓冲区的是时间还是日期TIME2: SETB 20H.0 ;时间/日期标志置1,为显示时间状态MOV 3BH,32H ;时间送到显示缓冲区MOV 3AH,33HLJMP DISPDA TE2: CLR 20H.0 ;时间/日期标志位清零,为显示日期状态MOV 3BH,30H ;日期送到显示缓冲区MOV 3AH,31HDISP: MOV A,3BH ;显示缓冲区中的内容分解为四位BCD码依次放入43H~40H 单元ANL A,#0F0HSW AP AMOV 43H,AMOV A,3BHANL A,#0FHMOV 42H,AMOV A,3AHANL A,#0F0HSW AP AMOV 41H,AMOV A,3AHANL A,#0FHMOV 40H,AJNB 20H.1,DISP1 ;不是校正状态,正常显示,否则校正状态下,闪烁显示JNB 2FH.3,DISP1 ;若2FH.3为0正常显示,若2FH.3为1,校正内容对应的BCD 码单元送熄灭码JNB 21H.0,N1 ;从校正指针判断送熄灭码的单元,为0高两位传送,为1低两位传送MOV 40H,#0AHMOV 41H,#0AHSJMP DISP1N1: MOV 42H,#0AHMOV 43H,#0AHLJMP DISP1DISP1: MOV DPTR,#TAB ;指向表单MOV A,43H ;查最高位MOVC A,@A+DPTRCJNE A,#09H,NEXT1 ;判断最高位是否为0MOV A,#0FFH ;为0 则给熄灭码NEXT1: MOV SBUF,A ;传送到数码管上,串行静态显示JNB TI,$CLR TIMOV A,42H ;查第二位MOVC A,@A+DPTRMOV C,2FH.3 ;判断并改变小数点,并判断半秒亮半秒灭ANL C,20H.0MOV ACC.0,CMOV SBUF,A ;传送到数码管上JNB TI,$ ;等待传输完毕CLR TI ;允许继续传输MOV A,41H ;查第三位MOVC A,@A+DPTR ;查显示数据对应段码JB 20H.0,NEXT2 ;判断时间/日期标志CJNE A,#09H,NEXT2 ; 日期灭0,时间状太不灭0MOV A,#0FFHNEXT2: MOV SBUF,AJNB TI,$CLR TIMOV A,40H ;查第四位MOVC A,@A+DPTRMOV SBUF,AJNB TI,$CLR TIPOP ACC ;现场恢复POP PSWRETITAB: DB 09H,7DH,07H,15H,71H,91H,81H,3DH,01H,11H,0FFHEND七、总结通过维持两天的课程设计,我对单片机有了更深的理解,以前做一些简单的实验还能自己编写代码,然后独立完成实验,但现在做个复杂点的设计,还是觉得有些难度的,不过思路还是有点的,在自己尝试着编写程序时,遇到的困难还是挺多的,特别是在写校时和显示的程序写到一半就写不下了,最后不得不参考别人的程序!有时候自己觉得刚开始不会写程序不要紧,能看懂别人写的程序还是挺重要的,因为程序看多了,有一定的积累,到最后自己写程序还是没问题的。
多功能数字时钟毕业设计
摘要数字电子时钟是人们日常生活中不可或缺的必需品。
电子钟主要是利用现代电子技术将时钟电子化、数字化。
与传统的机械钟相比,具有时钟精确、显示直观、无机械传动装置等优点,因而得到广泛应用。
另外,在生活和工农业生产中,人们对电子钟的功能又提出了诸多要求:报时、闹钟、日历、温度显示,这就需要电子时钟的多功能性。
根据人们的不同要求,本设计主要为实现一款可正常显示时钟,测量环境温度、湿度,带有定时闹铃,倒计时的多功能电子时钟。
本设计采用液晶显示以其亮度高、显示直观等优点被广泛应用于智能仪器及家用电器等领域。
该时钟系统主要由时钟模块、闹钟模块、环境温度湿度检测模块、液晶显示模块、键盘控制模块以及信号提示模块组成。
能够准确显示时间(显示格式为时时:分分:秒秒,24小时制),可随时进行时间调整,具有闹钟时间设置、闹钟开/关、止闹功能,能够对时钟所在的环境温度进行测量并显示。
设计以硬件软件化为指导思想,充分发挥单片机功能,大部分功能通过软件编程来实现,电路简单明了,系统稳定性高。
关键词:电子时钟;单片机;多功能;温湿度传感器AbstractDigital electronic clock is indispensable to daily life. Electronic clock is the use of modern electronic technology to clock electronic, digital. Compared with the traditional mechanical clock, a clock-accurate, intuitive display, no mechanical transmission device, etc., and thus are widely used. In addition, the in the the in the life and industrial and agricultural production,, the people pairs of the the the function of of electronic bell also proposed a a lot of of the requirements of: timekeeping,alarm clock, calendar, temperature display, which requires the the the versatility of electronic clock.According to the different requirements of the people of this design to achieve a normal display clock / calendar, measuring the ambient temperature, humidity, multi-function electronic clock with alarm.This design uses the LCD its high brightness, intuitive and other advantages are widely used in intelligent instruments and appliances and other areas. The clock system clock module, alarm clock module, the ambient temperature and humidity detection module, LCD module, keyboard, control module and the signal prompt module composition. Be able to accurately to display the time (display format for the from time to time: sub-sub-the: seconds seconds, system of the 24 hours), can be at any time carried out the time to adjust, with a the alarm clock time setting, alarm clock On / Off, ended downtown function, be able to pairs the ambient temperature where the by the clock carried out measurement and displayed. Design hardware and software as the guiding ideology, give full play to the MCU function, most of the functionality through software programming simple circuit and system stability.Keywords: Electronic clock;single-chip; multi-function;temperature and humidity sensor目录摘要 .................................................. Abstract . (I)1 绪论 (4)1.1课题背景 (4)1.1.1 多功能数字电子钟研究的背景 (4)1.1.2多功能电子钟研究现状与意义 (4)1.1.3 多功能电子钟的功能 (5)2 硬件设计 (7)2.1 系统的设计思路 (7)2.1.1设计流程 (7)2.2单片机的选择 (7)2.2.1 单片机的发展趋势 (7)2.2.2 单片机主要应用领域和特点 (8)2.3 单片机 STC89C52简介 (8)2.4 温湿度传感器 (13)2.4.1 DHT11 概述 (13)2.4.2 应用电路连接说明 (14)2.4.3 DHT11数据结构 (14)2.5显示部分设计 (15)2.5.1 液晶显示屏LCD1602简介 (15)2.5.2 LCD1602功能介绍 (15)2.5.3 LCD1602初始化过程 (17)2.5.4 LCD1602硬件电路接口设计 (18)2.6 单片机最小系统 (18)2.7 键盘部分 (20)2.8 报警电路设计 (21)2.9 直流稳压电源部分 (22)2.10 硬件仿真 (22)2.10.1 仿真软件protues简介 (22)2.10.2 本设计的仿真原理图 (23)3 软件设计 (24)3.1 编程环境Keil简介 (24)3.2软件设计总体说明 (24)3.2.1主程序设计 (24)3.2.2 键盘部分 (25)3.2.3 闹钟子程序程序 (26)4 调试 (27)4.1软件调试 (27)4.2硬件调试 (33)5 系统可靠性的设计 (34)5.1 软件可靠性的设计 (34)5.2 硬件可靠性的设计 (35)5.3 本系统中的抗干扰的预防措施 (35)总结 (37)参考文献 (1)附录 (2)附录1:部分程序代码 (2)附录2:系统仿真原理图 (10)1 绪论一寸光阴一寸金,寸金难买寸光阴。
电子综合设计多功能数字钟报告(附完整程序代码)
[电子系统设计]总结报告题目:多功能数字钟专业:电子信息科学与技术班级:2010级2班姓名:XXX指导教师:评分:2012年11月19日目录1项目计划 (1)1.1方案可行性 (1)1.1.1市场可行性分析 (1)1.1.2技术分析 (1)1.1.3法律分析 (1)1.2项目执行计划 (2)1.2.1工程进度图 (2)1.2.2工程进度表 (2)1.2.3工程预算 (2)2设计说明 (3)2.1基本设计思想 (3)2.2设计原理 (4)2.3系统结构框图 (4)2.4原理图 (5)2.5各单元模块设计原理 (5)2.5.1单片机最小系统 (5)2.5.2数码显示模块 (6)2.5.3闹铃模块 (7)2.5.4接口和外部控制模块 (8)2.5.5时钟模块 (8)2.6各单元模块设计流程及部分程序代码 (9)2.6.1各单元模块设计流程图 (9)2.6.2部分程序代码 (11)2.7时钟的操作流程 (11)3调试说明 (12)3.1生产工艺 (12)3.2调试准备工作 (12)3.3调试方法及步骤 (12)3.4调试数据 (13)3.4.1未安装芯片时的点参数 (13)3.4.2安装芯片后的点参数 (13)3.5调试结果 (14)3.6注意事项 (14)3.7可能遇到的问题及解决方案 (14)4总结 (15)5附录 (15)1项目计划1.1方案可行性1.1.1市场可行性分析多功能数字钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用,随着多功能数字钟在公共场合的应用和多功能数字钟数量的增多,多功能数字钟的功能和准确度更被人们所重视。
本多功能数字钟属于多功能数字钟,具有功能多,成本低的特点,制作一个多功能数字钟所需材料成本约为17元,人工成本约6元,而一个多功能数字钟市场价约为60,每个多功能数字钟可净收入约37元,现在市场上数字钟的需求量大,生产商寥寥无几。
多功能数字钟课程设计报告
电子时钟课程设计报告班级:文通 0741姓名:***学号:************多功能数字钟课程设计报告一、课程设计题目: 多功能数字钟二、实验目的:☆了解多功能数字电子钟的工作原理。
☆学习数字系统设计中自顶向下的设计方法。
☆加深利用EDA技术实现数字系统的理解。
三、课程设计任务和基本要求:☆设计任务采用中规模集成电路设计一台可以显示时、分、秒的数字钟。
☆基本要求1、能够正确的连线及下载。
2、能够完成以秒为最小及时单位的时钟设计。
3、设计完成后的时钟能够正常调整时、分、秒。
三、课程设计题目分析:☆设计要点●设计一个精确的秒脉冲信号产生电路●设计60进制、24进制计数器●设计译码显示电路●设计整点报时电路☆工作原理数字电子钟由信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路等组成。
秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用555构成的振荡器加分频器来实现。
将标准秒脉冲信号送入“秒计数器”,该计数器采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。
“分计数器”也采用60进制计数器,每累计60分,发出一个“时脉冲”信号,该信号将被送到“时计数器”。
“时计数器”采用24进制计数器,可以实现一天24h的累计。
译码显示电路将“时、分、秒”计数器的输出状态经七段显示译码器译码,通过六位LED显示器显示出来。
整点报时电路是根据计时系统的输出状态产生一个脉冲信号,然后去触发音频发生器实现报时。
校时电路是来对“时、分、秒”显示数字进行校对调整。
其数字电子钟系统框图如下:四、课程设计的电路设计部分:☆秒、分、时计时器电路设计秒、分计数器为60进制计数器,小时计数器为24进制计数器。
实现这两种模数的计数器采用中规模集成计数器74LS90构成。
●60进制计数器由74162构成的60进制计数器,将一片74162设计成10进制加法计数器,另一片设置6进制加法计数器。
多功能电子钟课程设计报告
课题:多功能电子钟设计一、实验目的及要求:1.利用定时器0的定时中断和动态显示,实现电子钟的走时及校正。
2.时间及日期显示实验台上的四个数码管分别显示时.分及显时的低位的右下脚的点闪烁表示秒的显示和月、日。
显示格式如下:⑴.时间显示,前两格显示时而第二格有下脚的小点作秒显示。
(闪烁状态)。
后两格显示分钟。
⑵.日期显示,前两格显示而与秒显示的相对点不闪烁停于常亮状态表示月与日的相隔点,后两格表示日的显示。
3.时间走时准确,每天误差不超过5秒。
4.仿照电子表的校时功能,校时(日期)修改时,被改位能闪烁显示以表示正被修改。
5.若高位为0,则高位可灭零显示。
二、实验效果1.常态以时间显示2.编程使该电子钟有4个键,分别为校正键,“十”键,切换键及显示键。
3.正常显示的状态下,“+”键和显示键无效,校正状态下切换键无效。
4.四个键的作用分别为:①校正键,在正常的状态下,第一次按下校正键表示校正月发功能,此时显示当日的日期及月显示闪烁。
第二次按下此键表示校日的功能,显示当前日期并且日闪烁显示。
第三次按下此键表示校时的功能,此时显示当前时间并且时闪烁显示。
第四次按下校正键表示校分功能,显示当前时间并且分闪烁显示。
②“+”键,功能为当前校正的内容在每按一下此键的情况下不进位的在该闪烁的内容上加“1”。
③确定键,使校正的内容生效并且返回正常显示时间的状态下。
④切换键,表示切换当前显示的模式,如:当前显示的是时间,则按一下切换键则切换到日期的显示状态,反之亦成立。
如在按下切换键的状态下,5秒后没任何操作则返回到正常显示时间的状态。
三.实验思路(原理)由以上分析可知要使日期及时间显示出来,首先想到的是要将它们存放起来,然后再将其送往数码管显示出来,这里又牵涉到一个问题,怎样将它们存放起来又要存到哪儿去?这就要我们给它们分配存储单元以备送往显示,例如准备四个存储单元30H~33H分别存储月、日、时和分,送往显示时要为其准备显示缓冲存储区,如3AH、3BH,月、时送3AH缓存,日、分送3BH缓存备送显示,接下来就是相关方式初始化为内容显示作准备,其中包括时间/日期(T/D)标志的置位,校正标志的清除及定时期/计数期工作方式及初始化。
C语言课程设计钟表设计
C程序实践课程设计报告课题名称:钟表设计*名:***学号:1071专业:电子信息科学与技术班级:信息09-2班指导教师:***目录第一章课程设计的目的和要求 (1)1.1 C语言课程设计的目的 (1)1.2 C语言课程设计实现的要求 (1)第二章课程设计的任务内容 (1)第三章详细设计说明 (2)程序系统的结构 (2)3.1.1实验设备及环境:(软、硬件环境) (2)模块描述 (2)3.2.1指针式时钟 (2)3.2.2数字式时钟 (2)输出项 (2)算法 (2)流程图 (3)函数说明 (4)接口 (5)第四章课程设计心得与体会 (5)附录: (7)第一章课程设计的目的和要求1.1 C语言课程设计的目的加深对讲授内容的理解,尤其是一些语法规定。
通过课程设计,自然地、熟练地掌握。
熟悉所用的计算机系统的操作方法,也就是熟悉语言程序开发的环境。
学会上机调试程序。
通过编程最终使程序运行结果为电脑屏幕显示模拟时钟,并正常运行显示表针时间。
1.2 C语言课程设计实现的要求能模拟机械钟表行走;在屏幕上显示一个活动时钟;程序界面设计合理,色彩得体大方,显示正确;各指针运动规律正确;要准确地利用数字显示日期和时间并且可以根据用户的需求更改当前时间(指针式时钟与数字式时钟实现同步更改);数字式时钟的时间显示与指针式时钟显示一致;可以通过上下键改变当前的时、分、秒;改的时间是小时、分钟、还是秒数;通过Tab键切换按Esc时程序退出。
第二章课程设计的任务内容要熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。
用C语言实现一个模拟时钟转动程序;Graphics函数库。
提出总体方案的设计思想和原理,绘制程序流程图和描述程序的功能,并说明程序的特点和难点。
多功能数字钟设计报告+程序+原理图
实验设计报告项目名称:多功能数字钟电路设计作者姓名:指导教师:年级专业:所在学院:提交日期摘要20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。
对于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所以以数码管为显示器的时钟比指针式的时钟表现出了很大的优势。
数码管显示的时间简单明了而且读数快、时间准确显示到秒。
而机械式的依赖于机械震荡器,可能会导致误差。
数字钟是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。
数字钟的精度、稳定度远远超过老式机械钟。
在这次设计中,我们采用LED数码管显示时、分、秒,以24小时计时方式,根据数码管动态显示原理来进行显示,用12MHz的晶振产生振荡脉冲,定时器计数。
在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调整。
数字钟以其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱,因此得到了广泛的使用。
数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
因此,我们此次设计与制做数字钟就是为了了解数字钟的原理,从而学会制作数字钟.而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法。
且由于数字钟包括组合逻辑电路和时叙电路。
通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法。
目录第一章:设计要求 (1)第二章:方案论证 (2)第三章:单元电路设计与计算 (13)第四章:软件设计 (20)第五章:系统测试 (36)第六章:结论 (38)参考文献 (39)附录 (40)第一章:设计要求1.1 基本要求1.1.1 时钟功能设计一个具有时、分、秒计时的数字钟电路,计时采用24小时制。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多功能电脑时钟设计报告一、实训目的意义及任务要求1.1目的意义在如今,单片机的使用领域已十分广泛,它在智能仪器仪表、实时工控、通讯设备、导航系统、家用电器等均有很广泛的应用。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
单片机作为一门专业学科,对学生的要求也较高,要求对C语言有较好的掌握,还要与单片机的硬件工作原理相结合,也是理论与实践相结合的一大体现。
多功能电脑时钟有效地检验了单片机中对数码管,蜂鸣器,LED灯的控制,同时提高了学生的工程系统设计能力。
通过此次单片机系统综合训练,不仅要让学生认识了解它,而且增强学生学科积极性。
2.2任务要求通过对硬件和软件的设计要求设计的电脑时钟完成以下功能:1.基本功能①实时显示当前时间(4位数码管显示,2位显示小时,2位显示分钟,第2位小数点0.5秒亮,0.5秒灭)。
②能用一按键依次切换显示年及月日。
③能修改当前时钟。
④具有秒表功能,显示秒和百分秒。
2. 扩展功能①单片机与PC机的通讯(可选);②可设定初值的倒计时功能(可选)③闹钟及报时功能(可选);④显示星期(可选)。
3. 设计参数显示时间时,4位数码管显示,2位显示小时,2位显示分钟,第2位小数点0.5秒亮,0.5秒灭;蜂鸣器报时时间以每生学号最末位确定。
二.实习任务的方案2.1 任务进度①布置任务、分析任务、学习单片机的C51功能程序设计(3天)②方案设计、使用Protel设计和绘制硬件原理图(1.5天)③程序设计和调试(4.5天)④设计验收、撰写报告(1天)2.2 系统分析根据系统功能要求,可将系统组成结构分成四大部分:①DS1302时钟芯片读数据写数据模块;②数码管显示模块;③按键设置调节时间模块;④秒表功能模块。
硬件电路接线图如附录一,本系统采用DS1302时钟芯片,四位数码管用来显示年月日,星期,时分,以及秒和百分秒。
其中年月日,时分秒和星期采用DS1302的数据显示,秒表采用单片机定时中断实现。
本系统共用到四个按键,且均为独立对地按键,分别用于显示切换,修改切换,修改加一,修改减一,秒表启动暂停和数据清零。
2.3 器件选择选用STC89C51芯片,频率为11.0592MHz,由于系统要求显示年月日小时和分钟,采用四位LED数码管显示即可。
按键是用来设置时间或闹钟时间或启动秒表等功能的,设置三个按键:显示切换模式键(key3)、修改数据键(key0)、加一键(key1)、减一键(key2)。
常见的LED显示具有清晰明亮的特点。
是显示接口也是绝大多数单片机应用系统必备的部件之一。
发光二极管组成的显示器是单片机应用产品中最常用的廉价输出设备。
它由若干个发光二极管按一定的规律排列而成。
当某一个发光二极管导通时,相应的一个点或一笔画被点亮,控制不同组合的二极管导通,就能显出各种字符。
常用的7段显示器的结构如图所示,发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的成为共阴显示器。
1位显示器由8个发光二极管组成,其中7个发光二极管a~g控制7个笔画的亮或暗,另一个控制一个小数点的亮和暗,这种笔画的七段显示器能显示的字符较少,字符的形状有些失真,但失控简单,使用方便。
三、系统硬件设计3.1 单片机的最小系统单片机功能系统图见附录1,。
单片机最小系统由STC89C51单片机、复位电路、晶振电路组成。
如图3.1所示图3.1 单片机最小系统图3.2 数码管、独立按键及DS1302时钟芯片电路的设计在电子钟的输入部分,设置相应的置数功能,通过外部设备的输入,如按键,实现时间的切换。
除此之外,调整日期等时间也需要按键进行输入。
在选用输入端口时,将P0引脚与按键相连进行输入。
K1、K2、K3、K4分别表示设置切换键、数值加一键、数值减一、显示月和日键。
系统仿真电路图系统仿真电路图DS1302与单片机连线图3.3 其他附属电路设计按键设计,电频转换芯片的硬件电路如下图所示:RS232串口通信及电源电路等设计,如图3.3所示图3.3 附属电路设计图四、软件设计4.1 主程序设计使用定时器0来定时,定时5ms,运用定时器的中断来实现这些功能,显示是用的数码管的动态扫描,每5ms扫描一位数码管,20ms循环一次。
设置一些标志位,实时时间显示的标志位,星期显示的标志位,闹铃时间显示的标志位,秒表显示的标志位,在不同的模式下,我们要使该模式下的标志位有效,从而进行此模式的显示,通过按键进行不同的操作。
每个标志位有效时,数码管显示的内容就不一样。
闹钟的实现是用一个子函数,每5ms调用一次函数,并把北京时间与设定的闹铃时间比较,如果相等就使蜂鸣器有效。
闹铃时间的长短可以用一个变量对秒计数,当计数值小于我们设定的值时,就是蜂鸣器有效,当大于等于设定的值时就关闭蜂鸣器。
整点报时或半点报时很好实现,在中断函数里,当分钟等于60时,蜂鸣器对应鸣叫相应点数,并且小时要自增1,当分钟等于30时,蜂鸣器鸣一次,分钟自增1,要使蜂鸣器有效,可用一个变量对秒计数,当秒等于我们设定的值时,就关闭蜂鸣器。
4.2 系统操作功能设计根据系统功能描述,可以分为:北京时间功能、整点报时、闹铃功能、日期显示及秒表功能功能。
我们通过对K_Mode键按下的次数计数,用Mode计数,Mode的次数就代表了不同的模式,每个模式都有与之相对应的指示灯,每个模式的功能如下:Mode 0:按键每按下时显示北京时间模式,此时,四个指示灯全灭,显示格式为:小时.分钟(如:07.35,为7点35分),按K_UP或者K_DN键对系统没影响,每到整点或半点时时,要进行相应点数的间隔蜂鸣报时(半点短鸣一次)。
Mode 1:按键按下一次时,进入修改北京时间的小时模式,四个指示灯依次为“亮灭灭灭”,按K_UP或者K_DN键对小时进行修改。
Mode 2:按键按下两次时,进入修改北京时间的分钟模式,四个指示灯依次为“灭亮灭灭”,按K_UP或者K_DN键对分钟进行修改。
Mode 3:按键按下三次时,进入修改闹铃时间的小时模式,四个指示灯依次为“灭灭亮灭”,按K_UP或者K_DN键对闹铃小时进行修改。
Mode 4:按键按下四次时,进入修改闹铃时间的分钟模式,四个指示灯依次为灭灭灭亮,按K_UP或者K_DN键对闹铃分钟进行修改。
Mode 5:按键按下五次时,进入年显示模式,四个指示灯依次为“亮亮灭灭”,显示格式为:四位年(如20.12为当前年份为公元2012年),在此种模式下,按K_UP或者K_DN键对系统没影响。
Mode 6:按键按下六次时,进入月日显示模式,四个指示灯依次为“亮灭亮灭”,显示格式为:月日(如07.05为当前日期为7月5日),在此种模式下,按K_UP或者K_DN键对系统没影响。
Mode 7:按键按下七次时,进入秒表模式,四个指示灯依次为“亮灭灭亮”,显示格式为:秒百分秒(如05.90为当前秒表计时到5秒900毫秒),在此种模式下,K_UP键设为用来启动/暂停秒表、K_DN键设为用来对秒表进行清零。
Mode 8:按键按下八次时,进入闹钟选择模式,四个指示灯依次为“亮亮亮灭”,显示格式为:CL01/00,"CL.00"表示贪睡闹铃功能关闭,"CL.01"表示贪睡闹铃功能开启,按UP或DN键可在00或01间循环选择;在贪睡闹铃功能关闭时,可按任意键停止当前闹钟,或不按键,则闹钟1分钟,以后再不响。
在贪睡闹铃功能开启时,如按下除UP键外的任意键,停止当前闹钟,如不按键,则闹钟1分钟;当过5分钟后,闹钟又会重新响起,如此循环,只有按下UP键时,才能停止闹钟以后再不响。
在此种模式下,K_UP键设为用来启动/暂停秒表、K_DN 键设为用来对秒表进行清零。
Mode 9:按键按下九次时,进入整点报时选择模式,四个指示灯依次为“亮亮亮亮”,显示格式为:BS01/00,"BS.00"表示整点报时功能关闭,01表示报时功能开启,按UP或DN键可在00或01间循环选择。
4.3主程序void main()图4.1 主程序功能流程图4.4主程序设计主程序采用定时器0对程序进行扫描执行。
分别执行DS1302芯片初始化子程序,写数据子程序,将最初的值写入芯片中,采用while循环循环执行键盘扫描子程序。
main(){TMOD=0x01; //使用模式1,16位定时器TH0=(65536-10000)/256; //给定初值TL0=(65536-10000)%256;EA=1; //总中断打开ET0=1; //定时器中断打开TR0=1; //定时器开关打开Ds1302_Init();Ds1302_Write_Time();while(1){keyscan();if(Btread==0){ Btread=1;Ds1302_Read_Time();}display();}4.5 DS1302子程序设计此子程序分为初始化程序,读数据程序,写数据程序,一些数据程序为例;void Ds1302_Write_Byte(unsigned char addr, unsigned char d){CE=0;_nop_();SCLK=0; _nop_();CE=1; _nop_(); Write1302(addr); Write1302(d); CE=0; _nop_(); IO=1;SCLK=1;}4.6时间调整子程序时间调整子程序采用的是对key1按的次数不同来进行对年月日时分及星期的设置。
void zongshi(void){if(!key){if(btx==0){if(!key){btx=1;k++; } } }else{btx=0;}} k=1时,调整年份,key1为加,key2为减void keyscan() k=2时,调整月份,key1为加,key2为减{ k=3时,调整日份,key1为加,key2为减display(); k=4时,调整星期,key1为加,key2为减if(!key){if(btx==0){if(!key){btx=1;k++;}}4.7 按键切换子程序void tiaoshidisplay(){if(z==15){z=0;switch(k){case 1:bt1=~bt1;break; //年case 2:bt2=~bt2;bt1=0;break; //月case 3:bt3=~bt3;bt1=0;break; //日case 4:bt1=~bt1;bt3=0;break; //周case 5:bt2=~bt2;bt1=0;break; //时case 6:bt3=~bt3;bt2=0;break; //分default:bt3=0;break; }}}五、调试及性能分析5.1软件测试电子成年历是多功能的数字型,可以看当前日期(阴、阳历),时间,还有温度的仪器。