基于51单片机的五篇论文

上传人:痛*** 文档编号:100619470 上传时间:2022-06-03 格式:DOC 页数:107 大小:2.75MB
收藏 版权申诉 举报 下载
基于51单片机的五篇论文_第1页
第1页 / 共107页
基于51单片机的五篇论文_第2页
第2页 / 共107页
基于51单片机的五篇论文_第3页
第3页 / 共107页
资源描述:

《基于51单片机的五篇论文》由会员分享,可在线阅读,更多相关《基于51单片机的五篇论文(107页珍藏版)》请在装配图网上搜索。

1、 . . . 目 录摘要IABSTRACTII1 引言12 功能要求13 方案论证与设计13.1 控制部分的方案选择13.2 测温部分的方案选择13.3 显示部分的方案选择24 系统硬件电路设计24.1 主控器 AT89C5224.2 时钟电路 DS130234.2.1. DS1302的性能特性34.2.2 DS1302数据操作原理34.3 测温电路的设计54.3.1 温度传感器工作原理54.3.2 DS18B20与单片机的接口电路84.4 显示电路的设计94.5 键盘接口的设计105 系统程序的设计105.1 阳历程序设计105.2 时间调整程序设计115.3 温度程序设计125.3.1 主

2、程序125.3.2 读出温度子程序125.3.3 温度转换命令子程序125.3.4 计算温度子程序135.3.5显示数据刷新子程序13调试与性能分析136.1 调试步骤146.2 性能分析14总结14参考文献14致14103 / 107基于51单片机的电子万年历的设计摘 要电子万年历是单片机系统的一个应用,由硬件和软件相配合使用。硬件由主控器、时钟电路、温度检测电路、显示电路、键盘接口5个模块组成。主控模块用AT89C52、时钟电路用时钟芯片DS1302、显示模块用LED数码管、温度检测采用DS18B20温度传感器、键盘接口电路用普通按键接上拉电阻完成;软件利用C语言编程实现单片机程序控制。单

3、片机通过时钟芯片DS1302获取时间数据,DS18B20采集温度信号送该给单片机处理,单片机再把时间数据和温度数据送给74LS154译码,然后通过三极管C9015放大驱动LED数码管显示阳历年、月、日、时、秒、闹钟、星期、温度。关键词 电子万年历;单片机;温度传感器;时钟;数码显示AbstractElectronic perpetual calendar which is an application of the single-chip processor system, is utilized by combining hardware and software. And Hardware

4、 is composed of five modules: Main control unit, clock circuit, temperature test circuit, display circuit, keyboard interface. Main control board adopts AT89S52, clock circuit adopts the DS1302 clock chip, display module adopts the LED digital tube, and temperature test adopts the DS18B20 temperatur

5、e sensor, keyboard interface circuit is completed by connecting ordinary button with pull-up resistor. Software takes advantage of C to program, so as to realize the programmed control of single-chip processor. Single-chip processor gets the time data through using the DS1302 clock chip. The DS18B20

6、 gathers temperature signals and transmits them to single-chip processor. Then, single-chip processor transmits the time data and the temperature data to the 74LS154 decoder. Lastly, the LED displays solar calendar year, year, month, day, hour, minute, second, alarm clock, week and temperature with

7、being enlarged and driven by the C9015 triode.Keywords:Electronic perpetual calendar; single-chip processor; temperature sensor; clock; digital display1 引言随着微电子技术和超大规模集成电路技术的不断发展,家用电子产品不但种类日益丰富,而且变得更加经济实用,单片微型计算机体积小、性价比高、功能强、可靠性高等独有的特点,在各个领域得到了广泛的应用。电子万年历是一种应用非常广泛的日常计时工具,数字显示的日历钟已经越来越流行,特别是适合在家庭居室、办

8、公室、大厅、会议室、车站和广场等使用。LED数字显示的日历钟显示清晰直观、走时准确、可以进行夜视,并且还可以扩展出多种功能。功能也越来越齐全,除了公历年月日、时分秒、星期显示与闹铃。但通过我们对各种电子钟表、历的不断观察总结发现目前市场的钟、历都存在一些不足之处,比如:时钟不精确、产品成本太高、无环境温度显示等,这都给人们的使用带来了某些不便。为此设计了一种功能全面、计时准确、成本低廉的基于51单片机的万年历。2 功能要求1. 万年历能用数码管显示阳历年、月、日、星期、小时、分、秒并设置指定时间的闹铃。2. 数字式温度计要求测温围-50100C, LED数码管直读显示。3 方案论证与设计3.1

