}
}
} ;
调速程序 #include\#include\#define uchar unsigned char #define uint unsigned int sbit P20=P2^0; sbit P21=P2^1;
uchar flag=0;/***高低电平标志***/ bit direction=0;/***方向标志***/ static uchar constant=1;//可以改变占空比 void time0(void) interrupt 1 using 1 { }
/****改变转向标志*****/
i++;
/**频率为固定的1kHZ左右,只是占空比发生变化**/ if(i<=constant)
flag=1; flag=2; i=0;
if(i<=10&&i>constant) if(i==10) TH0=0X9C; TL0=0X9C; static uchar i;
void int1_srv (void) interrupt 2 using 2 { }
/*******中断,调节占空比********/ void change(void) interrupt 0 using 0 { }
/*************************/
void main() {
EA=1; TMOD=0x02; ET0=1; if(INT0==0) { }
while(!INT0); constant++;
if(constant==10) constant=0; if(INT1==0) { }
while(!INT0); constant--;
if(constant==10) constant=0;
}
TR0=1; EX0=1; IT0=1; EX1=1; IT1=1; TH0=0X9C; TL0=0X9C; while(1) { }
P21=0; if(flag==1) { } if(flag==2) { }
flag=0; P20=0; flag=0; P20=1;
八、调试运行
1、按硬件图接线,加速减速按钮分别接单片机的P3.2口、P3.3口,单片机输出端口P2.0、P2.1接L298的IN1、IN2口,电动机测速端口接另一片单片机的INT0、INT1.
2、开始运行系统,观察数码管,当按下加速按钮时数码管显示的电动机速度应该加速,而当按下减速按钮时,数码管显示的速度应该减小。
3、运行系统看电动机速度是否符合要求,如不符合,则再调试,直至满足要求。
九、仿真截图
当仿真开始运行时,各个模块处于初始状态。点击左边的独立键盘加速或减速按
钮。显示模块便开始显示数字。电机的驱动模块能够实现电机的加速、减速等操作。且改变PWM脉冲时的占空比电机的工作电压改变。因此,从仿真结果可以看出,本设计可以得到预期仿真效果。
图9 仿真截图
十、心得体会
这次单片机期末实训,凝结了很多老师的心血,在此我表示由衷的感谢。没有老师们的帮助,我将无法顺利完成这次实训。首先,我要特别感谢刘老师在这一学期里给我们上了单片机课。刘老师渊博的知识、严谨的作风、诲人不倦的态度和学术上精益求精的精神让我受益终生。作为一个本科生的实训设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,想要完成这个设计是难以想象的。因此,特别需要感谢各位老师给予的耐心细致的指导,在此,再一次向全体教师以及关心帮助我的教师同学表示最诚挚的谢意!在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。在这两周的学习中,我深刻感觉到了自己对单片机编程知识的缺乏,对实践操作的生疏,也感觉到了单片机的重要性与实用性,在一块小小的芯片上就可实现很多的事情的演示。我同样也对直流电机等和本次课题相关的芯片,元器件有了新的认识,我会在今后的学习中,加大对单片机和汇编语言的学习,争取更大的进步。课程设计是我们专业课程知识综合应用的实践训练,是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的含义,认真的进行课程设计学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.