多功能时钟设计

合集下载

电子技术课程设计----多功能电子时钟的设计

电子技术课程设计----多功能电子时钟的设计

电子技术(下)课程设计题目名称:多功能电子时钟的设计院系名称:电子信息学院班级:学号:学生姓名:指导教师:年月电子技术(下)课程设计任务书姓名学号学院电子信息学院班级题目多功能电子时钟的设计设计任务1、基本部分1)、由振荡电路产生秒脉冲信号;2)、经分频电路、计数电路、译码电路,由数码管显示;3)、秒和分电路为60进制,小时电路为24进制;2、发挥部分1)、可以增加校正电路,对秒、分、小时进行校对;2)、可以增加报时电路,整点前进行“四低一高”报时;时间进度总体时间为1周;星期一上午:讲解;星期一下午:理解电路原理;星期二上午:发放元器件和工具,设计电路和连线;星期四上午:验收电路;星期日之前:上交课程设计报告;主要参考文献[1]康华光。

电子技术基础数字部分(第五版)。

北京:高等教育出版社,2006;[2]康华光。

电子技术基础模拟部分(第五版)。

北京:高等教育出版社,2006;[3]电子技术(下)实验指导书,中原工学院电子技术课程组自编,2011;摘要设计一台可以准确计时,以十进制数显示“时”、“分”、“秒”的多功能电子时钟,小时为24进制,分和秒均为60进制。

多功能电子时钟实际是一个对标准频率(1HZ)进行计数的计数电路,是采用数字电路实现“时”、“分”、“秒”数字显示的计时装置。

通过本课程设计,巩固加强“数字电子技术”课程的理论知识;掌握电子电路的一般设计方法,并了解电子产品研制开发的过程;基本掌握电子电路安装和调试的方法;培养独立分析问题和解决问题的能力以及创新能力和创新思维。

关键词:电子时钟;计数器;AbstractDesign a can accurate timing, in decimal number shows "hour"," minute" and "seconds" multifunctional electronic clock, for 24 hours into the system, minutes and seconds are 60 into the system. Multifunctional electronic clock is actually a for standard frequency (1 HZ) to count count circuit, is the digital circuit implementation digital display timer device. Through this course design, make we strengthen "hour","minute" and "seconds" digital electronic technology" the curriculum theory knowledge; Grasp the electronic circuit of the general design method, and understand the electronic product development development process; Basic grasp the electronic circuit installation and debugging methods; To foster independent analysis and problem-solving ability and creative ability and creative thinking.Key words:Electronic clock; counter;目录中文摘要Abstract第一章绪论 (1)第二章总体方案设计 (1)2.1 设计内容 (1)2.1.1基本部分 (1)2.1.2发挥部分 (1)2.2 原理说明 (1)第三章单元模块设计 (3)3.1 振荡器 (3)3.2 分频器 (6)3.3 计数器 (7)3.4 译码显示电路 (10)3.5校时电路 (11)3.6 整点报时电路 (12)第四章系统的调试与功能 (13)4.1 系统的调试 (13)4.2 系统的功能 (14)第五章心得体会 (15)参考文献 (15)附录一:工具清单 (15)附录二:元器件清单 (16)附录三:主要元器件的引脚图和功能表 (17)第一章绪论随科技的发展,电子产品越来越多的走进人们的生活,工艺也是越来越精湛。

多功能电子钟毕业设计

多功能电子钟毕业设计

多功能电子钟毕业设计本文主要介绍了一款多功能电子钟的设计方案,其中包括时钟、定时器、闹钟、日历、温度显示等多种功能。

通过硬件和软件的相结合,实现了这种多功能的电子钟,具有易操作、准确显示、功能多样等特点。

本设计可用于家庭、实验室、工作室等多种场合。

一、设计目标随着现代科技的发展,电子钟成为人们生活中不可缺少的一部分。

因此,本文设计了一款多功能电子钟,集时钟、定时器、闹钟、日历、温度显示等多种功能于一身,方便人们的日常生活。

二、设计原理该电子钟的各项功能均用单片机控制实现。

电子钟的控制部分是基于51单片机进行设计。

