一﹑实验目的
1﹑了解单片机在实时控制系统中的应用和测量位置的基本原理﹑基本方法。2﹑掌握D/A﹑A/D电路的综合接口技术,提高实时控制系统的设计和调试能力。二﹑教学要求
1﹑利用现有硬件电路,构成直流电机测量位置系统;2﹑编制程序,定位和测量指针指示位置。
三﹑主要仪器设备
机电实验平台﹑步进电机,万用表﹑示波器,电脑四﹑实验内容
开发板上的步进电机驱动模块电路如下图所示:
从上图中可以看出,该电路是独立的,芯片的输入通过J46端子提供,芯片的输出由J47端子引出。J46输入对应J47输出,而J47则是提供给外部连接电机的接口,可以支持直流电机﹑五线四相步进电机 28BYJ-48连接。由于该模块电路是独立的,所以使用任意单片机管脚都可以,这里使用P1.О管脚来控制ULN2003输出,即将P1.0管脚连接到J46的IN1,直流电机的两根线接J47端子的1﹑2脚即5V和 01。因此可通过单片机P1.0口输出高电平来控制电机旋转,输出低电源控制电机停止·注意:单片机 P1.0输出低电平时,ULN2003的 OUT1并不会输出高电平导致停止,而是因为集电极开路,导致电机无电流流入致使停止。
将交流电机的任意一脚接到J47的VCC,另上引脚接到J47的2脚OUT1上,将J46的IN1-IN4连接到P1.0-P1.3上,将JP1的K1-K4连接到P1.4-P1.7编写一程序,将PO口接到J8脚的a,b,c,d,e,f.g,dp 上,编写程序完成以下内容:
7)按1下K1,电机转动,电机转动后,按1下K1键,电机停止。
8)采用PWM控制电机转速,按下K2,电机转速增加О
9)采用PWM控制电机转速,按下K3,电机转速降低。5)电机工作时,分别在显示器上显示电机的PWM的占空比。
#include#include "Delay.h" #include "Key.h" #include "Nixie.h" #include "Timer0.h" sbit Motor=P1^0; unsigned char Counter,Compare; //计数值和比较值,用于输出PWM unsigned char KeyNum,Speed; void main() { Timer0_Init(); while(1) { KeyNum=Key(); if(KeyNum==1) { Speed++; Speed%=4; if(Speed==0){Compare=0;} //设置比较值,改变PWM占空比 if(Speed==1){Compare=50;} if(Speed==2){Compare=75;} if(Speed==3){Compare=100;} } Nixie(1,Speed); } } void Timer0_Routine() interrupt 1 { TL0 = 0x9C; //设置定时初值 TH0 = 0xFF; //设置定时初值 Counter++; Counter%=100; //计数值变化范围限制在0~99 if(Counter



