单片机原理与接口技术(C语言版)11课件_第1页
单片机原理与接口技术(C语言版)11课件_第2页
单片机原理与接口技术(C语言版)11课件_第3页
单片机原理与接口技术(C语言版)11课件_第4页
单片机原理与接口技术(C语言版)11课件_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机原理与接口技术

(C语言版)

第11章单片机应用实例主编:周国运清华大学出版社单片机原理与接口技术

(C语言版)

第11章单片机应第11章单片机应用实例目录11.1单片机应用开发方法11.2基于单片机的计算器设计11.3基于单片机的万年历设计第11章单片机应用实例目录本章要点

本章首先介绍单片机应用开发的方法,然后以计算器和带温度功能的万年历两个单片机应用实例,示范单片机应用系统的设计过程。本章要点11.1单片机应用开发方法主要内容11.1.1总体设计11.1.2硬件设计11.1.3软件设计11.1.4系统调试与测试11.1单片机应用开发方法主要内容11.1单片机应用开发方法

单片机系统是针对某一具体应用的专用系统,单片机的应用领域范围很广,控制形式多种多样,在不同场合下要求各不相同,但设计开发过程基本相同。

一个典型的单片机应用系统开发过程包括总体设计、硬件设计、软件设计、软硬件集成与调试、调试运行、性能测试等几个阶段组成。在调试过程中需要对系统进行修改和完善。11.1单片机应用开发方法 单片机系统是针对某一具体应11.1.1总体设计

1.研究开发对象和用户要求 2.拟订方案,确定功能、性能指标 3.软硬件功能划分

在系统方案确定之后,需要对系统软硬件功能合理安排,要根据系统的要求而定,一些硬件电路的功能可以由软件来实现,反之亦然。

11.1.1总体设计 1.研究开发对象和用户要求11.1.2硬件设计

1.系统硬件电路设计的一般原则选择典型电路、力求硬件电路规范化、模块化;选择功能强的芯片,简化电路设计;考虑以后系统功能的变化,留下扩展余地;系统中相关的器件要尽可能做到性能匹配;外接电路较多时,必须考虑其驱动能力;考虑系统可靠性与抗干扰问题去耦滤波、合理布线、信号隔离、看门狗电路等;11.1.2硬件设计 1.系统硬件电路设计的一般原则

2.硬件可靠性设计

采用隔离和滤波技术抑制输入/输出通道可能出现的干扰;

采用单独供电、低通滤波器和隔离变压器等抑制供电系统的干扰;

采用屏蔽和接地措施、强弱地线分开等措施抑制电磁场干扰;

使用“看门狗”电路,解决CPU运行时可能进入混乱或死循环。11.1.2硬件设计 2.硬件可靠性设计11.1.2硬件设计

3.元器件选择原则尽可能选择单片机自身集成度比较高的型号,除了可以降低系统的硬件开销外,系统的复杂程度和出错可能性也大大减低。尽量采用通用的大规模集成电路。这样能简化系统的设计、安装和调试过程,也有助于提高系统的可靠性。外围电路芯片类型一致。对于低功耗应用系统,必须采用HCMOS或CMOS芯片,如74HC系列、CD4000系列;而一般系统可使用TTL数字集成电路芯片。11.1.2硬件设计 3.元器件选择原则11.1.2硬件设计11.1.3软件设计

1.模块化结构

根据系统的功能,把整个系统软件划分成多个主模块,每一个主模块有1个文件(或1个主文件和多个子文件构成),便于分工独立设计,各模块间尽量减少关联。模块划分如键盘和显示、射频卡操作、温度测控、变频器(电机)测控、阀门和压力测控、日期时间产生与调整等。

在各模块的设计中,按照各自的目标功能,采取自顶向下、先粗后细的方法,拟定出实现目标需要的功能块,然后编写功能函数。11.1.3软件设计 1.模块化结构

2.软件抗干扰技术

(1)通过数字滤波提高数据采集的可靠性

算术平均法。对一点数据连续采样多次,计算其平均值,以其平均值作为采样结果。