9、 控制部分的方案选择1. 用可编程逻辑器件设计。可采用ALTERA公司的FLEX10K系列PLD器件。设计起来结构清晰,各个模块,从硬件上设计起来相对简单,控制与显示的模块间的连接也会比较方便。但是考虑到本设计的特点,EDA在功能扩展上比较受局限,而且EDA占用的资源也相对多一些。从成本上来讲,用可编程逻辑器件来设计也没有什么优势。 2. 用凌阳16位单片机设计。凌阳16位单片机有丰富的中断源和时基,方便本实验的设计。它的准确度相当高,并且C语言和汇编兼容的编程环境也很方便来实现一些递归调用。I/O口功能也比较强大,方便使用。用凌阳16位单片机做控制器最有特色的就是它的可编程音频处理,可完成语

10、音的录制播放和识别。这些都方便对设计进行扩展,使设计更加完善。成本也相对低一些。但是,在控制与显示的结合上有些复杂,显示模组资源相对有限,而且单片机的稳定性不是很高。3. 主控芯片使用51系列AT89C52单片机,时钟芯片用美国DALLAS公司推出的一种高性能、低功耗、带RAM的时钟DS1302。采用DS1302作为主要计时芯片,可以做到计时准确。更重要的是,DS1302可以在很小电流的后备电源(2.55V电源,在2.5V时耗电小于300nA)下继续计时,停电后时钟无需重新调整,并可编程选择多种充电电流来对后备电源进行慢速充电,可以保证后备电源基本不耗电,还可自设闹铃,阳历、星期与年月日自动对

11、应。本系统采用了此方案。3.2 测温部分的方案选择1.在日常生活与工农业生产中经常要乃至温度的检测与控制,传统的测温元件有热电偶和热电阻。而热电偶和热电阻测一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作成本高。2.与前面相比,采用美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20作为检测元件,测温围为-55125,最大分辨率可达0.0625。DS18B20可以直接读出被测温度值,而且采用3线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。3.3 显示部分的方案选择1. 液晶显示方式。液晶显示效果

12、出众,可以运用菜单项来方便操作,但是在显示时,特别是使用秒表功能时扫描速度跟不上,屏幕会有明显的闪烁。而且由于61板的存储空间有限,液晶显示就不能与语音播抱程序同时实现。这些大大影响了电子万年历的性能。2. 相比液晶显示,8段数码管虽然操作比液晶显示略显繁琐,但可视围十分宽,而且经济实惠,也不需要复杂的驱动程序。所以最后选择LED数码管显示方案。综上所述,按照系统设计功能的要求,确定硬件系统由主控制器、时钟模块、测温电路、显示模块、键盘接口共5个模块组成,总体系统构成框图如图3.1所示。DS1302时钟模块AT89C52主控制器键盘扫描电路DS18B2温度探测数码显示电路图3.1 电子万年历系

13、统构成框图4 系统硬件电路设计电子万年历电路原理图见附件一,系统由主控制器AT89C52、时钟芯片DS1302、温度传感器DS18B20传感器、显示电路与键盘扫描电路组成。4.1 主控器 AT89C52ATMEL公司生产的AT89C52单片机采用高性能的静态80C51设计,由先进工艺制造,并带有非易失性Flsah程序存储器。它是一种高性能、低功耗的8位CMOS微处理芯片,市场应用最多。主要性能特点有: 8KB Flash ROM,可以檫写1000次以上,数据保存10年。 256字节部RAM。 电源控制模式时钟可停止和恢复;空闲模式;掉电模式。 6个中断源。4个中断优先级。 4个8位I/O口。

14、全双工增强型UART。 3个16位定时/计数器,T0、T1(标准80C51)和增加的T2(捕获和比较)。 全静态工作方式:024MHz。4.2 时钟电路 DS13024.2.1. DS1302的性能特性实时时钟,可对秒、分、时、日、周、月以与带闰年补偿的年进行计数;用于高速数据暂存的318位RAM;最少引脚的串行I/O;2.55.5V电压工作围;2.5V时耗电小于300nA;用于时钟或RAM数据读/写的单字节或多字节(脉冲方式)数据传送方式;简单的3线接口;可选的慢速充电(至Vcc1)的能力。DS1302时钟芯片包括实时时钟/日历和31字节的静态RAM。它经过一个简单的串行接口与微处理器通信。

