数字时钟电路设计Word格式.docx

上传人:b****6 文档编号:20512251 上传时间:2023-01-23 格式:DOCX 页数:20 大小:311.39KB
下载 相关 举报
数字时钟电路设计Word格式.docx_第1页
第1页 / 共20页
数字时钟电路设计Word格式.docx_第2页
第2页 / 共20页
数字时钟电路设计Word格式.docx_第3页
第3页 / 共20页
数字时钟电路设计Word格式.docx_第4页
第4页 / 共20页
数字时钟电路设计Word格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

数字时钟电路设计Word格式.docx

《数字时钟电路设计Word格式.docx》由会员分享,可在线阅读,更多相关《数字时钟电路设计Word格式.docx(20页珍藏版)》请在冰豆网上搜索。

数字时钟电路设计Word格式.docx

STC公司生产的STC89C52RC单片机,它是一款性价比非常高的单片机,它完全兼容ATMEL公司的51单片机,除此之外它自身还有很多特点,如:

无法解密、低功耗、高速、高可靠、强抗静电、强抗干扰等。

其次STC公司的单片机内部资源比起ATMEL公司的单片机来要丰富的多,它内部有1280字节的SRAM、8-64K字节的内部程序存储器、2-8K字节的ISP引导码、除P0-P3口外还多P4口(PLCC封装)、片内自带8路8位AD(AD系列),片内自带EEPROM、片机自带看门狗、双数据指针等。

STC89C52单片机特点:

1)宽电压,不怕电源抖动,5V供电

2)宽温度范围,-40℃~85℃

3)I/O口驱动能力强

4)用串口下载程序

单片机开发板

1、

复位电路

复位电路图

在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,52芯片便循环复位。

复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。

当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。

复位是由外部的复位电路来实现的。

片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。

复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。

当时钟频率选用6MHz时,C取22μF,Rs约为200Ω,Rk约为1K。

复位操作不会对内部RAM有所影响。

2、晶振电路

晶振电路图

XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。

内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。

晶振的频率可以在1MHz-24MHz内选择。

电容取30PF左右。

系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。

AT89单片机内部有一个用于构成振荡器的高增益反相放大器。

引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。

这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。

外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。

对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。

因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22μF。

在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作

3、

电源电路

电源电源图

该电路由USB输入+5V电源,后接6脚按钮开关,LED电源指示。

4、

显示电路

显示电路图

采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。

所以采用了LED数码管作为显示。

利用单片机的P0口控制数码管的显示的数字,利用程序的动态扫描达到数码管显示数字的效果。

同时要加上8个上拉电阻,提高数码管的电压。

LED显示器中的发光二极管共有两种接法:

共阳极接法和共阴极接法。

共阳极接法是把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,这样阴极端输入低电平的段发光二极管就导通发光,而输入高电平的则不发光;

共阴极接法是把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地,这样阳极端输入高电平的段发光二极管就导通发光,而输入低电平的则不发光。

LED显示器与单片机的接口很简单,只需将单片机的一个8位并行I/O口经某种电路与LED数码管的发光二极管的引脚相连即可。

因为单片机引脚的直接驱动能力有限,所以与LED显示器接口时须采用外围驱动电路。

根据8位I/O口输出的不同数据,LED就可以显示不同的数字或字符。

LED显示器的驱动有静态锁存和动态扫描方式:

静态锁存方式也称直流驱动,是指每个数码管都用一个译码器(如4511芯片)进行译码驱动,这种方式下显示内容可保持,无需CPU进行动态刷新,可提高CPU效率,但是要求硬件资源多,接口复杂,而且功耗大,一般不用。

动态扫描方式是所有数码管共同使用一个译码驱动器,使各位数码管轮流受控显示,当扫描频率很高时,其显示效果也非常好。

这种方式功耗小,硬件资源要求少,所以应用较多。

5、单片机原理图

单片机原理图

本次的单片机开发板是学校老师自行绘制的。

以上原理图是用Protel99SE电路图绘制与仿真软件绘制而成。

开发板中主要的元器件有电容、电阻、按键、晶振、LED灯、8位数码管、蜂鸣器、温度传感器DS18B20以及一些芯片等。

