单片机实习应用数字时钟 数字温度计 数字频率计.docx

上传人:b****8 文档编号:10792066 上传时间:2023-02-22 格式:DOCX 页数:56 大小:471.74KB
下载 相关 举报
单片机实习应用数字时钟 数字温度计 数字频率计.docx_第1页
第1页 / 共56页
单片机实习应用数字时钟 数字温度计 数字频率计.docx_第2页
第2页 / 共56页
单片机实习应用数字时钟 数字温度计 数字频率计.docx_第3页
第3页 / 共56页
单片机实习应用数字时钟 数字温度计 数字频率计.docx_第4页
第4页 / 共56页
单片机实习应用数字时钟 数字温度计 数字频率计.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

单片机实习应用数字时钟 数字温度计 数字频率计.docx

《单片机实习应用数字时钟 数字温度计 数字频率计.docx》由会员分享,可在线阅读,更多相关《单片机实习应用数字时钟 数字温度计 数字频率计.docx(56页珍藏版)》请在冰豆网上搜索。

单片机实习应用数字时钟 数字温度计 数字频率计.docx

单片机实习应用数字时钟数字温度计数字频率计

目录

摘要I

AbstractII

1设计任务及要求1

2STC89C523

3系统方案的选择4

3.1数字时钟模块4

3.3数字频率计模块5

4硬件设计6

4.1总体方案6

4.2STC89C52单片机最小系统7

4.3键盘显示电路7

4.4数字时钟模块8

4.4.1时钟电路8

4.4.2复位电路9

4.5数字温度计模块10

4.5.1温度传感器DS18B2010

4.5.2DS18B20的测温原理11

4.5.3温度检测电路12

4.6数字频率计模块13

4.6.1放大整形电路13

4.6.2分频电路15

5软件设计16

5.1数字时钟模块16

5.1.1定时程序设计16

5.1.2实时时钟实现的基本方法16

5.1.3系统软件设计流程图17

5.2数字温度计20

5.2.1读取数据程序设计20

5.2.2数据处理程序设计20

5.2.3系统软件设计流程图21

5.3数字频率计模块24

6仿真结果及分析25

6.1数字时钟模块25

6.2.数字温度计模块27

6.3.数字频率计模块29

7实物调试31

8小结32

参考文献33

附录一完整电路图34

附录二完整仿真电路图35

附录三部分参考程序36

摘要

本设计采用六位七段数码管显示系统,以STC89C52单片机为核心,由键盘、数字时钟、数字温度计、数字频率计等功能模块组成。

基于题目基本要求,本系统对时间显示、温度采集和频率转化系统进行了重点设计。

此外,扩展了时间秒分时调整、双机通信等功能。

本系统大部分功能由软件来实现,吸收了硬件软件化的思想,大部分功能通过软件来实现,使电路简单明了,系统稳定性大大提高。

本系统不仅成功的实现了要求的基本功能,多数发挥部分也得到了实现,而且还具有一定的创新功能。

 

关键字:

STC89C52数字时钟数字温度计数字频率计

 

Abstract

Thisdesignusesthesixsevenperiodofdigitaltubesdisplaysystem,inordertoSTC89C52microcontrollerasthecore,fromthekeyboard,anddigitalclock,digitalthermometer,digitalfrequencygaugeetcfunctionmodule.Basedonthebasicrequirementssubject,thissystemtotimedisplay,temperaturegatheringandfrequencyconversionsystemforthekeydesign.Inaddition,expandedthetimepointsinseconds,doublemachineadjustmentcommunications,andotherfunctions.Thissystembysoftwaretorealizemostfunction,absorbsthehardwareandsoftwareofthethought,mostfunctionsthroughthesoftwaretorealize,thecircuitsimpleandclear,thesystemstabilityisgreatlyincreased.Thissystemnotonlysucceededincarryingthroughtherequirementsofthebasicfunctions,mostplayapartalsoaremet,butalsohavecertaininnovationfunction.

Key:

STC89C52digitalclockdigitalthermometerigitalfrequencymeter

 

1设计任务及要求

(1)利用材料完成单片机最小系统的设计、焊接、调试;

(2)完成ISP下载电路的设计、焊接;

