173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

单片机作业电子设计

htxw 2023-03-14 资讯中心 32 ℃

单片机实现电子钟设计

我可以给你一个模拟的,但是原理差不多,就是要用个单片机吗,自己要多动脑筋,肯定可以做出来的

下面是具体的设计:

数字时钟的设计与制作

摘要:本系统是采用555构成的多协振荡器、74LS90芯片组合做成的数子时钟系统。其中用555构成的多协振荡器产生震荡频率,再用74LS 90芯片组合成分频电路对震荡频率进行分频,然后对选用74LS92和74LS90分别作为时计数器和分、秒计数器,再加一个校时电路。能让该数子时钟准确计时,以数字形式显示时、分、秒的时间,小时的计时为“24翻1”分,秒的计时为60进位 ,和时间校正功能。

关键字: 震荡器 分频 计数器 74LS90 校时

一、数字时钟的总体设计

1 数字时钟的原理方框图如图1所示:

图1数字时钟的原理方框图

该电路系统由秒信号发生器、“时”、“分”、“秒”计数器、译码器及显示器等组成。秒信号产生器是整个系统是时基信号,它直接决定计数系统的精度。将标准秒信号送入“秒计数器”,“秒计数器”采用六十进制计数器,每累积60秒发出一个分脉冲信号,该信号将作为“分计数器”的时钟脉冲,“分计数器”也采用60进制计数器,每累积60分钟,发出一个“时脉冲”信号,该信号将被送入“时计数器”。“时计数器”采用24进制计数器,可实现对一天24小时的计数。译码显示电路将“时”、“分”、“秒”计数器的输出状态经7段译码显示器译码,通过7段显示器显示出来。

二、模块的设计与比较

1. 振荡电路及分频电路

方案一:

(1)采用石英晶体振荡器

石英晶体振荡器的特点是振荡频率准确,电路结构简单,频率易高调整。它还具有压电效应,在晶体某一方向加一电场,则在与此垂直的方向产生机械振动和电场互为因果,这种循环过程一直持续到晶体的机械强度限制时,才达到最后的稳定,这种压电谐振的频率就是晶体振荡的固有频率。

图2 石音晶体振荡电路

图2所示电路通过CMOS非门构成的输出为方波的数字式晶体振荡电路,这个电路中,CMOS非门U1与晶体、电容和电阻构成晶体振荡器电路,U2实现整形功能,将振荡器输出的近似于正弦波的波形转换为较理想的方波。输出反馈电阻R1为非门提供偏置,使电路工作于放大区域,即非门的功能近似于一

个高增益的反相放大器。电容C1、C2与晶体构成一个谐振型网络,完成对振荡频率的控制功能,同时提供了一个180度相移,从而和非门构成一个正反馈网络,实现了振荡器的功能。由于晶体具有较高的频率稳定性及准确性,从而保证了输出频率的稳定和准确。晶体X1的频率选为32768HZ。该元件专为数字钟电路而设计,其频率较低,有利于减少分频器级数。C1、C2均选择为30pF。当要求频率准确度和稳定度更高时,还可接入校正电容并采取温度补偿措施。由于CMOS电路的输入阻抗极高,因此反馈电阻R1可选为10MΩ。较高的反馈电阻有利于提高振荡频率的稳定性。

(2) 用CD4060计数作分频器

数字钟的晶体振荡器输出频率较高,为了得到1Hz的秒信号输入,需要对振荡器的输出信号进行分频。本实验中采用CD4060来构成分频电路。CD4060在数字集成电路中可实现的分频次数最高,而且CD4060还包含振荡电路所需的非门,使用更为方便。CD4060计数为14级2进制计数器,可以将32768HZ的信号分频为2HZ,其次CD4060的时钟输入端两个串接的非门,因此可以直接实现振荡和分频的功能。

方案二:

(1)采用555构成的多偕振荡电路

振荡器电路选用555构成的多偕振荡器,设振荡频率f=1000HZ,其中的电位器可以微调振荡器的输出频率。

图5 多偕振荡电路

(2)用74LS90作分频器

