1、0单片机应用综合系统单片机应用课程设计报告目录一、 系统整体设计方案 .31.1 系统整体功能 .31.2 系统实现框图 .3二、 各功能模块电路设计与分析 .32.1 主控电路 .32.2 电源模块 .412.3 键盘模块 .42.4 显示模块 .42.5 温度模块 .52.6 时钟模块 .52.7 存储模块 .52.8 A/D 模块 .62.9 串行口模块 .7三、 软件设计 .73.1 键盘模块 .73.2 显示模块 .83.3 温度模块 .83.4 时钟模块 .93.5 存储模块 .113.6 A/D 模块 .173.7 串行口模块 .18四、 测试记录与分析 .214.1 仪器使用
2、.224.2 测试结果 .22五、 结束语 .22六、 参考文献 .22摘要本系统以单片机 SCC89C51RC+为核心,所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机 SCC89C51RC+,测温传感器使用 DS18B20,用 6 位共阳极 LED 数码管以串口传送数据,实现温度显示,FCB8563 时钟芯片,TLC549-AD 转换芯片(电位器调整电压大小作为模拟信号的输入),TLC5615-DA 转换芯片(是本次系统的扩展本分),24c02 非挥发 EEPROM 存储
3、器器件,采用的 IIC 总线技术。 。系统使用友好的人机交互界面,可以方便的调整时间的设置等,体现了系统的有效性及易操作性。2关键字 STC89C51 单片机 DS18B20 PCF8563 24C02 TLC549 TLC5615一、 系统整体设计方案1.1 系统整体功能本系统是基于 51 单片机设计而成的具有三大功能的小型系统,可以完成时间的显示、电压的改变显示、温度的测量及显示。1.2 系统实现框图二、 各功能模块电路设计与分析2.1 主控电路单片机 SCC89C51RC+具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用
4、二节电池供电。如下图所示。输入-输出口线 P0.0P0.7 P0 口 8 位双向口线 P1.0P1.7 P1 口 8 位双向口线P2.0P2.7 P2 口 8 位双向口线 P3.0P3.7 P3 口 8 位双向口线ALE 地址所存控制信号 PSEN 外部程序存储器选通信号EA 访问程序存储器控制信号 RST 复位信号 XTAL1 和 XTAL2 外接晶体引线端SCC89C51RC+74LS164 和数码管组成的数码管显示电路电源模块 5V 稳压源存储模块 24c02非挥发 EEPROM存储器器件时钟模块 PCF8563A/D 模块TLC549D/A 模块TLC5615独立键盘7 个按钮串口模块
5、Max232DS18B20 温度传感芯片扩展部分32.2 电源模块78XX 系列集成稳压器的典型应用电路如下图所示,这是一个输出正 5V 直流电压的稳压电源电路。IC 采用集成稳压器 7805,两个电解电容分别为输入端和输出端滤波电容,R 为负载电阻。当输出电较大时,7805 应配上散热板。2.3 键盘模块按健复位电路是上电复位加手动复位,使用比较方便,在程序跑飞时,可以手动复位,这样就不用在重起单片机电源,就可以实现复位。用独立式键盘可以分别调整温度计的上下限与时间的转换,同时 74LS164 和数码管组成的显示模块将被测温度值,模数转换的电压,时间显示出来。2.4 显示模块显示电路采用 3
6、 位共阳 LED 数码管或者 TC1602 字符型液晶显示管,从 P3 口 RXD,TXD 串口输出段码。当温度芯片 DS18B20 测量到实际的温度后,通过传感器及 A/D 转换器输送到 LED 数码管或者TC1602 字符型液晶显示管上给显示出来。2.5 温度模块4DS18B20 是一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现位的数字值读数方式。DS18B20 的测温原理是这这样的:器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器;高温度系数晶振随温度变化其振荡频率明显改变,所产
7、生的信号作为减法计数器的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20 就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器、温度寄存器中,计数器和温度寄存器被预置在55所对应的一个基数值。减法计数器对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器的预置值减到时,温度寄存器的值将加,减法计数器的预置将重新被装入,减法计数器重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出
8、用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。DS18B20 采用脚 PR35 封装,其电路连接图如下图所示。2.6 时钟模块PCF8563 是 PHILIPS 公司生产的低功耗 CMOS 实时时钟/日历芯片,芯片最大总线速度为 400kbits/s,每次读写数据后,其内嵌的字地址寄存器器会自动产生增量。PCF8563 的引脚排列如图所示表 1 PCF8563 的管脚描述符 号 管脚号 描 述OSCI 1 振荡器输入OSCO 2 振荡器输出 INT 3 终端输出(开漏:低电平有效)Vss 4 地 PCF8563 有 16 个 8 位寄存器,其中
9、包括:可自动增量的地址寄存器、内置 32.768kHz 的振荡器(带有一个内部集成电容)、分频器(用于给实时时钟 RTC 提供源时钟)、可编程时钟输出、定时器、报警器、掉电检测器和 400kHz 的 I2C 总线接口。所有 16 个寄存器设计成可寻址的 8 位并行寄存器,但不是所有位都有用。当一个 RTC 寄存器被读时,所有计数器的内容将被锁存,因此,在传送条件下,可以禁止对时钟/日历芯片的错读。5SDA 5 串行数据 I/O SCL 6 串行时钟输入CLKOUT 7 时钟输出(开漏) VDD 8 正电源I2C 总线用两条线(SDA 和 SCL)在芯片和模块间传递信息。SDA 为串行数据线,S
10、CL 为串行时钟线,这两条线必须用一个上拉电阻与正电源相连,其数据只有在总线不忙时才可传送。I2C 总线的系统配置参见图 2,产生信号的设备是传送器,接收信号的设备是接收器,控制信号的设备是主设备,受控制信号的设备是从设备。启动和停止条件 总线不忙时,数据线和时钟线保持在高电平。数据线(SDA)在下降沿而时钟线(SCL)为高电平时,为起动条件(S);数据线在上升沿而时钟线为高电平时为停止条件(P),参见图 3。位传送 每个时钟脉冲传送一个数据位,SDA 线 上的数据在时钟脉冲高电平时应保持稳定,否则将成 为控制信号,参见图 4。标志位 在起动条件和停止条件之间,传送器传送给接收器的 数据数量没
11、有限制。在每个 8 位字节后加一个标志位, 传送器便产生一个高电平的标志位,这时主设备产生一个附加标志位时钟脉冲。从接受器必须在接收到每个字节后产生一个标志位,主接收器也必须在接收从传送器传送的每个字节后产生一个标志位。在标志位时钟脉冲出现时,SDA 线应保持低电平(应考虑起动和保持时间)。传送器应在从设备接收到最后一个字节时变为低电平,而使接收器产生标志位,这时主设备即可产生停止条件。参见图 5。I2C 总线协议 6用 I2C 总线传递数据前,接收的设备应先标明地址,在 I2C 总线起动后,这个地址与第一个传送字节一起被传送出去。PCF8563 可以作为 一个从接收器或从传送器,此时的时钟信
12、号线 SCL 只能输入信号线, 数据信号线SDA 则为一条双向信号线。PCF8563 的从地址参见图 6。PCF8563 是带 I2C 总线具有极低功耗的多功能时钟/日历芯片,具有四种报警功能和定时功能;内部时钟电路、内部振荡电路、内部低电压检测以两线制 I2C 总线通信方式,不但使用外围电路简洁,而且增加了芯片的可靠性。本系统 PCF8563 与 89C51 接口采用下图所示接口方案。在 X1、X2 端接入32.768kHz 的石英晶振,将时钟源配置为片内振荡器。VDD 与地之间接入 1 个 1F 的大电容供电维持时钟芯片,锂电池(3.6V)同时开始工作,给时钟芯片供电,使时钟芯片工作不受影
13、响。PCF8563 与89C51 接口采用 3 根口线,PCF8563 的 INT 脚产生周期为 1s 的脉冲中断信号给 89C51 的 INT0 引脚,89C51 产生中断后,通过 I2C 总线读取 PCF8563 的基准时间。2.7 存储模块24c02 是一个非挥发 EEPROM 存储器器件,采用的 IIC 总线技术。24c02 在许多试验中都有出现。24c02 的应用,主要在存储一些掉电后还要保存数据的场合,在上次运行时,保存的数据,在下一次运行时还能够调出。 24c02 采用的 IIC 总线,是一种 2 线总线;一块 24c02 中有 256 个字节的存储空间。其设计电路如下所示:72
14、.8 A/D 模块芯片包含内部系统时钟、采样和保持电路、位转换电路、输出数据寄存器以及控制逻辑电路,它采用、 和 三根线实现与微控制器或微处理器进行串行通讯,其中和 作为输入控制,芯片选择端低电平有效,当为高电平时 输入被禁止,且输出处于高阻状态。在自的 端输入个外部时钟信号期间需要完成以下工作:读入前次转换结果;对本次转换的输入模拟信号采样并保持;启动本次转换开始。2.9 串行口模块MAX3232 为 RS-232 收发器,简单易用,单+5V 电源供电,仅需外接几个电容即可完成从 TTL 电平到 RS-232 电平的转换,电路如下图所示。三、 软件设计3.1 键盘模块#include “re
15、g51.h“void main()unsigned char key;while(1)key=kbscan(); /键盘扫描函数delay10ms(); /健消除抖动的延时函数void delay10ms()unsigned char i;8for(i=0xff;i0;i-);unsigned char kbscan()unsigned char sccode,recode;P1=0xf0; /发全“0”行扫描,列线输入if(P1 /延时去抖动if(P1 /逐行扫描初值while(sccodeZ /输出行扫描码if(P1return(sccode)+(recode); /返回特征码elsesccode=(sccode0)/直到字符串结束为止t+;for(i=0;i=16)