数字钟课程设计引言.docx

上传人:b****6 文档编号:8057880 上传时间:2023-05-12 格式:DOCX 页数:21 大小:386.94KB
下载 相关 举报
数字钟课程设计引言.docx_第1页
第1页 / 共21页
数字钟课程设计引言.docx_第2页
第2页 / 共21页
数字钟课程设计引言.docx_第3页
第3页 / 共21页
数字钟课程设计引言.docx_第4页
第4页 / 共21页
数字钟课程设计引言.docx_第5页
第5页 / 共21页
数字钟课程设计引言.docx_第6页
第6页 / 共21页
数字钟课程设计引言.docx_第7页
第7页 / 共21页
数字钟课程设计引言.docx_第8页
第8页 / 共21页
数字钟课程设计引言.docx_第9页
第9页 / 共21页
数字钟课程设计引言.docx_第10页
第10页 / 共21页
数字钟课程设计引言.docx_第11页
第11页 / 共21页
数字钟课程设计引言.docx_第12页
第12页 / 共21页
数字钟课程设计引言.docx_第13页
第13页 / 共21页
数字钟课程设计引言.docx_第14页
第14页 / 共21页
数字钟课程设计引言.docx_第15页
第15页 / 共21页
数字钟课程设计引言.docx_第16页
第16页 / 共21页
数字钟课程设计引言.docx_第17页
第17页 / 共21页
数字钟课程设计引言.docx_第18页
第18页 / 共21页
数字钟课程设计引言.docx_第19页
第19页 / 共21页
数字钟课程设计引言.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数字钟课程设计引言.docx

《数字钟课程设计引言.docx》由会员分享,可在线阅读,更多相关《数字钟课程设计引言.docx(21页珍藏版)》请在冰点文库上搜索。

数字钟课程设计引言.docx

数字钟课程设计引言

引言

数字钟是采用数字电路实现对时、分、秒,数字显示的计时装置,广泛用于个人家庭,车站,码头、办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英振荡器的广泛应用,使得数字钟的精度远远超过老式钟表,钟表的数字化给人们生产生活带来了极大地方便,而且大大地扩展了钟表原先的报时功能。

诸如定时自动报警、校时自动打铃、时间程序自动控制、定是广播、自动启闭路灯、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。

因此,研究数字钟及扩大其应用有着非常现实的意义。

 

1基于单片机的数字钟设计

做一个基于AT89S52的简易的单片机的数字钟,该数字钟有1个1602字符液晶,能够显示时分秒。

器显示方式为:

XX:

XX:

XX

1.1课程设计要求

(1)掌握AT89S52实验开发系统中的实验模块原理,画出电路原理图;

(2)综合运用实验模块,用89S52开发设计具有一定功能的单片机控制系统进行软、硬件设计及调试;

(3)写出完整的设计任务书:

课题的名称、系统的功能、硬件原理图、软件框图、程序清单、参考资料;

(4)时间以60分钟为一个周期;电子时钟的格式为:

XXXXXX,由左向右分别为:

时、分、秒。

完成显示一秒01一直加至59,再恢复为00;分加1,由00至01,一直加至59,再恢复为00;时加1,由00至01,一直加至24,再回复为00

(5)为了保证计时的稳定及准确须由晶体振荡器提供表针时间基准信号。

1.2课程设计目的

(1)巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;

(2)培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力;

(3)过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤;

(4)掌握计数器、加法器、字符液晶的使用;

(5)连接数字钟的工作原理图。

2单片机简介

单片机是微型机的一个主要分支,在结构上的最大特点是把CPU、存储器、

定时器和多种输入/输出接口电路集成在一块超大规模集成电路芯片上。

就其组

成和功能而言,一块单片机芯片就是一台计算机。

2.1单片机的组成

单片机是通过内部总线把计算机的各主要部件接为一体,其内部总线包括地

址总线、数据总线和控制总线。

其中,地址总线的作用是在进行数据交换时提供

地址,CPU通过它们将地址输出到存储器或I/O接口;/数据总线的作用是在CPU

与存储器或I/O接口之间,或存储器与外设之间交换数据;控制总线包括CPU

发出的控制信号线和外部送入CPU的应答信号线等。

2.2单片机的特点

由于单片机的这种结构形式及它所采取的半导体工艺,使其具有很多显著的

特点,因而在各个领域都得到了迅猛的发展。

单片机主要发如下特点:

(1)有优异的性能价格比。