通常实现分频器的电路是计数器电路,一般采用多级10进制计数器来实现。分频器的功能有两个:一是产生标准秒脉冲信号;二是提供功能扩展电路所需的信号。选用中规模集成电路74LS90可以完成以上功能。如图所示,将3片74LS90级联,每片为1/10分频,三片级联正好获得1HZ的标准秒脉冲。

图 6 分频电路

比较: 秒信号发生器是数字电子钟的核心部分,它的精度和稳度决定了数字钟的质量,但是我们做实验考虑到用石音晶体振荡电路时分频电路用的元件较多 且价格较贵,而用555构成的电路元件容易得,电路简单且易于实现,故选方案二

2. 秒、分、时计数器设计

秒脉冲信号经过6级计数器,分别得到“秒”个位,十位、“分”个位、十位、“时”个位,十位的计时,秒分计数器为60进制,小时为24进制。

(1)60进制计数电路:秒计数器电路与分计数器电路都是60进制,它由一级10进制计数器和一级6进制计数器连接构成,如图7、8所示,采用两片中规模集成电路7490串联接起来构成的秒、分计数器。

IC2是十进制计数器,作为十进制的进位信号,7490计数器是十进制异步计数器,用反馈归零方法实现十进制计数。IC1和非门组成六进制计数。7490是在一秒时钟或进位信号的下降沿翻转计数, IC1的QA和QC相与0101的下降沿作为“分”或者“时”计数器的输入信号。IC1的QB和QC高电平1分别送到计数器的清零RO1、RO2,7490内部的RO1 和RO2与非后清零而使计数器归零,完成六进制计数。由此可见串联实现了六进制计数。

图7 秒计数电路

图8 分计数电路

(2)24进制计数电路:小时计数电路是由和组成的24进制计数电路,采用两片中规模集成电路7490串联接起来构成。如图9所示:

当“时”个位IC4计数输入端CKA来到第10个触发信号时,IC4计数器复零,进位端QD向IC3“时”十位计数器输出进位信号,当第24个“时”脉冲到达时,IC4计数器的状态为0100,IC3计数器的状态为0100,此时“时”个位计数器的QC和“时”十位计数器的QB输出为1。把它们分别送到IC4和IC3计数器的清零端RO1 和RO2通过7490内部的RO1 和RO2与非后清零,计数器复位,完成24进制计数。

图9 时计数电路

3. 校时电路

校时电路实现对时分的校准。在电路中设有正常计时和校时位置。分、时的校准开关分别通过触发器控制。通常,校正时间的方法是:首先截断正常的计数通路,然后再进行人工出触发计数或将频率较高的方波信号加到需要校正的计数单元的输入端,校正好后,再转入正常计时状态即可。根据要求,数字钟应具有分校正和时校正功能,因此,应截断分个位和时个位的直接计数通路,并采用正常计时信号与校正信号可以随时切换的电路接入其中。

图8所示为本实验所用的完整的校时电路图。

图10 校时电路

4. 显示器

本系统用七段发光二极管来显示译码器输出的数字,显示器有两种:共阳极或共阴极显示器。74LS48译码器对应的是显示器是共阴显示器。

三、调试要点

我觉得假设在实际的实验箱上组装电子钟时,注意器件管脚的连接一定要准确。“悬空端“、“清0端”、“置1端”要正确处理,调试步骤和方法如下:。

(1)、将频率为1000HZ的信号送入分频器,并用示波器检查各级分频器的输出频率是否符合设计要求。

(3)、将1秒信号分别送入“时”、“分”、“秒”计数器,检查各级计数器的工作情况。

(4)、观察校时电路的功能是否满足校时要求。

(5)、当分频器和计数器调试正常后,观察电子钟是否准确正常地工作。

四、供参考的元器件

(1)、七段显示器(共阴极)6片 (2)、74LS90 9片 (3)、555多谐振荡器 1片 (4)、74LS00 8片 (5)、74LS04 4片

(6)、电阻、电容、导线等。

五、收获体会

