单片机数字时钟实验报告

来源:m.fanwen118.com时间:2023.3.27

1

单片机数字时钟实验报告

2

单片机数字时钟实验报告

目 录

第一章.前沿??????????????????????????????????1

第二章.数字时钟????????????????????????????????2

2.1数字时钟方案????????????????????????????2

2.2数码管显示方案???????????????????????????2

第三章.单片机?????????????????????????????????3

3.1数码管显示工作原理 ????????????????????????3

3.2AT89C51芯片的介绍?????????????????????????3

3.3晶振原理??????????????????????????????4

3.4数字钟的调节开关??????????????????????????5

第四章.硬件??????????????????????????????????6

4,1 Proteus软件介绍???????????????????????????6

4.2使用Protues软件???????????????????????????7

第五章.软件?????????????????????????????????10

5.1 Keil软件介绍????????????????????????????10

5.2 Keil软件的基础知识?????????????????????????10

5.3 Keil软件的优点???????????????????????????10

5.4编程????????????????????????????????11

5.4.1数字电子时钟主程序流程图??????????????????11

5.4.2 中断服务程序流程图 ????????????????????12

第六章.总结?????????????????????????????????13

参考文献???????????????????????????????????14

附录一 元件清单???????????????????????????????15

附录二 程序清单???????????????????????????????16

3

第一章 前言

时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。

现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。

时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887,X1203等都可以满足高精度的要求。

本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机AT89S51芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机电子时钟。

1

第二章 数字时钟

2.1数字时钟方案

数字时钟是本设计的最主要的部分。根据需要,可利用两种方案实现。

方案一:本方案采用Dallas公司的专用时钟芯片DS12887A。该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。

方案二:本方案完全用软件实现数字时钟。原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。该方案具有硬件电路简单的特点。但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。

基于硬件电路的考虑,本设计采用方案二完成数字时钟的功能。

2.2数码管显示方案

方案一:静态显示。所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。该方式每一位都需要一个8 位输出口控制。静态显示时较小的电流能获得较高的亮度,且字符不闪烁。但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。

方案二:动态显示。所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。调整参数可以实现较高稳定度的显示。动态显示节省了I/O口,降低了能耗。

从节省I/O口和降低能耗出发,本设计采用方案二。

2

第三章 单片机

3.1数码管显示工作原理

数码管是一种把多个LED显示段集成在一起的显示设备。有两种类型,一种是共阳型,一种是共阴型。共阳型就是把多个LED显示段的阳极接在一起,又称为公共端。共阴型就是把多个LED显示段的阴极接在一起,即为公共商。阳极即为二极管的正极,又称为正极,阴极即为二极管的负极,又称为负极。通常的数码管又分为8段,即8个LED显示段,这是为工程应用方便如设计的,分别为A、B、C、D、E、F、G、DP,其中DP 是小数点位段。而多位数码管,除某一位的公共端会连接在一起,不同位的数码管的相同端也会连接在一起。即,所有的A段都会连在一起,其它的段也是如此,这是实际最常用的用法。数码管显示方法可分为静态显示和动态显示两种。静态显示就是数码管的8段输入及其公共端电平一直有效。动态显示的原理是,各个数码管的相同段连接在一起,共同占用8 位段引管线;每位数码管的阳极连在一起组成公共端。利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,当全段扫描速度大于视觉暂留速度时,显示就会清晰显示出来。本实验采用8个一体的数码管如图(1)所示

单片机数字时钟实验报告

图(1)

3.2AT89C51芯片的介绍

AT89C51是一个8位单片机,片内ROM全部采用FLASH ROM技术,晶振时钟为12MHz。89C51是标准的40引脚双列直插式集成电路芯片,有4个八位的并行双向I/O端口,分别记作P0、P1、P2、P3。第31引脚需要接高电位使单片机选用内部程序存储器;第40脚为电源端VCC,接+5V电源,第20引脚为接地端VSS,通常在VCC和VSS引脚之间接0.1μF高频滤波电容。如图(2)所示。

3

图(2)AT89C51

VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

3.3晶振原理

振荡器主要用来产生时间标准信号。因为数字钟的精度,主要取决于时间标准信号的频率及其稳定度。所以要产生稳定的时标信号,一般是采用石英晶体振荡器。石英晶体不但

单片机数字时钟实验报告

4

