4.系统调试
4.1软件调试
在程序编写的过程中,出现了很多问题,包括键盘扫描处理、PWM信号发生电路的控制、以及单片机控制直流电机的转动方向等问题,虽然问题不是很大,但是也让我研究了好长时间,在解决这些问题的时候,我不断向老师和同学请教,希望能通过大家一块的努力把软件编写的更完整,让系统的功能更完备。经过多天的努力探索,也经过老师的指导,大部分问题都已经解决,就是程序还是不能实现应该实现的功能,这让我很着急。后来经过一点一点的调试,并认真总结,发现了问题其实在编写中断处理程序时出现了错误,修改后即可实现直流电机调速的目的。总结这次软件调试,让我认识到了做软件调试的基本方法与流程:
(1)认真检查源代码,看是否有文字或语法错误
(2)逐段子程序进行设计,找出错误出现的部分,重点排查 (3)找到合适的方法,仔细检查程序,分步调试直到运行成功 4.2系统仿真
仿真软件选择Proteus ,在Proteus中画出系统电路图,当程序在Keil C中调试通过后,会生成以hex为扩展名的文件,这就是使系统能够在Proteus中成功进行仿真的文件。将些文件加载到单片机仿真系统中,验证是否能完成对直流电机的速度调节。若不成功,则重新回到软件调试步骤,进行软件调试。找出错误所在,更正后重新运行系统。硬件仿真电路的设计完全按照论文设计方案进行。在仿真的过程中也遇到了很多问题,比如元件选择、电路设计等,在元件选择方面,有的芯片是我以前学习的时候所没有遇到过的,所以在寻找和使用的过程中也遇到很多麻烦,但经过自己的努力,并借鉴从互联网上找到的资料,我逐渐掌握这些元件的使用方法和原理,为系统设计和仿真提供了良出的基础。另外,在进行仿真的时候,也经常出现程序没有错误了,但是仿真通不过的情况,这些大部分原因是在管脚定义上,很多系统仿真的问题都出在这。经过这段时间的努力,使我对仿真软件以及系统设计电路有了更深一步的认识,也为系统的成功奠定了基础。
17
附录
1.详细电路设计图
18
2.程序
(1)延时程序 void dealy() { uchar i;
for(i=0;i<100;i++); }
void t0(void) interrupt 1 using 0 //定时T0中断服务函数 { tcnt++;
//每过250ust tcnt 加一
if(tcnt==40) //计满40 次(1/100 秒)时
{
tcnt=0; //重新再计 sec++;
if(sec==10) //定时0.1 秒,在从零开始计时 {
sec=0;
TH0=0x06; //对TH0 TL0 赋值 TL0=0x06; miaoshu=count;
count=0; }
}
}
(2)PID运算子程序
void PID_work() {
negsum=0;possum=0; if(BJ==0) {
possum+=k1;
temp[2]=temp[2]+temp[0];}
else
{
19
negsum+=k1;
}
k3=temp[2]/10; if(possum>negsum) {
k2=possum-negsum; //存储结果
else
UK=1; P3=UK;
} (3)主程序
void main()
{
P1=0x00; P3=0x00; CY=0;
temp[1]=k3+k1; //误差积累, {
if(CY==1) }
UK=0xfe; else UK=k1+k3;
//16位判断。
temp[2]=temp[2]-temp[0];
TMOD=0x01; /*定时器0方式1*/ TH0=0xfc; /*定时器装载初值*/ TL0=0x18;
ET0=1; /*开定时器0中断*/ TR0=1; /*启动定时器0*/
while(1)
if(P1_0==1) if(P1_1==1)
{
P1=0xff;
20
EA=0; if(P1_2==1) { }
if(P1_3==1) { high++;
/*关CPU中断*/
dir=~dir; while(P1_2!=0) {};
/*转向控制*/
if(high==30) high=0; while(P1_3!=0) }
{};
}
}
结论
本文所述的直流电机闭环调速系统是以低价位的单片微机8051为核心的,而通过单片机来实现电机调整又有多种途径,相对于其他用硬件或者硬件与软件相结合的方法实现对电机进行调整,采用PWM软件方法来实现的调速过程具有更大的灵活性和更低的成本,它能够充分发挥单片机的效能,对于简易速度控制系统的实现提供了一种有效的途径。而在软件方面,采用PLD算法来确定闭环控制的补偿量也是由数字电路组成的直流电机闭环调速系统所不能及的。曾经也试过用单片机直接产生PWM波形,但其最终效果并不理想,在使用了少量的硬件后,单片机的压力大大减小,程序中有充足的时间进行闭环控制的测控和计算,使得软件的运行更为合理可靠。
21