(3)完成应用系统扩展电路部分的设计、焊接、调试,应用系统扩展电路的具体要求如下:

1)键盘、显示电路

利用单片机最小系统、6个7段LED数码管、12个按键,设计制作一个键盘、显示电路。

可以使用8279键盘显示接口电路,也可以使用单片机的并行接口作为键盘显示接口。

2)数字时钟

在键盘、显示电路的基础上完成一个数字时钟的设计,完成以下功能:

a.要求以24小时计时方式显示时、分、秒;

b.时、分、秒可以通过按键分别调整。

3)数字温度计

在上题的硬基础上,制作一个数字温度计。

完成以下功能:

a.利用DS18B20可编程1-Wire数字温度传感器芯片,或利用AD590温度传感器芯片和A/D转换器芯片采集温度温度信号;

b.当按下键盘上的温度显示按键时将实时温度信息显示在LED显示器上,当按下键盘上的时钟显示按键时,恢复时钟的正常显示;

c.通过串行通信的方式,将采集到的实时温度信息送至第二个单片机系统,并在二个单片机系统显示实时温度。

4)数字频率计

在上题的硬基础上,制作一个数字频率计。

完成以下功能:

a.利用MCU设计一个数字频率计,用于检测0~500kHz周期信号的频率,输入信号幅度范围:

0.1~10V;

b.当按下键盘上的频率显示按键时将测量的频率信息显示在LED显示器上,当按下键盘上的时钟显示按键时,恢复时钟的正常显示;

(4)利用仿真软件完成系统仿真工作;

(5)完成系统软件的设计,包括程序结构设计、流程图绘制、程序设计。

 

2STC89C52

STC89C52片内集成256字节程序运行空间、8K字节Flash存储空间,支持最大64K外部存储扩展。

根据不同的运行速度和功耗的要求,时钟频率可以设置在0-33M之间。

片内资源有4组I/O控制端口、3个定时器、8个中断、软件设置低能耗模式、看门狗和断电保护。

可以在4V到5.5V宽电压范围内正常工作。

不断发展的半导体工艺也让该单片机的功耗不断降低。

同时,该单片机支持计算机并口下载,简单的数字芯片就可以制成下载线,仅仅几块钱的价格让该型号单片机畅销10年不衰。

根据不同场合的要求,这款单片机提供了多种封装,本次设计根据最小系统有时需要更换单片机的具体情况,使用双列直插DIP-40的封装。

STC89C52引脚如下图2.1所示。

 

图2.1STC89C52引脚图

 

3系统方案的选择

3.1数字时钟模块

方案一:

该方案采用Dallas公司的专用时钟芯片DS1302。

该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。

为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。

当电网电压不足或突然掉电时,可使系统自动转换到内部锂电池供电系统。

而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。

方案二:

该方案完全用软件实现数字时钟。

原理为:

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

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

该方案具有硬件电路简单的特点,但当单片机不上电,程序将不执行。

而且由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。

基于本次课程设计对于数字时钟的精度要求并不是太高,故本次设计采用方案二来完成。

 

3.2数字温度计模块

由于现在用品追求多样化,多功能化,给系统加上温度测量显示模块,能够方便人们的生活,使该设计具有人性化。

方案一:

采用热敏电阻,利用其感温效应,再将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测小于1摄氏度的信号是不适用的,并且感温电路比较复杂。

方案二:

采用温度传感器DS18B20。

DS18B20可以满足从-55摄氏度到+125摄氏度测量范围,且DS18B20测量精度高,增值量为0.5摄氏度,在一秒内把温度转化成数字,测得的温度值的存储在两个八位的RAM中,单片机直接从中读出数据转换成十进制就是温度,使用方便。

基于DS18B20的以上优点,故本次设计选取DS18B20来测量温度。

 

3.3数字频率计模块

方案一:

本方案主要以单片机为核心,被侧信号先进入信号放大电路进行放大,再被送到波形整形电路整形,把被测的正弦波或者三角波整形为方波。

利用单片机的计数器和定时器的功能对被测信号进行计数。

编写相应的程序可以使单片机自动调节测量的量程,并把测出的频率数据送到显示电路显示。

方案二:

本方案使用大量的数字器件,被测信号经放大整形电路编程计数器所要求的脉冲信号,其频率与被测信号的频率相同。

