电子时钟设计报告
数字电子钟设计报告
数字电子钟一.摘要数字电子钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。
它的计时周期为24小时,显示满刻度为23时59分59秒。
因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路和振荡器组成。
主电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路组成。
秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。
将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。
“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。
“时计数器”采用24进制计时器,可实现对一天24小时的累计。
译码显示电路将“时”、“分”、“秒”计数器的输出状态用七段显示译码器译码,通过七段显示器显示出来。
校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整。
采用74160,74393实现24进制和60进制,从而实现计数功能。
目录一.正文 (3)1.1系统设计 (3)1.11设计原理(数字电子钟结构框图): (3)1.12石英晶体振荡器 (3)1.2单元电路设计 (4)1.21时、分、秒计数器的设计: (4)1.2.1.1 元器件的选择:74LS160 同步十进制计数器、与非门 (4)1.2.1.2 二十四进制计数器电路图 (5)1.2.1.3 六十进制计数器电路图 (6)1.2.1.4 秒脉冲谐振电路: (6)1.3系统的测试 (8)1.3.1 N进制级联 (8)1.3.2分频器电路 (8)1.3.3.调校电路 (9)1.4 总结 (10)参考文献 (10)附录 (11)1.元器件的明细表 (12)一.正文1.1系统设计1.11设计原理(数字电子钟结构框图):数字电子钟是一个典型的数字电路系统,其由直流稳压电源,秒脉冲发生器,时、分、秒计数器以及校时和显示电路组成结构框图如下:图表 11.12石英晶体振荡器:石英晶体振荡器的特点是振荡频率准确,电路结构简单,频率易调节。
基于单片机的电子时钟课程设计报告
目录一、引言········二、设计课题·········三、系统总体方案·········四、系统硬件设计······1.硬件电路原理图2.元件清单五、系统软件设计·········1.软件流程图2.程序清单六、系统实物图········七、课程设计体会········八、参考文献及网站·········九、附录·········一.引言单片机因将其主要组成部分集成在一个芯片上而得名,就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接口电路等部件集成在一个芯片上。
基于单片机设计的数字钟精确度较高,因为在程序的执行过程中,任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。
数字钟是采用数字电路实现对日期、时、分、秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。
数字钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便。
简易电子时钟设计报告
简易电子时钟设计报告1. 引言电子时钟是一种用数字形式显示时间的时钟,广泛应用于日常生活中。
本文将介绍一种简易的电子时钟设计方案,包括硬件设计和软件实现。
该电子时钟采用数字LED显示屏,并通过开发板上的微控制器控制时间的显示。
2. 硬件设计2.1 硬件组成该电子时钟的主要硬件组成包括:- 数字LED显示屏:用于显示时钟的小时和分钟数。
该显示屏采用共阳极的数码管,每个数字有7个段可以点亮。
- 微控制器:使用STM32F103C8T6微控制器,具备足够的输入输出和处理能力。
- 调节按钮:用于调节时钟的小时和分钟数。
2.2 电路设计数字LED显示屏的每个段通过一个继电器和一个可控硅管来控制。
继电器通过微控制器的输出口来控制,可控硅管则通过脉宽调制(PWM)来控制。
微控制器通过GPIO口读取调节按钮的状态,根据按钮的操作来调整时钟的小时和分钟数。
同时,微控制器通过定时器中断来实现时钟的运行和显示。
电路设计如下图所示:![电子时钟电路设计图](clock_circuit_design.png)3. 软件实现3.1 开发环境本设计使用Keil MDK开发环境进行软件的编写和调试。
Keil MDK 是一款常用的嵌入式开发工具,提供了强大的代码编辑、编译和仿真功能。
3.2 时钟控制软件中定义了一个结构体`Time`,包含了小时数和分钟数的变量。
通过定时器中断,每隔一秒钟将时钟的秒数加一,并根据秒数的变化更新时钟的小时和分钟数。
具体实现如下:cstruct Time {int hour;int minute;int second;void TIM2_IRQHandler(void) {if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) { TIM_ClearITPendingBit(TIM2, TIM_IT_Update); time.second++;if (time.second >= 60) {time.second = 0;time.minute++;}if (time.minute >= 60) {time.minute = 0;time.hour++;}if (time.hour >= 24) {time.hour = 0;}}3.3 数字显示根据时钟的小时和分钟数,将数字转换成BCD码,然后通过GPIO 口控制数字LED显示屏的每个段点亮或熄灭。
单片机电子时钟课程设计设计报告
单片机电子时钟设计一、作品功能介绍该作品是个性化电子钟设计,技术上主要用单片机(AT89S52)主控,6位LED数码显示,分别显示“小时:分钟:秒”。
该作品主要用于24小时计时显示,能整时报时,能作为秒表使用,能定时闹铃1分钟。
功能介绍:(1)上电以后自动进入计时状态,起始于00:00:00。
(2)设计键盘调整时间,完成时间设计,并设置闹钟。
(3)定时时间为1/100秒,可采用定时器实现。
(4)采用LED数码管显示,时、分,秒采用数字显示。
(5)采用24小时制,具有方便的时间调校功能。
(6)具有时钟和秒表的切换功能。
使用方法:开机后时钟在00:00:00起开始计时。
(1)长按进入调分状态:分单元闪烁,按加1,按减1.再长按进入时调整状态,时单元闪烁,加减调整同调分.按长按退出调整状态。
(2)(2)按进入设定闹时状态: 12:00: ,可进行分设定,按分加1,再按为时调整,按时加1,按调闹钟结束.在闹铃时可按停闹,不按闹铃1分钟。
(3)按下进入秒表状态:再按秒表又启动,按暂停,再按秒表清零,按退出秒表回到时钟状态。
二、电路原理图如原理图所示,硬件系统主要由单片机最小应用系统、LED数码管显示模块、电源模块、晶振模块、按键模块等组成。
电子时钟原理图各个模块设计1.单片机系统 AT89S52 AT89S52概述:是一款非常适合单片机初学者学习的单片机,它完全兼容传统的8051,8031的指令系统,他的运行速度要比8051快最高支持达33MHz的晶体震荡器,在此系统中使用12MHz的晶振。
AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
基于51的电子闹钟设计报告(附原理图、PCB图、程序)
基于51的电⼦闹钟设计报告(附原理图、PCB图、程序)成都信息⼯程学院第五届嵌⼊式创新技术⼤赛基于MCS51的智能电⼦闹钟设计报告姓名学院班级实物图⽬录1.电⼦时钟的设计原理和⽅法 (1)1.1设计原理 (1)1.2 硬件电路的设计 (1)1.2.1 STC89C51RC简介 (1)1.2.2 键盘电路的设计 (2)1.2.3蜂鸣器驱动电路 (3)1.2.4 数码管驱动电路 (3)1.2.5 电源电路 (4)1.3软件部分的设计 (4)1.3.1主程序部分的设计 (4)1.3.2中断计时器及时间进位 (5)1.3.3 闹钟⼦函数 (7)1.3.4 按键扫描 (8)1.3.5 时钟闹钟设置 (9)1.3.6 显⽰数字函数 (10)1.3.7 显⽰界⾯函数 (10)1.3.8 闹钟记录及读取 (11)2.硬件调试 (13)附录A:电路原理图 (15)附录B:电路PCB图 (16)附录C:源程序 (17)1.电⼦时钟的设计原理和⽅法1.1设计原理系统框图1.2硬件电路的设计1.2.1 STC89C51RC简介STC89C52R CSTC89C51RC是⼀种带8K闪烁可编程可擦除只读存储器(FPETOM-FlashProgrammabalandErasableReadOnlyMemory )的低电压、⾼性能CMOS8位微型处理器,即单⽚机芯⽚。
单⽚机的可擦除只读存储器可以反复擦除1000次,内部FLASH 擦写次数为100000次以上。
该芯⽚使⽤⾼密度⾮易失存储制造技术,与⼯业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU 和闪烁存储器集成在单个芯⽚中,使得STC89C51RC 成为了⼀种性价⽐极⾼的微型处理器芯⽚,在许多电路设计中都得到了应⽤。
STC89C51RC 单⽚机特点:⼯作电压:5.5V-3.4V ⼯作频率:0-40MHz ⽤户应⽤程序空间:8K ⽚上集成128*8RAMISP (在系统可编程)/IAP (在应⽤可编程),⽆需专⽤编程器/仿真器可通过串⼝(P3.0/P3.1)直接下载⽤户程序EEPROM 功能共3个16位定时器/计数器,其中定时0还可以当成2个8位定时器使⽤外部中断4路通⽤异步串⾏⼝(UART ),还可⽤定时器软件实现多个UART ⼯作温度范围:0-75℃引脚说明:VCC:供电电压 GND :接地P0:P0是⼀个8位漏级开路双向I/O ⼝,低8位地址复⽤总线端⼝。
单片机电子时钟课程设计实验报告(1)
单片机电子时钟课程设计实验报告(1)单片机电子时钟课程设计实验报告一、实验内容本次实验的主要内容是使用单片机设计一个电子时钟,通过编程控制单片机,实现时钟的显示、报时、闹钟等功能。
二、实验步骤1.硬件设计根据实验要求,搭建电子时钟的硬件电路,包括单片机、时钟模块、显示模块、按键模块等。
2.软件设计通过C语言编写单片机程序,用于实现时钟功能。
3.程序实现(1)时钟显示功能通过读取时钟模块的时间信息,在显示模块上显示当前时间。
(2)报时功能设置定时器,在每个整点时,通过发出对应的蜂鸣声,提示时间到达整点。
(3)闹钟功能设置闹钟时间和闹铃时间,在闹钟时间到达时,发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。
(4)时间设置功能通过按键模块实现时间的设置,包括设置小时数、分钟数、秒数等。
(5)年月日设置功能通过按键模块实现年月日的设置,包括设置年份、月份、日期等。
三、实验结果经过调试,电子时钟的各项功能都能够正常实现。
在运行过程中,时钟能够准确、稳定地显示当前时间,并在整点时提示时间到达整点。
在设定的闹铃时间到达时,能够发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。
同时,在需要设置时间和年月日信息时,也能够通过按键进行相应的设置操作。
四、实验感悟通过本次实验,我深刻体会到了单片机在电子设备中的广泛应用以及C 语言在程序设计中的重要性。
通过实验,我不仅掌握了单片机的硬件设计与编程技术,还学会了在设计电子设备时,应重视系统的稳定性与可靠性,并善于寻找调试过程中的问题并解决。
在今后的学习和工作中,我将继续加强对单片机及其应用的学习与掌握,努力提升自己的实践能力,为未来的科研与工作做好充分准备。
数字电子钟设计报告,完整版
一、任务技术指标设计一个数字电子钟(1)能显示小时、分钟和秒;(2)能进行24小时和12小时转换;(3)具有小时和分钟的校时功能。
二、总体设计思想1.基本原理该数字钟由振荡器、分频器、计数器、译码器、显示器和校时电路等六部分组成。
振荡器产生的钟标信号送到分频器,分频电路将时标信号分成每秒一次的方波秒信号。
秒信号送入计数器进行计数,计数到60秒后向分进位,同理计数到60分后向小时进位,并将计数的结果以BCD-七段显示译码器显示出来。
计数选用十进制计数器74LS760D,校时电路通过选通开关对“时”和“分”进行校时。
二十四小时和十二小时的转换也可以用开关进行选择。
2.系统框图如图1:振荡器产生的钟标信号送到分频器,分频电路将时标信号送至计数器。
计数器通过译码显示把累计的结果以“时”、“分”、“秒”的数字显示出来。
整个过程中可选择用校时电路进行校时。
图1 系统框图三、具体设计1.总体设计电路该数字钟由振荡器、分频器、计数器、显示器和校时电路组成。
振荡器产生的钟标信号送到分频器,分频电路将时标信号分成每秒一次的方波秒信号。
秒信号送入计数器进行计数,计数到60秒后向分进位,同理分计数器计数到60分后向小时进位,并将计数的结果以BCD-七段显示译码器显示出来。
计数选用十进制计数器74LS760D,校时电路通过选通开关对“时”和“分”进行校时。
二十四小时和十二小时的转换可以用开关进行选择。
图2 总体电路图2.模块设计(1)振荡器的设计振荡器是数字钟的核心。
振荡器的稳定度及频率的精确度决定了数字钟计时的准确程度,通常选用石英晶体构成振荡器电路。
石英晶体振荡器的作用是产生时间标准信号。
因此,一般采用石英晶体振荡器经过分频得到这一时间脉冲信号。
电路中采用的是将石英晶体与对称式多谐振荡器中的耦合电容串联起来,就组成了如图3所示石英晶体多谐振荡器。
图3振荡器电路图和仿真波形图(2)分频器的设计对于分频器的设计选定74LS90集成芯片。
电子设计自动化(EDA)_数字时钟程序模块(LED数码管显示)_实验报告
电子设计自动化(EDA)—数字时钟LED数码管显示二、实验内容和实验目的1. 6个数码管动态扫描显示驱动2. 按键模式选择(时\分\秒)与闹钟(时\分)调整控制,3. 用硬件描述语言(或混合原理图)设计时、分、秒计数器模块、闹钟模块、按键控制状态机模块、动态扫描显示驱动模块、顶层模块。
要求使用实验箱左下角的6个动态数码管(DS6 A~DS1A)显示时、分、秒;要求模式按键和调整按键信号都取自经过防抖处理后的按键跳线插孔。
实验目的: 1)学会看硬件原理图, 2)掌握FPGA硬件开发的基本技能3)培养EDA综合分析、综合设计的能力三、实验步骤、实现方法(或设计思想)及实验结果主要设备: 1)PC机, 2)硬件实验箱, 3)Quartus II软件开发平台。
1.打开Quartus II , 连接实验箱上的相关硬件资源, 如下图1所示。
2.建立新文件, 选择文本类型或原理图类型。
3. 编写程序。
4.编译5. 仿真, 加载程序到芯片, 观察硬件输出结果(数码管显示)6.结果正确则完成。
若结果不正确, 则修改程序, 再编译, 直到正确。
模24计数器模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY count24 ISPORT(clk,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END count24;ARCHITECTURE arc OF count24 ISSIGNAL a,b:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk,en)BEGINhh<=a;hl<=b;IF(clk'EVENT AND clk='1') THENIF(en='1') THENIF(a="0010" AND b="0011") THENa<="0000";b<="0000";ELSE IF(b="1001") THENa<=a+'1';b<="0000";ELSE b<=b+'1';END IF;END IF;IF(a="0010" AND b="0010") THENcout<='1';ELSE cout<='0';END IF;END IF;END IF;END PROCESS;END arc;模60计数器模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY count60 ISPORT(clk,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END count60;ARCHITECTURE arc OF count60 ISSIGNAL a,b:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL sout:STD_LOGIC;BEGINPROCESS(clk)BEGINhh<=a; hl<=b;IF(clk'EVENT AND clk='1') THENIF(en='1') THENIF(a="0101" AND b="1001") THENa<="0000";b<="0000";ELSE IF(b="1001") THENa<=a+'1';b<="0000";ELSE b<=b+'1';END IF;END IF;END IF;END IF;END PROCESS;sout<='1' WHEN a="0101" AND b="1001" ELSE '0';cout<=sout AND en;END arc;4-7显示译码模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY segment4to7 ISPORT(s:IN STD_LOGIC_VECTOR(3 DOWNTO 0);a,b,c,d,e,f,g:OUT STD_LOGIC);END segment4to7;ARCHITECTURE arc OF segment4to7 IS SIGNAL y:STD_LOGIC_VECTOR(6 DOWNTO 0); BEGINa<= y(6);b<= y(5);c<= y(4);d<= y(3);e<= y(2); f<= y(1);g<= y(0);PROCESS(s)BEGINCASE s ISWHEN "0000"=>y<="1111110"; WHEN "0001"=>y<="0110000"; WHEN "0010"=>y<="1101101"; WHEN "0011"=>y<="1111001"; WHEN "0100"=>y<="0110011"; WHEN "0101"=>y<="1011011"; WHEN "0110"=>y<="1011111"; WHEN "0111"=>y<="1110000"; WHEN "1000"=>y<="1111111"; WHEN "1001"=>y<="1111011"; WHEN OTHERS=>y<="0000000"; END CASE;END PROCESS;END arc;带闹钟控制模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mode_adjust_with_alarm ISPORT (adjust,mode,clk1hz: IN STD_LOGIC;clkh,enh,clkm,enm,clks,enha: OUT STD_LOGIC;clkh_a,clkm_a:OUT STD_LOGIC;mode_ss: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END mode_adjust_with_alarm;ARCHITECTURE arc OF mode_adjust_with_alarm ISTYPE mystate IS (s0,s1,s2,s3,s4,s5);SIGNAL c_state,next_state: mystate;BEGINPROCESS (c_state)BEGINCASE c_state ISWHEN s0=> next_state <= s1; clkh<=clk1hz; clkm<=clk1hz; clks<=clk1hz;enh<='0'; enm<='0'; enha<='0'; clkh_a<= '0'; clkm_a<= '0'; mode_ss <="000";WHEN s1=> next_state <= s2; clkh<=adjust; clkm<= '0'; clks<='0';enh<='1'; enm<='0';enha<='0'; clkh_a<= '0';clkm_a<= '0'; mode_ss <="001";WHEN s2=> next_state <= s3; clkh<= '0'; clkm<=adjust; clks <= '0';enh<='0';enm<='1';enha<='0'; clkh_a<= '0'; clkm_a<= '0'; mode_ss <="010";WHEN s3=> next_state <= s4; clkh<= '0'; clkm<= '0'; clks<=adjust;enh<='0'; enm<='0';enha<='0'; clkh_a<= '0'; clkm_a<= '0'; mode_ss <="011";WHEN s4=> next_state <= s5; clkh<= clk1hz; clkm<= clk1hz; clks<=clk1hz;enh<='0';enm<='0';enha<='1'; clkh_a<=adjust; clkm_a<= '0'; mode_ss <="100";WHEN s5=> next_state <= s0; clkh<= clk1hz; clkm<= clk1hz; clks<=clk1hz;enh<='0'; enm<='0'; enha<='0'; clkh_a<= '0'; clkm_a<=adjust; mode_ss <="101";END CASE;END PROCESS;PROCESS (mode)BEGINIF (mode'EVENT AND mode='1') THENc_state<=next_state ;END IF;END PROCESS;END arc;扫描模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY scan ISPORT(clk256hz:IN STD_LOGIC;ss:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END scan;ARCHITECTURE arc OF scan ISTYPE mystate IS (s0, s1,s2,s3,s4,s5);SIGNAL c_state,next_state: mystate;BEGINPROCESS ( c_state )BEGINCASE c_state ISWHEN s0=> next_state <=s1; ss<="010";WHEN s1=> next_state <=s2; ss<="011";WHEN s2=> next_state <=s3; ss<="100";WHEN s3=> next_state <=s4; ss<="101";WHEN s4=> next_state <=s5; ss<="110";WHEN s5=> next_state <=s0; ss<="111";END CASE;END PROCESS;PROCESS (clk256hz)BEGINIF (clk256hz'EVENT AND clk256hz='1') THENc_state<=next_state ;END IF;END PROCESS;END arc;复用模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux ISPORT(hh,hl,mh,ml,sh,sl,hha,hla,mha,mla:IN STD_LOGIC_VECTOR(3 DOWNTO 0);ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);y:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);alarm:OUT STD_LOGIC);END mux;ARCHITECTURE arc OF mux ISSIGNAL a,hhtmp,hltmp,mhtmp,mltmp,shtmp,sltmp:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(mode_ss)BEGINCASE mode_ss ISWHEN "000"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "001"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "010"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "011"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "100"=> hhtmp<=hha; hltmp<=hla; mhtmp<=mha; mltmp<=mla; shtmp<=sh; sltmp<=sl;WHEN "101"=> hhtmp<=hha; hltmp<=hla; mhtmp<=mha; mltmp<=mla; shtmp<=sh; sltmp<=sl;WHEN OTHERS=>hhtmp<="0000";hltmp<="0000";mhtmp<="0000";mltmp<="0000";shtmp<="0000";sltmp<="0000"; END CASE;END PROCESS;PROCESS(ss)BEGINCASE ss ISWHEN "010"=> a <=hhtmp;WHEN "011"=> a <=hltmp;WHEN "100"=> a <=mhtmp;WHEN "101"=> a <=mltmp;WHEN "110"=> a <=shtmp;WHEN "111"=> a <=sltmp;WHEN OTHERS => a <="0000";END CASE;y<=a;END PROCESS;alarm<='1' WHEN ((hh=hha)AND(hl=hla)AND(mh=mha)AND(ml=mla)) ELSE '0';END arc;闪烁模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY blink_control ISPORT(ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);blink_en:OUT STD_LOGIC);END blink_control;ARCHITECTURE arc OF blink_control ISBEGINPROCESS (ss,mode_ss)BEGINIF(ss="010" AND mode_ss="001") THEN blink_en<='1';ELSIF(ss="011" AND mode_ss="001") THEN blink_en<='1';ELSIF(ss="100" AND mode_ss="010") THEN blink_en<='1';ELSIF(ss="101" AND mode_ss="010") THEN blink_en<='1';ELSIF(ss="110" AND mode_ss="011") THEN blink_en<='1';ELSIF(ss="111" AND mode_ss="011") THEN blink_en<='1';ELSIF(ss="010" AND mode_ss="100") THEN blink_en<='1';ELSIF(ss="011" AND mode_ss="100") THEN blink_en<='1';ELSIF(ss="100" AND mode_ss="101") THEN blink_en<='1';ELSIF(ss="101" AND mode_ss="101") THEN blink_en<='1';ELSE blink_en<='0';END IF;END PROCESS;END arc;Top文件LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY design3 ISPORT (mode,adjust,clk1hz,clk2hz,clk256hz,clk1khz:IN STD_LOGIC;alarm,a,b,c,d,e,f,g:OUT STD_LOGIC;ss:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END design3;ARCHITECTURE arc OF design3 ISCOMPONENT mode_adjust_with_alarm PORT (adjust,mode,clk1hz: IN STD_LOGIC;clkh,enh,clkm,enm,clks,enha: OUT STD_LOGIC;clkh_a,clkm_a:OUT STD_LOGIC;mode_ss: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END COMPONENT;COMPONENT scan PORT (clk256hz:IN STD_LOGIC;ss:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END COMPONENT;COMPONENT segment4to7 PORT (s: IN STD_LOGIC_VECTOR(3 DOWNTO 0);a,b,c,d,e,f,g: OUT STD_LOGIC);END COMPONENT;COMPONENT mux PORT(hh,hl,mh,ml,sh,sl,hha,hla,mha,mla:IN STD_LOGIC_VECTOR(3 DOWNTO 0);ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);y:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);alarm:OUT STD_LOGIC);END COMPONENT;COMPONENT blink_control PORT(ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);blink_en:OUT STD_LOGIC);END COMPONENT;COMPONENT count24 PORT (clk,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT;COMPONENT count60 PORT (clk ,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT;SIGNALclkh,enh,clkm,enm,clks,clkh_a,clkm_a,coutm,couts,coutm_en,couts_en,cout,vcc,coutma_en,coutma,alarm1,bli nk_en,blink_tmp,enha: STD_LOGIC;SIGNAL mode_ss,ss1:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL hh,hl,mh,ml,sh,sl,hha,hla,mha,mla,y,i:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINvcc<='1';coutm_en <= enh OR coutm;couts_en <= enm OR couts;coutma_en<= enha OR coutma;blink_tmp<=blink_en and clk2hz;i(3)<=y(3) OR blink_tmp;i(2)<=y(2) OR blink_tmp;i(1)<=y(1) OR blink_tmp;i(0)<=y(0) OR blink_tmp;ss<=ss1;alarm<=alarm1 AND clk1khz;u1:mode_adjust_with_alarmPORT MAP( adjust,mode,clk1hz,clkh,enh,clkm,enm,clks,enha,clkh_a,clkm_a,mode_ss);u2:count24 PORT MAP(clkh,coutm_en,cout,hh,hl);u3:count60 PORT MAP(clkm,couts_en,coutm,mh,ml);u4:count60 PORT MAP(clks,vcc,couts,sh,sl);u5:count24 PORT MAP(clkh_a,coutma_en,cout,hha,hla);u6:count60 PORT MAP(clkm_a,vcc,coutma,mha,mla);u7:mux PORT MAP(hh,hl,mh,ml,sh,sl,hha,hla,mha,mla,ss1,mode_ss,y,alarm1);u8:scan PORT MAP(clk256hz,ss1);u9:blink_control PORT MAP(ss1,mode_ss,blink_en);u10:segment4to7 PORT MAP(i,a,b,c,d,e,f,g);END arc;实验结果:数字钟包括正常的时分秒计时, 实验箱左下角的6个动态数码管(DS6 A~DS1A)显示时、分、秒。
单片机电子时钟课程设计报告
单片机电子时钟课程设计报告一、设计目的。
本课程设计旨在通过单片机技术的应用,设计并制作一个简单的电子时钟。
通过这一设计,学生将能够掌握单片机的基本原理和应用,培养学生的动手能力和创新意识,提高学生的实际操作能力。
二、设计原理。
本电子时钟采用单片机作为控制核心,通过晶振产生的时钟信号来实现时间的计时和显示。
利用数码管来显示小时和分钟,通过按键来调整时间。
同时,通过蜂鸣器发出报时信号,实现基本的闹钟功能。
三、设计方案。
1. 硬件设计。
(1)单片机选择,本设计选用常见的51单片机作为控制核心,具有成本低、易于编程的特点。
(2)时钟电路,采用晶振作为时钟信号源,通过单片机的定时器来实现时间的计时。
(3)显示模块,采用数码管来显示小时和分钟,通过数码管的扫描显示来实现时间的动态显示。
(4)按键输入,设计按键来调整时间,包括调整小时和分钟。
(5)报时功能,通过蜂鸣器来实现基本的报时功能,可以设置闹钟时间。
2. 软件设计。
(1)时钟控制,通过单片机的定时器来实现时间的计时和更新。
(2)显示控制,设计数码管的扫描显示程序,实现时间的动态显示。
(3)按键处理,设计按键扫描程序,实现对时间的调整。
(4)报时功能,设计蜂鸣器的报时程序,实现基本的闹钟功能。
四、设计实现。
1. 硬件实现。
根据上述设计方案,完成了电子时钟的硬件连接和布线,保证各个模块之间的正常通讯和工作。
2. 软件实现。
编写了单片机的程序,实现了时钟的计时、显示和控制功能,保证了电子时钟的正常运行。
五、实验结果。
经过调试,电子时钟能够准确显示当前的时间,并能够通过按键调整时间和设置闹钟功能,报时功能也能够正常工作。
六、总结与展望。
通过本课程设计,学生掌握了单片机的基本原理和应用,培养了动手能力和创新意识。
在今后的学习和工作中,学生将能够更好地应用单片机技术,设计和制作更加复杂的电子产品。
同时,也为学生今后的科研和创新工作奠定了良好的基础。
电子时钟的电子设计实习报告
电子时钟的电子设计实习报告一、实习目的与要求本次电子设计实习的主要目的是让我们了解和掌握电子时钟的设计与制作过程,培养我们动手实践能力和团队协作精神。
要求我们能够根据给定的功能要求,设计并制作一个电子时钟,实现小时、分钟和秒的显示功能。
二、实习内容与过程1. 需求分析:根据实习任务,我们首先进行了需求分析,明确了电子时钟需要实现的功能,包括小时、分钟和秒的显示,以及时间的设定和调整等功能。
2. 方案设计:在需求分析的基础上,我们设计了电子时钟的总体方案。
采用了MCU(Micro Control Unit,微控制器)作为核心控制器,实现时间的计算和显示控制。
同时,选择了合适的时钟芯片和显示模块,完成了硬件选型。
3. 硬件制作:根据方案设计,我们进行了电路原理图的设计,并选择了合适的元器件进行硬件制作。
主要包括MCU、时钟芯片、显示模块、按键模块等。
4. 软件编程:我们编写了MCU的程序代码,实现了时间的计算、显示控制以及时间的设定和调整等功能。
同时,通过调试和优化代码,保证了时钟的准确性和稳定性。
5. 系统测试:完成了硬件和软件的集成后,我们对电子时钟进行了系统测试。
测试内容包括时间的准确性、显示功能的正常运行以及时间的设定和调整等功能。
三、实习成果与总结通过本次实习,我们成功设计并制作了一个电子时钟,实现了小时、分钟和秒的显示功能,以及时间的设定和调整等功能。
在实习过程中,我们不仅掌握了电子时钟的设计方法和制作流程,还培养了团队协作和动手实践能力。
通过本次实习,我们深刻认识到了电子设计的重要性和实践意义。
在今后的学习和工作中,我们将不断努力,不断提高自己的电子设计能力,为我国的电子产业做出贡献。
数字电子时钟课程设计报告-1
目录一、概述 (1)数字钟简介设计目的设计要求二、主要实验器材 (2)三、设计原理及方框图 (3)四、各部分的电路及实现 (5)振荡器电路计数器的设计六十进制电路整点报时电路校时电路五、总体电路图设计 (10)六、安装与调试 (12)七、收获与体会 (12)一、概述1.1数字钟简介20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、集成电路有体积小、功耗小、功能多、携带方便等优点,,因此在许多电子设备中被广泛使用。
电子钟是人们日常生活中常用的计时工具,而数字式电子钟又有其体积小、重量轻、走时准确、结构简单、耗电量少等优点而在生活中被广泛应用,因此本次设计就用数字集成电路和一些简单的逻辑门电路来设计一个数字式电子钟,使其完成时间及星期的显示功能。
多功能数字钟采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。
具有时间显示、走时准确、显示直观、精度、稳定等优点。
电路装置十分小巧,安装使用也方便。
同时在日期中,它以其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱设计目的(1).让学生掌握组合逻辑电路、时序逻辑电路及数字逻辑电路系统的设计、安装、测试方法;(2). 进一步巩固所学的理论知识,提高运用所学知识分析和解决实际问题的能力;(3). 提高电路布局﹑布线及检查和排除故障的能力;(4).培养书写综合实验报告的能力设计要求(1)设计一个有“时”、“分”、“秒”(12小时59分59秒)显示,且有校时功能的电子钟。
51单片机电子时钟设计报告
51单片机电子时钟设计报告一、引言电子时钟是一种常见的电子产品,它通过控制数字显示器的数字显示,来实现时间的显示功能。
本报告将介绍一种基于51单片机的电子时钟设计方案。
二、系统架构本电子时钟系统采用分级结构,分为实时时钟电路、中央处理器、显示器等核心模块。
实时时钟电路模块负责提供系统的时钟信号,中央处理器负责对时间进行处理和控制,显示器用于显示时间。
三、硬件设计1.实时时钟电路实时时钟电路采用DS1302芯片,该芯片集成了时钟实时计数器,能够提供精确的时钟信号。
同时,芯片还内置了电池供电电路,当外部电源中断时,电子时钟可以通过电池继续工作。
2.中央处理器中央处理器使用51单片机,它具有较强的计算和控制能力,可以方便地对时间进行处理和控制。
通过与实时时钟电路的通信,中央处理器可以获取当前时间,并进行各种计算操作。
3.显示器显示器采用数码管,可以直观地显示时间。
通过中央处理器控制,可以实现小时、分钟、秒钟的显示,并且可以进行亮度的调节。
四、软件设计1.时钟管理中央处理器的软件主要负责对时间的管理。
它可以从实时时钟电路中获取当前时间,并根据需要进行时间的累加和更新。
同时,中央处理器还可以通过按键实现时间的手动调节。
2.显示控制中央处理器通过对数码管的控制,实现时间的显示功能。
它可以根据当前时间的变化,动态地更新数码管的显示内容。
同时,还可以通过按键控制,对数码管的亮度进行调节。
五、系统特点1.精确性高:采用DS1302芯片实时时钟电路,能够提供精确的时钟信号,确保时间的准确性。
2.易于操作:中央处理器软件通过按键实现时间的调节,操作简单方便。
3.显示效果好:采用数码管进行显示,显示效果清晰,易于观察时间。
六、应用领域本电子时钟设计适用于各种需要显示时间的场景,如家庭、办公室、学校等。
七、总结本报告介绍了一种基于51单片机的电子时钟设计方案。
通过实时时钟电路提供精确的时钟信号,中央处理器进行时间管理和控制,显示器进行时间的显示。
电子技术数字时钟报告电路原理图
电子技术课程设计报告设计题目:数字电子时钟班级:学生姓名:学号:指导老师:完成时间:一.设计题目:数字电子时钟二.设计目的:1.熟悉集成电路的引脚安排和各芯片的逻辑功能及使用方法;2.了解数字电子钟的组成及工作原理 ;3.熟悉数字电子钟的设计与制作;三、设计任务及要求用常用的数字芯片设计一个数字电子钟,具体要求如下:1、以24小时为一个计时周期;2、具有“时”、“分”、“秒”数字显示;3、数码管显示电路;4、具有校时功能;5、整点前10秒,数字钟会自动报时,以示提醒;6、用PROTEUS画出电路原理图并仿真验证;四、设计步骤:电路图可分解为:1.脉冲产生电路;2.计时电路;3.显示电路;4校时电路;5整点报时电路;1.脉冲电路是由一个555定时器构成的一秒脉冲,即频率为1HZ;电路图如下:2.计时电路即是计数电路,通过计数器集成芯片如:74LS192 、74LS161、74LS163等完成对秒脉冲的计数,考虑到计数的进制,本设计采用的是74LS192;秒钟个位计到9进10时,秒钟个位回0,秒钟十位进1,秒钟计到59,进60时,秒钟回00,分钟进1;分钟个位计到9进10时,分钟个位回0,分钟十位进1,分钟计到59,进60时,分钟回00,时钟进1;时钟个位记到9进10时,时钟个位回0,时钟十位进1,当时钟计数到23进24时,时钟回00.电路图如下:3.显示电路是完成各个计数器的计数结果的显示,由显示译码器和数码管组成,译码器选用的是4511七段显示译码器,LED数码管选用的是共阴极七段数码管,数码管要加限流电阻,本设计采用的是400欧姆的电阻;电路图如下:4.校时电路通过RS触发器及与非门和与门对时和分进行校准,电路图如下:5.整点报时电路即在时间出现整点的前几秒,数值时钟会自动提醒,本设计采用连续蜂鸣声;根据要求,电路应在整点前10秒开始整点报时,也就是每个小时的59分50秒开始报时,元器件有两个三输入一输出的与门,一个两输入一输出的与门,发生器件选择蜂鸣器;具体电路图如下:六.设计用到的元器件有:与非门74LS00,与门74LS08,74LS11,7段共阴极数码管,计数器芯片74LS192,555定时器,4511译码器,电阻,电容,二极管在电路开始工作时,对计数电路进行清零时会使用到,单刀双掷开关;设计电路图如报告夹纸;七.仿真测试:1.电路计时仿真电路开始计数时:计数从1秒到10秒的进位,从59秒到一分钟的进位,从1分到10分的进位,从59分到一小时的进位,从1小时到10小时的进位,从23小时到24小时的进位,然后重新开始由此循环,便完成了24小时循环计时功能,仿真结果如下:1. 7.2.8.3. 9.4. 10.5. 11.6. 12.13.2.电路报时仿真由电路图可知,U18:A和U18:B的6个输入引脚都为高电平时,蜂鸣器才会通电并发声,当计数器计数到59分50秒是,要求开始报时,而59分59秒时,还在报时,也就是说只需要检测分钟数和秒计数的十位,5的BCD码是4和1,9的BCD码是8和1,一共需要6个测端口,也就是上述的6个输入端口,开始报时时,报时电路状态如图:3.校时电路仿真正常计时校时U15:D和u15:C是一个选通电路,12角接的是秒的进位信号,9角接的是秒的脉冲信号,当SW1接到下引脚时,U15:D接通,u15:C关闭,进位信号通过,计数器的分技术正常计时;当SW1接到上引脚时,U15:D关闭,u15:C接通,校时的秒脉冲通过,便实现了分钟校时,时钟的校时与分钟校时大致相同;八.心得体会以及故障解决设计过程中遇到了一个问题,就是在校时电路开始工作时,校时的选择电路会给分钟和时钟的个位一个进位信号,也就是仿真开始时电路的分钟和时钟个位会有一个1;为了解决这个问题,我采用的是在电路开始工作时,同时给分钟和时钟的个位一个高电平的清零信号来解决,由于时钟的个位和十位的清零端是连在一起的,再加上分钟的个位,在校时小时的时候且当小时跳完24小时时,会给分钟的个位一个清零信号,这时在电路中加一个单向导通的二极管变解决了,具体加在那儿,请参考电路图;在设计过称中,我们也许遇到的问题不止一个两个,而我们要做的是通过努力去解决它;首先我们要具备丰富的基础知识,这是要在学习和实际生活中积累而成的;其次,我们还有身边的朋友同学老师可以请教,俗话说:三人行,必有我师;最后,我们还有网络,当今是个信息时代,网络承载信息的传递,而且信息量非常大,所以我们也可以适当的利用网络资源;通过这次对数字钟的设计与制作,让我了解了设计电路的步骤,也让我了解了关于数字钟的原理与设计理念,要设计一个电路总要先用仿真,仿真成功之后才实际接线;但是仿真是在一个比较好的状态下工作,而电路在实际工作中需要考虑到一些驱动和限流电阻等等,因为,再实际接线中有着各种各样的条件制约和干扰;而且,在仿真中无法成功的电路接法,在实际中因为芯片本身的特性而能够成功;所以,在设计时应考虑两者的差异,从中找出最适合的设计方法;这次学习让我对各种电路都有了大概的了解,所以说,坐而言不如立而行,对于这些电路还是应该自己动手实际操作才会有深刻理解,才能在实际生活和工作中应用起来;。
电子钟设计实验报告
数电课程设计实验报告班级:通信工程1001班姓名:XX学号:、、、、、、、、数字钟的设计与制作一、设计任务本次课程设计要求以中规模集成电路为主,利用所学知识,设计一个数字钟。
通过本次课程设计,进一步加强数字电路综合应用能力,掌握数字电路的设计技巧,增强实践能力,以及熟练掌握数字钟的系统设计、组装、调试及故障排除的方法。
二、设计要求1.设计一台可以显示时、分、秒的数字钟。
2.具有校时功能,可以对时、分秒单独校时。
3.具有整点报时功能。
3.要求电路主要采用中小规模数字集成电路来实现。
三、工作原理数字电子钟由秒信号发生器。
“时、分、秒”计数器、译码显示器、校时电路、整点报时电路等组成。
秒信号发生器主要由555振荡器分频后得到;秒、分都是60进制,故由60进制计数器构成;时为24进制,即由24进制计数器构成;显示部分由译码和数码显示构成,将“时、分、秒”计数器的输出状态经七段显示译码器译码,通过六位数码管显示出来。
校时电路和整点报时电路由门电路和开关等构成。
1、秒脉冲信号发生器秒脉冲信号发生器是数字电子钟的核心部分,它的精度和稳定度决定了数字钟的质量。
由振荡器与分频器组合产生秒脉冲信号。
●振荡器: 通常用555定时器与RC构成的多谐振荡器,输出2KHz脉冲。
●分频器: 分频器功能主要有两个,一是产生标准秒脉冲信号,一是提供功能扩展电路所需要的信号,选用六片进行CC4518,因为每片为1/10分频器,三片级联刚好获得2Hz脉冲,再经过二分频得到标准1HZ脉冲,其余两片构成两个二分频得到1KHZ和500HZ脉冲供整点报时用,其电路图如下:图2 秒脉冲信号发生器2、秒、分、时计数器的设计秒、分计数采用60进制计数器、时采用24进制计数器。
他们都是8个BCD码输出,一个进位输出,一个时钟脉冲输入。
在设计层次电路时,皆可以设计为一个输入端,9个输出端。
在Multisim 仿真软件中,按照模块化化设计,不但将复杂的电路图变简单,而且更加直观,便于检测调试。
数字电子钟设计报告(显示、调整、报时、万年历、闹钟、秒表)
目录一、引言 (2)二、方案论证选择 (3)2.1设计要求 (3)1.基本要求 (3)2.发挥部分 (3)2.2系统框图 (3)分钟+调整 (3)秒钟 (3)时钟+调整 (3)秒表 (3)闹钟功能 (3)定时报闹 (3)万年历功能 (3)三、电路仿真与设计 (4)3.1核心芯片及芯片管脚图 (4)3.2时、分计数电路模块设计 (4)3.3切换电路模块设计 (5)3.4调整电路模块设计 (6)(1)方案一:利用74125的三态。
(6)(2)方案二:利用74162的置数端(LOAD),置数调整。
(7)3.5整点报时电路模块设计 (8)3.6秒表电路模块设计 (9)3.6定时报闹电路模块设计 (11)3.7万年历电路模块设计 (12)四、遇到的问题.......................................................................... 错误!未定义书签。
五、心得体会.............................................................................. 错误!未定义书签。
一、引言电子钟亦称数显钟(数字显示钟),是一种用数字电路技术实现时、分、秒计时的装置,与机械时钟相比,直观性为其主要显著特点,且因非机械驱动,具有更长的使用寿命,相较石英钟的石英机芯驱动,更具准确性。
电子钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大地方便。
相对于其他时钟类型,它的特点可归结为“两强一弱”:比机械钟强在观时显著,比石英钟强在走时准确,但是它的弱点为显时较为单调。
数字钟的核心即数字电子技术课程中有关时序逻辑电路、组合逻辑电路的内容。
这些也是我们学电子的学生应该掌握的最基本知识。
通过这次试验,不仅可以加深我对数字电子技术课程的理解,也可以提高自己的动手能力以及实际问题中解决问题的能力,培养对数字电子技术的兴趣。
电子时钟实验报告电子时钟
电子时钟实验报告一、实验目的学习8051定时器时间计时处理、按键扫描及LED数码管显示的设计方法。
二、设计任务及要求利用实验平台上4个LED数码管,设计带有闹铃功能的数字时钟,要求:1.在4位数码管上显示当前时间,显示格式为“时时分分”;2.由LED闪动做秒显示;3.利用按键可对时间及闹玲进行设置,并可显示闹玲时间。
当闹玲时间到蜂鸣器发出音乐,按停止键使可使闹玲声停止。
三、工作原理及设计思路利用单片机定时器完成计时功能,定时器0计时中断程序每隔5ms中断一次并当作一个计数,每中断一次计数加1,当计数200次时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。
为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要数据锁存器等较多硬件,可采用动态显示法实现LED显示。
闹铃声由交流蜂鸣器产生,电路如右图,当P1.7输出不同频率的方波,蜂鸣器便会发出不同的声音。
四、电路设计及描述(1) 硬件连接部分:在ZKS-03单片机综合实验仪上有四位共阳LED数码管,其标号分别为LED1~LED4。
为了节省MCU的I/O口,采用串行接口方式,它仅占用系统2个I/O口,即P1.0口和P1.1口,一个用作数据线SDA,另一个用作时钟信号线CLK,它们都通过跳线选择器JP1相连。
由于采用共阳LED数码管,它的阴极分别通过限流电阻R20~R27连接到控制KD_0~KD_Q7。
这样控制8个发光二极管,就需要8个I/O口。
但由于单片机的I/O 口资源是有限的,因此常采用实验电路所示的串并转换电路来扩充系统资源。
串并转换电路其实质是一个串入并处的移位寄存器,串行数据再同步移位脉冲CLK的作用下经串行数据线SDA把数据移位到KD_0~KD_Q7端,这样仅需2根线就可以分别控制8个发光二极管的亮灭。
而P0口只能作地址/数据总线,P2口只能作地址总线高8位,P3.0、P3.1作为串行输入、输出接口,实验仪上单片机可用作I/O的口仅有:P1.0--P1.7 ,8位;P3.2、P3.3、P3.4、P3.5 ,4位。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子时钟设计报告Last revision on 21 December 2020
电子时钟设计报告
1 设计任务与要求
设计任务
用STM32设计一个数字电子钟,采用LCD12864来显示并修改,时间或闹铃。
设计要求
1)显示功能:可显示时间等基本功能。
2)具有闹铃功能。
3)按键改变时间。
4)按键改变闹铃。
5)温度的显示。
2 方案设计与论证
整个系统用stm32单片机作为中央控制器,由单片机执行采集内部RTC 值,时钟信号通过单片机I/O口传给TFT彩屏,单片机模块控制驱动模块驱动显示模块,通过显示模块来实现信号的输出。
系统设有按键模块用于对时间进行调整及扩展多个小键盘。
显示电路
方案一:TFT彩屏。
显示质量高,没有电磁辐射,可视面积大,应用范围广,画面效果好,数字式接口,“身材”匀称小巧,功耗小。
方案二:数码管动态显示。
动态显示,即各位数码管轮流点亮,对于显示器各位数码管,每隔一段延时时间循环点亮一次。
利用人的视觉暂留功能可以看到整个显示,但须保证扫描速度足够快,人的视觉暂留功能才可察觉不到字符闪烁。
显示器的亮度与导通电流、点亮时间及间隔时间的比例有关。
调整参数可以实现较高稳定度的显示。
动态显示节省了I/O 口,降低了能耗。
从节省单片机芯片I/O口和降低能耗角度出发,本数字电子钟数码管显示选择设计采用方案一,既TFT彩屏显示。
电源电路
本数字电子钟设计所需电源电压为直流、电压值大小5V的电压源直接用mini USB通过电脑USB接口供电。
按键电路
本数字电子钟设计所需按键用于进行显示时间的调整与设置扩展的小键盘。
单片机芯片4个I/O口可与按键直接相连,通过编程,单片机芯片即可控制按键接口电平的高低,即按键的开与关,以达到用按键进行显示时间的调整与设置扩展的小键盘的设计要求。
RTC时钟
Stm32自带RTC模块,实时时钟是一个独立的定时器。
RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。
修改计数器的值可以重新设置系统当前的时间和日期RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域,即在系统复位或从待机模式唤醒后,RTC的设置和时间维持不变。
系统复位后,对后备寄存器和RTC的访问被禁止,这是为了防止对后备区域(BKP)的意外写操作。
在RTC预分频器余数寄存器(RTC_DIVH / RTC_DIVL)赋值可改变时间,在RTC闹钟寄存器(RTC_ALRH/RTC_ALRL)中改变闹铃时间。
TFT 彩屏显示电路
数字电子钟设计的显示模块用一个TFT彩屏来实现。
温度传感器模块
DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有
LTM8877,LTM8874等等。
主要根据应用场合的不同而改变其外观。
封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。
耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
技术性能描述:
①独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
②测温范围-55℃~+125℃,固有测温误差(注意,不是分辨率,这里之前是错误的)℃。
③支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。
④工作电源: 3~5V/DC (可以数据线寄生电源)
⑤在使用中不需要任何外围元件。
3 硬件电路设计
图1 stm32f103引脚图
图2 指示灯与复位电路
图3 稳压电路,变压电路,晶震
图4 实物图
4 软件设计
主程序如下
#include <>
#include ""
#include ""
#include ""
#include ""
#include ""
#include ""
#include ""
#include ""
#include ""
#include ""
#include ""
#include ""
#include ""
#include ""
#include ""
#include ""
#include ""
#include ""
#include ""
#include ""
#include ""
const u8 *COMPILED_DATE=__DATE__;C");
while(1)
{
if(t!=
{
t=;
LCD_ShowNum(60,130,,4,16);
LCD_ShowNum(100,130,,2,16);
LCD_ShowNum(124,130,,2,16);
switch
{
case 0:
LCD_ShowString(60,148,"Sunday ");
break;
case 1:
LCD_ShowString(60,148,"Monday ");
break;
case 2:
LCD_ShowString(60,148,"Tuesday ");
break;
case 3:
LCD_ShowString(60,148,"Wednesday");
break;
case 4:
LCD_ShowString(60,148,"Thursday ");
break;
case 5:
LCD_ShowString(60,148,"Friday ");
break;
case 6:
LCD_ShowString(60,148,"Saturday ");
break;
}
LCD_ShowNum(60,162,,2,16);
LCD_ShowNum(84,162,,2,16);
LCD_ShowNum(108,162,,2,16);
LED0=!LED0;
}
delay_ms(10);
temp=DS18B20_Get_Temp();
if(temp<0)
{
temp=-temp;
LCD_ShowChar(140,200,'-',16,0);子技术基础模拟部分第四版[M].北京:高等教育出版社,.
[2] 阎石.数字电子技术基础第四版[M].北京:高等教育出版社,.
[3]王福瑞等.单片微机测控系统设计大全[M].北京航空航天大学出版社,1998(331-337).
[4]宁改娣,杨拴科.DSP控制器原理及应用[M].科学出版社,2002.
[5] 周立功等.ARM嵌入式系统基础教程[M].北京:北京航空航天大学出版社,.
[6] 周立功等.ARM嵌入式系统实验教程[M].北京:北京航空航天大学出版社,.
[7] 罗浩等.一种新的基于ARM的数据采集系统设计[J].信阳师范学院学报(自然科学版),.
[8] 秦伟等.基于ARM 处理器的数据采集系统的设计[J].自动化技术与应用.2006 年第10 期.
[9] 杜春雷.ARM体系结构与编程.清华大学出版社,2003.。