时钟的原理是通过一个晶振来控制芯片的工作频率,从而达到时钟的准确显示。

使用DS1302进行存储和控制时间。

定时器的原理是通过定时器中断进行实现,通过设定定时器的计数值即可实现定时器的功能。

闹钟的原理是通过设定一个“警报时间”来实现,当时间到达“警报时间”时,闹钟就会开始响铃。

日历的原理是通过读取DS1302中存储的日期信息进行实现。

温度显示的原理是通过使用DS18B20传感器实现对温度的检测。

三、硬件设计本设计的硬件主要由以下部分组成:显示部分、按键部分、计时器部分、DS1302时钟芯片、DS18B20温度传感器、单片机及其外设(如LCD12864液晶屏等)。

1.显示部分本设计采用LCD12864液晶屏进行显示。

2.按键部分本设计采用4个按键T1~T4,T1键用于切换时间制式;T2键用于设定时间和日期等;T3键用于设定闹钟;T4键用于定时器的设定。

3.计时器部分本设计采用计时器555进行固定时间的计时。

4. DS1302时钟芯片DS1302时钟芯片是一种用于实现实时时钟的芯片,本设计将其用于控制电子钟的时间。

5. DS18B20温度传感器DS18B20温度传感器是一种用于测量温度的芯片,本设计将其用于温度显示功能。

6. 单片机及其外设本设计采用AT89C52单片机进行控制,其外设包括LCD12864液晶屏、DS1302时钟芯片、DS18B20温度传感器等。

多功能数字钟设计实验报告XilinxEDABasys2华中科技大学HUST

多功能数字钟设计实验报告XilinxEDABasys2华中科技大学HUST

多功能数字钟设计实验报告院系:电子与通信工程学院:郭世康班级:1301学号:U202113639指导教师:唐祖平一、实验目标掌握可编程逻辑器件的应用开发技术——设计输入、编译、仿真和器件编程熟悉EDA软件使用掌握Verilog HDL设计方法分模块、分层次数字系统设计二、实验容要求根本功能能显示小时、分钟、秒钟〔时、分用显示器,秒用LED〕能调整小时、分钟的时间提高要求任意闹钟;〔1分〕小时为12/24进制可切换〔1分〕报正点数〔几点钟LED闪烁几下〕〔1分〕三、实验条件Xilinx工程环境,win7操作系统,BASYS2实验板。

四、实验设计1.设计分析数字钟大体上由2个60进制计数器,1个24进制计数器构成,中间有数据选择器进展连接。

为实现提高功能,还需12进制计数和整点判断模块。

下列图为数字钟层次构造图。

2. 实验原理振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,再经分频器输出标准秒脉冲。

秒计数器计满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按24或12进制规律计数。

计数器的输送译码显示电路,即可显示出数码〔即时间〕。

计时出现误差时可以用校时电路进展校时和校分。

小时显示〔12\24〕切换电路、仿电台报时、定时闹钟为扩展电路,只有在计时主体电路正常运行的情况下才能进展功能扩展。

本实验采用Verilog HDL进展描述,然后用FPGA/CPLD实现,使用部50MHz 晶振作为时钟电路。

3. 逻辑设计实现上述功能的Verilog HDL 程序如下。

实现根本功能的程序分为两层次四个模块,底层有3个模块构成,即6进制计数器模块,10进制计数器模块和24进制计数器模块,顶层有一个模块,他调用底层的3个模块完成数字中的计时功能。

moduletimeclock(Hour,Minute,Second,CP,nCR,EN,Adj_Min,Adj_Hour,number,Light,clk,temp,c hange,AMTM,dingdong);output [7:0] Hour,Minute,Second;output [3:0] Light,temp;output [6:0] number;output clk,AMTM,dingdong;//clk为分频之后的时钟信号,频率为1Hz,AMTM为24进制转换12进制时说明上下午的变量,dingdong为整点报时时的闪烁信号。

电子综合设计多功能数字钟报告

电子综合设计多功能数字钟报告

电子综合设计多功能数字钟报告报告内容如下:一、设计目的和原理多功能数字钟是一种能够显示时间,并具有闹钟、计时、倒计时等功能的电子设备。