(2)集成度高、体积小、有很高的可靠性。

单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。

另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。

(3)控制功能强。

为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。

单片机的逻辑控制功能及运行速度均高于同一档次的微机。

(4)低功耗、低电压,便于生产便携式产品。

(5)外部总线增加了IC(Inter-IntegratedCircuit)及SPI(SerialPeripheralInterface)等串行总线方式,进一步缩小了体积,简化了结构。

(6)单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。

2.3单片机的分类

单片机作为计算机发展的一个重要领域,应用一个较科学的分类方法。

根据目前发展情况,从不同角度单片机大致可以分为通用型/专用型、总线型/非总线

型及工控型/家电型。

(1)通用型/专用型

这是按单片机适用范围来区分的。

例如,80C51是通用型单片机,它不是为某种专用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。

(2)总线型/非总线型

这是按单片机是否提供并行总线来区分的。

总线型单片机普遍设置有并行地址总线、数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。

(3)控制型/家电型

这是按照单片机大致应用的领域进行区分的。

一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。

显然,上述分类并不是惟一的和严格的。

例如,80C51类单片机既是通用型又是总线型,还可以作工控用。

2.4单片机的应用分类

由于单片机具有显著的优点,它已成为科技领域的有力工具,人类生活的得力助手。

它的应用遍及各个领域,主要表现在以下几个方面:

(1)单片机在智能仪表中的应用

单片机广泛地用于各种仪器仪表,使仪器仪表智能化,并可以提高测量的自动化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比。

(2)单片机在机电一体化中的应用

机电一体化是械工业发展的方向。

机电一体化产品是指集成机械技术、微电子技术、计算机技术于一体,具有智能化特征的机电产品,例如微机控制的车床、钻床等。

单片机作为产品中的控制器,能充分发挥它的体积小、可靠性高、功能强等优点,可大大提高机器的自动化、智能化程度。

(3)单片机在实时控制中的应用

单片机广泛地用于各种实时控制系统中。

例如,在工业测控、航空航天、尖端武器、机器人等各种实时控制系统中,都可以用单片机作为控制器。

单片机的实时数据处理能力和控制功能,可使系统保持在最佳工作状态,提高系统的工作效率和产品质量。

综合所述,单片机已成为计算机发展和应用的一个重要方面。

另一方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。

从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。

这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。

3数字时钟的构成

3.1数字钟的构成

数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路.由于计数的起始时间不可能与标准时间一致,故需要在电路上加一个校时电路,同时标准的1MHZ时间信号必须做到准确稳定.通常使用石英晶体振荡器电路构成数字钟.

⑴晶体振荡器电路

晶体振荡器电路给数字钟提供一个频率稳定准确的12MHz的方波信号,可保证数字钟的走时准确及稳定.不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路.

⑵时间计数器电路

时间计数电路由秒个位和秒十位计数器,分个位和分十位计数器电路构成,时个位和时十位计数器电路构成.秒个位和秒十位计数器,分个位和分十位计数器为60进制计数器.时个位和时十位计数器为24进制计数器。

⑶1602字符液晶

1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线。

3.2制作中所需的器材

物品

数目

5V电源

1

万用表

1

1602字符液晶

1

12M晶振

1

AT89S52

1

按键

5

10K可调电阻

1

10k电阻

2

1K电阻

1

5.1K电阻

4

20PF电容

2

10UP电解电容

1

3.3方案选择与相关技术

单片机模块方案:

方案一:

基本门电路搭肩,用基本门电路来实现数字钟,电路结构复杂,鼓掌系数大,不易调试。

方案二:

单片机编程,用单片机设计电路,由于使用软硬件结合的方式,所以电路结构简单,调试也相对方便。

与第一种方案比较优点的是非常明显的。

综合上方案,选择第二种方案。

3.4AT89S52的单片机简介

At89s52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89S52具有以下标准功能:

8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

8位微控制器8K字节在系统可编程FlashAT89S52

原理图如下:

 

 

3.4.1主要特性

·片内振荡器和时钟电路与MCS-51单片机产品兼容

·8K字节在系统可编程Flash存储器

·1000次擦写周期、全静态操作:

0Hz~33MHz

·三级加密程序存储器

·32个可编程I/O口线

·三个16位定时器/计数器八个中断源

·全双工UART串行通道

·低功耗空闲和掉电模式

·掉电后中断可唤醒

·看门狗定时器

·双数据指针

·掉电标识符

3.4.2管脚说明

VCC:

供电电压GND:

接地

P1口:

P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。

对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。

在flash编程和校验时,P1口接收低8位地址字节。

引脚号第二功能

P1.0T2(定时器/计数器T2的外部计数输入),时钟输出

P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)

P1.5MOSI(在系统编程用)

 P1.6MISO(在系统编程用)

P1.7SCK(在系统编程用)

P2口:

P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。

对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。

在这种应用中,P2口使用很强的内部上拉发送1。

在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。

在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3口:

P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL逻辑电平。

对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

 P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。

在flash编程和校验时,P3口也接收一些控制信号。

端口引脚第二功能

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2INTO(外中断0)

P3.3INT1(外中断1)

P3.4TO(定时/计数器0)

P3.5T1(定时/计数器1)

P3.6WR(外部数据存储器写选通)

P3.7RD(外部数据存储器读选通)

此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。

RST——复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。

ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。

要注意的是:

每当访问外部数据存储器时将跳过一个ALE脉冲。

对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。

该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。

此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。

PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。

需注意的是:

如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。

FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。

3.51602液晶显示器说明

3.5.1

 

3.5.2

3.5.3

 

3.5.4

 

注:

对控制器每次进行读写操作之前,都必须进行读写检测,确保STA为0。

RAM地址映射图

控制器内部带有80*8位(80字节)的RAM缓冲区,对应关系如下图:

3.5.5指令说明

(1)显示模式设置

 

指令码

功能

0

0

0

0

1

D

C

B

D=1开显示;D=0关显示

C=1显示光标;C=0不显示光标

B=1光标闪烁;B=0光标不显示

0

0

0

0

0

1

N

S

N=1当读或写一个字符后地址指针加一,且光标加一

N=0当读或写一个字符后地址指针减一,且光标减一

S=1当写一个字符,整屏显示左移(N=1)或右移(N=0),以得到光标不移动而屏幕移动的效果。

S=0当写一个字符,整屏显示不移动

(2)显示开/关及光标设置

3.5.6数据控制

控制器内部设有一个数据地址指针,用户可通过他们来访问内部的全部80字节RAM。

(1)数据指针设置

(2)读数据,写数据已介绍

(3)其他设置

(4)初始化过程

3.1延时15ms

3.2写指令38H(不检测忙信号)

3.3延时5ms

3.4写指令38H(不检测忙信号)

3.5延时5ms

3.6写指令38H(不检测忙信号)

3.7(以后每次写指令、读/写数据操作之前均需检测忙信号)

3.8写指令38H:

显示模式设置

3.9写指令08H:

显示关闭

3.10写指令01H:

显示清屏

3.11写指令06H:

显示光标移动设置

3.12写指令0CH:

显示开及光标设置

 

4电路设计

4.1晶体振荡器与AT89S52的接法

晶体振荡器与AT89S52的接法为如图7所示,XT1和XT2脚接到12MHz的晶体振荡器上,与两个2pf的电容并联。

 

4.2数字钟电路图

 

5调试过程

5.1检测AT89S52是否运行

第一次硬件检测的时候,AT89S52不工作,经检查发现电源电路和晶体振荡器没接好。

再次检测时89S52仍不工作,检测后发现复位开关已坏,RST复位银角一直处于高电平,经去掉开关后89S52工作。

程序设计思路是根据芯片厂家所设定的参数先定义读写程序,然后写主程序,按键激励后进行自加,满60或24位后自动进位。

液晶显示在点设置中,第一行第一列为0X40,有40个定点。

第二行第一列为0X80,有40个定点,程序设置定点并显示计数,流程图如下,具体程序看附录。

 

 

6总结

6.1结论

本次课程设计经过了四个阶段的程序设计,第一阶段是了解数字钟的工作方式及其原理,确定设计的方向与方法以及确定设计过程中需要的软件及工具。

第二阶段是熟悉用keil软件编写C语言的方法,这一阶段侧重于对C语言的基本掌,在这一阶段中因为对C语言不太熟悉,所以显得相对笨拙,进展也会相对缓慢。

第三阶段是学校单片机AT89C51芯片的工作原理,并设计原理图,在Proteus里画好原理图然后加载程序后进行仿真验证。

第四阶段进行了硬件的设计,在这个过程中,对软硬结合出现的问题,做了大量的工作,得到了比较理想的效果。

总体上,本设计已经达到了预期目标,在软件上做了相关的功能仿真和时序仿真,也实现了在硬件上的测试,虽然离工程上的运用还比较远,但作为试验研究课题以达到了要求。