该电路的设计让我对数字钟的设计有了一定的了解。我知道了如何设计出1HZ的信号,也对时分秒的设计有了一定的了解。并且在实际电路一般步骤为由数字钟系统组成框图按照信号的流向分级安装,逐级级联,这里的每一级是指组成数字钟的各功能电路。级联时如果出现时序配合不同步,或尖峰脉冲干扰,引起逻辑混乱,可以增加多级逻辑门来延时。经过联调并纠正设计方案中的错误和不足之处后,再测试电路的逻辑功能是否满足设计要求。最后画出满足设计要求的总体逻辑电路图。

参考文献:

1.谢自美,电子线路设计*实验*测试.武汉:华中科技大学出版社,2007

2.康光华,电子技术基础(第五版)。北京:高等教育出版社,2006

3.蒋焕文,孙续。电子测量。北京:计量出版社,1998

4.P.F.格拉夫。电子电路百科全书。张殿等译。北京:科学出版社,1999

5.王兴亮主编现代音响和调音技术。西安电子科技大学出版,2006

什么是单片机电子产品设计与制作

就是基于单片机,也就是以单片微型计算机为处理和控制核心,加上外围电路,在其上运行专用的程序而设计出特定场合具有特殊目的的电子类产品。

打个比方:电子血压计,智能储物柜,指纹考勤机,门控电子密码锁,高档一些的,手机,电子词典等等

求高手给我一些电子设计的题目,最好是使用单片机的不要太难

基于导电聚合物的太阳能电池的研究

基于STM的可调数显稳压电源

基于小波变换理论的心音信号的特征提取研究

纳米孔隙光学薄膜

图像去噪技术的研究

太赫兹光波检测的数值模拟研究

基于matlab心音信号消噪研究

基于银/氧化锌薄膜的太阳能电池的研究

自动调光LED台灯研究

基于FPGA的DDS的设计

基于matlab心音信号分析

类光子晶体结构介质的光学特性研究

基于TCP/IP协议的远程监控的研究与实现

图像重建技术的研究及应用

太阳能家用充电电源的研究

四氧化三铁纳米粒子的制备及其应用

基于AVR单片机的太阳能路灯控制器

基于FPGA的数据采集系统设计

基于mega16的心音听诊器

用于瓦斯检测的光电子电路研究

基于模糊控制的温室温度测控系统的研究与设计

基于CAN总线的远程温度监测系统的设计

新型氧化锌薄膜的制备及其在太阳能电池上的应用研究

数字式三用表的研究

基于FPGA的数字频率计设计

基于单片机的直流电机调速

基于AT89C51的跑步机控制器设计

基于PLC的煤矿通风机在线监控系统设计

基于dm365的嵌入式linux视频采集与传输系统的设计

基于MAX038的函数发生器设计

超声波发生器设计

基于单片机的温湿度测量显示装置设计

脂肪肝B超图像分析与数据处理

基于单片机的多路温度监控系统设计

无线射频卡读写控制及管理系统设计

输液智能报警系统(节点设计)

射频识别技术(RFID)应用研究

人体生理信号门控电路设计

基于组态软件的监控系统设计

基于PIC单片机的出租车计价系统设计

输液智能报警系统(组网设计)

经皮给药探头设计

温度控制器设计

基于峰谷电价的充电控制器设计

精密压力传感信号采集电路设计

基于CPLD的LED条屏设计

多部位压力测量控制电路设计

煤岩电磁辐射信号特性分析及应用

数字视频监控网络客户端设计

基于单片机的点阵LED显示系统的设计

桑拿房温控器设计

红外遥控收/发电路设计

基于Web技术的精品课程网站设计

基于单片机的数控直流稳压源的设计

电动车声光报警

心电脉搏测量仪设计

雷管高度检测系统方案设计

基于MATLAB的电磁辐射信号去噪方法研究

单片机电子时钟设计

#include avr/io.h

#include avr/interrupt.h

#include util/delay.h#define INT8U unsigned char

#define INT16U unsigned int

#define k1() ((PIND (1PD0))==0x00)

#define k2() ((PIND (1PD1))==0x00)

#define k3() ((PIND (1PD2))==0x00)