本设计的目的是通过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实现多功能数字钟的设计,在硬件和软件的配合下,实现了时间的显示和闹钟的设置功能。

多功能数字电子钟设计

多功能数字电子钟设计

数字逻辑课程设计-多功能数字电子钟多功能数字钟的设计与仿真一.设计任务与要求设计任务:设计一个多功能数字钟。

要求:1.有“时”、“分”、“秒”(23小时59分59秒)显示且有校时功能。

(设计秒脉冲发生器)2.有整点报时功能。

(选:上下午、日期、闹钟等)3. 用中规模、小规模集成电路及模拟器件实现。

4. 供电方式: 5V直流电源二.设计目的、方案及原理1.设计目的(1)熟悉集成电路的引脚安排。

(2)掌握各芯片的逻辑功能及使用方法。

(3)了解面包板结构及其接线方法。

(4)了解多功能数字钟的组成及工作原理。

(5)熟悉多功能数字钟的设计与制作2.设计思路(1)设计数字钟的时、分、秒电路。

(2)设计可预置时间的校时电路。

(3)设计整点报时电路。

3.设计过程3.1.总体设计方案及其工作原理为:数字钟原理框图入图1所示,电路一般包括一下几个部分:振荡器、星期、小时、分钟、秒计数器、校时电路、报时电路。

数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。

由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。

通常使用石英晶体振荡器电路构成数字钟,但也可以用555定时器构成。

图1 系统框图数字钟计时的标准信号应该是频率相当稳定的1HZ秒脉冲,所以要设置标准时间源。

数字钟计时周期是24小时,因此必须设置24计数器,秒、分、时由数码管显示。

ﻫ为使数字钟走时与标准时间一致,校时电路是必不可少的。

设计中采用开关控制校时电路“时”“分”“秒”计数器进行校时操作。

3.2.各独立功能部件的设计(1)分、秒计时器(60进制),时计数器(24进制),星期计数器(7进制)如下图,图中蓝色线为高电平+5v,绿色为接地线,红色线为时钟脉冲。

获得秒脉冲信号后,可根据60秒为一分,60分为一小时,24时为一个计数周期的计数规则,分别确定秒、分、时的计数器。

由于秒和分的显示都为60进制,因此他们可有两级十进制计数器组成,其中秒和分的个位为十进数器,十位为六进制计数器,可利用两片74160集成电路来实现。

多功能数字钟电路设计

多功能数字钟电路设计

多功能数字钟电路设计
1.时钟显示:设计一个数字时钟显示电路,可以显示当前的时间(小
时和分钟)。

可以使用七段显示器来显示数字。

2.闹钟功能:设计一个闹钟功能,可以设置闹钟时间,并在到达闹钟
时间时发出提示声音或闹铃。

3.温度显示:设计一个温度传感器电路,并将当前温度显示在数字时
钟上。

4.日历功能:设计一个日历功能,可以显示当前的日期和星期。

5.定时器功能:设计一个定时器功能,可以设置一个特定的时间间隔,并在到达时间间隔时发出提示声音或闹铃。

6.闹钟休眠功能:设计一个闹钟休眠功能,可以设置一个特定的时间
间隔,在此时间间隔内按下按钮可以将闹钟功能暂时关闭。

7.闹钟重复功能:设计一个闹钟重复功能,可以设置一个特定的时间
间隔,使闹钟在每天相同的时间段重复响铃。

8.亮度调节功能:设计一个亮度调节功能,可以调整数字时钟的显示
亮度。

这些功能可以根据需求进行组合设计,可以使用逻辑门、计数器、显
示器驱动器、温度传感器、按钮等元件来完成电路设计。

基于单片机的多功能数字钟的设计

基于单片机的多功能数字钟的设计

一、概述现代社会,时间被视为人们生活的重要组成部分。

而数字钟作为时间的一种展现形式,已经成为人们生活中不可或缺的一部分。

基于单片机的多功能数字钟设计,将为人们提供更加准确、便捷、多功能的时间展现方式,满足人们对时间的精准要求,同时也为人们的生活带来更多便利。