频率特性稳定,而且品质因数很高,有极好的选频特性。一般情况下,晶振频率越高,准确度越高,但所用的分频级数越多,耗电量就越大,成本就越高,分频器也会增多。所以在确定频率时应考虑两方面的因素,然后在选定石英晶体型号。本实验才用内部时钟方式。如图

(3)所示。

单片机数字时钟实验报告

图(3)

3.4数字钟的调节开关

开关的作用是用于,调节时间的,本实训中,共用到4个开关电路。分别是控制总开关,调时,调分,调秒开关。每个开关电路都由电阻,电源,接地,及中断入口组成。也是本实训中必不可少的一部分。其电路图,如图(4)示

单片机数字时钟实验报告

如图(4)

5

第四章 硬件

4,1 Proteus软件介绍

(1)proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,20xx年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

(2)PROTEUS 是单片机课堂教学的先进助手。

PROTEUS不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。 它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。

课程设计、毕业设计是学生走向就业的重要实践环节。由于PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台

随着科技的发展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中PROTEUS也能茯得愈来愈广泛的应用。

使用Proteus 软件进行单片机系统仿真设计,是虚拟仿真技术和计算机多媒体技术相结合的综合运用,有利于培养学生的电路设计能力及仿真软件的操作能力;在单片机课程设计和全国大学生电子设计竞赛中,我们使用 Proteus 开发环境对学生进行培训,在不需要硬件投入的条件下,学生普遍反映,对单片机的学习比单纯学习书本知识更容易接受,更容易提高。实践证明,在使用 Proteus 进行系统仿真开发成功之后再进行实际制作,能极大提高单片机系统设计效率。因此,Proteus 有较高的推广利用价值。

6

系统框图

整个系统用单片机作为中央控制器,由单片机执行采集芯片内部时钟信号,时钟信号通过单片机I/O口传给单片机,单片机模块控制驱动模块驱动显示模块,通过显示模块来实现信号的输出、LED的显示及相关的控制功能。系统设有按键模块用于对时间进行调整及扩展多个小键盘,系统整体框图如图上图所示

根据系统框图及实训要求,使用 Proteus软件进行添加元件,连线如图(5)

图(5)

(1) 时分秒都显示的如图(6)

7

单片机数字时钟实验报告

单片机数字时钟实验报告

图(6)

(2) 秒显示的电路图,如图(7)

单片机数字时钟实验报告

图(7)

(3) 分显示的电路图,如图(8)

单片机数字时钟实验报告

8

图(8)

(4) 时显示的电路图,如图(9)

单片机数字时钟实验报告

图(9)

单片机数字时钟实验报告

9

第五章 软件

5.1 Keil软件介绍。

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。 5.2 Keil软件的基础知识。

1. 系统概述

Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。

2. Keil C51单片机软件开发系统的整体结构

C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。

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

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

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

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

5.3 Keil软件的优点。

1.Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。 10

11

单片机数字时钟实验报告

5.4.2 中断服务程序流程图

中断服务程序流程图如下图所示。

中断服务程序流程图

单片机数字时钟实验报告

12

第六章 总结

本单片机数字电子钟系统的功能基本符合显示格式为:XX:XX:XX, 即 时:分:秒。时间可采用12 小时制显示或24 小时制显示,通过四个按键可以对时,分,秒进行调节。 过这次的实训一方面使我认识到本人对单片机方面的知识知道的太少了,对于书本上的很多知识还不能灵活运用,尤其是对程序设计语句的理解和运用,不能够充分理解每个语句的具体含义,导致编程的程序过于复杂,使得需要的存储空间增大。损耗了过多的内存资源。 另一方面,在这次实训中让我收获很多。

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

在此次数字钟设计过程中, 在学习新知识的同时,把在课程中学到的理论知识运用到实际作品设计、操作中,更进一步地熟悉了单片机芯片的结构及掌握了其工作原理和具体的使用方法与相关元器件的参数计算方法、使用方法,了解了电路的开发和制作及课程设计报告的编写。加深了对相关理论知识及专业知识的掌握度,增强自身的动手能力,锻炼及提高了理解问题、分析问题、解决问题的能力,更深刻的体会到了理论联系实际的重要性,进一步掌握画图软件的使用和提高相应的画图操作水平及技巧

13

参考文献

[1] 谢自美.电子线路设计·实验·测试[M].武汉:华中理工大学出版社,1992.