15、实时时钟/日历提供秒、分、时、日、周、月和年等信息。对于小于31天的月和月末的日期自动调整,还包括闰年校正的功能。时钟的运行可以采用24h或带AM(上午)/PM(下午)的12h格式。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302有主电源/后备电源双电源引脚:Vcc1在单电源与电池供电的系统中提供低电源,并提供低功率的电池备份;Vcc2在双电源系统中提供主电源,在这种运用方式中,Vcc1连接到备份电,以便在没有主电源的情况下能保存时间信息以与数据。DS1302由Vcc1或Vcc2中较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给D

16、S1302供电;当Vcc2小于Vcc时, DS13026由Vcc1供电。4.2.2 DS1302数据操作原理DS1302在任何数据传送时必须先初始化,把RST脚置为高电平,然后把8位地址和命令字装入移位寄存器,数据在SCLK的上升沿被输入。无论是读周期还是写周期,开始8位指定40个寄存器中哪个将被访问到。在开始8个时钟周期,把命令字节装入移位寄存器之后,另外的时钟周期在读操作时输出数据,在写操作是写入时写入数据。时钟脉冲的个数在单字节方式下为8加8,在多字节方式下为8加字节数,最大可达248字节数。如果在传送过程中置RST脚为低电平,则会终止本次数据传送,并且I/O引脚变为高阻态。上电运行时,

17、在Vcc大于等于2.5V之前,RST脚必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。DS1302的引脚与部结构图如图4.1所示,表4.1为各引脚的功能。DS1302的控制字如图4.2所示。控制字节的最高位(位7)必须是逻辑1;如果它为0,则不能把数据写入到DS1302中。位6如果为0,则表示存取日历时钟数据;为1表示存取RAM数据。位51(A4A0)指示操作单元的地址。最低有效位(位0)如为0,表示要进行写操作;为1表示进行读操作。控制字节总是从最低位开始输入/输出。为了提高对32个地址的寻址能力(地址/命令位15=逻辑1),可以把时钟/日历或RAM寄存器规定为多字节(bu

18、rst)方式。位6规定时钟或RAM,而位0规定读或写。在时钟/日历寄存器中的地址931或RAM寄存器中的地址31不能寄存数据。在多字节方式中,读或写从地址0的位0开始。必须按数据传送的次序写最先的8个寄存器。但是,当以多字节方式写RAM时,为了传送数据不必写所有31字节。不管是否写了全部31字节,所写的每一字节都将传送至RAM。12345678Vcc1SCLKI/ORSTVcc2X1X2GND电源控制Vcc1Vcc2GND输入移位寄存器I/OSCLK实时时钟命令与控制逻辑振荡器与分频器318RAMRSTX2X132.768kHzDATA BUS图4.1 DS1302引脚与内部结构表 4.1 D

19、S1302引脚功能引脚号引脚名称功 能1Vcc2主电源2,3X1,X2振荡源,外界32.768kHz晶振4GND地线5RST复位/片选线6I/O串行数据输入/输出端(双向)7SCLK串行数据输入端8Vcc1后备电池7 6 5 4 3 2 1 01RAMA4A3A2A1A0RAM图 4.2 DS1302的控制字DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。其日历、时间寄存器与其控制字见表3.2,其中奇数为读操作,偶数为写操作。时钟暂停:秒寄存器的位7定义位时钟暂停位。当它为1时,DS1302停止震荡,进入低功耗的备份方式。通常在对DS1302进行写操

20、作时(如进入时钟调整程序),停止震荡。当它为0时,时钟将开始启动。AMPM/1224小时方式:小时寄存器的位7定义为12或24小时方式选择位。它为高电平时,选择12小时方式。在此方式下,位5是AM/PM位,此位是高电平时表示PM低电平表示AM。在24小时方式下,位5为第二个10小时位(2023h)。表 4.2 部寄存器地址和容积存器名命令字节取值围积存器容写读76543210秒积存器80H81H0059CH10SSEC分积存器82H83H0059010 minMIN小时积存器84H85H0023或011212/24010A/PHRHR日积存器85H87H0128,29,30,310010DAT

21、EDATE月积存器88H89H011200010MMONTH周积存器8AH8BH010700000DAY年积存器8CHD3H009910YEARYEARDS1302的晶震选用32.768kHz,电容推荐值为33pF,因为震荡频率较低,也可以不接电容,对计时精度影响不大。4.3 测温电路的设计测温电路主要使用温度传感器DS18B20,由于精度要求不高所以采用2位共阳LED数码管以动态扫描法实现温度显示。其设计原理图如附件一所示。4.3.1 温度传感器工作原理DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度

