数字电子钟报告.docx

上传人:b****8 文档编号:10353851 上传时间:2023-02-10 格式:DOCX 页数:23 大小:173.07KB
下载 相关 举报
数字电子钟报告.docx_第1页
第1页 / 共23页
数字电子钟报告.docx_第2页
第2页 / 共23页
数字电子钟报告.docx_第3页
第3页 / 共23页
数字电子钟报告.docx_第4页
第4页 / 共23页
数字电子钟报告.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

数字电子钟报告.docx

《数字电子钟报告.docx》由会员分享,可在线阅读,更多相关《数字电子钟报告.docx(23页珍藏版)》请在冰豆网上搜索。

数字电子钟报告.docx

数字电子钟报告

苏州市职业大学

课程实训说明书

名称单片机原理及应用实训

基于单片机的电子时钟设计

2015年3月2日至2015年3月6日共一周

 

学院(部)电子信息工程学院

班级13应用电子三班

姓名王锐

学号137301328

 

学院(部)负责人张欣

系主任陈伟元

指导教师金小华

目录

绪论1

第1部分单片机选型3

1.1单片机型号选择3

1.2AT89C51简介3

1.2.1主要特性3

1.2.2管脚说明3

第2部分电子时钟设计方案5

2.1电子时钟的设计背景5

2.2电子时钟的基本特点5

2.3电子时钟的原理5

2.4电子时钟方案6

2.5数码管显示方案6

第3部分电子时钟硬件设计7

3.1电子时钟设计原理图及分析7

3.1.1基于protues仿真软件的原理图7

3.1.2基本原理7

3.2电路模块8

3.2.1单片机的晶振电路8

3.2.2按键模块9

3.2.3单片机的复位电路9

3.2.4时间显示模块10

第4部分电子时钟软件设计11

4.1软件设计流程图11

4.2编写程序11

4.3系统仿真与实验测试12

4.3.1系统仿真12

4.3.2实验测试12

4.3.3测试结果13

第5部分设计总结15

附录1元器件明细表16

附录2电路总图17

附录3程序清单18

参考文献22

绪论

该课程设计为数字电子钟的设计。

以AT89C51为核心,配合8位数码管和按键为用户提供长期、连续、可靠、稳定的工作环境。

该数字电子钟有时分秒显示以及时间调整的功能。

系统软件设计包括单片机计算机两部分的编程。

计算机软件编程主要实现参数设置、串行口数据接收、指令发送以及数据的显示和存储。

单片机软件编程主要实现键盘、数码管等各模块的功能,采用汇编语言编程。

 

关键词:

数字电子钟、单片机、数码管

 

1、单片机简介

单片机是单片微型计算机(SingleChipMicrocomputer)的简称,是指将中央处理器(CPU)、数据存储器(RAM)、程序存储器(RAM、EPROM、EEPROM或Flash)、并行I/O、串行I/O、定时/计数器、中断控制、系统时钟及系统总线等单元集成在一块半导体芯片上,构成一个完整的计算机系统。

2、单片机的应用

单片机的应用领域主要有以下5个方面。

1.智能化仪器仪表

如智能电度表、智能流量计等。

2.实时工业控制

如数控机床、汽车安全技术检测系统、工业机器人、过程控制等。

3.网络与通信

如无线遥控系统

4.家用电器

如全自动洗衣机、自动控温冰箱、空调机等。

5.计算机智能终端

如计算机键盘、打印机等。

3、Protues简介

PROTEUSISIS公司开发的电路分析与实物仿真集成开发环境。

它运行于Windows操作系统上,基于PROTEUS的单片机虚拟开发环境有效地将理论与实验联系起来,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件从1989年出现到现在已经有十多年的历史,在全球应用。

4、Keil简介

KeiluVision4是一个优秀的软件集成开发环境,它支持众多不一样公司的MCS-51架构的芯片。

uVision4IDE基于Windows的开发平台,包含一个高效的编译器、一个项目管理器和一个MAKE工具。

利用本工具来编译C源代码,汇编源程序,连接和重定位目标文件和库文件,创建HEX文件调试目标程序。

第1部分单片机选型

1.1单片机型号选择

采用AT89C51芯片,其为低功耗、高性能CMOS8位微控制器,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,AT89C51在众多嵌入式控制应用系统中得到广泛应用。

1.2AT89C51简介

1.2.1主要特性

与MCS-51兼容;4K字节可编程FLASH存储器;寿命:

1000写/擦循环;数据保留时间:

10年;全静态工作:

0Hz-24MHz;三级程序存储器锁定;128×8位内部RAM;32可编程I/O线;两个16位定时器/计数器;5个中断源;可编程串行通道;低功耗的闲置和掉电模式;片内振荡器和时钟电路。

  

1.2.2管脚说明

图1-1AT89C51示意图

VCC:

供电电压。

GND:

接地。

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P0口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P3.2

(外部中断0)

P3.3

(外部中断1)

P3.4T0(记时器0外部输入)

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

第2部分电子时钟设计方案

2.1电子时钟的设计背景

1957年,Ventura发明了世界上第一个电子表,从而奠定了电子时钟的基础,电子时钟开始迅速发展起来。

现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。

从而达到计时的功能,是人民日常生活不可缺少的工具。

数字式电子钟用软件实现计时时,用8位七段数码管代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。

在这里我们将已学过的单片机的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。

2.2电子时钟的基本特点

本设计具有时、分、秒显示的功能,通电后,数码管显示00:

00:

00,并开始计时。

与P2.0接口连接的按键用于调节总控,按下按键后,计时停止,可进行对时、分、秒的调节,对应的P3.2、P3.3、P3.4分别调节时、分、秒,按一下对应的按键,对应的时、分、秒就加1,调节完成后再按调节总控按键开始计时。

2.3电子时钟原理

整个系统工作时,秒信号产生由定时器产生50ms定时,定时中断20次实现标准秒信号,每累计60s,分加1,每累计60min,时加1,采用24进制,可实现对一天即24小时的累计。

 

2.4电子时钟方案

在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。

利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节加1;若分值达到60则清零分字节,并将时字节值加1;若时值达到24,则将时字节清零。

该方案具有硬件电路简单的特点,但由于每次执行程序时定时器都要重新赋初值,所以该时钟精度不高,而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。

但由于硬件设备原因只能选用次方案。

2.5数码管显示方案

系统需要8位LED数码管,显示电路由于位数较多,若采用静态显示需要64个I/O口,但采用动态显示仅需要16个I/O口。

所以本任务应采用动态显示接口电路,其接口电路是把所有LED显示器的8个笔画段a~h同名端连在一起,而每一个LED显示器的公共极COM则各自独立地受I/O线控制,一位一位地轮流点亮各位显示器,对每一位LED显示器而言,每隔一段时间点亮一次。

显示器的亮度跟导通的电流有关,也和点亮的时间与间隔的比例有关。

因此,在数码管位数较多的场合,采用动态显示可使硬件成本降低,功耗减少,适合长时间显示,因而得到广泛的应用。

 

第3部分电子时钟硬件设计

3.1电子时钟设计原理图及其分析

3.1.1基于protues仿真软件的原理图

图3-1电子时钟原理图

3.1.2基本原理

实训使用AT89C51控制,其中使用P0口做输出,P1口做控制信号,使用外部中断0作调节秒,外部中断1作调节分钟,定时器T0在定时模式作调节小时,定时器T1在计数模式用于计数,而P2.0做总控开关的入口。

一般电子钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。

它的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能和报时功能。

因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路、报时电路和振荡器组成。

主电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路组成。

秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。

将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。

“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。

“时计数器”采用24进制计时器,可实现对一天24小时的累计。

译码显示电路将“时”、“分”、“秒”计数器的输出状态用七段显示译码器译码,通过七段显示器显示出来。

整点报时电路时根据计时系统的输出状态产生一脉冲信号,然后去触发一音频发生器实现报时。

校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整。

3.2电路模块

本设计电路,硬件部分共由四模块组成:

按键模块、复位电路模块、晶振电路模块、时间显示模块。

晶振电路模块负责给单片机提供时钟周期。

复位单路模块负责上电后自动复位,或按键后强制复位。

上电后,由单片机内部定时器计时,同时通过动态显示函数自动将时分秒显示到数码管上。

与此同时,按键扫描函数,一直扫描按键引脚状态,一旦扫描到按键被按下,即进入相应的功能函数。

3.2.1单片机的晶振电路

XTAL1和XTAL2分别为反相放大器的输入和输出。

该反向放大器可以配置为片内振荡器。

石晶振荡和陶瓷振荡均可采用,如采用外部时钟源驱动器件XTAL2应悬空。

内部方式时,时钟信号要通过一个二分频触发器。

AT89C51单片机内部有一个用于构成振荡器的高增益反相放大器,因为引脚XTAL1和XTAL2分别为反相放大器的输入和输出端。

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

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

晶振电路如图3-2所示。

图3-2晶振电路图

3.2.2按键模块

本设计的按键模块采用3个按键作为电子时钟的控制输入,通过按键来实现时钟的时间设置、定时、秒表功能。