[2] 何立民.单片机应用系统设计[M].北京:北京航空航天大学出版社,1993.

[3] 楼然笛.单片机开发[M].北京:人民邮电出版社,1994.

[4] 付家才.单片机控制工程实践技术[M].北京:化学工业出版社 2004.3.

[5] 李光才.单片机课程设计 实例指导[M]. 北京:北京航空航天大学出版社 2004.

[6] 朱定华.单片机原理及接口技术实验[M].北京:北方交通大学出版社2002.11.

[7] 刘湘涛.江世明.单片机原理与应用[M]. 北京:电子工业出版社,2006.

14

附录一 元件清单

名称 数 量 型号 芯片 1个 AT89C51 八个一体数码管 1个 共阳 按键 4个

晶振

电容

电阻 13

1个 12MHZ 3个 个 15

附录二 程序清单 ORG 0000H LJMP MAIN ORG 0003H LJMP MIAO ORG 000BH LJMP SHI ORG 0013H LJMP FEN ORG 001BH LJMP SZ MAIN:MOV R7, #20 MOV R4, #00H MOV R5, #00H MOV R6, #00H MOV TMOD, #16H MOV TH1, #3CH MOV TL1, #0B0H MOV TH0, #0FFH MOV TL0, #0FFH SETB TR0 SETB TR1 SETB EA SETB ET1 SETB PT1 SETB IT0 SETB IT1 CLR EX0 CLR EX1 CLR ET0

LOOP: MOV A, R4 MOV B, #10 DIV AB

MOV DPTR, #TAB MOVC A, @A+DPTR MOV P0, A

MOV P1, #01H LCALL DELAY

16

MOV P0, #0FFH MOV A, B

MOVC A, @A+DPTR MOV P0, A

MOV P1, #02H LCALL DELAY

MOV P0, #0FFH MOV P2, #0FFH JNB P2.0, TIAOJIE MOV P1, #04H MOV P0, #0F6H LCALL DELAY

MOV P0, #0FFH

MOV A, R5

MOV B, #10 DIV AB

MOV DPTR, #TAB MOVC A, @A+DPTR MOV P0, A

MOV P1, #08H LCALL DELAY

MOV P0, #0FFH MOV A, B

MOVC A, @A+DPTR MOV P0, A

MOV P1, #10H LCALL DELAY

MOV P0, #0FFH MOV P2, #0FFH JNB P2.0, TIAOJIE MOV P1, #20H MOV P0, #0F6H LCALL DELAY

MOV P0, #0FFH MOV A, R6

MOV B, #10 DIV AB

MOV DPTR, #TAB MOVC A, @A+DPTR

17

MOV P0, A

MOV P1, #40H LCALL DELAY

MOV P0, #0FFH MOV A, B

MOVC A, @A+DPTR MOV P0, A

MOV P1, #80H LCALL DELAY

MOV P0, #0FFH MOV P2, #0FFH JNB P2.0, TIAOJIE LCALL DELAY

LJMP LOOP

TIAOJIE:

CPL ET1

CPL ET0

CPL EX0

CPL EX1

LJMP LOOP

SZ: PUSH ACC

MOV TH1, #3CH MOV TL1, #0B0H DJNZ R7, L2

MOV R7, #20

INC R4

MOV A, R4

CJNE A, #60, L2 MOV R4, #00H INC R5

MOV A, R5

CJNE A, #60, L2 MOV R5, #00H INC R6

MOV A, R6

CJNE A, #12, L2 MOV R6, #00H L2: POP ACC

RETI

18

MIAO: PUSH ACC

CLR EA

INC R4

SETB EA

POP ACC

RETI

FEN: PUSH ACC

CLR EA

INC R5

SETB EA

POP ACC

RETI

SHI: PUSH ACC

CLR EA

INC R6

SETB EA

POP ACC

RETI

DELAY: MOV R3, #10

DEL2: MOV R2, #100

NOP

DJNZ R2,$

DJNZ R3,DEL2

RET

TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

19

更多类似范文
┣ 基于51单片机电子时钟设计 7400字
┣ 单片机电子时钟设计 13500字
┣ 基于单片机的液晶显示可调电子时钟 6400字
┣ 电子钟课程设计报告 12400字
┣ 更多单片机时钟实验报告
┗ 搜索类似范文