主要芯片有STC89C52、DS1302、MAX232、24C04。

第2章单片机应用系统软件

STC下载软件

1、STC下载软件简介:

STC下载软件是单片机生产厂商宏晶科技为其生产的STC单片机量身设计的程序下载软件。

它将单片机程序编译软件Keil生成的后缀为hex的单片机程序通过串口线下载到单片机芯片中。

2、运行STC下载软件——STC_ISP_V3.5,出现如下界面

STC_ISP_V3.5下载界面图

3、下载步骤

1)选择单片机型号,与学习板单片机一致。

2)打开要下载的HEX文件。

3)选择串口和波特率。

波特率请选用默认值。

4)请选用默认值,特别是下次冷启动选择“与下载无关”。

5)点击下载按钮。

6)最后给目标板上电,程序下载即可完成。

4、不能下载程序的常见原因:

1)电压不足。

板子用电量大时请采用外部直流电源供电。

2)下载线(串口线)接口接触不良或计算机串口损坏。

3)单片机芯片损坏。

STEP4/步骤4选项中下次冷启动P1.0,P1.1:

选择了“等于0,0才可以下载程序”,请改为“与下载无关”。

Keil软件

1、系统概述

KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

用过汇编语言后再使用C来开发,体会更加深刻。

安装MDK组建后,可以用于ARM开发。

它提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。

另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。

运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。

如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

2、KeilC51单片机软件开发系统的整体结构

C51工具包的整体结构,uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。

开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。

然后分别由C51及C51编译器编译生成目标文件(.OBJ)。

目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。

ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。

使用独立的Keil仿真器时,注意事项

1)仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。

2)仿真器上的复位按钮只复位仿真芯片,不复位目标系统。

3)仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;

但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。

外部电路驱动

1、串口

串行接口SerialInterface是指数据一位位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信,并可以利用电话线,从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。

串行接口一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。

串行通讯的特点是数据位传送,传按位顺序进行,最少只需一根传输线即可完成;

成本低但传送速度慢。

串行通讯的距离可以从几米到几千米;

根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。

串口原理:

1)接收的过程:

先给REN置1,然后TXD置1,读RXD状态,高电平就接收1,低电平接收0;

然后拉低TXD,略微延时后TXD再置高,读RXD,高电平就接收1,低电平接收0,以此类推。

知道读完8个位。

然后RI变高。

2)发送过程:

给SBUF写进一个数,就自动发送。

发送1时RXD先变高,TXD再变高;

然后TXD变低,发送0时RXD先变低,TXD再变高;

然后TXD变低,以此类推。

上述过程都是自动完成的,不用专门编程。

2、定时器

AT89S52单片机内有3个16-bit 

定时器/计数器T0、T1和T2,它们的工作方式、定时时间、量程、启动方式等均可以通过程序来设置和改变。

定时器由两特殊功能寄存器TCON和TMOD及T0、T1组成,其中TMOD为模式控制寄存器,主要用来设置定时器/计数器的操作模式;

TCON为控制寄存器,主要用来控制定时器的启动与停止。

控制寄存器—TCON

TCON的作用是用于控制定时器的启、停及定时器的溢出标志和外部中断

触发方式等。

TFi(TF0和TF1)计数器溢出标志。

当定时器/计数器溢出时,该位置1。

使用查询方式,此位作状态位供查询,但在查询后应用软件方式及时清零;

使用中断方式时,此位作中断标志,在转向中断服务程序时由硬件自动清零。

TRi(TR0和TR1)定时器运行控制位TR0=0 

停止定时器/计数器工作;

TR1=1 

启动定时器/计数器工作;

由软件使其置1或清零.IE(IE0和IE1)外中断请求标志位。

当CPU采样到INT0(或INT1)出现中断请求时,本位由硬件置1;

中断响应后,由硬件自动清0。

IT(IT)和IT1)外中断请求方式控制位IT=0脉冲方式(后沿原跳有效)IT=1电平方式(低电平有效)由软件使其置1或清零。

工作方式控制寄存器—TMOD

TMOD是一个专用寄存器,用于控制两个定时器/计数器的工作方式.TMOD寄存器不能位寻址,因此只能用字节传送指令设置其内容。

3、中断