同时时基电路提供标准时间基准信号,其高电平持续时间1s,当1s信号结束闸门关闭,停止计数。

若在闸门时间1s内计数器计得脉冲个数为N,则被测信号频率Fx=NHz。

逻辑控制电路的作用有两个:

一是产生所存脉冲,是显示器上的数字稳定;而是产生清零脉冲,使计数器每次测量从零开始计数。

基于方案一元器件少,原理电路简单,且只要改变程序的设定值则可以实现不同频率范围的测试,能自动选择测试的量程且成本也不太高,故本次设计选择了方案一。

 

4硬件设计

4.1总体方案

本设计采用STC89C52单片机作为本系统的控制模块。

单片机可把由DS18B20等中的数据利用软件来进行处理,从而把数据传输到显示模块,实现温度、时钟和频率计的显示。

以六个七段数码管为显示模块,把单片机传来的数据显示出来,并且显示多样化。

在显示电路中,主要靠按键来实现各种显示要求的选择与切换。

设计总体框架如图:

STC89C52

6位显示电路

电源模块

频率采集模块

温度采集模块

 

窜口通信

键盘输入

时钟模块

 

STC89C52

4位显示电路

键盘输入

 

图4.1系统框架图

4.2STC89C52单片机最小系统

最小系统包括晶体振荡电路、复位开关和电源部分。

图为AT89C52单片机的最小系统。

 

图4.2STC89C52的最小系统。

 

4.3键盘显示电路

键盘电路采用的是

的矩阵键盘,图4.3所示。

图4.3矩阵键盘。

 

显示电路采用的是六个7位数码管,如图4.4所示。

图4.4数码管显示

 

4.4数字时钟模块

本次做的数字钟是以单片机(STC89C52)为核心,结合相关的元器件(共阴极LED数码显示器、BCD-锁存/7段译码等),再配以相应的软件,是它具有时,分,秒显示的功能,并且时,分,秒还可以调整。

利用单片机最小系统的晶振电路和复位电路完成单片机数字时钟模块的功能。

4.4.1时钟电路

晶振电路,又称时钟电路,是维持单片机最小系统运行的基本模块之一。

由振荡器和分频器组成。

STC89C52内部有一个用于构成振荡器的可控高增益反向放大器。

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

在片外跨接一晶振和两个匹配电容C1、C2就构成一个自激振荡器。

振荡频率根据实际要求的工作速度,从几百千赫至24MHz可适当选取某一频率。

匹配电容C1、C2要根据石英晶体振荡器的要求选取。

当晶振频率为12MHz时,C1C2一般选30pF左右。

上述电路是靠STC89C52单片机内部电路产生振荡的。

也可以由外部振荡器或时钟直接驱动AT89C51。

本设计采用内部电路产生振荡。

晶振电路如图4.5所示。

 

 

图4.5晶振电路

4.4.2复位电路

复位电路也是维持单片机最小系统运行的基本模块之一。

复位电路通常分为两种:

上电复位和手动复位。

RST引脚是复位端,高电平有效。

该引脚输入至少连续两个机器周期以上的高电平,单片机复位。

RST引脚内部有一个ST触发器以对输入信号整形,保证内部复位电路的可靠,所以外部输入信号不一定要求是数字波形。

使用时,一般在此引脚与VSS引脚之间接一个8.2kΩ的下拉电阻,与VCC引脚之间接一个约10μF的电解电容,即可保证上电自动复位。

有时系统在运行过程中出现程序跑飞的情况,在程序开发过程中,经常需要手动复位。

所以本次设计选用手动复位。

电路图如图4.8。

图4.8复位电路

4.5数字温度计模块

总设计系统框图如图4.7所示。

 

显示电路

复位电路

STC89C52

时钟振荡

温度传感器

图4.7温度计总体设计框图

4.5.1温度传感器DS18B20

DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。

可选更小的封装方式,更宽的电压适用范围。

分辨率设定,及用户设定的报警温度存储在EPROM中,掉电后依然保存。

DS18B20引脚如图4.8所示。

图4.8DS1820芯片引脚

 

引脚功能说明:

NC:

空引脚,悬空不使用;