22、,并且可根据实际要示通过简单的编程实现912位的数字值读数方式。DS18B20的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在唯一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压围为3.03.5V;零待机功耗;温度以9或12数字量读出;用户可定义的非易失性温度报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。DS18B20采用3脚PR35封装或脚SOIC封装,其部结构框图如图4.3所示。64位ROM的位结构如图4.4所示。开始8位是产品类型的编号,接着

23、是每个器件的唯一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。非易失性温度报警触发器TH和TL,可通过软件写入户报警上下限。DS18B20温度传感器的部存储器还包括一个调整暂存RAM和一个易失性的可电擦除的EERAM。高速暂存RAM的结构为8字节存储器,结构如图4.5所示。头2个字节包含测得的温度信息,第3和第4节是TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节为配置寄存器,它的容用于确定温度值的数字转换分辨率。DS18B20工作时按此寄存器中的分辨率将温度转换为相应64位ROM 和单线接口图4.DS18B20内部结构

24、图存储器与控制逻辑高速缓存温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC发生器 I/OCVDD8位检验CRC48位序列号8位工厂代码(10H) MSB LSB MSB LSB MSB LSB 图4.4 64位ROM结构图温度LSB1字节2字节3字节4字节5字节EEROM6字节7字节8字节9字节温度MSBTH用户字节1TL用户字节2TH用户字节1配置寄存器TL用户字节2保留保留保留CRC图4.5 高速暂存RAM结构图精度的数值。该字节各位的定义如图4.6所示。低5位一直1,M是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去

25、改动,R1和R0决定温度转换的精度位数,即用来设置分辨率,定义方法见表4.3。由表4.3可见,DS18B20温度转换的时间比较长,而且设定的分辨率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625C/

26、LSB形式表示。温度值格式如图4.7所示。TMR1R011111图 4.6 配置寄存器表 4.3 DS18B20分辨率的定义规定R1R0分辨率/位测量最大转换时间/ms00993.750110187.510113751112750表 4.4 DS18B20温度与测得值对应表温度/C二进制表示十六进制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2H+0.50000 0000 0000 10000008H00

27、000 0000 0000 00000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90HLS字节232221202-12-22-32-4MS字节SSSSSS6S5S4图 4.7 温度数字值格式预置计数器1减法计数器1低温度系数振荡器减到0减法计数器2预置温度寄存器减到0高温度系数振荡器斜率累加器计数比较器增加图 4.8 DS18B20测温原理图停止当符号位S=0时,表现测得的温度值为正值,可以直接将二进

28、制位转换为十进制,当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码再计算十进制值。表4.4是一部分温度值对应的二进制温度数据。DS18B20完成温度转换后,把测得的温度值与RAM中的TH、TL字节容作比较。若TTH或TTL,则将该器件的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机根据ROM的前56位来计算CRC值,并和存入DS18B20的CRC作比较,以判断主机收到的ROM数据是否正确。DS18B20的测温原理如图4.8所示。图中低温度系数晶振的振荡频率

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

30、低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值就是所测温度值。图4.8中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门未关闭就重复上述过程,直到温度寄存器值达到被测温度值。另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲) 发ROM功能指令 发存储器操作命令 处理数据。4.3.2 DS18B20与单片机的接口电路DS18B20可以采用两种方式供电,

31、一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为引线,3脚接电源。另一种是寄生电源供电方式。单片机端口接单线总线,为保证在有效的DS18B20时钟周期提供足够的电流,可用一个MOSFET管来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD和GND端均接地。由于单线制只有一根线,因此发送接口必须是三态的。4.4 显示电路的设计显示部分采用普通的共阳数码管显示,采用动态扫描,以减少硬件电路。考虑到第一次扫描17位数码管显示时会出现闪烁情况,设计时17个数码管分3排同时扫描。第一排8

32、个数码管分别为千年、百年、十年、年、十月、月、十日、日,第二排7个数码管分别为十时、时、十分、分、十秒、秒,第三排3个数码管分别为星期、温度(两位)显示。显示时采用串行口输出段码,用1片74LS164来驱动3排数码管,这样扫描一次只需7ms。表 4.5 74LS164特性表操作模式输 入输 出复 位MRABQ0Q1Q7移 位LLQ0Q6HLLLQ0Q6HLHLQ0Q6HHLLQ0Q6HHHHQ0Q674LS164部为8个D触发器,用以实现数据的串行移位,74LS164特性见表4.5。单片机以串口方式0(移位寄存器方式)输出数据,3片74LS164作为3排共阳数码管的串/并转换显示接口。74LS