AT89S52有8个中断源。

中断系统由4个与中断有关的特殊功能积存器(TCON、SCON的相关位作中断源的标志位),中断允许控制寄存器IE和中断顺序查询逻辑等组成。

外部输入中断源(int0(p3.2))和(int1(p3.1)),3个内部中断源T0和T1的溢出中断源及串行口发送/接收中断源。

int0和int1:

外部中断0和外部中断1,其中断求信号分别由P3.2,P3.3引脚输入。

请求信号的有效电平由IT0和IT1设置,一旦输入信号有效,则将TCON中的IE或IE1标志位置1,可向CPU申请中断。

TF0和TF1:

定时器0和定时器1的溢出中断。

当T0或T1计数器加1计数产生溢出时,则将TCON中的TF0或TF1置位,向CPU申请中断。

RI和TI:

串行口接收发送中断。

中断处理过程:

中断是单片机实时地处理内部或外部事件的一种内部机制。

当某种内部或外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理,中断处理完毕后,又返回被中断的程序处,继续执行下去。

中断处理过程可分为三个阶段:

中断响应、中断处理和中断返回。

中断响应条件:

有中断源发出中断请求。

中断总允许位EA=1,即CPU开中断。

申请中断的中断源的中断允许位为1,即没有被屏蔽。

中断处理:

CPU响应中断结束后转到中断服务程序的入口。

从中断服务程序的第一条指令开始到返回指令为止,这个过程称为中断处理或中断服务。

不同的中断源服务的内容及要求各不相同,其处理过程也有所区别。

一般情况下,中断处理包括两部分内容:

一是保护现场,二是为中断源服务。

中断返回:

中断处理程序的最后一条指令是中断返回指令RETI。

它的功能是将断点弹出送回PC中,使程序能返回到原来被中断的程序继续执行。

第3章数字时钟电路设计

DS1302

DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片

DS1302时钟芯片包括实时时钟/日历和31字节的静态RAM。

它经过一个简单的串行接口与微处理器通信。

实时时钟/日历提供秒、分、时、日、周、月和年等信息。

对于小于31天的月和月末的日期自动进行调整,包括闰年校正的功能。

时钟的运行可以采用24h或带AM(上午)/PM(下午)的12h格式。

采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多字节的时钟信号或RAM数据。

DS1302引脚图

DS1302有主电源和后备电源双电源引脚:

Vcc1在单电源与电池供电的系统中提供低电源,并提供低功率的电池备份;

Vcc2在双电源系统中提供主电源,在这种运用方式中,Vcc1连接到备份电源,以便在没有主电源的情况下能保存时间信息以及数据。

DS1302由较大者供电。

当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电;

当Vcc2小于Vcc1时,DS1302由Vcc1供电。

DS1302在任何数据传送时必须先初始化,把RST脚置为高电平,然后把8位地址和命令字装入移位寄存器,数据在SCLK的上升沿被输入。

无论是读周期还是写周期,开始8位指定40个寄存器中哪个被访问到。

在开始8个时钟周期,把命令装入移位寄存器之后,另外的时钟周期在读操作时输出数据,在写操作时写入数据。

时钟脉冲在单字节方式下为8加8,在多字节方式下为8加字节数,最大可达248个字节数。

如果在传送过程中置RST脚为低电平,则会中止本次数据传送,并且I/O引脚变为高阻态。

上电运行时,在Vcc≥2.5V之前,RST脚必须保持低电平.只有在SCLK为低电平时,才能将RST置为高电平。

设计原理

采用24小时标准计时制,显示时、分、秒;

8位LED数码管从左到右分别显示时、分、秒(各占用2位),开始计时时为00-00-00,到23-59-59后变成00-00-00。

计时过程具有报时功能,当时间到达整点前5妙进行蜂鸣报时。

有校时功能,可以分别对时及时进行单独校时,使其校正到标准时间;

键盘上选定2个键分别作为小时、分的调校键。

每按一次键,对应的显示值便加1。

分、秒、加到59后变为00;

小时加到23后再按键即变为00再调校时均摊不向上一单位进位(例如分加到59后变为00;

但小时不发生改变)。

实现方法

1.通过STC89C52的P0口控制数码管的段选,决定显示的数值;

