1、//驱动步进电机以150r/min运动//
#include
2、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; TR
3、1=1; 启动定时器1 结束后会触发中断 执行voidT_1子程序
}while(1);
}
硬件接线图
#include
4、bit 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; }
5、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 //
6、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
7、 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-1105
8、9200/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_sca
9、n(); //读入各各键位的值// 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)
10、 ) { 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;}
11、 //电机没有在运行则反转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();
12、 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) ro
13、tate(500,0); key_scan(); TR1=1; }while(K4_IMG); rotate_trigger=0; rotate_end=0;TR1=0; } }while(1); } 机电一体化:机械、控制、电子、计算机 机械领域常用的微控制单元:单片机系统、嵌入式系统、可编程控制器(PLC)、总线式工业控制机、可编程自动化控制器(PAC) 单片机控制系统的特点:集成度高,结构小巧;成本低廉;对现场恶劣环境适应性强;系统裁剪灵活;开发周期相对PLC较长,需要熟悉硬件 PLC控制系统的特点: 可靠性高,抗干扰能力强;控制系统结构简单,通用性强;编
14、程容易,易于使用;功能完善,维护方便;设计、施工周期短;与单片机相比较成本高 总线式工业控制机:系统集成简单,开发周期短;具有丰富的编程环境资源;能组成复杂的控制系统;模块成熟,功能完善;成本较高,对工程应用者来说不易形成自主的核心技术 可编程自动化控制器(PAC):PLC功能的扩充:运算能力提升;工业网络提升;功能多元化 微机控制系统的分类: 按照系统的组织结构分类:直接数字控制系统;分布式计算机控制系统;现场总线控制系统;工业以太网;数据采集与监控系统 按照系统的反馈分类:开环控制系统;闭环控制系统;复合控制系统(半闭环) 控制系统性能的优劣指标:稳定性—稳定裕度;精确性—稳态
15、误差;快速性—调整时间; 走马灯:硬件图(硬件设计、编程仿真、程序烧录) 指令系统:一台计算技术所能执行的指令集合就是他的指令系统 指令格式:指令的表示方法,通常由操作码和操作数组成 光电耦合器:原理发光二极管+光敏输出管,用于数/模转换,是以光为媒介传输电信号的一种电—光—电转换器件,它由发光源和受光器两部分组成。常见的光源为发光二极管、受光器为光敏二极管、光敏三级管 作用:隔离输入输出通道的噪声;实现电平的转换 主要参数:正向电压If;正向压降Vf;饱和压降Vce(sat);耐压Vce(max);电流传输比CTR:输出管的工作电压为固定值时,输出电流和发光二极管正向
16、电流之比为电流传输比 一般用光耦、交流用光耦、高速光耦 特点:体积小、寿命长、工作温度宽、抗干扰能力强、无触点、输入输出在电器上隔离 开关常量的输入形式: 手动按钮开关 限位开关:用来限定机械设备运动极限位置的电器开关,机械设备的运动部件安装开关,极限位置固定点上安装挡块,当行程开关的机械触头碰上挡块是,切断或改变控制电路,机械就停止运动或改变运行,由于机械有惯性运动,这种行程开关有一定的超行程来保护开关不受损坏,常有销键按钮式、压簧按钮式、片簧按钮式、铰链杠杆式、软杆式、 光电开关:把光的强度装换成电信号的变化来实现控制的,由发送器、接收器和检测电路构成 输入调理电路:施密特触
17、发 它是一种阀值开关电路,具有突变输入——输出特性的门电路。这种电路可阻止输入电压出现微小变化而引起的输出电压的改变 输出:小电流输出;继电器输出 若继电器触点切换的负载为电感性负载,且切换频率较高时,应为继电器的触点接入浪涌保护电路,常用的方法的CR法; 机械式继电器采用电磁吸合方式,速度慢,在开合瞬间易产生火花,触点容易老化,固态继电器用晶体管和可控硅代替触点 开关,并可以实现触点电源与控制电源的完全隔离。 继电器控制电路 模拟量输入通道的组成 A/D转化器工作原理与性能指标 ADC芯片常用的转换方法有:计数比较式;逐次逼近式;双积分
18、式;-三角调制型式 计数比较式:很少使用,速度慢、精度低、抗干扰能力差;电路简单、价格低廉 逐次逼近式:应用普遍、精度高、转换速度适中;抗干扰能力弱 双积分式:常用于强干扰场合的低频采样;抗干扰能力强、精度高;速度慢 -三角调制型式:应用越来越普遍,分辨率高,线性度好,接口简单 性能指标:分辨率;转换时间;量程;基准电压 常用芯片:DAC0832 单缓冲 双缓冲 采样定理:被采样的信号为有限带宽的信号;采样频率大于带限信号的最高频率的两倍;实际应用中采样频率信号一般为最高频率的5~10倍 量化与量化误差:1)ADC的位数(分辨率);2)舍入 孔径时间:在模拟量输入通道中,A/
19、D转换器将模拟信号转换成数字信号需要一定的时间,完成一次A/D转换的时间叫做孔径时间 采样保持:A/D转换需要时间,一般的,信号的最高频率小于10Hz可以不加采样保持 采样保持电路:由模拟开关、存储元件和缓冲放大器组成;在采样时刻,模拟开关被接通,使储存元件(通常是电容器)两端的电压被采样信号变化。当采样间隔终止时,模拟开关断开,输出则保持在断开瞬间的值不变 模拟量输出的保持:实现波形的恢复方法有两种:零阶保持与一阶多角保持 零阶保持器:是在信号传递过程中,把第nT时刻的采样信号值一直保持到第(n+1) T时刻的前一瞬间,以此类推,从而把一个脉冲序列变成一个连续的阶梯信号。因为在每一个采样区间内连续的阶梯信号的均值为常值,亦其一阶导数为零,故为零阶保持器 Z变换性质:线性性质;初值定理;终止定理;脉冲序平移定理