电路中将三个按键的一端接公共地,LED数码管,P3.4为调时位选择按键,P3.3为调分位选择按键,P3.2调秒位选择按键。

按键模块如图3-3所示。

图3-3按键模块图

3.2.3单片机的复位电路

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

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

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

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

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

复位电路如图3-4所示。

图3-4单片机复位电路

3.2.4时间显示模块

本实验采用8位LED软件译码动态显示程序。

LED数码管分共阳极与共阴极两种,其工作特点是,当笔段电极接低电平,公共阳极接高电平时,相应笔段可以发光。

共阴极LED数码管则与之相反,它是将发光二极管的阴极(负极)短接后作为反映出半导体材料的特性。

8位LED数码管如图3-5所示。

图3-58位LED数码管

第4部分电子时钟软件设计

4.1软件设计流程图

在主程序的开始定义了一组固定单元用来存储计数的分、秒、时的存储单元。

在主程序中,对不同的按键进行扫描,实现秒表,时间调整。

系统流程图如下:

图4-1系统主程序流程图图4-2系统子程序流程图

 

4.2程序编写(见附录)

4.3系统仿真与测试

4.3.1系统仿真

运用proteus软件进行仿真现在proteus软件中建立一个新的文件,再根据自己的要求选择所需的器件,把器件进行适当的排位后进行连接,连接后运行软件进行仿真。

4.3.2实验测试

电子时钟主要的设计要求是能够实现时钟的一般功能,以及包括时间的调整功能,这个基于单片机的电子时钟基本上实现了上述功能,能够通过时间调整电路对时间进行调整以及复位。

图4-3为04:

10:

08的仿真图:

图4-304:

10:

08的仿真图

 

4.3.3测试结果

测试结果:

图4-4测试结果

误差计算:

表4-1误差计算

测试时间

00:

01:

00

00:

01:

00

00:

01:

00

00:

01:

00

测试结果

00:

01:

00

00:

01:

01

00:

00:

59

00:

00:

59

误差

0s

1s

1s

1s

误差分析:

本次设计的单片机系统中,其误差主要包括晶体频率误差、定时器溢出误差、延迟误差。

晶体频率产生震荡,容易产生走时误差;定时器溢出的时间误差,本应这一秒溢出,但却在下一秒溢出,造成走时误差;延迟时间过长或过短都会造成与基准时间产生偏差,造成走时误差。

此外,两处计时开始的时间不同也会造成误差。

校准调试:

ZJ:

PUSHACC;把A送入堆栈

MOVTH1,#6BH;定时

MOVTL1,#0B0H

DJNZR7,FANHUI

改变定时时间即可校准时间。

第5部分设计总结

本次设计由于有了上学期的基础,所以做起来并不是特别困难,只需要最小系统模块、按键模块和时钟显示模块即可构成一个完整的系统,考虑到对电路的保护,增加一些电阻进行限流,在实际制作中,电阻阻值要适中,太小起不到保护作用,太大则影响LED的亮度。

在设计的过程中,时间的校准是一个难点,由于各种因素的影响,时间并不是太好校准。

本次设计时、分、秒可调,但只可增不可减,调时比较麻烦,因此,在以后会对此设计进行改进:

增加一个开关来控制电源的通断;使时间可增减调时;将LED换成LCD,减小功耗;增加闹钟等。

本次设计需要注意一些问题:

(1)在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机得引脚结构及各引脚功能。

(2)要有一个清晰的思路和一个完整的的软件流程图。

(3)在设计程序时,需要反复修改,不断改进程序设计。

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

 

附录1元器件明细表

BillOfMaterials

=================

Design:

E:

\学习(ISIS7Professional)\数字电子钟\数字电子钟.DSN

Doc.no.:

Revision:

Author:

Created:

15/02/05

Modified:

15/03/05

QTYPART-REFSVALUECODE

---------------------

Resistors

---------

12R1-R9,R11-R1310kM10K

1R10470RM470R

Capacitors

----------

2C1,C233pMaplinWX50E

1C310uMaplinDT55K

IntegratedCircuits

-------------------

1U1AT89C51

Miscellaneous

-------------

1N17SEG-MPX8-CA-BLUE

4S1-S4BUTTON

1X1CRYSTAL

附录2电路总图

附录3程序清单

ORG0000H

LJMPMAIN;转主程序

ORG0003H

LJMPMIAO;转外部中断0中断程序

ORG000BH

LJMPSHI;转定时器T0中断程序

ORG0013H;转外部中断1中断程序

LJMPFEN

ORG001BH;转定时器T1中断程序

LJMPZJ

MAIN:

MOVSP,#5FH

MOVTMOD,#16H;设置T0为定时工作,采用方式1;T1为计数工作,采用方式1

MOVTH0,#255;设置计数器初值为255

MOVTL0,#255

MOVTH1,#3CH;定时器定时100毫秒

MOVTL1,#0B0H

MOVR4,#00H;清空r4

MOVR5,#00H;清空r5

MOVR6,#00H;清空r6

SETBEA

CLREX0;禁止外部中断0中断

CLREX1;禁止外部中断1中断

SETBIT0;外部中断0设置为边沿触发方式

SETBIT1;外部中断0设置为边沿触发方式

CLRET0

SETBTR0;启动定时器0工作

SETBTR1;启动定时器1工作

SETBET1

MOVR7,#20

LOOP:

MOVA,R4;r4单元内容送入累加器

MOVB,#10;10送入b寄存器中

DIVAB;a除以b的整数商存于a,余数存于b

MOVDPTR,#0300H;把表赋给DPTR

MOVCA,@A+DPTR

MOVP0,A

MOVP1,#01H

LCALLDELAY;转延迟子程序

MOVP0,#0FFH;P0口复位

MOVA,B

MOVCA,@A+DPTR;查表指令

MOVP1,#02H

MOVP0,A

LCALLDELAY;转延迟子程序

MOVP0,#0FFH;P0口复位

MOVP2,#0FFH;P2口复位

JNBP2.0,TIAOJIE

MOVP1,#04H

MOVP0,#0F6H

LCALLDELAY;转延迟子程序

MOVP0,#0FFH;P0口复位

MOVA,R5

MOVB,#10

DIVAB

MOVCA,@A+DPTR;查表指令

MOVP1,#08H

MOVP0,A

MOVP1,#08H

LCALLDELAY;转延迟子程序

MOVP0,#0FFH

MOVP2,#0FFH;P2口复位

JNBP2.0,TIAOJIE

MOVA,B

MOVCA,@A+DPTR;查表指令

MOVP1,#10H

MOVP0,A

LCALLDELAY;转延迟子程序

MOVP0,#0FFH;P0口复位

MOVP1,#20H

MOVP0,#0F6H

LCALLDELAY;转延迟子程序

MOVP0,#0FFH

MOVP2,#0FFH;P2口复位

JNBP2.0,TIAOJIE

MOVA,R6

MOVB,#10

DIVAB

MOVCA,@A+DPTR;查表指令

MOVP1,#40H

MOVP0,A

LCALLDELAY;转延迟子程序

MOVP0,#0FFH

MOVA,B

MOVCA,@A+DPTR;查表指令

MOVP1,#80H

MOVP0,A

LCALLDELAY;转延迟子程序

MOVP0,#0FFH

MOVP2,#0FFH;P2口复位

JNBP2.0,TIAOJIE

LJMPLOOP

TIAOJIE:

CPLET0

CPLET1

CPLEX0

CPLEX1

LJMPLOOP

ORG0100H

ZJ:

PUSHACC;把A送入堆栈

MOVTH1,#6BH;定时

MOVTL1,#0B0H

DJNZR7,FANHUI

MOVR7,#20

INCR4

MOVA,R4

CJNEA,#60,FANHUI;若A内容不等于60,则跳到FANHUI

MOVR4,#00H;r4单元清零

INCR5

MOVA,R5

CJNEA,#60,FANHUI;若A内容不等于60,则跳到FANHUI

MOVR5,#00H;r5单元清零

INCR6

MOVA,R6

CJNEA,#12,FANHUI

MOVR6,#00H;r6单元清零

FANHUI:

POPACC;出栈

RETI

DELAY:

MOVR3,#10

HEHAO:

MOVR2,#100

DJNZR2,$

DJNZR3,HEHAO

RET

ORG0200H

MIAO:

CLREA

INCR4

MOVA,R4

CJNEA,#60,MIA;若A内容不等于60,则跳到MIA

MOVR4,#00H;r4单元清零

MIA:

SETBEA

RETI;中断返回程序

FEN:

CLREA

INCR5

MOVA,R5

CJNEA,#60,FE

MOVR5,#00H;r5单元清零

FE:

SETBEA

RETI;中断返回程序

SHI:

CLREA

INCR6

MOVA,R6

CJNEA,#24,SH

MOVR6,#00H

SH:

SETBEA

RETI;中断返回程序

ORG0300H

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;查表的数据

END

 

参考文献

[1]张筱云.单片机原理及接口技术项目·苏州大学出版社,2012.

 

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

当前位置:首页 > 解决方案 > 学习计划

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

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