33、164为TTl单向8位移位寄存器,可实现串行输入,并行输出。其中A、B(第1、2脚)为串行数据输入端,2个引脚按逻辑“与”运算规律输入信号,共一个输入信号时可并接,共同作为输入脚。CP(第8脚)为时钟输入端,可连接到串行口的TXD端。每一个时钟信号的上升沿加到CP端时,移位寄存器移一位。8个时钟脉冲过后,8位二进制数全部移入74LS164中。MR脚(第9脚)为复位端,当该脚为低电平时,移位寄存器各位复0;只有当它高电平时,时钟脉冲才起作用。Q1Q8(第36和1013引脚)并行输出端分别接数码管的ha(因为串口从低位开始传送)各段对应的引脚上。在给出了8个脉冲后,最先进入74LS164的第一个字

34、节数据到达了最高位。再来1个脉冲,第1个脉冲就会从最高位移出,进入下个74LS164的第1位。3片74LS164首尾相串,而时钟端则接在一起。这样,当输入8个脉冲时,从单片机RXD端输出的第1字节数据就进入了第1片74LS164中,而当第2个8个脉冲到来后,第1字节数据就进入了第2片74LS164,而随后的第2字节的数据则进入了第1片74LS164。这样,当第3个8个脉冲完成后,首次送出的数据被送到了最下面的164(第3片)中,其它数据依次出现在第二和第一片74LS164中,实现了数据在74LS164中的串行输入、并行输出。在方式0状态下,串行口为同步移位寄存器方式,其波特率是固定的,为fos

35、c/12。数据由RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.1)端输出。发送、接收数据时低位在先。所以根据提供的硬件电路图,在编写程序时,查共阳数码管的段码的二进制数据应该将正常的共阳数据管09的二进制值按位反序排序,如原来的二进制为11000000(C0H),要改为00000011(03H),就能使数码管正常显示。4.5 键盘接口的设计由于按键只有5个,用普通按钮接10K上拉电阻,用查询法完成读键功能。5 系统程序的设计5.1 阳历程序设计因为使用了时钟芯片DS1302,阳历程序只需从DS1302各寄存器中读出年、周、月、日、小时、分、秒等数据,再处理即可。在首次对DS130

36、2进行操作之前,必须对它进行初始化,然后从DS1302中读出数据,再经过处理后,送给显示缓冲单元。阳历程序流程图见图5.1所示。初始化13021302开始振荡从1302中读出年、周、月、日、小时、分、秒开 始读出的数据都为BCD码,将其高低位分离送显示缓冲单元图5.1 阳历程序流程图5.2 时间调整程序设计调整时间用5个调整按钮,1个作为移位、控制用,2个作为加和减用,还有2个作为闹钟调整使用,分别定义为控制按钮、加按钮、减按钮、闹钟加按纽、闹钟减按纽。在调整时间过程中,要调整的位与别的位应该有区别。所以增加了闪烁功能,即调整的位一直在闪烁,直到调整下一位。闪烁原理就是,让要调整的一位每隔一定

37、时间熄灭一次,比如说50ms。利用定时器计时,当达到50ms溢出时,就送给该位熄灭符,在下一次溢出时,再送正常显示的值,不断交替,直到调整该位结束。此时送正常显示值给该位,再进入下一位调整闪烁程序。时间调整程序流程图如图5.2所示。5.3 温度程序设计系统程序主要包括主程序、读出温度子程序、温度转换命令子程序、计算温度子程序、显示数据刷新子程序等等。5.3.1 主程序主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值,温度测量每1s进行一次。其程序流程图见5.3。5.3.2 读出温度子程序主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据

38、的改写。其程序流程图如图5.4所示。5.3.3 温度转换命令子程序温度转换子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如图5.5所示。等待按键程序减键有效年减1控制键有效,进入年调整程序员加键有效年加1等待按键程序减键有效日减1控制键有效,进入日调整程序员加键有效日加1等待按键程序减键有效小时减1控制键有效,进入小时调整程序员加键有效小时加1等待按键程序减键有效月减1控制键有效,进入月调整程序员加键有效月加1等待按键程序减键有效星期减1控制键有效,进入星期调整程序员加键有效星期加1等待按

