欢迎来到天天文库
浏览记录
ID:10979441
大小:235.00 KB
页数:5页
时间:2018-07-09
《基于51单片机的直流电机pwm闭环控制实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于51单片机的直流电机PWM闭环控制实验 从光驱上拆了一个直流电机组件(这种服务器上用的光驱很难找),有现成的码盘和光耦,给它配了一个板子很方便就成了我的直流电机的实验模块,再配上小键盘和显示模块,我的单片机闭环控制直流电机的一个实验装置就这样OK了。 先键入转速,按#键确认,开始启动电机,显示屏实时显示电机转速,可看到转速在所设数值上下摆动,最后稳定在20左右的摆幅。 其C语言程序如下:#include#defineDIGPORTP2#defineWORDPORTP0#defineKEYPORTP1#defineuin
2、tunsignedint#defineucharunsignedchar#defineuongunsignedlongsbitP_7=P3^7;bitOVER;uintk,dt;uongKEYNUM;ucharqu,NUM;voidDelay(uintms){ while(--ms);}voidtimer0(void)interrupt1using1{ TL0=-(10248%256); TH0=-(10248%256); NUM+=1; if(NUM
3、>=10){ TR1=0; TR0=0; OVER=1; }}uintCK(void){ uintnumber=0; P_7=1; OVER=0;NUM=0; EA=1;ET0=1; TH0=(10203/256); TH0=(10203%256); TH1=0; TL1=0; TMO
4、D=0x51; TR0=1; TR1=1; Delay(dt); P_7=0; while(!OVER); OVER=0; number=TH1*256+TL1; return(number);}voidDisplay_LED(uongnu){ uintii=0; uongaa,bb; uintxx[]={-0x10,-0x10,-0x
5、10,-0x10,-0x10,-0x10,-0x10,-0x10}; do { bb=nu/10; aa=nu-bb*10; xx[ii]=aa; nu=bb;ii++; }while(nu>0); DIGPORT=0xf0;WORDPORT=0x30+xx[0]; DIGPORT=0xf1;WORDPORT=0x30+xx[1]; DIG
6、PORT=0xf2;WORDPORT=0x30+xx[2]; DIGPORT=0xf3;WORDPORT=0x30+xx[3]; DIGPORT=0x0f;WORDPORT=0x30+xx[4]; DIGPORT=0x1f;WORDPORT=0x30+xx[5]; DIGPORT=0x2f;WORDPORT=0x30+xx[6]; DIGPORT=0x3f;WORDPORT=0x30+xx[7];}voidgetkey(){ qu=0;k=0
7、; KEYNUM=0; do { switch(KEYPORT) { case0xbd: KEYNUM=KEYNUM*10; break; case0xf6: KEYNUM=KEYNUM*10+1; break; case0xf5: KEYNUM=KEYNUM*1
8、0+2; break; case0xf3
此文档下载收益归作者所有