中值法。对一个采样点连续采集多个信号,并对这些采样值进行排序,取中间值作为采样结果。

去极值算术平均法。对采样值进行排序,去掉两端相同数目的大数和小数,对剩余数的算数平均值作为采样值。11.1.3软件设计 2.软件抗干扰技术11.1.3软件设计

(2)程序运行失常的软件抗干扰措施

设置软件陷阱。在程序所有的断裂点(函数、数表结束处、无条件转移指令处)之后和空白区域的尾端,放两条“NOP”指令和一条“LJMP0”指令。

软件“看门狗”。使用定时器,设置定时器的定时时间稍大于主程序最长的循环时间,在主程序循环体中给定时器赋初值。当程序失常时,将不能对定时器赋初值而导致其溢出并中断,在定时器中断服务程序中,使系统从0地址开始运行。11.1.3软件设计 (2)程序运行失常的软件抗干扰措施11.1.3软件设计11.1.4系统调试与测试 1.系统调试包括硬件调试、软件调试和软硬件集成调试。硬件调试的任务是排除硬件电路故障。软件调试是利用开发工具进行在线仿真调试,除发现和解决程序错误外,也可以发现硬件故障。软硬件集成调试(往往在现场)是将程序下载到单片机中,系统运行调试,对大系统要逐个部分调试。在调试过程中,不断地发现错误、排除故障、修改软硬件,直到正确为止。11.1.4系统调试与测试 1.系统调试 2.系统测试系统在现场通过调试运行后,需要对系统进行测试,以检查系统是否满足原设计要求,并进一步改进和完善。经过反复运行测试,各种性能指标满足要求后,就可以将系统交付用户,由用户操作使用,开发过程即告结束。在用户的使用的初期,需要密切关注系统运行情况。11.1.4系统调试与测试 2.系统测试11.1.4系统调试与测试11.2基于单片机的计算器设计主要内容11.2.1系统电路设计11.2.2系统功能设计11.2.3系统程序设计11.2基于单片机的计算器设计主要内容11.2.1系统电路设计11.2.1系统电路设计11.2.1系统电路设计计算器电路器件列表如下:AT89C52:单片机;7SEG-MPX8-CA-BLUE:蓝色七段8位共阳极数码管;KEYPAD-SMALLCALC:计算器键盘;SOUNDER:蜂鸣器。数码管采用共阳极设计,段选口相应段输入0时该段点亮,输入1时不亮,而AT89C52的P0口没有上拉电阻,P0口相应位输出0时该位接地,输出1时为悬空。所以可以使用P0作为数码管的段选口。实际应用电路,段选口和位选口应该加上驱动,其段驱动可以使用74LS245,位驱动可以用74LS07等。11.2.1系统电路设计计算器电路器件列表如下:11.2.2系统功能设计1.系统主要模块及功能1)按键识别模块,采用行扫描法识别按键,将所得按键键值通过查表转换为简易计算器键盘按键所对应的键值。2)按键执行模块,根据所按下按键,分别执行相应的功能。3)计算处理模块,对算术运算的处理。4)修改显示缓冲区模块,将要显示的内容送入显示缓冲区,供显示函数读取显示。11.2.2系统功能设计1.系统主要模块及功能5)主模块,初始化系统,循环调用按键识别模块,有键按下执行按键执行模块。6)定时器中断模块,定时器0定时1ms,在一次中断中执行多个任务:对数码管动态扫描显示,每中断一次只显示1位,每位显示时间为1毫秒;产生500Hz的蜂鸣器响声;产生毫秒单位延时。11.2.2系统功能设计5)主模块,初始化系统,循环调用按键识别模块,有键按下执行按11.2.2系统功能设计系统执行路线图11.2.2系统功能设计系统执行路线图11.3基于单片机的万年历设计主要内容11.3.1实时时钟芯片DS1302简介11.3.2数字温度传感器DS18B20简介11.3.3系统电路设计11.3.4系统功能设计11.3.5系统程序设计11.3基于单片机的万年历设计主要内容11.3.1实时时钟芯片DS1302简介DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片。采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。可提供秒、分、时、日、星期、月和年,且具有闰年补偿功能。工作电压宽达2.5~5.5V。采用双电源供电,可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。11.3.1实时时钟芯片DS1302简介DS1302是美1.DS1302引脚功能Vcc1:主电源正极接入端,2.5~5.5V。Vcc2:备份电源。11.3.1实时时钟芯片DS1302简介SCLK:串行时钟,输入,控制数据的输入与输出。X1、X2:振荡源,外接32.768kHz晶振。I/O:三线接口时的双向数据线。RST:复位引脚。1.DS1302引脚功能11.3.1实时时钟芯片DS1311.3.1实时时钟芯片DS1302简介2.DS1302读写操作DS1302是SPI总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。DS1302的控制字如下图。bit7bit6bit5bit4bit3bit2bit1bit01RAM/CKA4A3A2A1A0RD/WR位7:必须是逻辑1。位6:为0,存取日历时钟数据;为1,存取RAM数据。位5至位1(A4~A0):指示操作单元的地址。位0:为0,进行写操作;为1,进行读操作。11.3.1实时时钟芯片DS1302简介2.11.3.1实时时钟芯片DS1302简介