39、键程序减键有效分减1控制键有效,进入分调整程序员加键有效分加1控制键有效,跳出时间调整程序,进入主循环程序图 5.2 时间调整程序程序流程图发DS18B20复位命令发跳过ROM命令发读取温度命令读取操作,CRC校验9字节完?CRC校验正确?移入温度暂存器结束NYYN初始化调用显示子程序1S到?初次上电?读出温度值温度计算处理显示数据刷新发温度转换开始命令NYYN图5.3 DS18B20温度计主程序流程图 图5.4 读出温度子程序流程图5.3.4 计算温度子程序计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图5.6所示。5.3.5显示数据刷新子程序显

40、示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。程序流程图如图5.7所示。发跳过ROM命令发温度转换开始命令结束发DS18B20复位命令图5.5 温度转换命令子程序流程图开始温度零下?温度值取补码置“”标志置“+”标志结束计算小数位BCD值计算整数位BCD值NY温度数据移入显示寄存器十位数0?百位数0?十位数显示符号百位数不显示百位数显示数据(不显示符号)结束NNYY图5.6 计算温度子程序流程图图5.7 显示数据刷新子程序流程图 调试与性能分析6.1 调试步骤系统的调试分为硬件调试和软件调试。其中硬件调试主要是检测硬件电路是否有短路、断路

41、、虚焊现象。时钟和测温部分的硬件电路很简单,DS1302通过3根线、DS18B20只通过1根线与单片机相连接,很容易检测,主要是检测引脚晶振和电源是否接好。另外可以通过软件来调试硬件,如编写一个简单的显示程序来测试显示电路连接是否正确。接下来可进行软件调试,可以编写只含DS1302的计时和读写程序、显示程序,测试DS1302是否正常工作。最后调试日历、时间、闹钟、报警和温度程序。6.2 性能分析 计时器最关键的是计时的精度。电子万年历中DS1302上最好使用专用的晶振。经测试制作的电子万年历,误差较大,设计可以通过换用标准晶振或用软件进行修正。 总结此次设计立足于电子技术的实际运用,不断实践,

42、开拓了思维,设计以考查、调研、搜集资料、拟订方案、进行系统规划、编程、仿真、调试的流程,使我深刻的体会到了在学习我们专业的过程中理论与实践相结合的重要性,同时也解决了以前学习比较模糊的专业知识点,使自己掌握的专业知识更加结构化、系统化。总之,本次设计在各位领导的精心安排与大力支持下;在指导老师的耐心指导下;在各位同学和朋友的贴心帮助下解决了许多设计中的实际困难,我以最低的成本和最简单的方案设计出了功能强大的电子万年历。参考文献1 AT89C51,.zlgmcu.,周立功单片机发展2 DS1302Trickle Charge Timekeeping Chip,.dalsemi.3 嘉新 明 于明

43、淳 DS18B20在林学气象测量中的应用,2002年7月第30卷第4期4 敏,单片微机万年历设计,职大学报2002年第2期5 邸春芳,电脑实时时钟的设计,(西南石油学院电子信息工程学院)6 维普资讯 .cqvip.7 王越明,电子万年历的设计,煤矿机电设备厂,维普资讯 .cqvip.8 适用于51系列单片机的一种万年历优化算法,维普资讯 .cqvip.9 吴有富,推导万年星期历的turoc-c程序,民族学院10 峰 周炳峻 晓静,遥控电脑万年历的改造,应用与改造11 藤迪安,最新万年历,珠算1996年第5期12 志军 新民,数字温度传感器DS18B20与其应用,2003年3月第1卷第1期13

44、江太辉 邓展威 DS18B20数字式温度传感器的特性与应用电子技术2003年第12期14 跃东DS18B20集成温度传感器原理与其应用,机电学院学报2002年l2月第l7卷第4期致 在各位领导的悉心关怀下;在郭仿军老师的耐心指导下;在各位同学、朋友的贴心帮助下,本设计成功完成。在我的毕业设计与论文中无不倾注着郭老师辛勤的汗水和心血。她对科学一丝不苟、认真的工作作风,对指导毕业设计工作默默无闻、积极负责的态度都深深影响着即将走出社会的我。让我不仅系统的掌握了专业知识体系,也让我有了正确的态度和坚定的信心去面对未来。当然我挚亲的朋友、同学也给予了我太多的帮助,大家相互鼓励、一起探讨,奋斗了多个日日

45、夜夜,让我们的毕业设计顺利完成。 在此,我对所有关心我们的领导、老师和同学、朋友表示衷心的感!马培2006年6月于目 录第1节 引言 21.1 数字频率计概述21.2 频率测量仪的设计思路与频率的计算21.3 基本设计原理3第2节 数字频率计(低频)的硬件结构设计42.1系统硬件的构成42.2系统工作原理图42.3AT89C51单片机与其引脚说明 52.4信号调理与放大整形模块72.5时基信号产生电路72.6显示模块8第3节 软件设计123.1 定时计数 123.2 量程转换 123.3 BCD转换123.4 LCD显示12第4节 结束语 13参考文献 14附录 汇编源程序代码15 基于51单