#define k4() ((PIND (1PD3))==0x00)

#define k5() ((PIND (1PD4))==0x00)

#define k6() ((PIND (1PD5))==0x00)

#define k7() ((PIND (1PD6))==0x00)

#define k8() ((PIND (1PD7))==0x00)const INT8U seg[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00};

INT8U seg11[]={0,0,0x40,0,0,0x40,0,0};

INT8U ja;

INT8U key=0xff;

INT8U h,m,s,m1,d;

INT16U y; void hour1()

{

if (++h23) {h=0;day();}

seg11[0]=seg[h/10];

seg11[1]=seg[h%10];

} void minute1()

{

if (++m59)

{m=0;br hour1();br }

seg11[3]=seg[m/10];

seg11[4]=seg[m%10];

} void second1() {

if (++s59)

{ s=0;

minute1();

}

seg11[6]=seg[s/10];

seg11[7]=seg[s%10];

} const INT8U Days1[]={0,31,28,31,30,31,30,31,31,30,31,30,31};

const INT8U Days2[]={0,31,29,31,30,31,30,31,31,30,31,30,31};

void year()

{if (++y9999) y=0;br br seg11[0]=seg[y/1000];br seg11[1]=seg[y%1000/100];br seg11[2]=seg[y%100/10];br seg11[3]=seg[y%10];br } void month1()

{

if (++m112)

{m1=0;br year();br }

seg11[4]=seg[m1/10];

seg11[5]=seg[m1%10];

} void day()

{ INT8U DAY;

DAY=(( y%4==0 y%100!=0 )||( y%400==0 ) ) ? Days1[m1]:Days2[m1];//判断闰年

if(++dDAY)

{ d=0;

month1();

}

seg11[6]=seg[d/10];

seg11[7]=seg[d%10];

} //时间函数

void time()

{

seg11[0]=seg[h/10];

seg11[1]=seg[h%10];

seg11[3]=seg[m/10];

seg11[4]=seg[m%10];

seg11[6]=seg[s/10];

seg11[7]=seg[s%10];

PORTA=0x00;

PORTA=seg11[ja]; PORTB=~(1ja);

ja=(ja+1)0x07;

_delay_ms(5); }

//日期

void date()

{ seg11[0]=seg[y/1000];

seg11[1]=seg[y%1000/100];

seg11[2]=seg[y%100/10];

seg11[3]=seg[y%10];

seg11[4]=seg[m1/10];

seg11[5]=seg[m1%10];

seg11[6]=seg[d/10];

seg11[7]=seg[d%10];

//seg11[2]=seg11[5]=0x00;

PORTA=0x00;

PORTA=seg11[ja];

PORTB=~(1ja);

ja=(ja+1)0x07;

_delay_ms(3);

}

int main()

{ INT8U ja=0;

DDRA=0xff; PORTA=0xff;

DDRB=0xff; PORTB=0xff;

DDRD=0x00; PORTD=0xff;PIND=0x00;

MCUCR=0X0A;//MCU 控制寄存器- MCUCR

GICR=0XC0; //通用中断控制寄存器- GICR ASSR=0x08;

TCCR2=0x04;

TCNT2=0;

TIMSK=_BV(TOIE2)|_BV(TOIE0); d=26;y=2000;m1=2;

h=m=s=12;

sei();

while(1)

{ time();

if(k1())

/{ while(k1()); hour1(); }

if(k8())

{ while(k8());

while(2)//日期循环

{

date();

if(k8())

{while(k8());break;} }

}

}}

ISR(TIMER2_OVF_vect) {

if( seg11[2]==0x40)

{

seg11[2]=seg11[5]=0x00;

}

else

{ seg11[2]=seg11[5]=0x40;

second1();

}

}

单片机大作业:电子钟设计

用一个晶振来当基本的参考量,然后用单片机的IO口来控制LED的亮还是不亮就ok啊

这个很简单的,你做做,很有意思的,我们当年用面包板搭过此种电路

单片机作业电子设计的介绍到此就结束了,感谢您耐心阅读,谢谢。

本文标签:单片机作业电子设计

<