在这一次课程设计过程中,我很是受益匪浅,不仅对自己在大学三年时间里所学的知识进行回顾与复习,还学习了目前还没学习到的单片机,并积累了一定宝贵的经验和培养了自己的动手能力和运用所学知识解决实际问题的能力。

通过这次课程设计,我们知道了理论和实际的距离,也知道了理论和实际想结合的重要性,,也从中得知了很多书本上无法得知的知识。

自己今后将会更加的把理论知识和实际应用结合起来,提高自己的能力。

 

谢辞

通过本次设计,我掌握了许多实用性的东西,这些东西不是是在书本上学到的,是在日常中的资料查找与积累中得到的。

在袁华老师的指导下,我对52单片机的概念有了深刻的理解。

通过这一段时间来的努力,我选择了用单片机来制作一个数字钟,为通过这次的工作我也学到了许多实际的东西,也让我提高了独立做事和动手的能力,更重要的是让我明白了学习的快乐,在这次设计中我即学到了只是又找到了快乐,也让我对以后的充满了信心,这对我以后的工作有很大的帮助。

以后的工作中我会更加细心与努力,在此特别致谢!

 

参考文献

[1]张毅坤.单片微型计算机原理及应用.西安电子科技大学出版社.1998年9月第1版.

[2]任为民.电子技术基础课程设计.中央广播电视大学出版社.1997年5月第1版.

[3]谭浩强.C程序设计(第二版).清华大学出版社.1999年12月第2版.

[4]付家才.单片机控制工程实践技术.北京:

化学工业出版社,2004年9月第一版.

[5]朱定华.单片机原理及接口技术实验.北京:

北方交通大学出版社,2002年4月第2版.

[6]胡学海.单片机原理及应用系统设计[M].北京:

北京电子工业出版社,2005年3月第1版.

 

附录

PCB图:

 

系统总程序清单

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitlcden=P3^4;

sbitlcdrw=P3^6;

sbitlcdrs=P3^7;

sbitS1=P3^0;

sbitS2=P3^1;

sbitS3=P3^2;

sbitS4=P3^3;

ucharcodetable[]="digitalclock";

ucharcodeta[]={'0','1','2','3','4','5','6','7','8','9'};

ucharaa,i;

intshi,fen,miao,sm,gm,sf,gf,ss,gs;

voiddelay(uintz)

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

voidwrite_com(ucharcom)//写指令

{

lcdrw=0;

lcdrs=0;

P2=com;

delay(5);

lcden=1;

delay(5);

lcden=0;

delay(5);

}

voidwrite_data(uchardate)//写数据

{

lcdrw=0;

lcdrs=1;

P2=date;

delay(5);

lcden=1;

delay(5);

lcden=0;

delay(5);

}

voidinit()

{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

TR0=1;

ET0=1;

lcden=0;

lcdrw=0;

write_com(0x38);//显示模式设置

write_com(0x0e);//开显示,显示光标/0x0f光标闪烁

write_com(0x06);//设置整屏和光标移动方式

write_com(0x01);//清屏

write_com(0x80);//初始化指针

}

voidmain()

{

init();

write_com(0x80+0x01);

for(i=0;i<13;i++)

{

write_data(table[i]);

delay(5);

}

while

(1)

{

sm=miao/10;

gm=miao%10;

sf=fen/10;

gf=fen%10;

ss=shi/10;

gs=shi%10;

while(!

S1)//分钟设定

{

delay(30);

while(!

S1)//按键消抖

{

while(!

S1){};

delay(30);

while(!

S1){};//松键消抖

fen++;

if(fen==60)

fen=0;

}

}

while(!

S2)//小时设定

{

delay(30);

while(!

S2)//按键消抖

{

while(!

S2){};

delay(30);

while(!

S2){};//松键消抖

shi++;

if(shi==24)

shi=0;

}

}

write_com(0x80+0x4A);

write_data(ta[gm]);//秒个位

write_com(0x80+0x49);

write_data(ta[sm]);//秒十位

write_com(0x80+0x48);

write_data(':

');

write_com(0x80+0x47);

write_data(ta[gf]);//分个位

write_com(0x80+0x46);

write_data(ta[sf]);//分十位

write_com(0x80+0x45);

write_data(':

');

write_com(0x80+0x44);

write_data(ta[gs]);//时个位

write_com(0x80+0x43);

write_data(ta[ss]);

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2