46、片机的数字频率计第1节 引言本应用系统设计的目的是通过在“单片机原理与应用”课堂上学习的知识,以与查阅资料,培养一种自学的能力。并且引导一种创新的思维,把学到的知识应用到日常生活当中。在设计的过程中,不断的学习,思考和同学间的相互讨论,运用科学的分析问题的方法解决遇到的困难,掌握单片机系统一般的开发流程,学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合。全能提高个人系统开发的综合能力,开拓了思维,为今后能在相应工作岗位上的工作打下了坚实的基础。1.1数字频率计概述数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的

47、数字测量仪器。它的基本功能是测量正弦信号,方波信号与其他各种单位时间变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。 本数字频率计将采用定时、计数的方法测量频率,采用一个1602A LCD显示器动态显示6位数。测量围从1Hz10kHz的正弦波、方波、三角波,时基宽度为1us,10us,100us,1ms。用单片机实现自动测量功能。基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。1.2频率测量仪的设计思路与频率的计算图1 频率测量原理图

48、频率测量仪的设计思路主要是:对信号分频,测量一个或几个被测量信号周期中已知标准频率信号的周期个数,进而测量出该信号频率的大小,其原理如右图1所示。若被测量信号的周期为,分频数m1,分频后信号的周期为T,则:T=m1Tx 。由图可知: T=NTo(注:To为标准信号的周期,所以T为分频后信号的周期,则可以算出被测量信号的频率f。)由于单片机系统的标准频率比较稳定,而是系统标准信号频率的误差,通常情况下很小;而系统的量化误差小于1,所以由式T=NTo可知,频率测量的误差主要取决于N值的大小,N值越大,误差越小,测量的精度越高。1.3 基本设计原理基本设计原理是直接用十进制数字显示被测信号频率的一种

49、测量装置。它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。所谓“频率”,就是周期性信号在单位时间(1s)变化的次数。若在一定时间间隔T测得这个周期性信号的重复变化次数N,则其频率可表示为f=N/T。其中脉冲形成电路的作用是将被测信号变成脉冲信号,其重复频率等于被测频率fx。时间基准信号发生器提供标准的时间脉冲信号,若其周期为1s,则门控电路的输出信号持续时间亦准确地等于1s。闸门电路由标准秒信号进行控制,当秒信号来到时,闸门开通,被测脉冲信号通过闸门送到计数译码显示电路。秒信号结束时闸门关闭,计数器停止计数。由于计数器计得的脉冲数N是在1秒时间的累计数,所以被测频率fx=NHz。

50、第2节 数字频率计(低频)的硬件结构设计2.1 系统硬件的构成本频率计的数据采集系统主要元器件是单片机AT89C51,由它完成对待测信号频率的计数和结果显示等功能,外部还要有分频器、显示器等器件。可分为以下几个模块:放大整形模块、秒脉冲产生模块、换档模拟转换模块、单片机系统、LCD显示模块。各模块关系图如图2所示:图2 数字频率计功能模块2.2 系统工作原理图 该系统工作的总原理图如图3所示:图3 数字频率计系统工作原理图2.3 AT89C51单片机与其引脚说明89C51是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,它提供下列标准特征:4K字节的程序存储器,128字节的RAM,32条

51、I/O线,2个16位定时器/计数器, 一个5中断源两个优先级的中断结构,一个双工的串行口, 片上震荡器和时钟电路。引脚说明:VCC:电源电压GND:地P0口:P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。当对0端口写入1时,可以作为高阻抗输入端使用。当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。在这种模式下,P0口具有部上拉电阻。在EPROM编程时,P0口接收指令字节,同时输出指令字节在程序校验时。程序校验时需要外接上拉电阻。P1口:P1口是一带有部上拉电阻的8位双向I/O口。P1口的输出缓冲能接受或输出4个TTL逻

52、辑门电路。当对P1口写1时,它们被部的上拉电阻拉升为高电平,此时可以作为输入端使用。当作为输入端使用时,P1口因为部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。P2口:P2是一带有部上拉电阻的8位双向的I/O端口。P2口的输出缓冲能驱动4个TTL逻辑门电路。当向P2口写1时,通过部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX DPTR)时,P2口送出高8位地址数据。在这种情况下,P2口使用强大的部上拉电阻功能当输出1时。当利用8位地

