单片机原理与C51程序设计基础教程 教学课件 ppt 作者 978-7-302-23075-5 chap14

上传人:E**** 文档编号:89355888 上传时间:2019-05-23 格式:PPT 页数:35 大小:593.50KB
返回 下载 相关 举报
单片机原理与C51程序设计基础教程 教学课件 ppt 作者 978-7-302-23075-5 chap14_第1页
第1页 / 共35页
单片机原理与C51程序设计基础教程 教学课件 ppt 作者 978-7-302-23075-5 chap14_第2页
第2页 / 共35页
单片机原理与C51程序设计基础教程 教学课件 ppt 作者 978-7-302-23075-5 chap14_第3页
第3页 / 共35页
单片机原理与C51程序设计基础教程 教学课件 ppt 作者 978-7-302-23075-5 chap14_第4页
第4页 / 共35页
单片机原理与C51程序设计基础教程 教学课件 ppt 作者 978-7-302-23075-5 chap14_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《单片机原理与C51程序设计基础教程 教学课件 ppt 作者 978-7-302-23075-5 chap14》由会员分享,可在线阅读,更多相关《单片机原理与C51程序设计基础教程 教学课件 ppt 作者 978-7-302-23075-5 chap14(35页珍藏版)》请在金锄头文库上搜索。

1、重点内容: 电子钟设计 步进电机控制,第14章 C51单片机系统综合实例,一、电子钟设计,1、概述及实例说明,在许多单片机系统中, 常需要一些与时间有关的控制, 这就需要使用实时时钟。例如, 在测量控制系统中, 特别是长时间无人看守的测控系统中, 经常需要记录某些具有特殊意义的数据及其出现的时间, 使用实时时钟芯片, 就能很好地解决这个问题。本章所举的实例是利用单片机AT89S51和时钟芯片进行数据通信, 以读取和写入时钟数据。,一、电子钟设计,2、硬件单路图及电路分析,1.时钟电路 实时日历时钟芯片的种类很多,选取时根据需要的接口方式和定时功能的复杂度来合理配置。日前的实时时钟芯片,根据芯片

2、与单片机接口的不同,可分为两大类型。 (1)串行方式的实时时钟芯片 串行方式接口的实时时钟芯片,大多数是将地址线、数据线、控制线合为一根串行传输数据的传号线,例如,DS1302、PC1F8583等。这种方式的优点是,信号线少、电路连接简单、节省系统资源和电路板面积等。缺点是,程序编写复杂、工作量比较大和操作速度较慢等。 (2)并行方式的实时时钟芯片 并行方式的实时时钟芯片,这种芯片与单片机的连接是将地址线、数据线、控制线并行与单片机连接。例如,DS12C887、MC146818等。这种方式由于数据和地址的并行传送,所以它具有操作方便、快速、编程简学等优点,缺点就是硬件电路相对的复杂。,一、电子

3、钟设计,2、硬件单路图及电路分析,2.DS1302原理及应用 本系统采用DS1302芯片。DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。采用双电源供电(主电源和备用电源)可设置备用电源充电方式提供了对后备电源进行涓细电流充电的能力。,一、电子钟设计,2、硬件单路图及电路分析,(1)DS1302引脚功能: DS1302的外部引脚分配如图14.2所示及内部结构如图14.3所示。 Vcc1,Vcc2:主电源与后备电源引脚。Vcc2在单电源与电池供电的系统

4、中提供低电源并能提供低功率的电池备份。Vcc2在双电源系统中提供电源。在这种运行方式下Vcc连接到备份电源以便在没有主电源的情况下能保存时间信息以及数据。 DS1302由两者中的较大者 供电。当Vcc2Vcc1+0.2V时。 由 Vcc2向DS1302供电 当Vcc2Vccl时由Vcc1向 DS1302供电。 SCLK:串行时钟,输入; I/O:三线接口时的双向数据线; CE:输入信号,在读、写数 据期间,必须为高。该引脚有 两个功能:第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法。,一、电子钟设计,2、硬件单路图及电路分析,(2)DS1302寄存

