数字电子实训数字钟的设计(6位)
六位显示数字中系统设计
课程设计说明书题目:六位显示数字中系统设计成绩:时间:2013 年 5 月30 日至2013 年 6 月 1 日摘要数字钟是现代计时器,也可用作时间控制的时钟源。
数字钟具有走时准,显示直观,款式新颖,附加功能多等优点深受大家喜欢。
设计一个可以走时的数字钟。
由于数字集成电路的发展和广泛应用,使得数字钟的精度远远超过老式钟表,钟表的数字化给人们生产生活带来了极大方便,而且大大扩展了钟表原来的功能。
如自动报时,定时广播等,所有这些都是以钟表数字化为基础的。
因此研究数字钟及扩大其应用,有着非常现实的积极意义。
数字钟是一种用数字电路实现时,分,秒的计时装置,与机械式时钟更具有准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到广泛使用。
数字钟从原理上讲是一种典型的数字电路,其中包含了组合逻辑电路。
因此,我们这次设计与制作数字钟,就是为了了解数字钟的原理,从而学会制作数字钟。
而且通过数字钟的制作进一步了解各种在制作中用到的中小规模的集成电路的作用及其使用方法。
且由于数字钟包括组合逻辑电路,通过它进一步学习与掌握组合逻辑电路的原理和使用方法,学会运用仿真软件proteus等。
用CC4518双四位BCD同步加计数设计60进制,24进制计数器以实现60秒,60分,24小时归零的计数电路。
CD4518为双位计数器,所以每个计数器分为十位和个位两部分,当秒计数到60是向分计数器进位同时秒计数器清零,分计数器向时计数器进位工作原理同分计数器,当时计数器计数到24时归零。
利用CD4511七段译码驱动及共阴极数码管使电路得以显示。
关键词:CD4518 CD4511 数字钟proteusAbstractDigital clock is the timer control, can also be used as a time clock source. Digital clock has left, intuitive display, novel style, additional features many advantages by everyone likes. The design of a digital clock can go. Due to the development of digital integrated circuits and widely used, making digital clock accuracy far more than the old clock, digital clocks to the production and life of the people has brought great convenience, but also greatly expanded the clock and watch the original function. Such as automatic timing, timing broadcast, all of these are based on digital watches. Therefore the research of digital clock and expands its application, has a positive meaning very realistic.Digital clock is a digital circuit implementation, points, a timing device of seconds, and the mechanical clock has more accuracy and intuitive, and no mechanical devices, has a longer service life, so it has been widely used. Digital clock from the principle of speaking is a typical digital circuit, which includes the combinational logic circuit. Therefore, we design and manufacture of digital clock, is to understand the principle of the digital clock, in order to learn to produce a digital clock. And through the production of digital clock integrated circuit further understanding the role of small and medium-sized variety used in the production of and use method thereof. And because the digital clock comprises a combinational logic circuit, through which further study and master the principle of combinational logic circuit and method of use, learn to use simulation software proteus. Using the CC4518 dual four bit BCD synchronization and counting design 60 hexadecimal, 24 hexadecimal counter for 60 seconds, 60 minutes, 24 hour zero circuit. CD4518 is double counters, and each counter is divided into ten and a bit part two, when seconds count to 60 is to carr the seconds counter reset counter, counter points to carry the work principle of the counter with counter, when the counter counts to 24 zero. Using the CD4511 seven segment decoder driver and common cathode led the circuit to display.Keywords: CD4518 CD4511 digital clock proteus目录第一章绪论 (1)1.1 数字电子技术课程设计概要 (1)1.2 设计任务与要求 (2)第三章设计简介及设计方案论述 (9)3.1 基本设计思路 (9)3.2 设计方案论述 (10)第四章详细设计 (11)4.1 秒脉冲的产生 (11)4.2 时钟显示电路设计 (11)第五章软件仿真及硬件调试 (13)5.1硬件调试(1) (13)5.2硬件调试(2) (15)结语 (16)致谢 (16)参考文献 (17)附录: (17)第一章绪论1.1数字电子技术课程设计概要1.1.1 数字电子课程设计的目的与意义数字电子技术是一门实践性很强的课程,加强工程训练,特别是技能的培养,对于培养工程人员的素质和能力具有十分重要的作用。
数电课设-数字钟
数字钟一.基本功能1、设计一个数字钟,能够显示当前时间,分别用6个数码管显示小时、分钟、秒钟的时间,秒针的计数频率为1Hz,可由系统脉冲分频得到。
2、在整点进行提示,可通过LED闪烁实现,闪烁频率及花型可自己设计。
3、能够调整小时和分钟的时间,调整的形式为通过按键进行累加。
4、具有闹钟功能,闹钟时间可以任意设定(设定的形式同样为通过按键累加),并且在设定的时间能够进行提示,提示同样可以由LED闪烁实现。
二.扩展功能1、设计模式选择计数器,通过计数器来控制各个功能之间转换。
2、调整当前时间以及闹钟时间,在按键累加的功能不变的基础上,增加一个功能,即当按住累加键超过3秒,时间能够以4Hz的频率累加。
3、用LCD液晶屏来显示当前时间及功能模式。
library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity clock isport(clk: in std_logic; --27M晶振key3,key2,key0: in std_logic:='1'; --时、分、模式按钮,下降沿触发ledg: o ut std_logic_vector(2 downto 0):="000"; --整点提示ledr: out std_logic_vector(2 downto 0):="000"; --闹铃hex7,hex6,hex5,hex4,hex3,hex2,hex0,hex1: out std_logic_vector(6 downto 0) --数码管显示);end;architecture a of clock issignal x: integer range 1 to 13500000:=1; --记27M的上升沿个数signal clka: std_logic; --1HZsignal temp1,temp2,temp3,temp4,temp5,temp6: std_logic_vector(3 downto 0):="0000"; --时分秒走时signal xianshi1,xianshi2,xianshi3,xianshi4,xianshi5,xianshi6:std_logic_vector(3 downto 0):="0000"; --数码管显示signal temp0: std_logic_vector(1 downto 0):="00"; --模式显示signal tfen1,tfen2,tshi1,tshi2,nfen1,nfen2,nshi1,nshi2: std_logic_vector(3 downto 0); --调时和闹铃时的分、时的个位和十位signal naoling1,naoling2,naoling3,naoling4: std_logic_vector(3 downto 0); --闹铃调时时的显示begin--分频,产生1HZ的时钟process(clk)beginif clk'event and clk='1' thenx<=x+1;if x=13500000 thenclka<=not clka; --27M每13500000个上升沿clka取反x<=1;end if;end if;end process;--模式选择器,用按键控制,有0、1、2 三种模式process(key0)beginif key0'event and key0='0' thenif temp0="10" then --模式2时,再按键则进入模式0temp0<="00";elsetemp0<=temp0+1;end if;end if;end process;--模式用数码管显示process(temp0)begincase temp0 iswhen "00" => hex0<="1000000";--显示0when "01" => hex0<="1111001";--显示1when "10" => hex0<="0100100";--显示2when others => hex0<="0000000";--显示全亮end case;end process;--模式1时,调时,调节时钟的分process(key2,temp0)beginif temp0="01" thenif key2'event and key2='0' thenif tfen1="1001" then --个位到9,十位加1if tfen2="0101" then --加到59,则归零tfen1<="0000";tfen2<="0000";elsetfen2<=tfen2+1;tfen1<="0000";end if;elsetfen1<=tfen1+1;end if;end if;end if;end process;--模式1时,调时,调节时钟的时process(key3,temp0)beginif temp0="01" thenif key3'event and key3='0' thenif tshi1="1001" then ----个位到9,十位加1tshi1<="0000";tshi2<=tshi2+1;elsif tshi1="0011" and tshi2="0010" then --到23,则归零tshi1<="0000";tshi2<="0000";elsetshi1<=tshi1+1;end if;end if;end if;end process;--模式2时,设定闹铃,设定时钟的分process(key2,temp0)beginif temp0="10" thenif key2'event and key2='0' thenif nfen1="1001" then ----个位到9,十位加1if nfen2="0101" then --加到59,则归零nfen1<="0000";nfen2<="0000";elsenfen2<=nfen2+1;nfen1<="0000";end if;elsenfen1<=nfen1+1;end if;end if;end if;end process;--模式2时,设定闹铃,设定时钟的时process(key3,temp0)beginif temp0="10" thenif key3'event and key3='0' thenif nshi1="1001" then ----个位到9,十位加1nshi1<="0000";nshi2<=nshi2+1;elsif nshi1="0011" and nshi2="0010" then --到23,则归零nshi1<="0000";nshi2<="0000";elsenshi1<=nshi1+1;end if;end if;end if;end process;--三种模式间的显示及传递process(clka,temp0)beginif temp0="01" then --模式1时,传递调时的时,分temp3<=tfen1;temp4<=tfen2;temp5<=tshi1;temp6<=tshi2;xianshi3<=temp3; --模式1时,显示时,分xianshi4<=temp4;xianshi5<=temp5;xianshi6<=temp6;elsif temp0="10" then --模式2时,传递闹铃的时,分naoling1<=nfen1;naoling2<=nfen2;naoling3<=nshi1;naoling4<=nshi2;xianshi3<=naoling1; --模式2时,显示闹铃的时,分xianshi4<=naoling2;xianshi5<=naoling3;xianshi6<=naoling4;elsifclka'event and clka='1' then --正常走时,即temp0=00if temp1="1001" then --秒的个位到9,十位加1if temp2="0101" then --秒到59,则归零,分的个位加1temp1<="0000";temp2<="0000";temp3<=temp3+1;if temp3="1001" then --分的个位到9,十位加1if temp4="0101" then --分到59,则归零,时的个位加1temp3<="0000";temp4<="0000";temp5<=temp5+1;if temp5="1001" then --时的个位到9,十位加1temp5<="0000";temp6<=temp6+1;elsif temp5="0011" and temp6="0010" then --时到23,则归零temp5<="0000";temp6<="0000";end if;elsetemp3<="0000";temp4<=temp4+1;end if;elsetemp3<=temp3+1;end if;elsetemp1<="0000";temp2<=temp2+1;end if;elsetemp1<=temp1+1;end if;----到设置的闹铃时则ledr(0--2)三个灯亮,一分钟后熄灭if temp3=naoling1 and temp4=naoling2 and temp5=naoling3 and temp6=naoling4 thenledr<="111";elseledr<="000";end if;----到整点时时则ledg(0--2)三个灯亮,一分钟后熄灭if temp3="0000" and temp4="0000" thenledg<="111";elseledg<="000";end if;--将走时传递给显示译码xianshi1<=temp1;xianshi2<=temp2;xianshi3<=temp3;xianshi4<=temp4;xianshi5<=temp5;xianshi6<=temp6;end if;end process;----数码管显示译码process(xianshi1,xianshi2,xianshi3,xianshi4,xianshi5,xianshi6) begincase xianshi1 iswhen "0000" => hex2<="1000000";when "0001" => hex2<="1111001";when "0010" => hex2<="0100100";when "0011" => hex2<="0110000";when "0100" => hex2<="0011001";when "0101" => hex2<="0010010";when "0110" => hex2<="0000010";when "0111" => hex2<="1111000";when "1000" => hex2<="0000000";when "1001" => hex2<="0010000";when others => hex2<="1000000";end case;case xianshi2 iswhen "0000" => hex3<="1000000";when "0001" => hex3<="1111001";when "0010" => hex3<="0100100";when "0011" => hex3<="0110000";when "0100" => hex3<="0011001";when "0101" => hex3<="0010010";when others => hex3<="1000000";end case;case xianshi3 iswhen "0000" => hex4<="1000000";when "0001" => hex4<="1111001";when "0010" => hex4<="0100100";when "0011" => hex4<="0110000";when "0100" => hex4<="0011001";when "0101" => hex4<="0010010";when "0110" => hex4<="0000010";when "0111" => hex4<="1111000";when "1000" => hex4<="0000000";when "1001" => hex4<="0010000";when others => hex4<="1000000";end case;case xianshi4 iswhen "0000" => hex5<="1000000";when "0001" => hex5<="1111001";when "0010" => hex5<="0100100";when "0011" => hex5<="0110000";when "0100" => hex5<="0011001";when "0101" => hex5<="0010010";when others => hex5<="1000000";end case;case xianshi5 iswhen "0000" => hex6<="1000000";when "0001" => hex6<="1111001";when "0010" => hex6<="0100100";when "0011" => hex6<="0110000";when "0100" => hex6<="0011001";when "0101" => hex6<="0010010";when "0110" => hex6<="0000010";when "0111" => hex6<="1111000";when "1000" => hex6<="0000000";when "1001" => hex6<="0010000";when others => hex6<="1000000";end case;case xianshi6 iswhen "0000" => hex7<="1000000";when "0001" => hex7<="1111001";when "0010" => hex7<="0100100";when others => hex7<="1000000";end case;hex1<="1111111"; ---关闭hex1数码管end process;end;。
六位数字钟课程设计
R9.R10.R11.R12.R13.R14
C1 C2.C3.C5 C4 C7.C8. D1.D2.D3 电解电容 电解电容 瓷片电容 瓷片电容 二极管 220UF 10UF 104 30 1N4148
电阻
1 3 1 2 3
4.7k
ห้องสมุดไป่ตู้
6
LED1.LED2.LED3.LED4 发光二极管 3MM 红色 Q1.Q2.Q3.Q4.Q5.Q6. IC1 IC2 集成电路 集成电路 三极管 9012
程序设计部分
• AT89C2051时钟程序 ;
• 定时器T0、T1溢出周期为50MS,T0为秒计 数用, T1为调整时闪烁用
• P3.7为调整按钮,P1口 为字符输出口, 采用共阳显示管。
元件清单
位号 名称 规格 数量 电阻 2 470 8 R1.R2.R3.R4.R5.R6.R7.R16 R8.R15 电阻 10K
概述
• 控制芯片采用AT89C2051,数码管采用3只 0.36寸双位红色共阳型LED数码管;
• S1按键用于校准时间,按住2秒以上校准 时间状态及换档和退出,快速点触用于调 节时间数阻。本电路又增加了一个3V的备 用电池,停电时AT89C2051采用备用电池 供电,时钟不会停止,但数码管不显示, 来电后备用电池失去作用,AT89C2051采 用外部电源供电,数码管正常显示。 • 加入光敏电阻后,能达到白天显示,夜晚 中断的效果,节省电量。
六位光敏数字钟
卢雄辉 黄斌
在此处插入产品 照片
设计要求
• 时间以24小时为一个周期;
• 显示时,分,秒; • 有校时功能,可以分别对时及分进行单独 校时,使其校正到标准时间; • 为了保证计时的稳定及准确须由晶体振荡 器提供表针时间基准信号.
6位数字钟制作套件(纯数字电路)电子制作套件
6位数字钟制作套件(纯数字电路)电子制作套件6位数字钟制作套件(纯数字电路)电子制作套件数字钟是采用数字电路对“时”、“分”、“秒”数字显示的计时装置。
与传统的机械钟相比,它走时准确、显示直观、无机械传动等优点,广泛应用于电子手表和车站、码头、机场等公共场大型电子钟等。
一、电路工作原理图3—8—1所示是数字钟的原理框图(原理图见附录一的附图1—1)。
由图可见,该数字钟由秒脉冲发生器,六十进制“秒”、“分”计时计数器和二十四进制“时”计时计数器,时、分、秒译码显示电路,校时电路和报时电路等五部分电路组成。
1(秒信号发生电路15 秒信号发生电路产生频率为1 Hz的时间基准信号。
数字钟大多采用32768(2Hz石英晶体振荡器,经过15级二分频,获得1Hz的秒脉冲,如图3—8—2所示。
该电路主要应用CD4060。
CD4060是14级二进制计数器,分频器,振荡器。
它与外接电阻、电容、15石英晶体共同组成2=32768 Hz振荡器,并进行14级二分频,再外加一级D 触发器(74LS74)二分频,输出1Hz的时基秒信号。
CD4060的引脚排列如图3—8—3所示,表3—8—1为CD4060的功能表,图3—8—4所示为CD4060的内部逻辑框图。
R4是反馈电阻,可使CD4060内非门电路工作在电压传输特性的过渡区,即线性放大区。
R4的阻值可在几兆到十几兆之间选择,一般取22 MΩ。
C2是微调电容,可将振荡频率调整到精确值。
2(计数器电路"秒”、“分”、“时”计数器电路均采用双BCD同步加法计数器CD4518,如图3—8—5所示。
“秒”、“分”计数器是六十进制计数器,为了便于应用8421BCD码显示译码器工作,“秒”、“分”个位采用十进制计数器,十位采用六进制计数器,如图(a)所示。
“时”计数器是二十四进制计数器,如图(b)所示。
CD4518的引脚排列和功能分别见图3—8—6和表3—8—2。
3(译码、显示电路“时”、“分”、“秒’’的译码和显示电路完全相同,均使用七段显示译码器74LS248直接驱动LED数码管LC5011—11。
用计数器实现6位数字时钟的方法
用计数器实现6位数字时钟的方法使用计数器实现6位数字时钟的方法计数器是一种常见的数字电子元件,能够按照指定的步骤依次递增或递减数值。
我们可以使用计数器来实现一个6位数字时钟。
下面是一种可行的方法:1. 首先,选择适当的计数器。
计数器需要有至少6位(0至9)的数字显示功能。
可以选择数字集成电路如74LS90,74LS192等,这些集成电路具有可配置的计数和显示功能。
2. 连接计数器和数字显示器。
将计数器的输出引脚连接到对应位数的数字显示器的输入引脚。
一般来说,计数器的输出引脚和数字显示器的输入引脚是一一对应的。
3. 设置计数器的工作模式。
根据6位数字时钟的需求,将计数器设置为递增模式,从0开始加到9,然后再从0开始。
可以通过设置计数器的某些引脚状态或使用额外的逻辑电路实现。
4. 设置时钟控制。
为了保证时钟的准确性,可以使用一个稳定的脉冲信号作为时钟源输入计数器。
这可以来自一个单独的时钟发生器电路或者其他准确的计时源。
5. 组合显示。
每个数字显示器负责一个位数的显示,通过精确地控制计数器的输出和数字显示器的输入,可以实现6位数字时钟的显示。
通过以上步骤,我们可以将计数器与数字显示器结合起来,实现一个6位数字时钟。
根据具体的需求和材料的可用性,可以选择不同的硬件元件和连接方式。
这个时钟不仅可以显示当前时间,还可以用于计时、定时等功能。
需要注意的是,在实际应用中,还需要处理时钟的起始时间、时间格式、时区等问题。
此外,还可以考虑添加闹钟、温度显示等附加功能,以满足更多需求。
总结起来,使用计数器实现6位数字时钟的方法包括选择计数器,连接计数器和数字显示器,设置计数器的工作模式和时钟控制,以及组合显示。
通过精确的配置和控制,我们可以实现一个功能完善的6位数字时钟。
利用51单片机制作六位的电子数字钟
利用51单片机制作六位的电子数字钟关键字:电子钟,数字钟,51单片机摘要:对于学习单片机而言这个程序是一道门槛,掌握了电子钟程序,基本上51单片机就掌握了80%。
常见的电子钟程序由显示部分,计算部分,时钟调整部分构成,这样程序就有了一定的长度和难度。
时钟的基本显示原理:时钟开始显示为0时0分0秒,也就是数码管显示000000,然后每秒秒位加1 ,到9后,10秒位加1,秒位回0。
10秒位到5后,即59秒,分钟加1,10秒位回0。
依次类推,时钟最大的显示值为23小时59分59秒。
这里只要确定了1秒的定时时间,其他位均以此为基准往上累加。
开始程序定义了秒,十秒,分,十分,小时,十小时,共6位的寄存器,分别存在30h,31h,32h,33h,34h,35h单元,便于程序以后调用和理解。
电路原理图:为了节省硬件资源,电路部分采用6位共阳极动态扫描数码管,数码管的段位并联接在51单片机的p0口,控制位分别由6个2N5401的PNP三极管作驱动接在单片机的p2.1,p2.2,p2.3,p2.4,p2.5,p2.6口。
从标号star开始把这些位全部清除为0,从而保证了开始时显示时间为0时0分0秒。
然后是程序的计算部分:inc a_bit(秒位),这里用到了一个inc指令,意思是加1,程序运行到这里自动加1。
然后把加1后的数据送acc:mov a,a_bit (秒位),这时出现了一个问题,如果不断往上加数字不会加爆?所以有了下面的一句话cjne a,#10,stlop; 如果秒位到10那么转到10秒处理程序。
cjne是比较的意思,比较如果a等于10 就转移到10秒处理程序,实际上也就限定了在这里a的值最大只能为9,同时mov a_bit,#00h,这时a_bit(秒位)被强行清空为0,又开始下一轮的计数。
秒位处理完了到下面10秒的处理程序:inc b_bit,把10秒位b_bit加1,由于程序开始对各位的寄存器已经清0,这时10秒位就变成1 ,然后同样送到累加器ACC:mov a,b_bit 现在开始新一轮的10秒位计数cjne a,#6,stlop 如果10秒到了6那么到分位处理程序。
《六位数数字电子钟》实训报告书
实训报告一. 实训目的:了解常用电子元器件的性能,规格,质量参数及其意义.学习借助万用表鉴别其性能好坏的方法,学习通孔插装元器件的组装焊接技术,提高焊接水平.通过数字钟组状与调试学习,提高识图能力及实际操作技能.二. 实训内容:1.常用元器件识别及测试性能鉴别2.通孔插装元器件手工焊接及拆焊3.数字钟组装调试三. 实训步骤:1.常用元器件识别及测试性能鉴别1)三用表使用方法学习2)电阻、电容、电感、二极管、三极管、集成电路等(符号、参数、万用表测试三极管及其E.B.C判别方法)2.通孔插装元器件手工焊接及拆焊1)常用工具使用方法学习钳子、镊子、起子、吸锡器、烙铁等2)焊料(焊锡丝)3)助焊剂4)手工焊接A.对焊点要求B.焊接要领(五步法)C.焊件表面处理:保持烙铁头清洁、焊锡、焊剂用量适中、焊件整形及固定、烙铁撤离方向等5)拆焊要求拆焊原则、拆焊工具、拆焊操作要点实训过程步骤一准备认准焊点位置, 准备好焊锡丝和烙铁, 处于随时可焊接的状态。
此时特别强调的施烙铁头部要保持干净, 即可以沾上焊锡(俗称吃锡)。
步骤二加热将烙铁头放在工件焊点处, 加热焊接点。
注意首先要保持烙铁加热焊件各部分, 例如印制板上引线和焊盘都使之受热, 其次要注意让烙铁头的扁平部分(较大部分)接触热容量较大的焊件, 烙铁头的侧面或边缘部分接触热容量较小的焊件,以保持焊件均匀受热。
步骤三送焊锡当焊件加热到能熔化焊料的温度后将焊丝置于焊点, 焊料开始熔化并润湿焊点。
步骤四去焊锡当熔化一定量的焊锡后将焊锡丝移开。
步骤五移烙铁当焊锡完全润湿焊点后移开烙铁, 注意移开烙铁的方向应该是大致45°的方向。
要保证焊点美观。
上述过程, 对一般焊点而言焊接时间大约2~3秒钟。
对于热容量较小的焊点, 例如印制电路板上的小焊盘, 有时用三步法概括操作方法, 即将上述步骤2, 3合为一步, 4, 5合为一步。
实际上细微区分还是五步, 所以五步法有普遍性, 是掌握手工烙铁焊接的基本方法。
6位单片机电子钟
《6位单片机电子钟》一.硬件电路设计:我们此次设计的电子钟采用2个3位共阳LED数码管作为显示器件,以STC89C52单片机作为控制器,可以显示时分秒。
具体电路设计如下图:二:源程序:#include "at89x52.h"#define uchar unsigned char#define uint unsigned intuchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};uchar code tab1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x42,0x78,0x00,0x10};uchar n;uchar hh,mm,ss;uchar nhh,nmm,nss;uint year;uchar day,mon,week;uchar hhs,hhg,mms,mmg,sss,ssg;uchar days,dayg,mons,mong;uchar nhhs,nhhg,nmms,nmmg,nsss,nssg;uchar set1=1,set2=1;sbit fm=P3^6;sbit k1=P1^0;sbit k2=P1^1;sbit k3=P1^2;sbit k4=P1^3;uchar table1[]={31,31,29,31,30,31,30,31,31,30,31,30,31}; //闰年uchar table2[]={31,31,28,31,30,31,30,31,31,30,31,30,31}; //非闰年void jishi();void baoshi();void alarm();void set_time();void set_alarm();void set_mdw();void key_change();void key_set();void delay(int m) //延时程序,延时m*0.5ms{uint i;uint j;for (i=0;i<m;i++){for(j=0;j<50;j++);}}void timer0( ) interrupt 1{TMOD=0x01;TH0=0x3c;TL0=0xb1;n++;jishi();}main(){TMOD=0x01;TH0=0x3c;TL0=0xb1;TR0=1;EA=1;ET0=1;hh=23;mm=59;ss=50;nhh=7;nmm=30;nss=0;year=2008;mon=12;day=1;week=1;while(1){hhs=hh/10;//时分秒hhg=hh%10;mms=mm/10;mmg=mm%10;sss=ss/10;ssg=ss%10;nhhs=nhh/10;//闹钟nhhg=nhh%10;nmms=nmm/10;nmmg=nmm%10;nsss=nss/10;nssg=nss%10;days=day/10;//月日dayg=day%10;mons=mon/10;mong=mon%10;key_change(); //k1按键扫描key_set(); //k2按键扫描set_time(); //设置时间set_mdw(); //设置月日星期set_alarm(); //设置闹钟if(set1==1) //正常走时显示{P0=tab[hhs];P2_5=0;delay(1);P2_5=1;//时十位P0=tab1[hhg];P2_4=0;delay(1);P2_4=1;//时个位P0=tab[mms];P2_3=0;delay(1);P2_3=1;//分十位P0=tab1[mmg];P2_2=0;delay(1);P2_2=1;//分个位P0=tab[sss];P2_1=0;delay(1);P2_1=1;//秒十位P0=tab[ssg];P2_0=0;delay(1);P2_0=1;//秒个位}if(set1==2) //设置时间{P0=tab[hhs];P2_5=0;delay(1);P2_5=1;//时十位P0=tab1[hhg];P2_4=0;delay(1);P2_4=1;//时个位P0=tab[mms];P2_3=0;delay(1);P2_3=1;//分十位P0=tab1[mmg];P2_2=0;delay(1);P2_2=1;//分个位P0=tab[sss];P2_1=0;delay(1);P2_1=1;//秒十位P0=tab[ssg];P2_0=0;delay(1);P2_0=1;//秒个位}if(set1==3) //正常显示月日-星期{P0=tab[mons];P2_5=0;delay(1);P2_5=1;//时十位P0=tab1[mong];P2_4=0;delay(1);P2_4=1;//时个位P0=tab[days];P2_3=0;delay(1);P2_3=1;//分十位P0=tab1[dayg];P2_2=0;delay(1);P2_2=1;//分个位P0=tab[11];P2_1=0;delay(1);P2_1=1;//秒十位P0=tab[week];P2_0=0;delay(1);P2_0=1;//秒个位}if(set1==4) //设置月日-星期{P0=tab[mons];P2_5=0;delay(1);P2_5=1;//时十位P0=tab[mong];P2_4=0;delay(1);P2_4=1;//时个位P0=tab[days];P2_3=0;delay(1);P2_3=1;//分十位P0=tab[dayg];P2_2=0;delay(1);P2_2=1;//分个位P0=tab[11];P2_1=0;delay(1);P2_1=1;//秒十位P0=tab[week];P2_0=0;delay(1);P2_0=1;//秒个位}if(set1==5) //正常显示定时{P0=tab[nhhs];P2_5=0;delay(1);P2_5=1;//时十位P0=tab[nhhg];P2_4=0;delay(1);P2_4=1;//时个位P0=tab[nmms];P2_3=0;delay(1);P2_3=1;//分十位P0=tab[nmmg];P2_2=0;delay(1);P2_2=1;//分个位P0=tab[nsss];P2_1=0;delay(1);P2_1=1;//秒十位P0=tab[nssg];P2_0=0;delay(1);P2_0=01;//秒个位}if(set1==6) //设置闹钟定时{P0=tab[nhhs];P2_5=0;delay(1);P2_5=1;//时十位P0=tab[nhhg];P2_4=0;delay(1);P2_4=1;//时个位P0=tab[nmms];P2_3=0;delay(1);P2_3=1;//分十位P0=tab[nmmg];P2_2=0;delay(1);P2_2=1;//分个位P0=tab[nsss];P2_1=0;delay(1);P2_1=1;//秒十位P0=tab[nssg];P2_0=0;delay(1);P2_0=01;//秒个位}baoshi(); //整点报时alarm(); //闹钟}}void jishi() //计时函数{if(n==20){n=0;ss++;if(ss==60){ss=0;mm++;if(mm==60){mm=0;hh++;if(hh==24){hh=0;day++;week++;if(week==8){week=0;}if(year%4==0&&year%100!=0||year%400==0) //闰年{if(day==table1[mon]+1){day=0;mon++;if(mon==13){mon=0;year++;}}}else //非闰年{if(day==table2[mon]+1){day=0;mon++;if(mon==13){mon=0;year++;}}}}}}}}uchar incone(uchar n) //加1函数{if(k3==0){delay(20);if(k3==0){n++;while(!k3);}}return(n);}uchar decone(uchar m) //减1函数{if(k4==0){delay(20);if(k4==0){m--;while(!k4);if(m<0){m=0;}}}return(m);}void key_change() //k1按键扫描{if(k1==0){delay(20);if(k1==0){set1++;while(!k1);if(set1==7){set1=1;}}}}void key_set() //k2按键扫描{if(k2==0){delay(20);if(k2==0){set2++;while(!k2);if(set2==4){set2=1;}}}}void baoshi() //整点报时函数{if(mm==00&&ss==00){fm=0;}if(ss==1){fm=1;}}void alarm( ) //闹钟函数{uchar x;if(nhh==0){goto end;}if(hh==nhh&&mm==nmm&&ss==nss) {for(x=0;x<6;x++){fm=0;delay(30);fm=1;delay(20);fm=0;delay(30);fm=1;delay(20);fm=0;delay(30);fm=1;delay(20);fm=0;delay(30);fm=1;delay(180);}}end:;}void set_time() //设置时间函数{if(set1==2){if(set2==1){hh=incone(hh);if(hh==24){hh=0;}if(hh==-1){hh=23;}hh=decone(hh);}if(set2==2){mm=incone(mm);if(mm==60){mm=0;}if(mm==-1){mm=59;}mm=decone(mm);}if(set2==3){ss=incone(ss);if(ss==60){ss=0;}if(ss==-1){ss=59;}ss=decone(ss);}}}void set_mdw() //设置月日星期函数{if(set1==4){if(set2==1){mon=incone(mon);if(mon==13){mon=1;}mon=decone(mon);if(mon==0){mon=12;}}if(set2==2){day=incone(day);if(day==32){day=1;}day=decone(day);if(day==0){day=31;}}if(set2==3){week=incone(week);if(week==8){week=1;}week=decone(week);if(week==0){week=7;}}}}void set_alarm() //设置闹钟函数{if(set1==6){if(set2==1){nhh=incone(nhh);if(nhh==24){nhh=0;}if(nhh==-1){nhh=23;}nhh=decone(nhh);}if(set2==2){nmm=incone(nmm);if(nmm==60){nmm=0;}nmm=decone(nmm);if(nmm==-1){nmm=59;}}if(set2==3){nss=incone(nss);if(nss==60){nss=0;}nss=decone(nss);if(nss==-1){nss=59;}}}}合作者:吴肖,陈耀,张鹏程,徐煜。
六位数码管电子钟设计论文
单片机课程设计论文姓名:班级:09电子信息工程2班学院:理学院指导教师:六位数码管电子钟摘要数字钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置。
它的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能。
因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路、报时电路和振荡器组成。
干电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路组成。
秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。
将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。
“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。
“时计数器”采用24进制计时器,可实现对一天24小时的累计。
译码显示电路将“时”、“分”、“秒”计数器的输出状态送到七段显示译码器译码,通过七位LED七段显示器显示出来。
整点报时电路时根据计时系统的输出状态产生一脉冲信号,然后去触发一音频发生器实现报时。
校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整的。
数字钟是以不同的计数器为基本单元构成的,它的用途十分广泛,只要有计时、计数的存在,便要用到数字钟的原理及结构;同时在日期中,它以其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱。
目录1.数字电子钟的设计方案论证2.核心器件简介3.电路原理图及工作原理4.安装与调试5.主程序6.总结参考文献1. 数字电子钟的设计方案论证1.1数字电子钟的应用意义数字电子钟是用数字电路实现“时”、“分”、“秒”数字显示的计时装置,主要由振荡器、分频器、计数器、译码显示器、校时电路、报时电路等六部分组成。
这些都是数字电路中应用最广的基本电路。
单片机 六位数字钟程序 毕业设计 课程设计
RAM分配表单元地址用途30H 10毫秒计时31H 0.5秒计时32H 秒计数器33H 分计数器34H 时计数器35H 选位计数器位地址用途00H 键已按下标志01H 秒节拍显示标志(兼被修改位闪动标志)ORG 0000HLJMP STAORG 000BHLJMP T0_SUVSTA: MOV SP,#6FH ;设置堆栈MOV IE,#82H ;允许T0中断MOV TMOD,#02H ;定时器方式2MOB TH0,#06H ;定时时间500usMOV TL0,#06HMOV 30H,#14H ;10ms计时初值MOV 31H,#32H ;0.5s计时初值MOV 32H,#00H ;清秒计数器MOV 33H,#00H ;清分计数器MOV 34H,#00H ;清时计数器MOV 35H,#03H ;置选位计数器为非修改状态SETB TR0 ;启动定时器MAIN: MOV A,P3 ;取键盘ORL A,10001111B ;屏蔽非键盘输入位CJNE A,# 0FFH,LOOP1 ;有键按下转LOOP1SJMP LOOP2 ;无键按下,则跳过LOOP1: JB 00H,LOOP3 ;有键已按下标志,则跳过SETB 00H ;无标志置标志后查键JB P3.4,LOOP4 ;不是选位键转加1键LJMP KEY0 ;是选位键按下转该键程序LOOP4: JB P3.5,LOOP5 ;不是选位键转减1键SJMP KEY1 ;是加1键按下转该键程序LOOP5: JB P3.6,LOOP2SJMP KEY2 ;是减1键按下转该键程序LOOP2: CLR 00H ;无键按下清键已按下标志LOOP3: MOV DPTR,# TABLE ;置7段码表格首址MOV A,34H ;取时的高位显示SWAP AANL A,#0FHMOVC A,@A+ DPTRMOV C,01H ;秒节拍显示处理MOV ACC.7,CMOV P1,AMOV A,35H ;如修改时单位,作闪动处理CJNE A,# 02H,LOOP12 ;选位计数器未选中时单位跳过JNB 01H,LOOP12 ;无闪动标志跳过ORL P1,#7FH ;清显示LOOP12: CLR P2.0 ;显示时十位LCALL DELY ;延时5msORL P2,#0FFH ;关显示MOV A,34H ;取时的低位显示ANL A,# 0FHMOVC A,@A+DPTRMOV C,01HMOV ACC.7,CMOV P1,AMOV A,35HCJNE A,#02H,LOOP13JNB 01H,LOOP13ORL P1,#7FHLOOP13: CLR P2.1 ; 显示时个位LCALL DELYORL P2,#0FFH ;关显示MOV A,33H ;取分的高位显示SWAp AANL A,#0FHMOVC A,@A+DPTR ;取分高位段码MOV C,01H ;加闪信号MOV ACC.7,CMOV P1,AMOV A,35H ;判断分位上否被选位CJNE A,#01H,LOOP14 ;分位未被选转JNB 01H,LOOP14 ;无闪动标志转ORL P1,#7FH ;有闪动标志关显示LOOP14: CLR P2.2 ;显示分十位LCALL DELYORL P2,#0FFH ;关显示MOV A,33H ;取分个位显示ANL A,#0FHMOVC A,@A+DPTRMOV C,01H ;加闪信号MOV ACC.7,CMOV P1,A ;送分个位段码MOV A,35HCJNE A,#01H,LOOP15 ;分位未被选转JNB 01H,LOOP15 ;无闪动标志转ORL P1,#7FH ;有闪动标志关显示LOOP15: CLR P2.3 ;显示分个位LCALL DELYORL P2,#0FFHMOV A,32H ;取秒十位显示SWAP AANL A,# 0FHMOVC A,@A+DPTRMOV C,01H ;加闪信号MOV ACC.7,CMOV P1,A ;送秒十位段码MOV A,35HCJNE A,#00H,LOOP16 ;秒位未被选转JNB 01H,LOOP16 ;无闪动标志转ORL P1,#7FH ;有闪动标志关显示LOOP16: CLR P2.4 ;显示秒十位LCALL DELYORL P2,#0FFH ;关显示位码MOV A,32H ;取秒个位显示ANL A,# 0FHMOVC A,@A+DPTRMOV C,01H ;加闪信号MOV ACC.7,CMOV P1,A ;送秒个位段码MOV A,35HCJNE A,#00H,LOOP17 ;秒位未被选转JNB 01H,LOOP17 ;无闪动标志转ORL P1,#7FH ;有闪动标志关显示LOOP17: CLR P2.5 ;显示秒个位LCALL DELYORL P2,#0FFH ;关显示位码LJMP MAINKEY0 : INC 35H ;选位键程序MOV A,35HCJNE A,#04H,LOOP6 ;将选位计数器值限制在0~3之内MOV 35H,#00HLOOP6: LJMP LOOP3 ;返回显示程序KEY1: MOV A,35H ;加1键程序ADD A,#32H ;得到被修改单元地址MOV R0,ACJNE A,#32H,FXG1;不是修改秒转分修改MOV 32H,#00H ;秒单元清零SUBB A,#30H ;当前秒数大于30秒吗?JNC FXG ;大于30秒清零转分加1LJMP LOOP3 ;小于30秒清零转显示FXG:INC R0 ;指向分单元FXG1:MOV A,@R0ADD A,#01H ;将该单元加1DA AMOV @R0,AMOV R1,35HCJNE R1,#00H,LOOP7CJNE A,#60H,LOOP8 ;是修改分,满六十则清零MOV @R0,#00HSJMP LOOP8LOOP7: CJNE R1,#01H,LOOP18 ;非修改状态不作处理CJNE A,#24H,LOOP8 ;是修改时,满24则清零MOV @R0,#00HLOOP8:MOV 32H,#00H ;只要有修改就将秒清零LOOP18:LJMP LOOP3NOPKEY2: MOV A,35H ;减1键程序ADD A,#32H ;得到被修改单元地址MOV R0,ACJNE A,#32H,FXG2;不是修改秒转分修改MOV 32H,#00H ;秒单元清零SUBB A,#30H ;当前秒数大于30秒吗?JNC FXG ;大于30秒清零转分加1LJMP LOOP3 ;小于30秒清零转显示FXG2:MOV A,@R0ADD A,#99H ;将该单元减1DA AMOV @R0,ACJNE A,#99H,LOOP9 ;结果不为负,则不作处理MOV R1,35HCJNE A,#00H,LOOP10MOV @R0,#59H ;结果为负,是修改分则置成59分SJMP LOOP9LOOP10:SJNE R1,#01H,LOOP19 ;非修改状态不作处理MOV @R0,#23H ;结果为负,是修改时则置成23时LOOP9:LJMP LOOP3 ;只要有修改就将秒清零T0_SUV: PUSH ACC ;T0中断服务程序(500us)PUSH PWSDJNZ 30H,LOOP11 ;10ms计时MOV 30H,#14HDJNZ 31H,LOOP11 ;0.5s计时MOV 31H,#32HCPL 01H ;秒节拍显示取反JNB 01H,LOOP11 ;未到1秒跳过MOV A,32H ;秒加1ADD A,#01HDA AMOV 32H,ACJNE A,#60H,LOOP11MOV 32H,#00HMOV A,33H ;分加1ADD A,#01HDA AMOV 33H,ACJNE A,#60H,LOOP11MOV 33H,#00HMOV A,34H ;时加1ADD A,#01HDA AMOV 34H,ACJNE A,#24H,LOOP11MOV 34H,#00HLOOP11:POP PSWPOP ACCRETIDELY: MOV R2,#05H ;延时5msLOOP16:MOV R3,#0F9HLOOP17:DJNZ R3,LOOP13DJNZ R2,LOOP12RETTABLE:DB 0C0H,0F9H,0A4H,0B0H,99H ;7段码字形表DB 92H,82H,0F8H,80H,90HEND。
六位数码管时钟设计
xxxx职业技术学院《计算机控制技术》实训报告题目: 六位数码管时钟设计专业:________机电一体化班级: 机电1006班学生姓名:学号: ******** 指导教师:实训时间: 2012 年 12 月 29—2013年1月6 日一.系统设计要求(一)设计1分钟定时程序•选择定时器(T0/T1)•选择适当的工作方式(方式1/方式2)•计算并设定定时器的计数初值•要求用中断方式•每隔1秒钟信号取反一次,输出到P1.0引脚所连接的LED灯去。
(二)设计6位数码管显示程序设计6位数码管显示程序,用动态扫描方式显示6位数字(如日期:121203)。
段码显示由P0口负责,位码由P2口显示(三)实际完成的功能起始值时、分、秒全是零,系统执行初始化程序后,随即开始走时,无须特为启动。
当时钟显示为23:59:59时,再加1,时钟从00:00:00开始运行,从而达到24小时循环。
二.系统的硬件设计••CPU--AT89C51•段码驱动芯片--74LS245•6位数码管--7SEG-MPX6-CC•电阻--3WATT10K•电容--A VX0402……、GENELECT……•晶振--CRYSTAL•按钮--BUTTON6LED日期显示三.系统的软件设计程序流程图子程序定时中断子程序调节分钟中断子程序调节小时中断子程序(一)定时程序1秒定时(模式1)ORG 0000HSJMP STARTORG 000BHSJMP INTIORG 0030HSTART:MOV TMOD,#01HSETB TR0SETB EASETB ET0MOV R6,#10MOV TH0,#15HMOV TL0,#0A0HMOV R6,#0E8HMOV R7,#03HSJMP $INTI:MOV TH0,#15HMOV TL0,#0A0HDJNZ R6,EXITDJNZ R7,EXITMOV R6,#0E8HMOV R7,#03HCPL P1.0EXIT:RETIEND(二)6位LED显示程序ORG 0000HLJMP LOOP4ORG 0030HLOOP4:MOV SP,#60HMOV R5,#6MOV R1,#30HMOV R4,#1LOOP2:MOV A,R4MOV @R1,AINC R1INC R4DJNZ R5,LOOP2LOOP1:MOV DPTR,#TABMOV R0,#30HMOV R2,#6HMOV R3,#0FEH LOOP:MOV P2,R3MOV A,@R0MOVC A,@A+DPTRMOV P0,AACALL DEINC R0MOV A,R3RL AMOV R3,ADJNZ R2,LOOPSJMP LOOP1DE:MOV R7,#0FFHDE12:MOV R6,#0DJNZ R6,DE12DE1:DJNZ R7,DE1RETTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H,00H END(三)时钟程序ORG 0000HLJMP STARTORG 000BHLJMP NETIORG 0030HSTART:MOV SP,#60HMOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0HSETB EASETB ET0SETB TR0MOV R6,#20MOV DPTR,#TABLOOP2:MOV R0,#30HMOV R2,#6HMOV R3,#0FEHLOOP1:MOV P2,R3MOV A,@R0MOVC A,@A+DPTRMOV P0,AACALL DELAYINC R0MOV A,R3RL AMOV R3,ADJNZ R2,LOOP1SJMP LOOP2 NETI:MOV TH0,#3CHMOV TL0,#0B0HDJNZ R6,EXTI1MOV R6,#20INC 30HD0:MOV A,30HCJNE A,#10,EXTI1MOV 30H,#0MOV A,31HINC AMOV 31H,ACJNE A,#6,EXTI1 D2:MOV 31H,#0MOV A,32HINC AMOV 32H,ACJNE A,#10,EXTI1D3:MOV 32H,#0MOV A,33HINC AMOV 33H,ACJNE A,#6,EXTI1MOV 33H,#0MOV A,34HINC AMOV 34H,AEXTI1:RETIDELAY:MOV R7,#0DE1:DJNZ R7,DE1RETTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H,00H END四、实训总结这次单片机的实训有三任务:第一个是一分钟定时器,由P1口的一个二极管的闪烁作标示。
六位数字钟设计课程设计
目录目录 (I)摘要 ................................................................................................................................................................ I I 第一章绪论 . (1)1.1关于单片机的基础知识 (1)1.2开发背景及电子钟原理 (2)1.2.1 开发背景 (2)1.2.2 电子钟原理 (2)1.3方案比较 (2)1.4 定时与中断系统 (3)第二章系统硬件设计 (3)2.1 电源电路图 (3)2.2硬件电路设计框图 (4)2.3数字钟原理图 (4)2.4单片机模块 (5)2.5 AT89S52芯片简介 (5)2.6 AT89S52功能描述 (6)2.7键盘控制电路 (8)2.8复位电路 (8)2.9显示电路 (8)2.9.1 LED共阳数码管简介 (9)第三章系统软件设计 (10)3.1编程思路 (10)3.2系统资源分配 (11)3.3编程流程图初始化程序框图: (11)3.4数字钟程序 (12)第四章单片机应用系统的调试 (17)4.1.硬件调试 (17)4.2软件调试 (17)4.3系统调试 (18)谢辞 (18)参考文献 (19)摘要该数字钟电路采用单片机AT89S52实现,晶振频率采用6MHZ,显示部分采用了3个两位一体共阳极的LED数码管组成的动态显示电路,通过6个驱动器(即共阳极PNP 型的三极管)来驱动放大LED,用4个LED闪动的点来指示秒的节拍,其中字段由P0口控制。
按键K0进行选位,K1、k2进行时间调整,可适用显示时,分,秒的信息。
利用我们现所学的知识,本着经济,可靠、体积小、功能扩展方便并具有先进性的基本原则,我们选用当今世界流行的已被广泛应用的器件AT89S52单片微型计算机为核心并根据其功能要求的特性来构成本方案的基本设计思想,利用单片机实现的电子钟具有编程灵活,便于电子钟功能的扩充,体积小、精度高、功能扩展极其方便,成本低。
6位 数字钟设计
目录一、课程设计目的 (2)二、课程设计正文 (2)1.任务要求说明 (2)1.1、主要任务 (2)1.2、技术要求 (2)1.3、设计思路 (2)1.4、所需器件 (3)1.5、硬件设计 (3)1.5.1.STC90C52AD说明 (3)1.5.2.数码管说明 (4)2.单元模块设计 (5)2.1时间显示模块 (5)2.2 按键调时模块 (6)2.3 显示驱动模块 (7)3.原理简介 (7)3.1电路原理图 (7)3.2、原理介绍 (8)4.参数计算 (8)5.系统软件设计 (8)5.1开发软件Keil C51 uVision3简介 (8)5.2单片机程序烧写软件 (9)5.3参考程序 (9)三、课程设计总结 (15)四、参考文献 (16)附录一、系统原理图附录二、PCB图一、课程设计目的1.进一步熟悉和掌握单片机的结构及工作原理。
2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法。
3.通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。
4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
5.通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应打下基础。
二、课程设计正文1任务及要求说明1.1主要任务采用AT89S51作为控制单元,实现数字钟的设计。
1)设计键盘输入电路2)设计显示电路3)合理分配地址,编写系统程序4)利用Protel设计硬件电路原理图并进行软硬件联机调试1.2 技术要求1.3设计思路1、时间的显示:单片机P0.0—P0.3控制位选,可分别选通四只共阴数码管。
P1.0—P1.6控制段码管,将数据送给74LS245驱动数码管显示时间。
2、时间的调整:设置4个按钮,分别由P2.0—P2.3控制,其编号分别是1到4。
1为调节切换键,2为加1键,3为减1键,4为确认开始键。
1.4 设计所需器材电阻: 1K (8个) 10K(9个) 2.2k(1个) 300(8个)200K(1个)按键开关:5个瓷石电容:30pF (2个)电解电容:10μF(1个)晶振:6MHZ(1个)三极管:NPN(4个)共阴极数码管:4个底座:DIP40(1个)DIP16(1个)万能电路板:1个芯片:STC90C52(1片)Header2(1个)1.5 硬件设计1.5.1.STC90C52AD说明AT89C51的引说明和功能说明如下:XTAL1 :接外部晶振的一个引脚。
数字电子实训数字钟的设计(6位)
内容摘要电子产品的研发日新月异,不仅是在通信技术方面数字化取代于模拟信号,就连我们的日常生活也进于让数字化取缔。
说明数字时代已经到来,而且渗透于我们生活的方方面面。
就拿我们生活的实例来说明一下“数字”给我们带来的便捷。
下面就以数字钟为例简单介绍一下,数字钟我们听到这几个字,第一反应就是我们所说的数字,不错数字钟就是以数字显示取代模拟表盘的钟表,在显示上它用数字反应出此时的时间,相比模拟钟能给人一种一目了然的感觉,不仅如此它还能同时显示时、分、秒。
而且能对时、分、秒准确校时,这是普通钟所不及的。
与此同时数字钟还能准确定时,在你所规定的时间里准确无误的想你发出报时声音,提醒你在此时所需要去做的事。
与旧式钟表相比它更适用于现代人的生活。
这学期恰好遇上学校的《专业基础》课程设计,题目是数字钟的设计。
因而在所学专业的基础上做了以下课程设计。
希望给大家带来方便的同时,使自己对所学专业有进一步的了解!关键词:数字钟;校时;时间显示;定时目录一、数字钟设计的基本概要 1二、数字钟的原理框图 2三、数字钟电路的设计 3四、电路功能测试以及常见问题解决本法 12五、总结体会 13六、致谢 14七、参考文献 15一、数字钟设计的基本概要1.1数字钟设计的目的该数字钟具有基本功能和扩展功能两部分。
其中,基本功能部分的有准确计时,以数字形式显示时、分、秒的时间和校时功能。
扩展功能部分则具有:仿广播电台整点报时、自动报整点时数的功能。
数字钟的电路也是由主体电路和扩展电路两部分构成,在电路中,基本功能部分由主体电路实现,而扩展功能部电路实现。
这两部分都有一个共同特点就是它们都要用到振荡电路提供的1Hz脉冲信号。
在计时出现误差时电路还可以进行校时和校分,为了使电路简单所设计的电路不具备校秒的功能。
并且要用数码管显示时、分、秒,各位均为两位显示,扩展部分要有相应的响应电路。
1.2数字钟设计的功能要求(一)基本功能:(1)时的计时要求为“24翻1”,分和秒的计时要求为60进制(2)准确计时,以数字形式显示时,分,秒的时间(3)校正时间(二)扩展功能:(1)仿广播电台整点报时功能;(2)自动报整点时数;二、数字钟的原理框图根据设计要求,可建立数字钟系统组成框图,如图(1)所示,数字钟电路系统由主体电路和扩展电路两大部分组成,其中,主体电路完成数字钟的基本计数功能,扩展电路完成数字钟的定时、整点报时扩展功能。
AT89C2051做的数字电子时钟
AT89C2051做的数字钟采用AT89C2051的6位电子钟原理如下图所示,只要硬件连接无误,保证成功。
另外图中的SET按纽用于校准时间。
按住2秒以上进入校准时间状态及换档和退出,快速点触用于调节时间数值。
三极管采用9015即可。
数码管最好采用红色的共阳型LED数码管,亮度高些,因为是扫描的显示方式,所以各个数码管的abcdefg各脚采用了总线并联,改动510欧姆的电阻可以改变显示亮度。
电子钟原理图电子钟源程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; AT89C2051时钟程序;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 定时器T0、T1溢出周期为50MS,T0为秒计数用,T1为调整时闪烁用,; P3.7为调整按钮,P1口为字符输出口,采用共阳显示管。
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 中断入口程序;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ORG 0000H ;程序执行开始地址LJMP START ;跳到标号START执行ORG 0003H ;外中断0中断程序入口RETI ;外中断0中断返回ORG 000BH ;定时器T0中断程序入口LJMP INTT0 ;跳至INTTO执行ORG 0013H ;外中断1中断程序入口RETI ;外中断1中断返回ORG 001BH ;定时器T1中断程序入口LJMP INTT1 ;跳至INTT1执行ORG 0023H ;串行中断程序入口地址RETI ;串行中断程序返回; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 主程序;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;START: MOV R0,#70H ;清70H-7AH共11个内存单元MOV R7,#0BH ;CLEARDISP: MOV @R0,#00H ;INC R0 ;DJNZ R7,CLEARDISP ;MOV 20H,#00H ;清20H(标志用)MOV 7AH,#0AH ;放入"熄灭符"数据MOV TMOD,#11H ;设T0、T1为16位定时器MOV TL0,#0B0H ;50MS定时初值(T0计时用)MOV TH0,#3CH ;50MS定时初值MOV TL1,#0B0H ;50MS定时初值(T1闪烁定时用)MOV TH1,#3CH ;50MS定时初值SETB EA ;总中断开放SETB ET0 ;允许T0中断SETB TR0 ;开启T0定时器MOV R4,#14H ;1秒定时用初值(50MS×20)START1: LCALL DISPLAY ;调用显示子程序JNB P3.7,SETMM1 ;P3.7口为0时转时间调整程序SJMP START1 ;P3.7口为1时跳回START1SETMM1: LJMP SETMM ;转到时间调整程序SETMM ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1秒计时程序;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;T0中断服务程序INTT0: PUSH ACC ;累加器入栈保护PUSH PSW ;状态字入栈保护CLR ET0 ;关T0中断允许CLR TR0 ;关闭定时器T0MOV A,#0B7H ;中断响应时间同步修正ADD A,TL0 ;低8位初值修正MOV TL0,A ;重装初值(低8位修正值)MOV A,#3CH ;高8位初值修正ADDC A,TH0 ;MOV TH0,A ;重装初值(高8位修正值)SETB TR0 ;开启定时器T0DJNZ R4, OUTT0 ;20次中断未到中断退出ADDSS: MOV R4,#14H ;20次中断到(1秒)重赋初值MOV R0,#71H ;指向秒计时单元(71H-72H)ACALL ADD1 ;调用加1程序(加1秒操作)MOV A,R3 ;秒数据放入A(R3为2位十进制数组合)CLR C ;清进位标志CJNE A,#60H,ADDMM ;ADDMM: JC OUTT0 ;小于60秒时中断退出ACALL CLR0 ;大于或等于60秒时对秒计时单元清0MOV R0,#77H ;指向分计时单元(76H-77H)ACALL ADD1 ;分计时单元加1分钟MOV A,R3 ;分数据放入ACLR C ;清进位标志CJNE A,#60H,ADDHH ;ADDHH: JC OUTT0 ;小于60分时中断退出ACALL CLR0 ;大于或等于60分时分计时单元清0MOV R0,#79H ;指向小时计时单元(78H-79H)ACALL ADD1 ;小时计时单元加1小时MOV A,R3 ;时数据放入ACLR C ;清进位标志CJNE A,#24H,HOUR ;HOUR: JC OUTT0 ;小于24小时中断退出ACALL CLR0 ;大于或等于24小时小时计时单元清0OUTT0: MOV 72H,76H ;中断退出时将分、时计时单元数据移MOV 73H,77H ;入对应显示单元MOV 74H,78H ;MOV 75H,79H ;POP PSW ;恢复状态字(出栈)POP ACC ;恢复累加器SETB ET0 ;开放T0中断RETI ;中断返回;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 闪动调时程序;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;T1中断服务程序,用作时间调整时调整单元闪烁指示INTT1: PUSH ACC ;中断现场保护PUSH PSW ;MOV TL1, #0B0H ;装定时器T1定时初值MOV TH1, #3CH ;DJNZ R2,INTT1OUT ;0.3秒未到退出中断(50MS中断6次)MOV R2,#06H ;重装0.3秒定时用初值CPL 02H ;0.3秒定时到对闪烁标志取反JB 02H,FLASH1 ;02H位为1时显示单元"熄灭"MOV 72H,76H ;02H位为0时正常显示MOV 73H,77H ;MOV 74H,78H ;MOV 75H,79H ;INTT1OUT: POP PSW ;恢复现场POP ACC ;RETI ;中断退出FLASH1: JB 01H,FLASH2 ;01H位为1时,转小时熄灭控制MOV 72H,7AH ;01H位为0时,"熄灭符"数据放入分MOV 73H,7AH ;显示单元(72H-73H),将不显示分数据MOV 74H,78H ;MOV 75H,79H ;AJMP INTT1OUT ;转中断退出FLASH2: MOV 72H,76H ;01H位为1时,"熄灭符"数据放入小时MOV 73H,77H ;显示单元(74H-75H),小时数据将不显示MOV 74H,7AH ;MOV 75H,7AH ;AJMP INTT1OUT ;转中断退出; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 加1子序;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ADD1: MOV A,@R0 ;取当前计时单元数据到A DEC R0 ;指向前一地址SWAP A ;A中数据高四位与低四位交换ORL A,@R0 ;前一地址中数据放入A中低四位ADD A,#01H ;A加1操作DA A ;十进制调整MOV R3,A ;移入R3寄存器ANL A,#0FH ;高四位变0MOV @R0,A ;放回前一地址单元MOV A,R3 ;取回R3中暂存数据INC R0 ;指向当前地址单元SWAP A ;A中数据高四位与低四位交换ANL A,#0FH ;高四位变0MOV @R0,A ;数据放入当削地址单元中RET ;子程序返回; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; 清零程序;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;对计时单元复零用CLR0: CLR A ;清累加器MOV @R0,A ;清当前地址单元DEC R0 ;指向前一地址MOV @R0,A ;前一地址单元清0RET ;子程序返回; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; 时钟调整程序;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;当调时按键按下时进入此程序SETMM: cLR ET0 ;关定时器T0中断CLR TR0 ;关闭定时器T0LCALL DL1S ;调用1秒延时程序JB P3.7,CLOSEDIS ;键按下时间小于1秒,关闭显示(省电)MOV R2,#06H ;进入调时状态,赋闪烁定时初值SETB ET1 ;允许T1中断SETB TR1 ;开启定时器T1SET2: JNB P3.7,SET1 ;P3.7口为0(键未释放),等待SETB 00H ;键释放,分调整闪烁标志置1SET4: JB P3.7,SET3 ;等待键按下LCALL DL05S ;有键按下,延时0.5秒JNB P3.7,SETHH ;按下时间大于0.5秒转调小时状态MOV R0,#77H ;按下时间小于0.5秒加1分钟操作LCALL ADD1 ;调用加1子程序MOV A,R3 ;取调整单元数据CLR C ;清进位标志CJNE A,#60H,HHH ;调整单元数据与60比较HHH: JC SET4 ;调整单元数据小于60转SET4循环LCALL CLR0 ;调整单元数据大于或等于60时清0CLR C ;清进位标志AJMP SET4 ;跳转到SET4循环CLOSEDIS: SETB ET0 ;省电(LED不显示)状态。
六位数字时钟电路实习报告
实习报告:六位数字时钟电路设计一、实习目的本次实习旨在通过设计和实现一个六位数字时钟电路,检验并巩固我们所学数字电路知识,提高实际操作能力,培养解决实际问题的能力。
同时,通过本次实习,了解数字时钟电路的工作原理,掌握常用的数字集成电路及其使用方法。
二、实习内容本次实习的主要任务是设计和实现一个六位数字时钟电路。
具体包括以下几个部分:1. 确定时钟电路的总体设计方案,选择合适的数字集成电路。
2. 设计时钟电路的逻辑电路图,包括时钟发生器、分频器、计数器等。
3. 编写时钟电路的程序,实现时钟的功能。
4. 进行电路仿真,验证时钟电路的功能和性能。
5. 制作电路板,进行实际电路测试,验证电路的可靠性。
三、实习过程1. 在实习开始前,我们先对数字时钟电路的基本原理进行了学习和讨论,了解了时钟电路的基本组成部分和功能。
然后,我们根据实习要求,确定了时钟电路的设计方案,并选择了合适的数字集成电路。
2. 接着,我们根据时钟电路的设计方案,绘制了逻辑电路图。
在设计过程中,我们充分考虑了电路的稳定性和可靠性,确保时钟电路能够正常工作。
3. 在电路设计完成后,我们编写了时钟电路的程序。
程序主要包括初始化部分、时钟发生部分、分频部分和显示部分。
我们通过编程实现了时钟的计数和显示功能。
4. 在程序编写完成后,我们使用了电路仿真软件对时钟电路进行了仿真。
仿真结果表明,时钟电路的功能和性能均达到预期要求。
5. 最后,我们根据电路仿真结果,制作了电路板。
在电路板制作完成后,进行了实际电路测试。
测试结果表明,电路板能够正常工作,时钟电路具有较高的可靠性和稳定性。
四、实习总结通过本次实习,我们学会了如何设计和实现一个数字时钟电路,掌握了常用的数字集成电路及其使用方法。
同时,我们培养了团队协作精神,提高了实际操作能力和解决实际问题的能力。
在实习过程中,我们遇到了一些困难,如电路设计的优化、程序的调试等。
但是,在老师和同学的帮助下,我们逐一解决了这些问题,使时钟电路得以正常工作。
基于单片机的电子时钟6位LED数码管显示
数码管显示电子时钟设计一.功能要求1.数字电子时钟最主要是LED数码管显示功能,以24小时为一个周期,显示时间时、分、秒。
2.具有校时功能,可以对时、进行单独校对,使其校正到标准时间。
二.方案论证1.数字时钟方案数字时钟是本设计的最主要的部分。
根据需要,可利用两种方案实现。
方案一:本方案采用Dallas公司的专用时钟芯片DS12887A。
该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。
为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。
当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。
而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。
方案二:本方案完全用软件实现数字时钟。
原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。
利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。
该方案具有硬件电路简单的特点。
但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。
而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。
基于硬件电路的考虑,本设计采用方案二完成数字时钟的功能。
2.数码管显示方案方案一:静态显示。
所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。
该方式每一位都需要一个8 位输出口控制。
静态显示时较小的电流能获得较高的亮度,且字符不闪烁。
但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。
方案二:动态显示。
所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。
六位数字钟设计郑航数电课程设计报告
课程设计报告20 17 – 20 18 学年第 2 学期16 级电子信息工程专业班级课程名称数电课程设计设计题目六位数字钟设计学号姓名指导教师2018 年 5 月28 日目录一、设计目的 (1)(一)数电课设的目的与意义 (1)1.目的 (1)2.意义 (1)(二)六位数字钟设计 (1)1.设计目的 (1)2.要实现的电路具体功能 (2)二、电路详细设计 (2)(一)电路模块化的系统结构图及解释说明 (2)(二)各模块详细设计过程 (3)(三)关键芯片和用法的详细介绍 (6)1.CD4511 (6)2.CD4518 (7)(四)最终合成的完整原理图 (8)三、仿真及设计 (9)(一)仿真软件和仿真步骤的简要介绍 (9)1.仿真软件 (9)2.仿真步骤 (9)(二)仿真结果 (9)1.仿真结果展示 (9)2.仿真结果分析 (10)3.问题及解决对策 (10)四、电路调试及分析 (10)(一)基础知识及注意事项 (10)1.面包板常识知识介绍 (10)2.调试电路的一般步骤和注意事项 (11)(二)用面包板调试两位十进制计数器 (12)1.过程及结果 (12)2.问题分析及解决方案 (12)五、实物制作及分析 (13)(一)实物套件对应功能原理图及元器件清单 (13)(二)实物组装和焊接注意事项、详细操作步骤 (14)1.实物组装 (14)2.焊接注意事项 (14)3.焊接详细操作步骤 (15)(三)实物实现效果 (15)1.实现效果 (15)2.存在问题分析及解决方案 (16)一、设计目的(一)数电课设的目的与意义1.目的①加深对数字电子技术基础理论知识的理解和应用。
②学习和掌握Proteus仿真软件的使用。
③学习使用信号源、直流电源、万用表等常用实验设备。
④学习使用面包板进行电路调试。
⑤掌握用PCB板进行实物组装和焊机的相关知识和技能。
2.意义①使我们能够综合运用所学理论知识、拓宽知识面,系统地进行电子电路的工程实践训练。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图(13)74LS08管脚图
图(14)74LS04管脚图
3.3主体电路图
图(15)主体电路图
四、电路功能测试以及常见问题解决本)数字钟计数功能测试:接通电源,在秒脉冲的作用下,电路开始计数,且时、分、秒分别为24、60、60进制。计数功能符合设计要求。
图(5)74LS90管脚图
表(1) BCD码十进制计数时序表(2) 二—五混合进制计数时序
2)24进制计数器
用74Ls90设计24进制电路与60进制电路原理基本相同,只是把原来60清零改为目前24清零即可,电路如图(6)所示
图(6)24进制电路
工作原理与
3.1.3
图(7) 译码与显示电路
电路的工作原理:译码是编码的反过程,译码器是将输入的二进制代码翻译成相应的输出信号以表示编码时所赋予原意的电路。常用的集成译码器有二进制译码器、二—十制译码器和BCD—7段译码器、显示模块用来显示计时模块输出的结果。
为期三个星期的课程设计将要结束了。在这三周的学习中,我学到了很多,也找到了自己身上的不足。感受良多,获益匪浅。在这三星期的学习、设计使我对抽象的理论有了具体的认识,把书本上学到得设计电路的方法应用到具体实践中来,不仅加深了对理论知识的理解程度,更增强了实际中动手的能力。通过这次课程设计,我掌握了常用元件的识别和测试;熟悉了常用的仪器仪表;了解了基本电路原件的连接、焊接方法;以及如何分析电路误差产生原因和提高电路的性能等等。
电路中的主要元件及功能介绍:
1)译码器74LS48
译码器是一个多输入、多输出的组合逻辑电路。它的工作是把给定的代码进行“翻译”,变成相应的状态,使输出通道中相应的一路有信号输出。译码器在数字系统中有广泛的用途,不仅用于代码的转换、终端的数字显示,还用于数字分配,存储器寻址和组合控制信号等。译码器可以分为通用译码器和显示译码器两大类。在本电路中用的译码器是共阴极译码器74LS48,用74LS48把输入的8421BCD码ABCD译成七段输出a-g,再由七段数码管显示相应的数。 74LS48的管脚图如图(8)。在管脚图中,管脚LT、RBI、BI/RBO都是低电平是起作用,作用分别为:
五、总结体会
通过本次课程设计,我明白了一个道理:无论做什么事情,都必需养成严谨,认真,善思的工作作风。我这课程设计由于我采用的是数字电路来实现的,所以电路较复杂,但是容易理解。
这次设计,我还掌握了制PCB的一系列步骤,在几周的时间里,我把本设计的整个电路图画好了,并且画好了PCB板图。
通过这次课程设计,我又掌握了些元器件的用途以及它们的参数、性能。这次设计提高了我理论和实践相结合的能力,增加了把理论用于实践的兴趣,同时也提高了我分析问题和解决问题的能力。没有最好,只有更好。我相信通过这一次的毕业设计之后,我以后会更加努力,用严谨的科学态度去面对一切。克服困难,战胜自我,超越自我。
数字钟的计数电路是用两个六十进制计数电路和24进制计数电路实现的。数字钟的计数电路的设计可以用反馈清零法。当计数器正常计数时,反馈门不起作用,只有当进位脉冲到来时,反馈信号将计数电路清零,实现相应模的循环计数。以60进制为例,当计数器从00,01,02,……,59计数时,反馈门不起作用,只有当第60个秒脉冲到来时,反馈信号随即将计数电路清零,实现模为60的循环计数。
图(10)校时电路
3.2功能扩展电路的设计
3.2.1整点报时电路的设计
设计要求:要求电路具有整点报时功能,当时钟电路为59分时,从50秒开始,每隔一秒钟响一次直到进位变为00分。
设计思路:可利用一与门将时钟分59为“1”的输出端与秒十位为5时为“1”的输出端与时钟脉冲信号与在一起,当条件符合时,电路即可以报时,报时信号可以是声音报时和光报时两种。
1)石英晶体振荡器
如图(2)所示,振荡器可由以下石英晶体振荡器构成,石英晶体振荡器震荡频率有石英晶体的频率决定,石英晶体振荡器具有振荡频率精确度高的特点,但由于其起振是由外界干扰产生的,仿真为理想条件,故仿真中无输出波形,得到波形后,还需再分频已得到所需频率波形。
图(2)石英晶体振荡器图(3)555振荡器
2)555振荡器
如图(3)所示,振荡器由555与R、C组成的多些振荡器,由555振荡器振荡频率公式 可得将C2、R9、R10、RP取适当的值即可得到频率为1HZ的秒脉冲。且RP具有微调电路工作频率的功能,本电路可产生比较精确的脉冲。
本次设计采用555振荡器构成秒脉冲发生器。
3.1.2时分秒计数器的设计
图(11)整点报时电路
工作原理:在秒脉冲作用下,电路开始正常计数。当计数达到59分50秒时,在秒脉冲作用下,与非门输入全为“1”此时与非门输出“0”,经反相器后输出为“1”,高电平驱动扬声器发出声音,同时发光二极管开始发光,发出整点报时信号。由于接入秒脉冲信号,扬声器发声和发光二极管的工作频率均为1Hz,持续10秒钟后,停止整点报时。图中所用74LS30、74LS08、74LS04管脚图分别如图(12)、图(13)、图(14)所示。
2)校时功能测试:在显示时钟时间时,按动时钟调时、时钟调分按钮开关时,时、分均可以调节,且不按动时,计数电路能正常工作,校时功能符合设计要求。
3)整点报时功能测试:电路基数时,当时钟到达59分50秒时,电路发出整点报时信号,频率为1Hz,持续10秒钟后,报时停止。整点报时功能符合设计要求。
4.2常见问题解决办法
下面将分别介绍60进制分秒计数器和24进制小时计数器。
1)60进制计数器,电路图如图(4)所示
图(4)60进制计数器
电路由两片74LS90和一个与门构成,分别为60进制计数器的十位和个位,十位为六进制,个位为十进制,两者级联构成60进制计数器。当计数器达到59时,在下一个秒脉冲作用下实现反馈清零,电路重新开始下一轮计数。下面对74LS90集成电路加以说明。
图(8)74LS48管脚图
(2)显示器SM421050N
在此电路图中所用的显示器是共阴极形式,阴极必须接地。SM421050N的管脚功能图如图(9)所示
图(9)SM421050N管脚图
3.1.4校时电路的设计
校时电路工作原理:设计要求电路校时时,应不影响原电路正常工作。当单刀双掷开关SW1拨至上端时,SR触发器输出为“0”,与非门U16:A和U16:B被截止,按钮开关1和按钮开关2产生的脉冲电平被屏蔽,此时电路能正常工作,且校时功能不起作用,此功能可用来防止因错误操作而导致时钟出错。当SW1拨至下端时,SR触发器输出为“1”与非门U16:A和U16:B打开,在无按钮开关1和按钮开关2产生的脉冲电平时,非门U16:A和U16:B输出“0”,此时电路正常工作,在按钮开关1或按钮开关2按下并松开瞬间,U16:A和U16:B输出“1”,经过异或门之后,即可产生脉冲,即实现了电路的校时功能,且不影响电路正常工作。按钮开关1和按钮开关2分别控制时校时和分校时。
内容摘要
电子产品的研发日新月异,不仅是在通信技术方面数字化取代于模拟信号,就连我们的日常生活也进于让数字化取缔。说明数字时代已经到来,而且渗透于我们生活的方方面面。
就拿我们生活的实例来说明一下“数字”给我们带来的便捷。下面就以数字钟为例简单介绍一下,数字钟我们听到这几个字,第一反应就是我们所说的数字,不错数字钟就是以数字显示取代模拟表盘的钟表,在显示上它用数字反应出此时的时间,相比模拟钟能给人一种一目了然的感觉,不仅如此它还能同时显示时、分、秒。而且能对时、分、秒准确校时,这是普通钟所不及的。与此同时数字钟还能准确定时,在你所规定的时间里准确无误的想你发出报时声音,提醒你在此时所需要去做的事。与旧式钟表相比它更适用于现代人的生活。
图(1)数字钟原理框图
该系统的工作原理是:用振荡器产生的高脉冲信号作为数字钟的秒脉冲发生器,秒脉冲接入秒计数器,秒计数器计满60后向分计数器个位进位,分计数器计满60后向小时计数器个位进位并且小时计数器按照“24翻1”的规律计数。计数器的输出经译码器送显示器。计时与实际时间出现误差时电路可以进行校时、校分。扩展电路的整点报时和闹钟功能必须在主体电路正常运行的情况下才能实现。
这学期恰好遇上学校的《专业基础》课程设计,题目是数字钟的设计。因而在所学专业的基础上做了以下课程设计。希望给大家带来方便的同时,使自己对所学专业有进一步的了解!
关键词:数字钟;校时;时间显示;定时
一、数字钟设计的基本概要
1.1数字钟设计的目的
该数字钟具有基本功能和扩展功能两部分。其中,基本功能部分的有准确计时,以数字形式显示时、分、秒的时间和校时功能。扩展功能部分则具有:仿广播电台整点报时、自动报整点时数的功能。数字钟的电路也是由主体电路和扩展电路两部分构成,在电路中,基本功能部分由主体电路实现,而扩展功能部电路实现。这两部分都有一个共同特点就是它们都要用到振荡电路提供的1Hz脉冲信号。在计时出现误差时电路还可以进行校时和校分,为了使电路简单所设计的电路不具备校秒的功能。并且要用数码管显示时、分、秒,各位均为两位显示,扩展部分要有相应的响应电路。
LT为灯测检查,用LT可检查七段显示器个字段是否能正常被点燃。
BI是灭灯输入,可以使显示灯熄灭。
RBI是灭零输入,可以按照需要将显示的零予以熄灭。BI/RBO是共用输出端,RBO称为灭零输出端,可以配合灭零输出端RBI,在多位十进制数表示时,把多余零位熄灭掉,以提高视图的清晰度。也可用共阴译码器74LS248,CD4511。
74LS90是二—五—十进制计数器,它有两个时钟输入端CPA和CPB。其中,CPA和 组成一位二进制计数器;CPB和 组成五进制计数器;若将 与 相连接,时钟脉冲从 输入,则构成了8421BCD码十进制计数器。74LS90有两个清零端R0(1)、R0(2),两个置9端R9(1)和R9(2),且均为高电平有效,本次设计即利用清零端实现六进制。74LS90的管脚图如图(5)所示,其BCD码十进制计数时序如表(1),二—五混合进制计数时序如表(2)。
三、数字钟电路的设计