VDD:

可选电源脚,电源电压范围3~5.5V。

当工作于寄生电源时,此引脚必须接地。

DQ:

数据输入/输出脚。

漏极开路,常态下高电平。

GND:

为电源地

DS18B20内部结构主要由四部分组成:

64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

4.5.2DS18B20的测温原理

DS18B20的测温原理,低温度系数晶振的振荡频率受温度的影响很小用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量.计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55℃所对应的一个基数值。

减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度值。

图中的斜率累加器用于补偿和修正测温过程中的非线性其输出,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。

4.5.3温度检测电路

DS18B20最大的特点是单总线数据传输方式,DS18B20的数据I/O均由同一条线来完成。

DS18B20的电源供电方式有2种:

外部供电方式和寄生电源方式。

工作于寄生电源方式时,VDD和GND均接地,他在需要远程温度探测和空间受限的场合特别有用,原理是当1Wire总线的信号线DQ为高电平时,窃取信号能量给DS18B20供电,同时一部分能量给内部电容充电,当DQ为低电平时释放能量为DS18B20供电。

但寄生电源方式需要强上拉电路,软件控制变得复杂(特别是在完成温度转换和拷贝数据到E2PROM时),同时芯片的性能也有所降低。

外部电源供电方式是DS18B20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。

因此本设计采用外部供电方式。

温度检测电路如图4.9所示。

图4.9温度检测电路

 

温度传感器DS18B20的测量范围为-55℃~+125℃,在-10℃~+85℃时精度为±0.5℃。

因为本设计只用于测量环境温度,所以只显示-10℃~+85℃。

 

4.6数字频率计模块

总设计系统框图如图4.10所示。

 

STC89C52

信号处理输入

六位显示电路

 

键盘输入

 

图4.10频率计总体设计框图

 

4.6.1放大整形电路

由于课程设计要求为输入信号幅度范围:

0.1~10V;而单片机识别电平信号5V,则当输入信号幅度过小的时候,器件可能检测不到信号,故要将信号进行放大处理,而当输入信号幅度过大超过5V时,可能会把器件烧毁,故将信号进行整形处理。

所以在设计中采用了这个信号调理电路对输入的波形进行放大限幅和整形。

共基极放大电路因其高频率特性,常用语高频放大器和宽频带放大器,因为课设要求于检测0~500kHz周期信号的频率输入,故放大部分采用共基极放大电路。

它将正弦输入信号Vx整形成同频率方波Vo,幅值过大的被测信号经过分压器分压送入后级放大器,以避免波形失真。

放大部分如图4.11所示。

 

图4.11基极放大电路

 

当输入信号电压幅度较大时,通过输入衰减电路将电压幅度降低。

当输入信号电压幅度较小时,前级输入衰减为零时若不能驱动后面的整形电路,则调节输入放大的增益,时被测信号得以放大。

整形电路用与非门74LS00构成施密特触发器,它对放大器的输出波形信号进行整形,使之成为矩形脉冲。

整形部分如图4.14所示。

 

图4.14整形电路

4.6.2分频电路

本频率计的设计以STC89C52单片机为核心,利用他内部的定时/计数器完成待测信号周期/频率的测量。

单片机STC89C52内部具有2个16位定时/计数器,定时/计数器的工作可以由编程来实现定时、计数和产生计数溢出时中断要求的功能。

在定时器工作方式下,在被测时间间隔内,每来一个机器周期,计数器自动加1(使用12MHz时钟时,每1μs加1),这样以机器周期为基准可以用来测量时间间隔。

在计数器工作方式下,加至外部引脚的待测信号发生从1到0的跳变时计数器加1,这样在计数闸门的控制下可以用来测量待测信号的频率。

外部输入在每个机器周期被采样一次,这样检测一次从1到0的跳变至少需要2个机器周期(24个振荡周期),所以最大计数速率为时钟频率的1/24(使用12MHz时钟时,最大计数速率为500kHz),但由于实际会产生误差,从而达不到理论值500kHz。

故采用了一个分频电路将进行100分频。

 

5软件设计

5.1数字时钟模块

5.1.1定时程序设计

单片机的定时功能也是通过计数器的计数来实现的,此时的计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲,也就是每经过1个机器周期的时间,计数器加1。

