双直流电机同步控制系统 联系客服

发布时间 : 星期日 文章双直流电机同步控制系统更新完毕开始阅读8577ad4ca300a6c30c229f75

P3.4:T0主电机速度脉冲输入 P3.2:INT0从电机速度脉冲输入

其中在8位PWM脉宽调制模式下的输出波形频率为PCA时钟频率的256分频,8位PWM占空比公式为:

256?PCACPHn0 (8)

256此时,只要将PCA0开启,为PCA配置一个时钟源,将相应模块设在8为

DutyCycle?PWM模式下,并将PWM输出开启,再将该模块配置到一个I/O口上,则不再需要处理器的干预,PCA会自动地向外端口输出PWM波,只有当需要改变占空比的时候,修改一下该模块的捕捉比较寄存器的值即可。

20

六、设计心得

经过将近两周的单片机课程设计,终于完成了两台直流电机速度同步控制的设计,基本达到设计要求,从心底里来说,还是很高兴的,毕竟这次设计把实物都做了出来。但高兴之余不得不深思呀!

在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多。对于单片机设计,其硬件电路是比较简单的,主要是解决程序设计的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对单片机的结构很熟悉。因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。

要设计一个成功的电路,必须要有耐心,要有坚持的毅力。在整个电路的设计过程中,花费时间最多的是各个单元电路的连接及电路的细节设计上,如在多种方案的选择中,我们仔细比较分析其原理以及可行的原因。这就要求我们对硬件系统中各组件部分有充分透彻的理解和研究,并能对之灵活应用。完成这次设计后,我在书本理论知识的基础上又有了更深层次的理解。

同时在本次设计的过程中,我还学会了高效率的查阅资料、运用工具书、利用网络查找资料。我发现,在我们所使用的书籍上有一些知识在实际应用中其实并不是十分理想,各种参数都需要自己去调整。偶而还会遇到错误的资料现象,这就要求我们应更加注重实践环节。

最后还要在此感谢各位毕业设计的指导老师们和我的组员们,他们在整个过程中都给予了我充分的帮助与支持。

21

七、参考文献

[1]陈勇.电力拖动与控制.北京:人民邮电出版社,2011

[2] 梅晓榕.自动控制元件及线路.哈尔滨:哈尔滨工业大学出版社, 2001 [3] 胡寿松.自动控制原理.北京:科学出版社,2007

[4]王平.计算机控制技术及应用.北京:机械工业出版社,2010 [5]向敏.微控制器原理及应用.北京:人民邮电出版社,2012

22

八、附录

#include \ void system_check(void) {

P2M0 &= (~(1<<7)); /*将相应位清0*/ P2M1 &= (~(1<<7)); P2M0 |= 1<<7; /*设置相应IO口推挽输出*/ }

void timer_init( u8 fosc, u8 div, u8 number, u16 time, u8 pre) //工作方式1 {

u16 fosc_fre = 0;

fosc_time = (u32)fosc * 1000000 /(u32)div; fosc_time /= (u32)pre;

fosc_fre = (u16)(fosc_time /1000 * (u32)time /1000); /*fosc_time <65536*/

if( TIM0 == number ) {

time0 = ( 65536 - fosc_fre ); TMOD |= 0x01; /* the timer0 mode 1 */

TL0 = time0; TH0 = time0>>8;

ET0 = 1; if( 1 == pre ) AUXR |= 0x80; /* the timer0 clk = fclk */ else AUXR &= 0x7f; /* the timer0 clk = fclk/12*/ }

EA =1; }

void counter_init( u8 number ) {

if( TIM1 == number ) { TMOD |= 0x50; /* the counter1 mode 1 */ ET1 =1; }

}

23