2.通过STC89C52的P1口控制数码管的位选,决定显示哪一位数码管;

3.通过STC89C52的P3口与独立键盘连接执行相应功能;

4.led发光二极管在闹钟定的时间到达时点亮,因为P0口没有上拉电阻,所以与排阻相连。

第4章实习总结

实习体会

程序是整个系统的核心,没有程序,硬件就无法运行,所以程序的编写就是我们学习的重点。

学好了每一个软件的使用方法,自己就可以在软件里做自己想实现的工能。

实习是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.

要做好一个课程设计,就必须做到:

在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;

要有一个清晰的思路和一个完整的软件流程图;

在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;

要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;

在设计课程过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。

回顾起此次单片机实习,从理论到实践,在近三个星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说对单片机汇编语言掌握得不好……通过这次实习之后,我对单片机的了解更深了。

单片机作为我们的主要专业课之一,虽然在开学初我对这门课并没有什么兴趣,觉得那些程序枯燥乏味,但在这次实习后我发现自己在一点一滴的努力中对单片机的兴趣也在逐渐增加。

我觉得做单片机实习是十分有意义的,而且是十分必要的。

在已度过的大学时间里,我们大多数接触的是专业课。

我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?

如何把我们所学的专业基础课理论知识运用到实践中去呢?

我想做类似的课程设计就为我们提供了良好的实践平台。

要有一个清晰的思路和一个完整的的软件流程图;

这次最有意义的的收获是让我更深的了解了知识,知道自己未来将面临的是怎样的工作,现在必须努力地学习专业知识,为自己的未来创造一片蓝天!

设计硬件体会

硬件设计过程中常出现硬件电路短路、断路、虚焊等情况产生,所以应当尽量避免此类情况的发生。

注意电源系统检查,以防止电源短路和极性错误,并重点检查系统总线是否存在相互之间短路或与其它信号线路短路。

必要时利用数字万用表的短路测试功能,可以缩短排错时间。

在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。

加电后检查各插件上引脚的电位,一般先检查VCC与GND之间电位,若在5V~4.8V之间属正常。

若有高压,联机仿真器调试时,将会损坏仿真器等,有时会使应用系统中的集成块发热损坏。

参考文献

[1]房小翠,王金凤.单片机使用系统设计技术[M].北京:

国防工业出版社,1999.

[2]何立民.单片机应用技术选编8[M].北京航空航天大学出版社,2000

[3]杜春雷.ARM体系结构与编程[M].清华大学出版社,2005:

21-43.

[4]周立功.ARM嵌入式系统软件开发实例

(一)[M].北京航空航天大学出版社,2004:

99-145.

[5]幸友顺.单片机应用系统设计与实现[M].福建科学技术出版社,2005

[6]张毅刚.单片机原理及应用[M].高等教育出版社,2010

[7]徐玮.单片机快速入门[M].北京航空航天大学出版社,2010

附录1实物图

附录2系统主要程序

#include<

reg52.h>

intrins.h>

#defineucharunsignedchar

#defineuintunsignedint

uchardatadis_digit;

ucharkey_s,key_v;

ucharcodedis_code[11]={0xc0,0xf9,0xa4,0xb0,//共阳极数码管编码代码

0x99,0x92,0x82,0xf8,0x80,0x90,0xff};

uchardatadis_buf[8];

uchardatadis_index;

ucharhour,min,sec;

ucharsec100,b;

sbitK1=P3^2;

sbitK2=P3^3;

sbitbeep=P2^1;

bitscan_key();

voidproc_key();

voidinc_sec();

voidinc_min();

voidinc_hour();

voiddelayms(ucharms);

voidmain(void)

{

P0=0xff;

P1=0xff;

TMOD=0x11;

//定时器0和1,工作模式1

TH1=(65536-50000)%256;

TL1=(65536-50000)/256;

TH0=0xFC;

TL0=0x17;

hour=21;

min=13;

sec=14;

sec100=0;

dis_buf[0]=dis_code[hour/10];

//时十位

dis_buf[1]=dis_code[hour%10];

//时个位

dis_buf[3]=dis_code[min/10];

//分十位

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机硬件及网络

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1