如果MCS-52采用的12MHz晶体,则计数频率为1MHz,即每过1us的时间计数器加1。

这样可以根据计数值计算出定时时间,也可以根据定时时间的要求计算出计数器的初值。

MCS-51单片机的定时器/计数器具有4种工作方式,其控制字均在相应的特殊功能寄存器中,通过对特殊功能寄存器的编程,可以方便的选择定时器/计数器两种工作模式和4种工作方式。

定时器/计数器工作在方式0时,为13位的计数器,由TLX(X=0、1)的低5位和THX的高8位所构成。

TLX低5位溢出则向THX进位,THX计数溢出则置位TCON中的溢出标志位TFX.

当定时器/计数器工作于方式1,为16位的计数器。

本设计师单片机多功能定时器,所以MCS-51内部的定时器/计数器被选定为定时器工作模式,计数输入信号是内部时钟脉冲,每个机器周期产生一个脉冲使计数器增1。

5.1.2实时时钟实现的基本方法

时钟的最小计时单位是秒,但使用定时器的方式1,最大的定时时间也只能达到131ms。

我们可把定时器的定时时间定为50ms。

这样,计数溢出20次即可得到时钟的最小计时单位:

秒。

而计数20次可以用软件实现。

秒计时是采用中断方式进行溢出次数的累积,计满20次,即得到秒计时。

从秒到分,从分到时是通过软件累加并进行比较的方法来实现的。

要求每满1秒,则“秒”单元中的内容加1;“秒”单元满60,则“分”单元中的内容加1;“分”单元满60,则“时”单元中的内容加1;“时”单元满24,则将时、分、秒的内容全部清零。

5.1.3系统软件设计流程图

主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间。

开始

启动定时器

按键检测

 

时间显示

 

图5.1主程序流程图

按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加1;如果没有按下,就检测分按键是否按下,分按键如果按下,分就加1;如果没有按下,就检测时按键是否按下,时按键如果按下,时就加1;如果没有按下,就把时间显示出来。

开始

N

秒按键按下?

Y

秒加一

N

分按键按下?

Y

分加1

Y

N

时按键按下?

 

时加1

 

显示时间

 

结束

图5.2按键处理流程图

 

定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1;如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1;如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就显示时间。

 

开始

N

一秒时间到?

Y

秒单元加1

 

N

60秒时间到?

 

Y

秒单元清零,分单元加1

 

N

60分钟到?

 

Y

分单元清零,时单元加1

 

N

24小时到?

Y

时单元清零

时间显示

中断返回

图5.3定时器中断流程图

时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。

5.2数字温度计

5.2.1读取数据程序设计

DSl8B20的主要数据元件有:

64位激光LaseredROM,温度灵敏元件和非易失性温度告警触发器TH和TL。

DSl8B20可以从单总线获取电源,当信号线为高电平时,将能量贮存在内部电容器中;当单信号线为低电平时,将该电源断开,直到信号线变为高电平重新接上寄生(电容)电源为止。

此外,还可外接5V电源,给DSl8B20供电。

DSl8B20的供电方式灵活,利用外接电源还可增加系统的稳定性和可靠性.

5.2.2数据处理程序设计

读出温度数据后,LOW的低四位为温度的小数部分,可以精确到0.0625℃,LOW的高四位和HIGH的低四位为温度的整数部分,HIGH的高四位全部为1表示负数,全为0表示正数。

所以先将数据提取出来,分为三个部分:

小数部分、整数部分和符号部分。

小数部分进行四舍五入处理:

大于0.5℃的话,向个位进1;小于0.5℃的时候,舍去不要。

当数据是个负数的时候,显示之前要进行数据转换,将其整数部分取反加一。

还因为DS18B20最低温度只能为-55℃,所以可以将整数部分的最高位换成一个“-”,表示为负数。

5.2.3系统软件设计流程图

开始

N

C51寄存器初始化

DS18B20存在?

Y

温度转换命令

读取温度

温度数据处理

温度显示

图5.4DS18B20初始化流程图

开始

 

总线置1并延时

 

返回

总线置1

总线置0并480us

图5.5

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

当前位置:首页 > 高等教育 > 经济学

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

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