各种应用设计课件

上传人:F****n 文档编号:88137400 上传时间:2019-04-19 格式:PPT 页数:84 大小:446.50KB
返回 下载 相关 举报
各种应用设计课件_第1页
第1页 / 共84页
各种应用设计课件_第2页
第2页 / 共84页
各种应用设计课件_第3页
第3页 / 共84页
各种应用设计课件_第4页
第4页 / 共84页
各种应用设计课件_第5页
第5页 / 共84页
点击查看更多>>
资源描述

《各种应用设计课件》由会员分享,可在线阅读,更多相关《各种应用设计课件(84页珍藏版)》请在金锄头文库上搜索。

1、1,第12章 单片机各种应用设计,2,介绍各种常用的单片机测控应用设计案例,通过案例使读者了解单片机系统的的各种常见的应用设计。 12.1 单片机控制步进电机的设计 步进电机是将脉冲信号转变为角位移或线位移的开环控制元件。 非超载的情况下,电机转速、停止位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,给电机加一脉冲信号,电机则转过一个步距角。因而步进电机只有周期性误差而无累积误差,在速度、位置等控制领域有较为广泛的应用。,3,1. 控制步进电机的工作原理 驱动步进电机由单片机通过对每组线圈中的电流的顺序切换来使电机作步进式旋转,切换是单片机输出脉冲信号来实现。 调节脉冲信号频率就可改

2、变步进电机转速;改变各相脉冲先后顺序,就可改变电机旋转方向。 步进电机驱动可采用双四拍(ABBCCDDAAB)方式,也可采用单四拍(ABCDA)方式。为使步进电机旋转平稳,还可采用单、双八拍方式(AABBBCCCDDDA A)。各种工作方式时序见图12-1。,4,图12-1 各种工作方式时序图,5,图12-1脉冲信号是高电平有效,但实际控制时公共端是接在VCC上,所以实际控制脉冲是低电平有效。 2. 电路设计与编程 【例12-1】单片机对步进电机控制的原理电路见图12-1。编写程序,用四路I/O口输出实现环形脉冲分配,控制步进电机按固定方向连续转动。同时,通过“正转”和“反转”两个按键来控制电

3、机的正转与反转。按下“正转”按键,步进电机正转;按下“反转”按键,步进电机反转;松开按键,电机停止转动。 ULN2003是高耐压、大电流达林顿阵列系列产品,7个NPN达林顿管组成。多用于单片机、智能仪表、PLC等控制电,6,图12-2 单片机控制步进电机接口电路,7,路中。在5V电压下能与TTL和CMOS电路直接相连,可直接驱动继电器等负载。具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点。输入5V的TTL电平,输出可达500mA/50V。适于各类高速大功率驱动的系统。 参考程序: #include “reg51.h“ #define uchar unsigned char #def

4、ine uint unsigned int #define out P2 sbit pos=P00; /定义检测正转控制位P0.0 sbit neg=P01; /定义检测反转控制位P0.1 void delayms(uint);,8,uchar code turn=0x02,0x06,0x04,0x0c,0x08,0x09,0x01,0x03; /步进脉冲数组 void main(void) uchar i; out=0x03; while(1) if(!pos) /如果正转按键按下 i=i 8?i+1: 0; /如果i8,则i= i+1;否则i=0 out=turni; delayms(50

5、); ,9,else if(!neg) i = i 0 ? i-1: 7; out=turni; delayms(50); void delayms(uint j) /函数功能:延时 uchar i; for(;j0;j-) i=250; while(-i); i=249; while(-i); ,10,12.2 单片机控制直流电机 直流电机多用在无交流电源、方便移动场合,具有低速大力矩等特点。如何用单片机控制直流电机。 1. 控制直流电机的工作原理 对直流电机可精确控制其旋转速度或转矩,通过两个磁场相互作用产生旋转。结构见图12-3(a),定子装设一对直流励磁的静止主磁极N和S,在转子上装设

6、电枢铁心。定子与转子间有一气隙。在电枢铁心上放置了由两根导体连成的电枢线圈,线圈首端和末端分别连到两个圆弧形铜片上,此铜片称为换向片。由换向片构成的整体称为换向器。,11,换向器固定在转轴上,换向片与转轴间互相绝缘。在换向片上放置一对固定不动的电刷B1和B2,当电枢旋转时,电枢线圈通过换向片和电刷与外电路接通。 定子通过永磁体或受激励电磁铁产生一固定磁场,由于转子由一系列电磁体构成,当电流通过其中一个绕组时会产生一个磁场。 对有刷直流电机,转子上换向器和定子电刷在电机旋转时为每个绕组供给电能。通电转子绕组与定子磁体有相反极性,因而相互吸引,使转子转动至与定子磁场对准的位置。当转子到达对准位置时

7、,电刷通过换向器为下一组绕组供电,从而使转子维持旋转运动,见图12-3(b)。,12,(a)有刷直流电机结构示意图,(i)导体ad处于N极下,(ii)导体ad处于S极下,(b)有刷直流电机工作示意图,图12-3 直流电机工作示意图,13,直流电机转速与施加电压成正比,转矩与电流成正比。由于必须在工作期间改变直流电机的速度,直流电机控制是一较困难问题。直流电机高效运行的常见方法是施加一个 PWM(脉宽调制)脉冲波,其占空比对应于所需速度。电机起到了一个低通滤波器作用,PWM信号相对容易产生,这种驱动方式使用更为广泛。,2. 电路设计与编程 【例12-2】原理电路见图12-4。使用单片机两个I/O

