版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上电子科技大学中山学院学生实验报告院别:电子信息学院 课程名称:微处理器实验 班级: 12电信A 姓名: 学号: 实验名称:十、 步进电机与直流电机控制实验 实验时间:2014年12月1日成绩: 教师签名: 批改时间:1、 实验原理与目的1、掌握步进电机工作原理、单片机接口电路及程序控制方法。2、掌握直流电机工作原理、单片机接口电路及程序控制方法。步进电机和直流电机是机电一体化系统中常用的两种电动执行设备。步进电机可在电脉冲信号的控制下,实现快速启停以及精确的角位移控制。直流电机可通过H桥电路切换转向,并可利用PWM技术进行调速。ZSC-1实验箱为MCU1配置了一个四相
2、步进电机(其最小步距角为5.625°/64)和一个减速直流电机。图3.10.1为步进电机实验电路。P2.4P2.7某根口线输出低电平时,相应的功率三极管导通,其所连接的一相线圈通电,口线输出高电平时线圈断电。程序以一定的时间间隔依次输出单4拍、双4拍或4-8拍方式对应的相序字,便可控制步进电机转动,颠倒相序字顺序,或改变时间间隔,步进电机的转向和转速也随之改变。图中按键KX0KX3可用于步进电机转向、转速的控制输入。图3.10.1 步进电机实验电路图3.10.2为直流电机实验电路,其核心为功率三极管T104T107组成的H型全桥驱动电路。在单片机控制信号作用下,4个功率管呈现多种不同
3、的通断组合,使电机处于相应工作状态。图中按键KX0KX3可用于直流电机转向、转速的控制输入。图3.10.2 直流电机实验电路表10-1为不同控制信号组合对应的直流电机状态。进行调速控制时,单片机先将FWD、REV置为10或01组合,再通过ENM输出PWM信号,利用PWM信号的不同占空比来调节电机绕组的平均电压,从而实现电机转速的控制。表3.10.1 直流电机控制功能表ENMFWDREV电机状态ENMFWDREV电机状态000制动100制动001惰行101反转010惰行110正转011惰行111制动二、实验设备1、PC机一台(已安装Keil uVision、STC_ISP等软件);2、ZSC-1
4、单片机实验箱一台。三、实验内容与分析1、设计程序,控制四相步进电机以4-8拍方式(步距角为5.625°/64)正转90°,停2s,然后反转90°,再停2s,如此循环。 在Keil中编写源程序。C语言参考程序如下(请将下划线部分补充完整):/*头文件声明*#include <reg51.h> /*数据类型定义*typedef unsigned char uint8;typedef unsigned int uint16;/*常量数组声明*uint8 code FWD_TABLE8= 0xEF,0xCF,0xDF,0x9F,0xBF,0x3F,0x7F ,
5、0x6F ; /4-8拍正转相序字uint8 code REV_TABLE8= 0x6F,0x7F,0x3F,0xBF,0x9F,0xDF,0xCF,0xEF ; /4-8拍反转相序字 /*函数原型声明*void Delay(uint16 ms);/*主函数*void main() uint8 i,j; while(1) for(j=0;j< 128 ;j+) /正转90°(1024步) for(i=0;i<8;i+) P2=FWD_TABLEi; /查表并输出正转相序字 Delay(5); /软件延时(控制步进电机转速) Delay(2000); for(j=0;j&l
6、t; 128 ;j+) /反转90°(1024步) for(i=0;i<8;i+) P2=REV_TABLEi ; /查表并输出反转相序字 Delay(5); /软件延时(控制步进电机转速) Delay(2000); /*软件延时函数*void Delay(uint16 ms) uint16 i; do for(i=700;i;i-); while(-ms); /*程序结束* 在Keil中创建工程,加入源程序文件,设置选项,进行编译、连接、转换处理,生成HEX格式的单片机程序文件。 用串行电缆连接实验箱和PC机各自的串行通信口,并运行PC机上的STC_ISP程序,进行单片机程序
7、下载(注意MCU1要先断电再上电)。 验证程序运行效果。也可对程序做适当修改,试验多种不同的控制方案和运行效果。2、设计程序,通过按键KX0、KX1调节步进电机的转速,通过按键KX2、KX3切换其转向。C语言参考程序如下(请将下划线部分补充完整):/*头文件声明*#include <reg51.h>/*数据类型定义*typedef unsigned char uint8;typedef unsigned int uint16;/*口线声明*sbit P32 = P32;sbit P34 = P34;sbit P35 = P35;sbit P37 = P37;/*常量数组声明*uin
8、t8 code PHASE_TABLE8= 0xEF,0xCF,0xDF,0x9F,0xBF,0x3F,0x7F,0x6F ; /4-8拍相序字/*函数原型声明*uint8 ScanKey();void Delay(uint16 ms);/*主函数*void main() int i=0,j,k,SpeedTime=25; uint8 Key,Direction=0; while(1) P2= PHASE_TABLEi ; /查表输出当前相序字 if(Direction=0) /准备下一个相序字 if(+i>= 8 ) i=0; else if(-i<0) i=7; for(j=0
9、;j<SpeedTime;j+) /由SpeedTime控制总延时 for(k=700;k;k-); /以1ms为延时单位 Key=ScanKey(); if(Key=0xFF) continue ; /无键按下,则继续延时循环 while(ScanKey()!=0xFF); /有键按下,等待按键释放后再处理 if(Key=0) if(SpeedTime>5) SpeedTime-=5; /KX0按下,则加速 else if(Key=1) if(SpeedTime<50) SpeedTime+=5; /KX1按下,则减速 else if(Key=2) Direction= 0
10、 ; /KX2按下,则正转 else if(Key=3) Direction= 1 ; /KX3按下,则反转 break; /从延时循环中跳出 /*独立键盘扫描函数*uint8 ScanKey() if(P32=1&&P34=1&&P35=1&P37=1) return 0xFF; /无键按下时,返回0xFF Delay(10); /延时消抖 if(P32=0) return 0; /KX0KX3按下,分别返回0,1,2,3 if(P34=0) return 1; if(P35=0) return 2; if(P37=0) return 3; retur
11、n 0xFF; /无键按下时,返回0xFF/*软件延时函数*void Delay(uint16 ms) uint16 i; do for(i=700;i;i-); /以1ms为延时单位 while(-ms); /*程序结束*3、设计程序,控制直流电机全速正转2s,反转2s,然后再慢速正转2s,反转2s,如此循环。C语言参考程序如下(请将下划线部分补充完整):/*头文件声明*#include <reg51.h> /*数据类型定义*typedef unsigned char uint8;typedef unsigned int uint16;/*特殊功能寄存器声明*sfr P1M1=0
12、x91;sfr P1M0=0x92;/*口线声明*sbit ENM = P14 ;sbit REV = P16;sbit FWD = P17;/*全局变量声明*uint16 PwmHighTiming,PwmLowTiming;uint8 PwmHighTH0Buff,PwmHighTL0Buff,PwmLowTH0Buff,PwmLowTL0Buff;bit PwmPhase=1;/*函数原型声明*void PWMInit();void PWMOut(uint8 Duty);void Delay(uint16 ms);/*中断服务函数*void T0ISR() interrupt 1 if(
13、PwmPhase=1) /切换输出电平及定时时间 PwmPhase=0; ENM=0; TH0=PwmLowTH0Buff; TL0=PwmLowTL0Buff; else PwmPhase=1; ENM=1; TH0=PwmHighTH0Buff; TL0=PwmHighTL0Buff; /*主函数*void main() P1M1=0x00; P1M0=0x10; /设置P14(ENM)为强推挽输出 PWMInit( ); /PWM(定时/计数器)初始化 while(1) PWMOut(100); /全速 FWD=1; /正转2s REV=0; Delay(2000); REV=1; /反
14、转2s FWD=0; Delay(2000); PWMOut(50) ; /慢速 FWD=1; /正转2s REV=0; Delay(2000); REV=1; /反转2s FWD=0; Delay(2000); /*PWM初始化函数*void PWMInit() TMOD=0x01; TR0=1; ET0=1; EA=1 ; /*PWM占空比更新函数*void PWMOut(uint8 Duty) /Duty=0.100 if(Duty=0) TR0=0; ENM=0; /占空比为0时,停止定时,固定输出低电平 else if(Duty=100) TR0=0; ENM=1; /占空比为100时,停止定时,固定输出高电平 else PwmHighTiming=10*Duty; /根据占空比计算高、低电平定时时间 PwmLowTiming=1000-PwmHighTiming; PwmHighTH0Buff=(65536-PwmHighTiming)>>8; PwmHighTL0Buff=(65536-PwmHighTiming)&0xff; PwmLowTH0Buff=(65536-PwmLowTiming)>>8; PwmLowTL0Buff=(65536-PwmLowTiming)&a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年重庆市公务员考试《申论2》(乡镇卷)真题及完整答案解析
- 2026 三年级语文上册第三单元口语交际课件
- 生理学各章节习题及答案
- 高级教师职称面试讲课答辩题目及答案
- 2026年注册测绘师《测绘管理与法规》真题卷
- 2026年中医体质辨识考试题附答案
- 2026年银行业专业人员初级职业资格考试(银行业专业实务个人理财)经典试题及答案
- 2026年事业单位《法学》专业知识试题及答案解析
- 2026年交管12123学法减分复习考试题库带答案(基础题)试卷及答案
- 2026年横琴辅警考试题及答案
- 2026年湖南高考生物真题试卷(新课标卷)(+答案)
- 2026年四川爱众乐享医养产业有限公司公开招聘劳务派遣工作人员15人的备考题库及完整答案详解1套
- 重大事故隐患自查自改常态化机制
- 国际对外汉语课件
- DB12-T 1449-2025 电子公文数据智能化管理规范
- 防疫物资购销合同范本
- 2025年中国粮仓数据监测研究报告
- 粮食烘干生产安全培训课件
- 四川省甘孜州2024-2025学年八年级下学期期末历史试题(含答案)
- 电驱测试基础知识培训课件
- 《抽水蓄能工程建设项目保险管理导则》编制说明
评论
0/150
提交评论