二、设计目标1. 实现精准的时间显示功能,包括时、分、秒的显示;2. 实现对日期的显示,包括年、月、日的显示;3. 实现多种报时功能,如定时报时、闹钟报时等;4. 实现多种显示效果,如渐变显示、闪烁显示等;5. 实现对时间的调整功能,包括校时、调整日期等;6. 实现对亮度的调节功能,适应不同环境下的使用需求。

三、设计思路1. 硬件设计1.1 硬件采用单片机作为核心控制器,通过外部晶振提供时钟信号;1.2 采用数码管作为显示设备,通过单片机控制数码管进行时间、日期的显示;1.3 通过按钮、旋钮等输入设备,实现时间调节、报时设置等操作;1.4 通过EEPROM等存储设备,实现时间、设置的存储和读取功能;1.5 通过光敏电阻等光敏传感器,实现对环境光强的检测,调节数码管显示亮度。

2. 软件设计2.1 设计合理的时钟系统,确保时间的准确显示;2.2 设计报时功能模块,实现定时报时、闹钟报时等功能;2.3 设计显示控制模块,实现数字、日期的显示效果控制;2.4 设计操作响应模块,实现对按钮、旋钮等输入设备的操作响应;2.5 设计存储管理模块,实现时间、设置数据的存储和读取功能;2.6 设计光敏控制模块,实现对数码管显示亮度的实时调节。

四、实现方法1. 硬件设计1.1 选择合适的单片机作为核心控制器,根据需要进行外围电路的设计;1.2 选择合适的数码管作为显示设备,设计驱动电路以及显示控制电路;1.3 选择合适的按钮、旋钮等输入设备,设计输入电路以及操作响应电路;1.4 选择合适的EEPROM芯片,设计存储管理电路实现数据的存储和读取;1.5 选择合适的光敏电阻或光敏二极管,设计光敏控制电路实现显示亮度的调节。

多功能电子钟设计报告

多功能电子钟设计报告

单片机课程设计报告班级:学号:姓名:专业:学院:多功能电子时钟设计一、设计任务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七、总结通过维持两天的课程设计,我对单片机有了更深的理解,以前做一些简单的实验还能自己编写代码,然后独立完成实验,但现在做个复杂点的设计,还是觉得有些难度的,不过思路还是有点的,在自己尝试着编写程序时,遇到的困难还是挺多的,特别是在写校时和显示的程序写到一半就写不下了,最后不得不参考别人的程序!有时候自己觉得刚开始不会写程序不要紧,能看懂别人写的程序还是挺重要的,因为程序看多了,有一定的积累,到最后自己写程序还是没问题的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

可编程逻辑器件及其应用设计报告姓名:王克勤院系:*******学号:*******日期:2012-04-09多功能数字钟设计一、设计内容及要求用Verilog HDL设计一个多功能数字钟基本功能描述:1.时钟功能:包括时、分、秒的显示;2.定时与闹钟功能:能在设定的时间发出闹铃音;3.校时功能:能非常方便地对小时、分钟和秒进行手动调整以校准时间;4.整点报时功能:每逢整点,产生“嘀嘀嘀嘀--嘟”,四短一长的报时音。

二、仿真环境说明用Verilog在Altera公司的Quartus2软件环境下编写RTL代码,并进行综合,行为仿真。

时序仿真采用Mentor公司旗下的ModelsimSE-6.1f软件。

Modelsim 软件是业界最著名的波形仿真软件,仿真效果比Quartus2下编写波形文件仿真效果要好很多,而且仿真相当简单,只不过要编写测试向量(testbench),有点麻烦。

三、系统框图与说明Figure1系统框图1.数字钟电路系统由主体电路和扩展电路两大部分所组成。

2. 秒计数器计到59后,下一秒到来时,秒计时器满60,接着清零后向分计数器进位;同样分计数器计满60后向小时计数器进位;小时计数器按照“24进制”规律计数,每当小时计到23小时时,当分计数和秒计数分别59,59时,即到23小时59分,59秒时候,时分秒全部清零,从新开始计数。