8、脚控制直流电机转速和旋转方向。其中P3.7脚输出PWM信号控制直流电机转速;P3.6脚控制直流电机旋转方向。,14,图12-4 单片机控制直流电机的接口电路,15,当P3.6=1时,P3.7发送PWM波,直流电机正转。且可通过“INC”和“DEC”两个按键来增大和减少直流电机转速。反之,P3.6=0时,P3.7发送PWM信号,直流电机反转。 因此,增大和减小电机转速,实际上是通过按下 “INC”或“DEC”按键来改变输出PWM信号占空比,控制直流电机转速。图12-4中驱动电路使用了NPN低频、低噪声小功率达林顿管 2SC2547。 参考程序如下:,16,#include “reg51.h“ #

9、include “intrins.h“ #define uchar unsigned char #define uint unsigned int sbit INC=P34; sbit DEC=P35; sbit DIR=P36; sbit PWM=P37; void delay(uint); int PWM= 900;,void main(void) DIR=1; while(1) if(!INC) PWM=PWM0 ? PWM-1 : 0;/如果PWM0,则PWM=PWM-1;否则PWM=0,17,12.3 频率计的制作 1. 工作原理 利用单片机定时器/计数器可实现信号频率测量。频率测量

10、有测频法和测周法两种。测频法利用外部电平变化引发的外部中断,测算1s内出现的次数,从而实现对频率测量;测周法是通过测算某两次电平变化引发的中断间的时间,再求倒数,从而实现对频率测定。总之,测频法是直接根据定义来测定频率,测周法是通过测定周期间接测定频率。理论上,测频法适于较高频率测量,测周法适于较低频率测量。本例采用测频法。,2. 电路设计与软件编程 【例12-3】设计以单片机为核心的频率测量装置,测量加在P3.4脚上数字时钟信号频率,并在外部扩展的6位LED数码管上显示测量频率值。原理电路与仿真见图12-5。,本频率计测量的信号由数字时钟源“DCLOCK”产生,在电路中添加数字时钟源的具体操

11、作与设置Proteus的使用说明。手动改变被测时钟信号源频率,观察是否与LED数码管上显示的测量结果相同。,19,图12-5 频率计原理电路与仿真,20,参考程序如下。 #include sfr16 DPTR=0x82; /定义寄存器DPTR unsigned char cnt_t0,cnt_t1,qian,bai,shi,ge,bb,wan,shiwan; unsigned long freq; /定义频率 unsigned char code table=0x3f,0x06,0x5b,0x4f, 0x66,0x6d, 0x7d, 0x07, 0x7f,0x6f,0x77,0x7c, 0x3

12、9,0x5e,0x79,0x71; /共阴数码管段码表 void delay_1ms(unsigned int z) /函数功能:延时约1ms unsigned char i,j; for(i=0;iz;i+) for(j=0;j110;j+); ,21,void init() /函数功能:定时器/计数器及中断系统初始化 freq=0; /频率赋初值 cnt_t1=0; cnt_t0=0; IE=0x8a; /开中断,T0,T1中断 TMOD=0x15; /T0为定时器方式1,T1为计数器于方式1 TH1=0x3c; /T1定时50ms TL1=0xb0; TR1=1; /开启定时器T1 TH

13、0=0; /T0清0 TL0=0; TR0=1; /开启定时器T0 void display(unsigned long freq_num) /函数功能:驱动数码管显示 shiwan=freq_num%1000000/100000; wan=freq_num%100000/10000;,22,qian=freq_num%10000/1000; /显示千位 bai=freq_num%1000/100; /显示百位 shi=freq_num%100/10; /显示十位 ge=freq_num%10; /显示个位 P0=0xdf; /P0口是位选 P2=tableshiwan; /显示十万位 del

14、ay_1ms(5); P0=0xef; P2=tablewan; /显示万位 delay_1ms(3); P0=0xf7; P2=tableqian; /显示千位 delay_1ms(3);,23,P0=0xfb; P2=tablebai; /显示百位 delay_1ms(3); P0=0xfd; P2=tableshi; /显示十位 delay_1ms(3); P0=0xfe; P2=tablege; /显示个位 delay_1ms(3); void main() /主函数 P0=0xff; /初始化P0口 init(); /计数器初始化 while(1) if(cnt_t1=19) /定时

15、1s ,24,cnt_t1=0; /定时完成后清0 TR1=0; /关闭T1定时器,定时1S完成 delay_1ms(141); /延时较正误差,通过实验获得 TR0=0; /关闭T0 DPL=TH00; /利用DPTR读入其值 DPH=TH0; freq=cnt_t0*65535; freq=freq+DPTR; /计数值放入变量 display(freq); /调用显示函数 void t1_func() interrupt 3 /定时器T1的中断函数 TH1=0x3c; TL1=0xb0; cnt_t1+; ,25,void t0_func() interrupt 1 /定时器T0的中断函数 cnt_t0+; ,12.4 电话机拨号的模拟 1. 设计要求,设计模拟电话拨号时的状况,把模拟电话键盘拨出的某一电话号码,显示在LCD显示屏上。电话键盘除了09的10个数字键外,还有“*”键用于实现删除功能,即删除一位最后,26,输入的号码;“#”键用于清除显示屏上所有的数字显示。此外还要求每按下一个键,发出声响,表示按下该键。还有LCD显示器,显示所拨的电话号码。 2. 电路设计与编程 【例12-4】设计一模拟电话拨号时的电话键盘及显示装置,把电话键盘拨出的电话号码及其他信息,显示在LCD显示屏上。电话键盘共12个键,除了09的10个数字键外,还有“*”键用于删除最后输入

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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