53、址线访问外部数据存储器时(例MOVX R1),P2口输出特殊功能寄存器的容。当EPROM编程或校验时,P2口同时接收高8位地址和一些控制信号。P3口:P3是一带有部上拉电阻的8位双向的I/O端口。P3口的输出缓冲能驱动4个TTL逻辑门电路。当向P3口写1时,通过部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。P3口同时具有AT89C51的多种特殊功能,具体如下表1所示:端口引脚第二功能P3.0RXD (串行输入口)P3.1TXD(串行输出口)P3.2 (外部中断0)P3.3(外部中断1)P3.4T0(定时器0)P3.

54、5T1(定时器1)P3.6(外部数据存储器写选通)P3.7(外部数据存储器都选通)表1 P3口的第二功能RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期的高电平将使单片机复位。ALE/:当访问外部存储器时,地址锁存允许是一输出脉冲,用以锁存地址的低8位字节。当在Flash编程时还可以作为编程脉冲输出()。一般情况下,ALE是以晶振频率的1/6输出,可以用作外部时钟或定时目的。但也要注意,每当访问外部数据存储器时将跳过一个ALE脉冲。:程序存储允许时外部程序存储器的读选通信号。当AT89C52执行外部程序存储器的指令时,每个机器周期两次有效,除了当访问外部数据存储器时,将跳过两个信号

55、。/VPP:外部访问允许。为了使单片机能够有效的传送外部数据存储器从0000H到FFFH单元的指令,必须同GND相连接。需要主要的是,如果加密位1被编程,复位时EA端会自动部锁存。当执行部编程指令时,应该接到VCC端。XTAL1:振荡器反相放大器以与部时钟电路的输入端。XTAL2:振荡器反相放大器的输出端。在本次设计中,采用89C51作为CPU处理器,充分利用其硬件资源,结合D触发器CD4013,分频器CD4060,模拟转换开关CD4051,计数器74LS90等数字处理芯片,主要控制两大硬件模块,量程切换以与显示模块。下面还将详细说明。2.4 信号调理与放大整形模块放大整形系统包括衰减器、跟随

56、器、放大器、施密特触发器。它将正弦输入信号Vx整形成同频率方波Vo,幅值过大的被测信号经过分压器分压送入后级放大器,以避免波形失真。由运算放大器构成的射级跟随器起阻抗变换作用,使输入阻抗提高。同相输入的运算放大器的放大倍数为(R1+R2)/R1,改变R1的大小可以改变放大倍数。系统的整形电路由施密特触发器组成,整形后的方波送到闸门以便计数。由于输入的信号幅度是不确定、可能很大也有可能很小,这样对于输入信号的测量就不方便了,过大可能会把器件烧毁,过小可能器件检测不到,所以在设计中采用了这个信号调理电路对输入的波形进行阻抗变换、放大限幅和整形,信号调理部分电路具体实现电路原理图和参数如下图4所示:

57、 图42.5 时基信号产生电路:CD4013-双上升沿D触发器 ,引脚与功能见如下图5:CD4013 由两个一样的、相互独立的数据型触发器构成。每个触发器有独立的数据置位复位时钟输入和 Q与Q非输出。此器件可用作移位寄存器,且通过将Q非输出连接到数据输入,可用作计数器和触发器。在时钟上升沿触发时,加在D 输入端的逻辑电平传送到Q输出端。置位和复位或复位线上的高电平完成。图5 CD4013芯片引脚用功能图 CD4060-14位二进制串行计数器,引脚与功能见如下图6: CD4060 由一震荡器和14极二进制串行计数器位组成,震荡器的结构可以是RC或晶振电路。CR为高电平时,计数器清零且振荡器使用无效,所有的计数器位均为主从触发器 CP1非(和 CP0)的下降沿计数器以二进制进行计数,在时钟脉冲线上使用施密特触发器对时钟上升和下降时间无限制。 图6 CD4060芯片引脚用功能图时基信号的产生原理:本电路采用32768HZ晶体震荡器,利用CD4060芯片经过14级分频得到2HZ的信号(32768/214),在经过CD4013双D触发器经过二分频得到0.5HZ的方波,即输出秒脉冲信号使单片机进行计数。图七 秒脉冲产生电路原理图2.6 显示模块1602基本技术:1)、主要功能A、 40通道点阵LCD 驱动;B、 可选择当作行驱动或列驱动;C、 输入/输出信号:输出,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!