资源描述
//驱动步进电机以150r/min运动//
#include<reg52.h>
sbit PL0=P1^0;
sbit DIR0=P1^1;
unsigned int TH1_R,TL1_R,num_R,a;
void T1_int(void) interrupt 3
{
EA=0; 关中断
PL0=~PL0; 中断到时 脉冲取反
TH1=TH1_R; 重新装入定时器初值
TL1=TL1_R;
EA=1; 允许总中断
}
void main(void)
{
P1=0xff;
do
{
DIR0=0;
a=500; 500为150r/min对应的频率
EA=1; 总段允许
ET1=1; T1定时器/计数器中断允许
TMOD=TMOD&0x0f; 设定T1工作方式
TMOD=TMOD|0x10;
TH1_R=(65536-11059200/24/a)/256; 根据频率计算定时器初值
TL1_R=(65536-11059200/24/a)%256;
TH1=TH1_R; 装入初值
TL1=TL1_R;
TR1=1; 启动定时器1 结束后会触发中断 执行voidT_1子程序
}while(1);
}
硬件接线图
#include<reg52.h>
bdata unsigned char X_IMG[2]={0x00,0x00};
bdata unsigned char Y_IMG[2]={ 0x00,0x00};
bit T0_flag, T0_triger, T0_end, T1_flag, T1_triger, rotate_trigger, rotate_end;
unsigned char T0_times, T1_times;
sbit K1_IMG=X_IMG[0]^0;
sbit K2_IMG=X_IMG[0]^1;
sbit K3_IMG=X_IMG[0]^2;
sbit K4_IMG=X_IMG[0]^3;
sbit K1R=P1^4;
sbit K2R=P1^5;
sbit K3R=P1^6;
sbit K4R=P1^7;
sbit PL0=P1^0;
sbit DIR0=P1^1;
unsigned int TH1_R, TL1_R, num_R;
void ini_tialize(void) //初始化 P1口//
{
P1=0xff;
}
Void key_scan(void) //读取卡关状态//
{
K1_IMG=!K1R;
K2_IMG=!K2R;
K3_IMG=!K3R;
K4_IMG=!K4R;
}
void delay2000(void) // 用T0延时2000秒 //
{
T0_tri ger=1;
T0_times=40; //延时次数//
EA=1; //总中断允许//
ET0=1; //T0开中断//
TMOD=TMOD&0xf0; //T0 16位定时器 方式1 //
TMOD=TMOD|0x01;
TH0=0x4b; //装入T0初始值//
TL0=0xff;
TR0=1; //启动定时器T0//
}
void T0_int (void) interrupt 1 //T0中断响应子程序//
{
EA=0;
T0_times-- ;
if(!T0_times)
{
T0_flag=1;
TR0=0; //关定时器T0//
T0_end=1;
}
else
{
TH0=0x4b;
TL0=0xff;
}
EA=1;//总中断允许//
}
Void rotate (unsigned int pl_freq, unsigned int pl_num) //用T1进行P1.0口的脉冲输出//
{
int a=pl_freq; //设定转速//
num_ R=pl_num*2; //设定脉冲输出个数,即步进电机的位子控制//
rotate_trigger=1; //标志位//
EA=1;
ET1=1;
TMOD=TMOD&0x0f;
TMOD=TMOD|0x10;
TH1_R=(65536-11059200/24/a)/256;
TL1_R=(65536-11059200/24/a)%256;
TH1=TH1_R;
TL1=TL1_R;
}
void T1_int (void) interrupt 3 //脉冲信号输出//
{
EA=0;
PL0=~PL0;
if(num_R)
{
num_R--;
TH1=TH1_R;
TL1=TL1_R;
EA=1;
}
Else
{rotate_end=1;}
}
void main(void) //主程序 判断键位 决定电机工作方式//
{
ini_tialize(); //初始化P0口//
do
{
key_scan(); //读入各各键位的值//
if(K2_IMG) {TR0=0; T0_end=0; T0_triger=0; TR1=0; rotate_trigger=0; rotate_end=0;}
if(K1_IMG)
{
if(!rotate_trigger) { DIR0=0;rotate(500,400);TR1=1;} // r_ t=0时正转2圈//
}
If ( rotate_end& (!DIR0) )
{
rotate_end=0; TR1=0; rotate_trigger=0;
if(!T0_triger) {delay2000();} //延时2秒//
}
if(T0_end) //T0计时结束则反转//
{
T0_end=0;T0_triger=0;
if(!rotate_trigger) {DIR0=1; rotate(500,400); TR1=1;} //电机没有在运行则反转2圈//
}
if(DIR0&rotate_end) { rotate_end=0; TR1=0; rotate_trigger=0; }
if(K3_IMG) //按下k3正转一下//
{
do
{
DIR0=0;
if(!rotate_trigger) //判断电机在没在工作//
rotate(500,0);
key_scan();
TR1=1; //开定时器T1//
}while(K3_IMG);
rotate_trigger=0;
rotate_end=0;TR1=0; //关定时器T1//
}
if(K4_IMG) //按下k4反转一下//
{
do
{
DIR0=1;
if(!rotate_trigger)
rotate(500,0);
key_scan();
TR1=1;
}while(K4_IMG);
rotate_trigger=0;
rotate_end=0;TR1=0;
}
}while(1);
}
机电一体化:机械、控制、电子、计算机
机械领域常用的微控制单元:单片机系统、嵌入式系统、可编程控制器(PLC)、总线式工业控制机、可编程自动化控制器(PAC)
单片机控制系统的特点:集成度高,结构小巧;成本低廉;对现场恶劣环境适应性强;系统裁剪灵活;开发周期相对PLC较长,需要熟悉硬件
PLC控制系统的特点: 可靠性高,抗干扰能力强;控制系统结构简单,通用性强;编程容易,易于使用;功能完善,维护方便;设计、施工周期短;与单片机相比较成本高
总线式工业控制机:系统集成简单,开发周期短;具有丰富的编程环境资源;能组成复杂的控制系统;模块成熟,功能完善;成本较高,对工程应用者来说不易形成自主的核心技术
可编程自动化控制器(PAC):PLC功能的扩充:运算能力提升;工业网络提升;功能多元化
微机控制系统的分类:
按照系统的组织结构分类:直接数字控制系统;分布式计算机控制系统;现场总线控制系统;工业以太网;数据采集与监控系统
按照系统的反馈分类:开环控制系统;闭环控制系统;复合控制系统(半闭环)
控制系统性能的优劣指标:稳定性—稳定裕度;精确性—稳态误差;快速性—调整时间;
走马灯:硬件图(硬件设计、编程仿真、程序烧录)
指令系统:一台计算技术所能执行的指令集合就是他的指令系统
指令格式:指令的表示方法,通常由操作码和操作数组成
光电耦合器:原理发光二极管+光敏输出管,用于数/模转换,是以光为媒介传输电信号的一种电—光—电转换器件,它由发光源和受光器两部分组成。常见的光源为发光二极管、受光器为光敏二极管、光敏三级管
作用:隔离输入输出通道的噪声;实现电平的转换
主要参数:正向电压If;正向压降Vf;饱和压降Vce(sat);耐压Vce(max);电流传输比CTR:输出管的工作电压为固定值时,输出电流和发光二极管正向电流之比为电流传输比
一般用光耦、交流用光耦、高速光耦
特点:体积小、寿命长、工作温度宽、抗干扰能力强、无触点、输入输出在电器上隔离
开关常量的输入形式:
手动按钮开关
限位开关:用来限定机械设备运动极限位置的电器开关,机械设备的运动部件安装开关,极限位置固定点上安装挡块,当行程开关的机械触头碰上挡块是,切断或改变控制电路,机械就停止运动或改变运行,由于机械有惯性运动,这种行程开关有一定的超行程来保护开关不受损坏,常有销键按钮式、压簧按钮式、片簧按钮式、铰链杠杆式、软杆式、
光电开关:把光的强度装换成电信号的变化来实现控制的,由发送器、接收器和检测电路构成
输入调理电路:施密特触发
它是一种阀值开关电路,具有突变输入——输出特性的门电路。这种电路可阻止输入电压出现微小变化而引起的输出电压的改变
输出:小电流输出;继电器输出
若继电器触点切换的负载为电感性负载,且切换频率较高时,应为继电器的触点接入浪涌保护电路,常用的方法的CR法;
机械式继电器采用电磁吸合方式,速度慢,在开合瞬间易产生火花,触点容易老化,固态继电器用晶体管和可控硅代替触点 开关,并可以实现触点电源与控制电源的完全隔离。
继电器控制电路
模拟量输入通道的组成
A/D转化器工作原理与性能指标
ADC芯片常用的转换方法有:计数比较式;逐次逼近式;双积分式;-三角调制型式
计数比较式:很少使用,速度慢、精度低、抗干扰能力差;电路简单、价格低廉
逐次逼近式:应用普遍、精度高、转换速度适中;抗干扰能力弱
双积分式:常用于强干扰场合的低频采样;抗干扰能力强、精度高;速度慢
-三角调制型式:应用越来越普遍,分辨率高,线性度好,接口简单
性能指标:分辨率;转换时间;量程;基准电压
常用芯片:DAC0832 单缓冲 双缓冲
采样定理:被采样的信号为有限带宽的信号;采样频率大于带限信号的最高频率的两倍;实际应用中采样频率信号一般为最高频率的5~10倍
量化与量化误差:1)ADC的位数(分辨率);2)舍入
孔径时间:在模拟量输入通道中,A/D转换器将模拟信号转换成数字信号需要一定的时间,完成一次A/D转换的时间叫做孔径时间
采样保持:A/D转换需要时间,一般的,信号的最高频率小于10Hz可以不加采样保持
采样保持电路:由模拟开关、存储元件和缓冲放大器组成;在采样时刻,模拟开关被接通,使储存元件(通常是电容器)两端的电压被采样信号变化。当采样间隔终止时,模拟开关断开,输出则保持在断开瞬间的值不变
模拟量输出的保持:实现波形的恢复方法有两种:零阶保持与一阶多角保持
零阶保持器:是在信号传递过程中,把第nT时刻的采样信号值一直保持到第(n+1)
T时刻的前一瞬间,以此类推,从而把一个脉冲序列变成一个连续的阶梯信号。因为在每一个采样区间内连续的阶梯信号的均值为常值,亦其一阶导数为零,故为零阶保持器
Z变换性质:线性性质;初值定理;终止定理;脉冲序平移定理
展开阅读全文