3. 计数器的输出经译码器送显示器,显示器用6个数码管表示,每两个数码管分别表示小时,分钟,秒钟。

每个数码管用BCD码表示。

四、设计步骤(一)列写多功能数字钟设计结构图(二)在QuartusП软件下编写Verilog代码(三)在QuartusП环境下进行综合Figure2综合结果从Fig.2可以看出,该设计采用Altera公司CycloneП系列下的EP2C35F672C8芯片。

从图中可以看出,采用了162个逻辑单元,其中组合逻辑147个,总共的寄存器数为102个。

Figure3RTL门级电路1Figure4RTL门级电路2Figure5RTL门级电路3Figure6RTL门级电路4如图Fig.3、Fig.4、Fig.5、Fig.6所示为综合生成的RTL门级电路,由与设计比较复杂,模块比较多,生成的RTL电路也比较复杂。

不好分析RTL电路是否正确,可以通过时序仿真来分析设计的正确性。

(四)用Modelsim软件进行时序仿真1.建立工程文件,编写multiclock代码2.编写testbench测试向量3.进行波形仿真五、仿真波形及其结果分析(一)整点报时Figure7整点报时仿真波形如图Fig.7所示,时钟能正常工作,9点59分55秒开始,将要到十点时候,产生四短一长的“滴,滴,滴,滴,嘟”报时音。

该功能仿真正确。

(二)设置闹钟Figure8设置闹钟时间为10点28分如图Fig.8所示,设计闹钟时间为10点28分整。

从图中可以看出,闹钟时间到达时候,alert闹钟信号报警,产生20秒的报警音。

当按住change 信号时,即change信号为高电平时,屏蔽闹钟音。

当28分08秒时,change 信号为高电平,则屏蔽掉20秒的闹钟音。

(三)校准时间1.调整到固定时刻Figure9调整到9点32分仿真波形如图Fig.9所示,校准到9点32分,校准时、分刻度时,秒刻度屏蔽,之后继续走。

从图中可以看出,校准分刻度时,LD_min高电平有效,LD_alert高电平有效,时针刻度从10变为9,分针刻度变为32,能正确满足校时功能。

2.调整分钟刻度Figure10调整分钟仿真波形如图Fig.10所示,调整分钟刻度,LD_min为高电平时,每按一次change 键,分钟刻度加 1。

3.调整时针刻度Figure11逐次调整时针仿真波形如图Fig.11所示,LD_hour为高电平,LD_min为低电平时,每按一次change 键,时针刻度加1。

从图中可以看出,时针刻度随着change信号的变化,逐次从00变为09。

Figure12连续调整时针仿真波形如图Fig.12所示,LD_hour为高电平,LD_min为低电平时,连续按change 键,即change一直为高电平时,时针信号hour连续加一。

从图中可以看出,hour 信号从01一直加到09.六、实验总结1.通过本次课程设计的学习,能够熟练地掌握了verilog编程的方法技巧,并能够运用到实际。

设计出多功能时钟电路。

对设计的多功能时钟电路能满足设计要求,基本满意。

2.本次多功能数字钟设计,花费不少时间和精力,同时也收获了很多,学会了使用Verilog语言编程仿真电路实验,掌握了可编程逻辑器件的应用开发技术,熟悉了Quartus2软件的使用,并能够运用Modelsim软件对电路进行时序仿真,会编写测试向量,仿真得到自己预期的结果。

3.本次多功能数字钟设计实验,对于Verilog语言的学习与应用,是一次很好的锻炼机会。

以前自己也学过,但是不是很系统,只是了解个大概,这次设计基本上能够熟练运用。

在设计过程中,汲取了诸多经验教训,深刻体会到一个小小的错误可能会给整个程序所带来的严重后果。

所以,在以后的学习及程序设计当中,我们一定要倍加小心,在程序出现不正常运行的情况下要耐心调试,尽量做到精益求精。

4.由于个人能力有限,本次设计还有很多地方需要改善,以后会更加努力的学习。

但本次设计实验已使我对Verilog语言产生了浓厚的兴趣,在以后的学习生活中会主动去了解更多有关这方面的知识及其在实践中的应用。

