重庆微网站,网站运营怎么自学,百度客户端,dp抖音代运营一、系统方案 本文主要研究了利用MCS-51系列单片机控制PWM信号从而实现对直流电机转速进行控制的方法。本文中采用了三极管组成了PWM信号的驱动系统#xff0c;并且对PWM信号的原理、产生方法以及如何通过软件编程对PWM信号占空比进行调节#xff0c;从而控制其输入信号波形等…一、系统方案 本文主要研究了利用MCS-51系列单片机控制PWM信号从而实现对直流电机转速进行控制的方法。本文中采用了三极管组成了PWM信号的驱动系统并且对PWM信号的原理、产生方法以及如何通过软件编程对PWM信号占空比进行调节从而控制其输入信号波形等均作了详细的阐述。另外本系统中使用了霍尔元件对直流电机的转速进行测量经过处理后将测量值送到数码管显示出来。 二、硬件设计 原理图如下
三、单片机软件设计 1、首先是系统初始化 TMOD0x11; //定时器方式1 TH00xdc; TL00x00; //定时器装入初值 EA1; //开总中断 ET01; //定时器0开中断 TR01; // EX01; IT11; //定时器启动 TH10xff; TL10x9c;//定时100us ET11; //定时器1开中断 TR11; EX11; PT01; 2、数码管显示程序 void display(void) { P00x00; COM1 0; P0 cc_table[temp/1000]; delay(2); COM1 1; P00x00; COM2 0; P0 cc_table[temp%1000/100]; delay(2); COM2 1; P00x00; COM3 0; P0 cc_table[temp%1000%100/10]; delay(2); COM3 1;
P00x00;
COM4 0;
P0 cc_table[temp%10];
delay(2);
COM4 1; }
3、按键检测程序 void keyscan() //键盘扫描函数 { if(num10) { delay(5); //消除抖动 if(num10) { if(m199) m; }} if(num20) { delay(5); if(num20) { if(m1) m–; }} if(num30) { delay(5); if(num30) { zheng1; //正传标志置1 fan0; // 反转标志置0 }} if(num40) { delay(5); if(num40) { zheng0; //正传标志置0 fan1; // 反转标志置1 }} if(num50) { delay(5); if(num50) { while(num50) ; kai1-kai; } } } 4、核心算法程序 void main() { flag_10; m100; //占空比为100 zhuansu0; //转速初值0 flag0; zheng1; //初始化电机正转动 fan0;
init(); //初始化while(1)
{
keyscan(); //键盘扫描程序display();}} 四、proteus仿真设计 Proteus软件是一款应用比较广泛的工具它可以在没有硬件平台的基础上通过自身的软件仿真出硬件平台的运行情况这样就可以通过软件仿真来验证我们设计的方案有没有问题如果有问题可以重新选择器件连接器件直到达到我们设定的目的避免我们搭建实物的时候如果当初选择的方案有问题我们器件都已经焊接好了再去卸载下去再去焊接新的方案的器件测试这样会浪费人力和物力也给开发者带来一定困惑Proteus仿真软件就很好的解决这个问题我们在设计之初就使用该软件进行模拟仿真测试选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸焊接实物调试最终完成本设计的作品。