控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。

同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据也是从最低位到最高位。11.3.1实时时钟芯片DS1302简介 控制字总是从最11.3.1实时时钟芯片DS1302简介功

能寄存器地址数据格式数据范围76543210读/写秒0x81/0x80CH秒的十位秒的个位0-59读/写分0x83/0x820分的十位分的个位0-59读/写小时0x85/0x84120AP

时的个位1-12240时的十位0-23读/写日0x87/0x8600日的十位日的个位1-31读/写月0x89/0x88月的十位月的个位1-12读/写星期0x8b/0x8a00000星期1-7读写年0x8d/0x8c年的十位年的个位0-99写保护控制0x8f/0x8eWP0000000

多字节操作0xbf/0xbe

DS1302寄存器功能及读写数据格式11.3.1实时时钟芯片DS1302简介功能寄存器数11.3.1实时时钟芯片DS1302简介3.DS1302基本操作函数voidDS1302WriteByte(unsignedcharData) { unsignedchari; for(i=8;i>0;i--) { Data>>=1; DS1302IO=CY; DS1302CLK=1; DS1302CLK=0; }}11.3.1实时时钟芯片DS1302简介3.DS130211.3.1实时时钟芯片DS1302简介unsignedcharDS1302ReadByte() { //从DS1302读取1Byte数据 unsignedchari,temp=0; for(i=0;i<8;i++) { DS1302CLK=0; if(DS1302IO!=0) temp|=(1<<i); DS1302CLK=1; } return(temp);}11.3.1实时时钟芯片DS1302简介unsigned11.3.2数字温度传感器DS18B20简介 DS18B20数字温度传感器是DALLAS公司生产的1-Wire,即单总线器件,体积小、线路简单等特点。在一根通信线上,可以挂很多这样的数字温度传感器,因此用它来组成一个测温系统,十分方便。DS18B20主要有如下特点:单个I/O引脚数据通信每个DS18B20都有独一无二的序列号实际应用中不需要外部任何元器件即可实现测温测量温度范围在-55℃到+125℃之间分辨率为9~12位可选,12位时精度为0.0625℃内部有温度上、下限报警设置11.3.2数字温度传感器DS18B20简介 DS18B 1.DS18B20引脚功能 DS18B20采用3脚PR-35封装(或8脚SOIC封装),引脚排列如图11-5所示,该图为DS18B20的平面向前的正视图,各引脚定义如下:11.3.2数字温度传感器DS18B20简介GND:为电源地接入端DQ:为数字信号输入/输出端VDD:为外接供电电源正极输入端(在寄生电源接线方式时接地) 1.DS18B20引脚功能11.3.2数字温度传感器D11.3.2数字温度传感器DS18B20简介DS18B20内部结构图

2.DS18B20的结构

由电源检测电路、64位光刻ROM和单线接口电路、测温元件、高低温触发器、配置寄存器、高速缓存存储器以及存储器和控制器等组成,如下图所示。11.3.2数字温度传感器DS18B20简介DS18B211.3.2数字温度传感器DS18B20简介DS18B20温度值格式表

bit7bit6bit5bit4bit3bit2bit1bit0LSByte232221202-12-22-32-4

MSByteSSSSS262524DS18B20温度数据表温度(℃)读到的二进制码温度(℃)读到的二进制码+125000001111101000000000000000000000+850000010101010000-551111110010010000+25.06250000000110010001-25.06251111111001101111+10.1250000000010100010-10.1251111111101011110+0.50000000000001000-0.51111111111111000

11.3.2数字温度传感器DS18B20简介DS18B211.3.2数字温度传感器DS18B20简介bit7bit6bit5bit4bit3bit2bit1bit0TMR1R011111R1R0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms1112位750ms配置寄存器格式温度分辨率设置表11.3.2数字温度传感器DS18B20简介bit7bi11.3.2数字温度传感器DS18B20简介寄存器内容字节地址温度值低位(LSByte)0温度值高位(MSByte)1高温限值(TH)2低温限值(TL)3配置寄存器4保留5~7CRC校验值8DS18B20暂存寄存器分布11.3.2数字温度传感器DS18B20简介寄存器内容字11.3.2数字温度传感器DS18B20简介指令约定代码功

能读ROM33H读DS18B20温度传感器ROM中的编码(即64位地址)符合ROM55H发出此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20使之做出响应,为下一步对该DS18B20的读写作准备。搜索ROM0F0H用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址。为操作各器件做好准备。跳过ROM0CCH忽略64位ROM地址,直接向芯片发温度变换命令。适用于单片工作。告警搜索命令0ECH执行后只有温度超过设定值上限或下限的片子才做出响应。ROM指令表11.3.2数字温度传感器DS18B20简介指令约定功11.3.2数字温度传感器DS18B20简介指令约定代码功

能温度变换44H启动DS18B20进行温度转换12位转换时最长为750ms(9位为93.75ms)。结果存入内部9字节RAM中。读暂存器0BEH读内部RAM中9字节的内容写暂存器4EH发出向内部RAM的3、4字节写上、下限温度数据命令紧跟该命令之后是传送两字节的数据。复制暂存器48H将RAM中第3、4字节的内容复制到EEPROM中。重调EEPROM0B8H将EEPROM中内容恢复到RAM中的第3、4字节。读供电方式0B4H读DS18B20的供电模式。寄生供电时DS18B20发送“0”,外接电源供电DS18B20发送“1”。RAM指令表11.3.2数字温度传感器DS18B20简介指令约定代码11.3.2数字温度传感器DS18B20简介3.DS18B20接口电路寄生电源供电方式外部电源供电方式

在单点测温系统中,可以使用寄生电源供电方式,在多点温度监控系统中,外部电源供电方式是DS18B20最佳的工作方式精度。11.3.2数字温度传感器DS18B20简介3.DS1811.3.2数字温度传感器DS18B20简介

4.DS18B20的操作函数bitInit_DS18B20(void) //初始化函数{ bitx=0; DQ=1; //DQ复位 delay_1820(8); //稍做延时 DQ=0; //单片机将DQ拉低 delay_1820(80); //精确延时大于480µs DQ=1; //拉高总线 delay_1820(14); x=DQ; //x=0则初始化成功 delay_1820(20); //x=1则初始化失败 return~x;}11.3.2数字温度传感器DS18B20简介 4.DS111.3.2数字温度传感器DS18B20简介unsignedcharReadOneChar(void) //读一个字节{ unsignedchari;dat=0, for(i=8;i>0;i--) { DQ=0; //给脉冲信号 dat>>=1; DQ=1; //给脉冲信号 delay_1820(1); if(DQ) dat|=0x80; delay_1820(4); } return(dat);}11.3.2数字温度传感器DS18B20简介unsign11.3.2数字温度传感器DS18B20简介voidWriteOneChar(unsignedchardat){ //写一个字节 unsignedchari; for(i=8;i>0;i--) { DQ=0; DQ=dat&0x01; delay_1820(5); DQ=1; dat>>=1; } } 11.3.2数字温度传感器DS18B20简介voidW11.3.2数字温度传感器DS18B20简介uintReadTemperature(void) //读取温度{ unsignedchartemp_l,temp_h; unsignedinttemp=0; Init_DS18B20(); WriteOneChar(0xCC); //跳过读序列号的操作 WriteOneChar(0x44); //启动温度转换 Init_DS18B20(); WriteOneChar(0xCC); //跳过读序列号的操作 WriteOneChar(0xBE); //读取温度寄存器等 temp_l=ReadOneChar();//前两个就是温度 temp_h=ReadOneChar(); temp=temp_h; temp=(temp<<8)+temp_l; return(temp);}11.3.2数字温度传感器DS18B20简介uintR11.3.3系统电路设计11.3.3系统电路设计11.3.4系统功能设计系统主要模块如下:1)功能键处理模块。2)调整键处理模块。3)显示处理模块。4)主模块。5)定时器中断模块,处理闪烁,读取时间,读取温度,显示等。6)其他模块,读写DS1302时间,读取DS18B20温度参看本节和第10章相关内容。11.3.4系统功能设计系统主要模块如下:11.3.4系统功能设计系统执行路线图11.3.4系统功能设计系统执行路线图11.3.4系统功能设计系统执行路线图11.3.4系统功能设计系统执行路线图本章小结

本章介绍单片机应用开发的方法,以基于单片机的简易计算器和万年历两个应用实例,示范单片机应用系统设计的过程,为读者借鉴参考。 单片机应用开发的方法包括总体设计、硬软件设计和系统调试等,两个开发实例从系统电路设计、功能设计等详细介绍开发过程。本章小结 本章介绍单片机应用开发的方法,以基于单片机的简易本章完本章完单片机原理与接口技术

(C语言版)

第11章单片机应用实例主编:周国运清华大学出版社单片机原理与接口技术

(C语言版)

第11章单片机应第11章单片机应用实例目录11.1单片机应用开发方法11.2基于单片机的计算器设计11.3基于单片机的万年历设计第11章单片机应用实例目录本章要点

本章首先介绍单片机应用开发的方法,然后以计算器和带温度功能的万年历两个单片机应用实例,示范单片机应用系统的设计过程。本章要点11.1单片机应用开发方法主要内容11.1.1总体设计11.1.2硬件设计11.1.3软件设计11.1.4系统调试与测试11.1单片机应用开发方法主要内容11.1单片机应用开发方法

单片机系统是针对某一具体应用的专用系统,单片机的应用领域范围很广,控制形式多种多样,在不同场合下要求各不相同,但设计开发过程基本相同。

一个典型的单片机应用系统开发过程包括总体设计、硬件设计、软件设计、软硬件集成与调试、调试运行、性能测试等几个阶段组成。在调试过程中需要对系统进行修改和完善。11.1单片机应用开发方法 单片机系统是针对某一具体应11.1.1总体设计

1.研究开发对象和用户要求 2.拟订方案,确定功能、性能指标 3.软硬件功能划分

在系统方案确定之后,需要对系统软硬件功能合理安排,要根据系统的要求而定,一些硬件电路的功能可以由软件来实现,反之亦然。

11.1.1总体设计 1.研究开发对象和用户要求11.1.2硬件设计

1.系统硬件电路设计的一般原则选择典型电路、力求硬件电路规范化、模块化;选择功能强的芯片,简化电路设计;考虑以后系统功能的变化,留下扩展余地;系统中相关的器件要尽可能做到性能匹配;外接电路较多时,必须考虑其驱动能力;考虑系统可靠性与抗干扰问题去耦滤波、合理布线、信号隔离、看门狗电路等;11.1.2硬件设计 1.系统硬件电路设计的一般原则

2.硬件可靠性设计

采用隔离和滤波技术抑制输入/输出通道可能出现的干扰;

采用单独供电、低通滤波器和隔离变压器等抑制供电系统的干扰;

采用屏蔽和接地措施、强弱地线分开等措施抑制电磁场干扰;

使用“看门狗”电路,解决CPU运行时可能进入混乱或死循环。11.1.2硬件设计 2.硬件可靠性设计11.1.2硬件设计

3.元器件选择原则尽可能选择单片机自身集成度比较高的型号,除了可以降低系统的硬件开销外,系统的复杂程度和出错可能性也大大减低。尽量采用通用的大规模集成电路。这样能简化系统的设计、安装和调试过程,也有助于提高系统的可靠性。外围电路芯片类型一致。对于低功耗应用系统,必须采用HCMOS或CMOS芯片,如74HC系列、CD4000系列;而一般系统可使用TTL数字集成电路芯片。11.1.2硬件设计 3.元器件选择原则11.1.2硬件设计11.1.3软件设计

1.模块化结构

根据系统的功能,把整个系统软件划分成多个主模块,每一个主模块有1个文件(或1个主文件和多个子文件构成),便于分工独立设计,各模块间尽量减少关联。模块划分如键盘和显示、射频卡操作、温度测控、变频器(电机)测控、阀门和压力测控、日期时间产生与调整等。

在各模块的设计中,按照各自的目标功能,采取自顶向下、先粗后细的方法,拟定出实现目标需要的功能块,然后编写功能函数。11.1.3软件设计 1.模块化结构

2.软件抗干扰技术

(1)通过数字滤波提高数据采集的可靠性

算术平均法。对一点数据连续采样多次,计算其平均值,以其平均值作为采样结果。

中值法。对一个采样点连续采集多个信号,并对这些采样值进行排序,取中间值作为采样结果。

去极值算术平均法。对采样值进行排序,去掉两端相同数目的大数和小数,对剩余数的算数平均值作为采样值。11.1.3软件设计 2.软件抗干扰技术11.1.3软件设计

(2)程序运行失常的软件抗干扰措施

设置软件陷阱。在程序所有的断裂点(函数、数表结束处、无条件转移指令处)之后和空白区域的尾端,放两条“NOP”指令和一条“LJMP0”指令。

软件“看门狗”。使用定时器,设置定时器的定时时间稍大于主程序最长的循环时间,在主程序循环体中给定时器赋初值。当程序失常时,将不能对定时器赋初值而导致其溢出并中断,在定时器中断服务程序中,使系统从0地址开始运行。11.1.3软件设计 (2)程序运行失常的软件抗干扰措施11.1.3软件设计11.1.4系统调试与测试 1.系统调试包括硬件调试、软件调试和软硬件集成调试。硬件调试的任务是排除硬件电路故障。软件调试是利用开发工具进行在线仿真调试,除发现和解决程序错误外,也可以发现硬件故障。软硬件集成调试(往往在现场)是将程序下载到单片机中,系统运行调试,对大系统要逐个部分调试。在调试过程中,不断地发现错误、排除故障、修改软硬件,直到正确为止。11.1.4系统调试与测试 1.系统调试 2.系统测试系统在现场通过调试运行后,需要对系统进行测试,以检查系统是否满足原设计要求,并进一步改进和完善。经过反复运行测试,各种性能指标满足要求后,就可以将系统交付用户,由用户操作使用,开发过程即告结束。在用户的使用的初期,需要密切关注系统运行情况。11.1.4系统调试与测试 2.系统测试11.1.4系统调试与测试11.2基于单片机的计算器设计主要内容11.2.1系统电路设计11.2.2系统功能设计11.2.3系统程序设计11.2基于单片机的计算器设计主要内容11.2.1系统电路设计11.2.1系统电路设计11.2.1系统电路设计计算器电路器件列表如下:AT89C52:单片机;7SEG-MPX8-CA-BLUE:蓝色七段8位共阳极数码管;KEYPAD-SMALLCALC:计算器键盘;SOUNDER:蜂鸣器。数码管采用共阳极设计,段选口相应段输入0时该段点亮,输入1时不亮,而AT89C52的P0口没有上拉电阻,P0口相应位输出0时该位接地,输出1时为悬空。所以可以使用P0作为数码管的段选口。实际应用电路,段选口和位选口应该加上驱动,其段驱动可以使用74LS245,位驱动可以用74LS07等。11.2.1系统电路设计计算器电路器件列表如下:11.2.2系统功能设计1.系统主要模块及功能1)按键识别模块,采用行扫描法识别按键,将所得按键键值通过查表转换为简易计算器键盘按键所对应的键值。2)按键执行模块,根据所按下按键,分别执行相应的功能。3)计算处理模块,对算术运算的处理。4)修改显示缓冲区模块,将要显示的内容送入显示缓冲区,供显示函数读取显示。11.2.2系统功能设计1.系统主要模块及功能5)主模块,初始化系统,循环调用按键识别模块,有键按下执行按键执行模块。6)定时器中断模块,定时器0定时1ms,在一次中断中执行多个任务:对数码管动态扫描显示,每中断一次只显示1位,每位显示时间为1毫秒;产生500Hz的蜂鸣器响声;产生毫秒单位延时。11.2.2系统功能设计5)主模块,初始化系统,循环调用按键识别模块,有键按下执行按11.2.2系统功能设计系统执行路线图11.2.2系统功能设计系统执行路线图11.3基于单片机的万年历设计主要内容11.3.1实时时钟芯片DS1302简介11.3.2数字温度传感器DS18B20简介11.3.3系统电路设计11.3.4系统功能设计11.3.5系统程序设计11.3基于单片机的万年历设计主要内容11.3.1实时时钟芯片DS1302简介DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片。采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。可提供秒、分、时、日、星期、月和年,且具有闰年补偿功能。工作电压宽达2.5~5.5V。采用双电源供电,可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。11.3.1实时时钟芯片DS1302简介DS1302是美1.DS1302引脚功能Vcc1:主电源正极接入端,2.5~5.5V。Vcc2:备份电源。11.3.1实时时钟芯片DS1302简介SCLK:串行时钟,输入,控制数据的输入与输出。X1、X2:振荡源,外接32.768kHz晶振。I/O:三线接口时的双向数据线。RST:复位引脚。1.DS1302引脚功能11.3.1实时时钟芯片DS1311.3.1实时时钟芯片DS1302简介2.DS1302读写操作DS1302是SPI总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。DS1302的控制字如下图。bit7bit6bit5bit4bit3bit2bit1bit01RAM/CKA4A3A2A1A0RD/WR位7:必须是逻辑1。位6:为0,存取日历时钟数据;为1,存取RAM数据。位5至位1(A4~A0):指示操作单元的地址。位0:为0,进行写操作;为1,进行读操作。11.3.1实时时钟芯片DS1302简介2.11.3.1实时时钟芯片DS1302简介

