1、第三章 系统硬件电路设计整体框图如下第四章 系统的软件设计 本系统编程部分工作采用KELI-C51语言完成,采用模块化的设计方法,与各子程序做为实现各部分功能和过程的入口,完成键盘输入、按键识别和功能、PWM脉宽控制和数码管显示等部分的设计。单片机资源分配如下表:P0显示模块接口键盘中断P1键盘模块接口P1.0/P1.1PWM电机驱动接口系统时钟PWM脉宽控制:本设计中采用软件延时方式对脉冲宽度进行控制,延时程序函数如下:/*延时函数*/delays() uchar i; for(i=5000;i0;i-);键盘中断处理子程序:采用中断方式,按下键,完成延时去抖动、键码识别、按键功能执行。要实
2、现按住加/减速键不放时恒加或恒减速直到放开停止,就需在判断是否松开该按键时,每进行一次增加/减少一定的占空比。显示子程序:利用数组方式定义显示缓存区,缓存区有8位,分别存放各个数码管要显示的值。定时中断处理程序:采用定时方式1,因为单片机使用12M晶振,可产生最高约为65.5ms的延时。对定时器置初值B1E0H可定时20ms,即系统时钟精度可达0.02s。当20ms定时时间到,定时器溢出则响应该定时中断处理程序,完成对定时器的再次赋值,并对全局变量time加1,这样,通过变量time可计算出系统的运行时间。3、软件设计中的特点:对于电机的启停,在PWM控制上使用渐变的脉宽调整,即开启后由停止匀
3、加速到默认速度,停止则由于当前速度逐渐降至零。这样有利于保护电机。键盘处理上采用中断方式,不必使程序对键盘反复扫描,提高了程序的效率。第五章:程序见附件1第六章:PCB图第七章:元件清单元件数量(个)直流电机1极性电容20uf 1按键6 电容22pf2 At895112MHZ晶振 RP1 1 四位一体数码管Led2电阻1k 电阻200KULN2003电阻10K电源口HDR2x3 74LS04下载口IDC第八章:参考文献1孙涵芳 徐爱卿.MCS-51/96系列单片机原理及应用M.北京:北京航空航天大学出版社,1977.2何立民.单片机应用技术选编M.北京:北京航空航天大学出版社,2003.3史国
4、生.交直流调速系统M.北京:化学工业出版社,2002.161-174.第九章:心得体会本次课程设计虽然只有两周,但短短两周我掌握了汇编编程的原理和方法。熟悉了单片机基本特征和电路设计的方法。掌握了直流电机的控制方法。熟练了运用定时器设计PWM波控制直流电机。总之,收获很多。附件1/*头文件*/#includeabsacc.h#include /* /*自定义变量*/#define uint unsigned int /自定义变量#define uchar unsigned char char gw,sw,bw,qw;uchar j; /定时次数,每次20msuchar f=5; /计数的次数s
5、bit P10=P10; /PWM输出波形1sbit P11=P11; /PWM输出波形2sbit P12=P12; /正反转sbit P13=P13; /加速sbit P14=P14; /减速sbit P15=P15; /停止sbit P16=P16; /启动uchar k;uchar t; /脉冲加减/*/*/*控制位定义*/uchar code smg12=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x73,0x71;/程序存储区定义字型码表char data led4=0x08,0x04,0x02,0x01; /位码uint x
6、; /数码管显示的数值display(); /数码管显示 delays(); /延时函数key();displays();/*/*主函数*/main (void) TMOD=0x51; /T0方式1 定时计数 T1方式1计数 TH0=0xb1; /装入初值 20MS TL0=0xe0; TH1=0x00; / 计数567 TL1=0x00; TR0=1; /启动 t0 TR1=1; /启动t1 gw=sw=bw=qw=0; /数码管初始化 P0=0xc0; P2=1; while(1) /无限循环 display(); key(); /*数码管显示*/display() gw=x%10; /求
7、速度个位值,送到个位显示缓冲区 sw=(x/10)%10; /求速度十位值,送到十位显示缓冲区 bw=(x/100)%10; /求速度百位值,送到百位显示缓冲区 qw=x/1000; /求速度千位值,送到千位显示缓冲区 for(i=0;i4;) P2=ledi; if(i=0) /显示个位 P0=smggw; delays(); else if(i=1) /显示十位 P0=smgsw; else if(i=2) /显示百位 P0=smgbw; delays(); else if(i=3) /显示千位 if(k=0) /正转时显示三 P0=0x49; else P0=0x71; /反转时显示F
8、i+;/*/*/*t0定时*中断函数*/void t0() interrupt 1 using 2 /重装t0 f-; if(k=0) if(ft) P10=1; else P10=0; P11=0; if(f=5) t=5; if(P14=0) /减速 while(P14=0); t-; if(t1) t=1;if(P15=0) /停止 while(P15=0); EA=0; 课程设计成绩评定表评定项目内 容满分评分总分学习态度学习认真,态度端正,遵守纪律。10答疑和设计情况认真查阅资料,勤学好问,提出的问题有一定的深度,分析解决问题的能力较强。40说明书质量设计方案正确、表达清楚;设计思路、实验(论证)方法科学合理;达到课程设计任务书规定的要求;图、表、文字表达准确规范,上交及时。回答问题情况回答问题准确,基本概念清楚,有理有据,有一定深度。总成绩采用五级分制:优、良、中、及格、不及格指导教师评语:签名: 年 月 日
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2