5、器 DS1302有下列几组寄存器: DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表14.1。 对于表14.1以小时寄存器为例进行说明,小时寄存器的位7用于定义DS1302是运行于12小时模式还是24小时模式。当为1时选择12小时模式。在12小时模式时,位5为1时表示PM。在24小时模式时,位5是第二个10小时位。 表14.1中没有对控制寄 存器进行说明,对于 DS1302的控制寄存器, 它的位7是写保护位(WP)。 其它7位均置为0。在对 时钟和RAM的任何写操 作之前,WP位必须为0。 当WP位为1时,写保护 位防止

6、对任一寄存器的写操作。,一、电子钟设计,2、硬件单路图及电路分析,DS1302与RAM相关的寄存器 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。DS1302中附加31字节静态RAM的控制字如表14.2所示。,一、电子钟设计,2、硬件单路图及电路分析,DS1302的突发模式寄存器 所谓突发模式是指一次传送多个字节的时钟信号和RAM数据。突发模式寄存器如表14.

7、3所示。 此外DS1302还有充电寄存器等。,一、电子钟设计,2、硬件单路图及电路分析,(4)DS1302的控制字 DS1302是SPI总线驱动方式,它不仅要向寄存器写入控制字。还需要读取相应寄存器的数据。 要想与DS1302通信,首先要先了解DS1302的控制字。DS1302的控制字如图14.4所示,各位含义说明如下: 位7:控制字的最高有效位,必须是逻辑 1,如果它为0。则不能把数据写入到DS1302中。 位6:为0时表示存取日历时钟数据,为1时表示存取RAM数据; 位5至位1(A4A0):表示操作单元的地址; 位0(最低有效位):为0时表示要进行写操 作,为1时表示进行读操作。,一、电子

8、钟设计,2、硬件单路图及电路分析,控制字总是从最低位开始输出。在控制字指 图14.4 DS1302控制字 令输入后的下一个SCLK时钟的上升沿时,数据被写入 DS1302,数据输入从最低位(0位)开始。同样,在紧跟8位的控制字指令后的下一个 SCLK脉冲的下降沿, 读出DS1302的数据 。读出的数据也是 从最低位到最高位。 数据读写时序如图 14.5所示。,一、电子钟设计,2、硬件单路图及电路分析,3.DS1302和单片机的连接 根据以上所述,DS1302与单片机相连的原理图如图14.6所示。 如图所示,DS1302与单片机的连接只需要3条线,即SCLK、I/O、/RST口与单片机相连,此图

9、中事分别与单片机的P33、P34、P35口相连,当然也可以与单片机的其他I/O口相连。X1、X2外接一个32.768KHz的晶振电路,为芯片提供计时脉冲。,一、电子钟设计,2、硬件单路图及电路分析,4数码管显示电路 本实例采用的电路如图14.7所示。图中的八位LED数码管是共阳极,三极管的作用是放大电流,以增加LED的亮度。,一、电子钟设计,3、软件设计,1.DS1302软件设计 单片机控制DS1302芯片的时钟程序,主要包括两个方面的内容,一是单片机对DS1302寄存器的地址定义和控制字的写入,二是数据的读取。 DS1302只能对位进行读取写入,写入一个字节的程序为: void Write_