5. 本次设计中遇到了很多问题,得到了很多同学的帮助,在此特别感谢我们教研室的刘洋同学、唐伟同学和殷存禄同学,没有他们的帮助,我不可能把设计做的这样好。

在此再次表示感谢!附录(一)多功能时钟RTL代码:多功能时钟整体模块代码:module multiclock (clk,,clk_1k,mode,change,turn,rst,alert,hour,min,sec,LD_alert,LD_hour,LD_min);input clk; //标准时钟信号,本例中频率为4Hzinput clk_1k; //产生闹铃音、报时音的时钟信号,本例中其频率为1024Hzinput mode; //功能控制信号:0表示计时功能,1表示闹钟功能,2表示手动校时功能。

input change; //按接键,手动调整时,每按一次,计数器加1,如果长按,则连续快速加1,//用于快速调试和定时。

input turn; //按接键,在手动校时功能时候,选择是调整小时还是分钟,//如果长按住键,还可以是秒信号清零,用于精确调时间。

input rst; //使能信号,高电平有效output alert; // 输出到扬声器的信号,用于产生闹铃音和报时音;//闹铃音为持续20 秒的急促的“嘀嘀嘀”音,若按住“change”键,//则可屏蔽该音;整点报时音为“嘀嘀嘀嘀—嘟”四短一长音;output LD_alert; //接发光二极管,指示是否设置了闹钟功能;output LD_hour; //接发光二极管,指示当前调整的是小时信号;output LD_min; //接发光二极管,指示当前调整的是分钟信号output[7:0] hour,min,sec; //分别输出并显示时、分、秒信号,//皆采用BCD 码计数,分别驱动6 个数码管显示时间;reg[7:0] hour,min,sec,hour1,min1,sec1,ahour,amin;reg[1:0] m,num1,num2,num3,num4;reg fm;reg[1:0] loop1,loop2,loop3,loop4,sound;reg LD_hour,LD_min;reg clk_1Hz,clk_2Hz,minclk,hclk;reg alert1,alert2,ear;reg count1,count2,counta,countb;wire ct1,ct2,cta,ctb,m_clk,h_clk;always @(posedge clk,posedge rst)beginif(rst)beginclk_2Hz <= 0;sound <= 2'b00;ear <= 0;endelsebeginclk_2Hz<=~clk_2Hz;if(sound==3)beginsound<=0;ear<=1; //ear 信号用于产生或屏蔽声音endelsebeginsound<=sound+1;ear<=0;endendendalways @(posedge clk_2Hz,posedge rst)beginif(rst)clk_1Hz <= 0;elseclk_1Hz<=~clk_1Hz; //由4Hz 的输入时钟产生1Hz 的时基信号endalways @(posedge mode,posedge rst)//mode 信号控制系统在三种功能间转换beginif(rst)m <= 2'b00;elsebeginif(m==2) m<=0;else m<=m+1;endendalways @(posedge turn,posedge rst) //turn的上升沿有效beginif(rst)fm <= 1'b0;elsefm<=~fm; //fm取反endalways @(posedge clk,posedge rst)//该进程产生count1,count2,counta,countb 四个信号beginif(rst)begincount1 <= 0;count2 <= 0;counta <= 0;countb <= 0;LD_hour <= 0;LD_min <= 0;endelsebegincase(m) //mode产生的三个控制信号2: begin //手动校时if(fm)begincount1<=change;{LD_min,LD_hour}<=2; //校准分钟endelsebegincounta<=change;{LD_min,LD_hour}<=1; //校准小时end{count2,countb}<=0; //将调整闹钟的控制信号置零end1: begin //设置闹钟if(fm)begincount2<=change;{LD_min,LD_hour}<=2; //显示设置分钟endelsebegincountb<=change;{LD_min,LD_hour}<=1; //显示设置小时end{count1,counta}<=2'b00; //将手动校时的控制信号置零enddefault: {count1,count2,counta,countb,LD_min,LD_hour}<=0;//所有信号控制校时和设置闹钟的信号都清零,指示灯置0,计时开始。

相关文档
最新文档