控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。

同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据也是从最低位到最高位。11.3.1实时时钟芯片DS1302简介 控制字总是从最11.3.1实时时钟芯片DS1302简介功

能寄存器地址数据格式数据范围76543210读/写秒0x81/0x80CH秒的十位秒的个位0-59读/写分0x83/0x820分的十位分的个位0-59读/写小时0x85/0x84120AP

时的个位1-12240时的十位0-23读/写日0x87/0x8600日的十位日的个位1-31读/写月0x89/0x88月的十位月的个位1-12读/写星期0x8b/0x8a00000星期1-7读写年0x8d/0x8c年的十位年的个位0-99写保护控制0x8f/0x8eWP0000000

多字节操作0xbf/0xbe

DS1302寄存器功能及读写数据格式11.3.1实时时钟芯片DS1302简介功能寄存器数11.3.1实时时钟芯片DS1302简介3.DS1302基本操作函数voidDS1302WriteByte(unsignedcharData) { unsignedchari; for(i=8;i>0;i--) { Data>>=1; DS1302IO=CY; DS1302CLK=1; DS1302CLK=0; }}11.3.1实时时钟芯片DS1302简介3.DS130211.3.1实时时钟芯片DS1302简介unsignedcharDS1302ReadByte() { //从DS1302读取1Byte数据 unsignedchari,temp=0; for(i=0;i<8;i++) { DS1302CLK=0; if(DS1302IO!=0) temp|=(1<<i); DS1302CLK=1; } return(temp);}11.3.1实时时钟芯片DS1302简介unsigned11.3.2数字温度传感器DS18B20简介 DS18B20数字温度传感器是DALLAS公司生产的1-Wire,即单总线器件,体积小、线路简单等特点。在一根通信线上,可以挂很多这样的数字温度传感器,因此用它来组成一个测温系统,十分方便。DS18B20主要有如下特点:单个I/O引脚数据通信每个DS18B20都有独一无二的序列号实际应用中不需要外部任何元器件即可实现测温测量温度范围在-55℃到+125℃之间分辨率为9~12位可选,12位时精度为0.0625℃内部有温度上、下限报警设置11.3.2数字温度传感器DS18B20简介 DS18B 1.DS18B20引脚功能 DS18B20采用3脚PR-35封装(或8脚SOIC封装),引脚排列如图11-5所示,该图为DS18B20的平面向前的正视图,各引脚定义如下:11.3.2数字温度传感器DS18B20简介GND:为电源地接入端DQ:为数字信号输入/输出端VDD:为外接供电电源正极输入端(在寄生电源接线方式时接地) 1.DS18B20引脚功能11.3.2数字温度传感器D11.3.2数字温度传感器DS18B20简介DS18B20内部结构图

2.DS18B20的结构

由电源检测电路、64位光刻ROM和单线接口电路、测温元件、高低温触发器、配置寄存器、高速缓存存储器以及存储器和控制器等组成,如下图所示。11.3.2数字温度传感器DS18B20简介DS18B211.3.2数字温度传感器DS18B20简介DS18B20温度值格式表

bit7bit6bit5bit4bit3bit2bit1bit0LSByte232221202-12-22-32-4

MSByteSSSSS262524DS18B20温度数据表温度(℃)读到的二进制码温度(℃)读到的二进制码+125000001111101000000000000000000000+850000010101010000-551111110010010000+25.06250000000110010001-25.06251111111001101111+10.1250000000010100010-10.1251111111101011110+0.50000000000001000-0.51111111111111000

11.3.2数字温度传感器DS18B20简介DS18B211.3.2数字温度传感器DS18B20简介bit7bit6bit5bit4bit3bit2bit1bit0TMR1R011111R1R0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms1112位750ms配置寄存器格式温度分辨率设置表11.3.2数字温度传感器DS18B20简介bit7bi11.3.2数字温度传感器DS18B20简介寄存器内容字节地址温度值低位(LSByte)0温度值高位(MSByte)1高温限值(TH)2低温限值(TL)3配置寄存器4保留5~7CRC校验值8DS18B20暂存寄存器分布11.3.2数字温度传感器DS18B20简介寄存器内容字11.3.2数字温度传感器DS18B20简介指令约定代码功

能读ROM33H读DS18B20温度传感器ROM中的编码(即64位地址)符合ROM55H发出此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20使之做出响应,为下一步对该DS18B20的读写作准备。搜索ROM0F0H用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址。为操作各器件做好准备。跳过ROM0CCH忽略64位ROM地址,直接向芯片发温度变换命令。适用于单片工作。告警搜索命令0ECH执行后只有温度超过设定值上限或下限的片子才做出响应。ROM指令表11.3.2数字温度传感器DS18B20简介指令约定功11.3.2数字温度传感器DS18B20简介指令约定代码功

能温度变换44H启动DS18B20进行温度转换12位转换时最长为750ms(9位为93.75ms)。结果存入内部9字节RAM中。读暂存器0BEH读内部RAM中9字节的内容写暂存器4EH发出向内部RAM的3、4字节写上、下限温度数据命令紧跟该命令之后是传送两字节的数据。复制暂存器48H将RAM中第3、4字节的内容复制到EEPROM中。重调EEPROM0B8H将EEPROM中内容恢复到RAM中的第3、4字节。读供电方式0B4H读DS18B20的供电模式。寄生供电时DS18B20发送“0”,外接电源供电DS18B20发送“1”。RAM指令表11

温馨提示

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

评论

0/150

提交评论