10、Ds1302_Byte(unsigned char temp) unsigned char i; for (i=0;i=1; /右移一位 SCK=1; /写数据时,必须为高 ,一、电子钟设计,3、软件设计,一个字节由8个位组成,因此循环8次才能写入一个字节。同样读取一个字节的程序为: unsigned char Read_Ds1302_Byte( unsigned char address ) unsigned char i,temp=0x00; RST=0; _nop_(); SCK=0; _nop_(); RST=1; _nop_(); Write_Ds1302_Byte(address)

11、; for (i=0;i8;i+) /循环8次 读取数据 ,一、电子钟设计,3、软件设计,if(SDA) temp|=0x80; /每次传输低字节 SCK=0; temp=1; /右移一位 SCK=1; RST=0; _nop_(); /以下为DS1302复位的稳定时间 RST=0; SCK=0; _nop_(); SCK=1; _nop_(); SDA=0; _nop_(); SDA=1; _nop_(); return (temp); /返回 ,一、电子钟设计,3、软件设计,读写DS1302程序的流程图,如图14.8所示。,一、电子钟设计,3、软件设计,2.数码管软件设计 本实例采用LED

12、七段共阳数码管。对于共阳极数码管,数据为0表示对应字段亮,数据为1表示对应字段暗,如要显示“0”,共阳极数码管的字型编码应为:11000000B(即C0H),依此类推可求得数码管字形编码如表12.1所示。 在本例中我们只要显示时间和日期,因此我们只需要表中09的字型码,再加上“-”和熄灭字符就可以,将这些字符定义在一个数组中,其代码如下: code unsigned char table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff; / 0 1 2 3 4 5 6 7 8 9 - 熄灭 / /共阳数码管 0-9 - 熄

13、灭表 采用动态显示,因此我们可以通过定时中断来实现,这里要注意的是定时时间的设置需小于人体视觉暂留时间。设置定时中断代码如下: void tim(void) interrupt 1 using 1 /定时中断,用于数码管扫描 static unsigned char i,num; TH0=0xf5; TL0=0xe0; ,一、电子钟设计,3、软件设计,3.主程序设计 单片机控制的DS1302实时时钟时间控制流程图如图14.9所示。 由图14.9所示,在使用DS1302之前我们首先需要对DS1302进行初始化,然后产生一个高电平,向DS1302写入初始时间,然后根据判断标志位是否为1来是否执行后

14、面的,如果为1,则进行对DS1302的读操作,如果为0则等待。,一、电子钟设计,4、程序清单,参考教材,二、步进电机控制,1、概述及实例说明,一般电机都是连续旋转,而步进电机却是一步一步地转动的,所以叫步进电机。具体而言,每当步进电机的驱动器接收到一个驱动脉冲信号后,步进电机将会按照设定的方向转动一个固定的角度(有的步进电机可以直接输出线位移,称为直线电动机)。因此,步进电机是一种将电脉冲转化为角位移(或直线位移)的执行机械。对于经常使用的角位移步进电机,用户可以通过控制脉冲的个数来控制角位移量,从而达到准确定位的目的;同时还可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到准确定位的

15、目的。本例中的步进电机指的是角位移步进电机。 本例的目标是实现一个基于51单片机控制的4相步进电机系统,由单片机产生正确的驱动脉冲信号,控制步进电机以正确的转速向正确的方向产牛正确的转动角度。,二、步进电机控制,2、系统设计,1. 步进电机基础知识 步进电机是数字控制电机,它将电脉冲信号转变成角位移,实质上是一种数字/角度转换器。步进电机的转子为多极分布,转子上嵌有多相星形连接的控制绕组,由专门电源输入电脉冲信号,每输入一个脉冲信号,步进电机的转子就前进一步,即转动一个角度。由于输入的是脉冲信号,输出的角位移是断续的,所以又称为脉冲电动机。 步进电机可分为反应式步进电机(简称VR)、永磁式步进

16、电机(简称PM)和混合式步进电机(简称HB)三种。永磁式一般为两相,转矩和体积较小,步进角般为7.5度或15度;反应式一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大,在欧美等发达国家在20世纪80年代己被淘汰;混合式应用最为广泛,它混合了永磁式和反应式的优点。 步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。 4相步进电机内部结构图如下图14.10所示。,二、步进电机控制,2、系统设计,步进电机的驱动电路根据控制信号工作,控制信 号由单片机产生。其基本原理作用如下: 1控制换相顺序 通电换相这一过程称为脉冲分配。例如:四相步 进电机的四拍工作方式,正转时各相通电顺序为 ABBCCDAB,通电控制脉冲必须严格按照 这一顺序分别控制A,B,C,D相的通断。 2控制步进

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号