- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验三电机驱动及转速测量实验新板子
实验三 电机驱动及转速测量实验
1实验目的
(1)掌握单片机通用I/O口的使用;
(2)掌握使用单片机定时器产生占空比可调的PWM波;
(3)掌握使用单片机定时器2的捕获功能实现电机转速测量的方法。
2实验电路
2.1实验装置硬件说明
电机控制实验箱的原理框图如图1所示。
图1 电机控制实验箱原理框图
从图1可知,控制电机需要两个信号,分别为方向控制和转速控制,控制信号经过驱动电路后驱动电机运转,在电机的轴上安装有塑料转盘,转盘上装有小磁铁,当电机运动时带动小磁铁运动,每个小磁铁经过安装的霍尔传感器后,霍尔传感器都会输出一个脉冲信号,这个脉冲信号在实验中用于检测电机的转速。
电机有两种控制方式,即手动方式和自动方式。在手动方式时,可以通过开关来控制电机方向;通过旋转电位器可以控制电机速度。在自动方式时,通过程序来控制电机的方向和转速。
在本实验中,采用)由)
杜邦线连线 单片机IO口 模块接口 杜邦线数量 功能 P0 J3 8 数码管数据段 P2.2 J2(B) 1 段锁存 P2.3 J2(A) 1 位锁存 P3 J24 8 矩阵键盘数据段 P1.0 示波器 1 输出PWM P1.1 信号发生器 1 捕获计数 GND 信号发生器、示波器
用示波器观察以上PWM波波形。
(2)将测量到的电机转速显示到实验箱的数码管LED3~LED6上,转速单位为“转/分”。电机转速信号用信号发生器模拟产生。
5例程参考
见附录
6实验报告
(1)绘出硬件原理图
(2)给出软件流程图
(3)写出实验步骤
(4)附上带注释的软件源码,并对各模块进行说明
(5)总结实验心得
7注意事项
实验四的程序建立在本次实验的基础上,本实验中的两个功能(测速、输出PWM)并
合理分配好定时器资源。
附录:实验
#includereg52.h
uchar PulsNum=0; //脉冲数计数器/
//unsigned int OverFlow=0; //定时器2溢出次数计数器
#define KeyPort P3
//unsigned char Speed=0;
//unsigned char Time;
#define DataPort P0 //定义数据端口 程序中遇到DataPort 则用P0 替换
sbit LATCH1=P2^2;//定义锁存使能端口 段锁存
sbit LATCH2=P2^3;// 位锁存
#define HIGH (65536-10000)/256
#define LOW (65536-10000)%256
sbit DCOUT = P1^4;//定义电机信号输出端口
sbit DCIN=P1^2;
unsigned char flag2=0;
unsigned char flag1=0;
unsigned char PulsNum=0; //脉冲数计数器
unsigned int OverFlow=0;
unsigned datal=0; //捕捉值的低8位
unsigned datah=0; //捕捉值的高8位
unsigned char PwmL=1500;
unsigned char PwmH=1500;
unsigned long CountPerMinute //每分钟计数值=fosc/12*60=5*fosc=5*11.0592M
unsigned int speed=0;
unsigned int delay_num = 10; //速度值
void CaculateSpeed(unsigned a,unsigned b);
unsigned int TargetSpeed=0,SpeedError,SpeedErrorIntg;
unsigned char TISignal=0;
/*------------------------------------------------
全局变量
------------------------------------------------*/
unsigned char PWM_ON; //定义速度等级
#define CYCLE 10 //周期
Unsigned char code DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值0~9
unsigned char code Wei
文档评论(0)