




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、沈阳工程学院课程设计设计题目:直流电机控制器程序设计系 别 班级学生姓名 学号指导教师 职称 起止日期:2010年12月27日起至2011年1月7日止沈阳工程禽院课程设计任务书课程设计题目:直流电机控制器程序设计系 别班级学生姓名 学号_指导教师职称课程设计进行地点:任务下达时间:10年12月27日起止日期: 10年12月27日起至11年1月7日止教研室主任年 月 日批准1. 设计主要内容及要求;编写直流电机控制器程序。要求:1)具有PWM调速功能。2)可以固定值调速,也可以连续调速。3)能够进行速度级别显示。2. 对设计论文撰写内容、格式、字数的要求;(1).课程设计论文是体现和总结课程设计
2、成果的载体,一般不应少于3000 字。(2).学生应撰写的内容为:中文摘要和关键词、目录、正文、参考文献 等。课程设计论文的结构及各部分内容要求可参照沈阳工程学院毕业设计(论 文)撰写规范执行。应做到文理通顺,内容正确完整,书写工整,装订整齐。(3).论文要求打印,打印时按沈阳工程学院毕业设计(论文)撰写规 范的要求进行打印。(4).课程设计论文装订顺序为:封面、任务书、成绩评审意见表、中文 摘要和关键词、目录、正文、参考文献。3. 时间进度安排;顺序阶段日期计划完成内容备注112月27日教师讲解题目,学生查阅相关资料212月28日查阅相关资料、进行方案论证312月29日确定调速和显示方法41
3、2 月 30、31日编写程序51 月 4、5 R调试程序61月6日撰写论文71月7日论文答辩沈阳工程学院单片机课程设计成绩评定表系(部):班级:学生姓名:_指导教师评审意见评价 内容具体要求权重评分加权 分调研 论证能独立查阅文献,收集资料:能制左课程设计方案 和日程安排。0. 15432工作 能力 态度工作态度认真,遵守纪律,岀勒情况是否良好,能 够独立完成设计工作,0.25432工作 量按期圆满完成规龙的设计任务,工作量饱满,难度 适宜。0.25432说明 书的 质量说明书立论正确,论述充分,结论严谨合理,文字 通顺,技术用语准确,符号统一,编号齐全,图表 完备,书写工整规范。0.5543
4、2指导教师评审成绩 (加权分合计乘以12)分加权分合计指导教师签名:年 月曰评阅教师评审意见评价 内容具体要求权重评分加权 分查阅 文献查阅文献有一泄广泛性;有综合归纳资料的能力0.25432工作 量工作量饱满,难度适中。0.55432说明 书的 质量说明书立论正确,论述充分,结论严谨合理,文字 通顺,技术用语准确,符号统一,编号齐全,图表 完备,书写工整规范。0.35432评阅教师评审成绩 (加权分合计乘以8)分加权分合计评阅教师签名:年 月曰课程设计总评成绩分中文摘要直流电动机以其良好的线性调速特性、简单的控制性能、较高的效率、优 异的动态特性,一直占据着调速控制的统治地位。但是模拟控制电
5、路有以下缺 陷:模拟电路容易随时间漂移,会产生一些不必要的热损耗,以及对噪声敬感等。 在用了 PWM技术后,避免了以上的缺陷,实现了数字方式来控制模拟信号,可 以大幅度降低成本和功耗。PWM输出脉冲占空比的变化,利用占空比的变化调 整加在电机电枢绕组上的电压,改变电压随即改变电机电流,转速依据电流的 大小来改变。脉宽调制(P刑0是利用数字输出对模拟电路进行控制的一种有效技 术,尤其是在对电机的转速控制方面,可大大节省能量。系统的响应速度和稳 定精度等指标比较好;具有很強的抗噪性,且有节约空间、比较经济;电枢电流 的脉动量小,容易连续,而且可以不必外加滤波电抗也可以平稳丄作;系统的调 速范圉宽;
6、使用元件少、线路简单。我的设计方案主要是通过控制定时器的初值, 实现占空比可调,还应用了单片机中的LCD显示,定时器,外部中断从而达到 学习、了解单片机相关指令在各方面的应用。它能实现的基本功能包括运行的 开启与停止,连续调速,固定值调速,LCD显示,并且实现连续调速与固定值 调速之间的双向切换功能。关键词单片机,LCD显示,PWM无极调速,外部中断目录课程设计任务书I沈阳工程学院Ill单片机 课程设计成绩评定表Ill中文摘要IV1设计任务描述1设计题目:直流电机控制器程序设计112设计要求11.2.1设计目的12设计思路23设计方框图34各部分程序设计及参数计算441PWM调速44. 2定时
7、器初始化: 44. 3连续调速54. 4连续调速跳转到固定值调速64. 5固定值调速74. 6固定值调速跳转到连续调速84. 7液晶显示84.8灯循环亮104.9延时105单片机和主要电路简介115. 1 C8051单片机简介115. 2 PWM调速原理115. 3液晶显示电路116程序流程图137小结148致谢159参考文献16附录程序清单171设计任务描述1.1设计题目:直流电机控制器程序设计1.2.1设计目的熟练地应用C8051单片机,运用定时器,外部中断和液晶显示。采用PWM 调速是比较方便的。通过改变电机电枢电圧接通时间与通电周期的比值(占空比) 来控制电机速度。课程设计能够将所学内
8、容应用到实践。1.2. 2基本要求1)具有PWM调速功能。2)可以固定值调速,也可以连续调速。3)能够进行速度级别显示。1.2.3发挥部分1)单片机外部中断能控制电动机开启与停止2)当开启 PWM 脉冲时,LCD 显示 welcome to this system3)LCD能够实时显示电动机的当前转速THE SPEED IS r/min4)LCD能够显示电动机的状态 加速显示up减速显示down5)通过LED显示灯的两灭,可以知道现在的脉冲占空比的值6)可以实现电动机连续调速与固定值调速之间的双向切换2设计思路调速信号的产生众所周知,直流电动机转速n可表示如下,=匕山K式中:U-电枢两端的电压
9、I-电枢电流R -电枢电路总电阻;-每级磁通量 k-0 电动机结构参数。 从式中可知,改变U、R等变量都可达到调速的H的,但最方便有效的调速方法是对电枢电压U进行控制。设计方案是应用PWM脉冲宽度调制技术实现速度的调节,通过改变电机电枢 电压接通时间与通电周期的比值(占空比)来控制电机速度。即通过调节高低电平T的比值来调节占空比,可以用来个定时器TO, T1来实现,则占空比 =T + 7"0 当我们选择定时方式1时,每次都要重装初值,可以通过改变定时的重装初值, 来改变定时器的定时时间,从而来改变占空比。1. 无级调速:选用了两个定时器TO和T1,分别控制高电平和低电平,每次按下中断
10、6, 定时器TO加100,定时器T1减100,每次按下中断7,定时器T0减100,定时 器T1加100,这样就实现了定时周期不变,占空比改变,高电平所占时间增加, 低电平所占时间减小,此时输出电压变大,若连接电动机,电动机处于加速状态。 高电平所占时间减小,低电平所占时间增大,此时输出电压变小,若连接电动机, 电动机处于减速状态。2. 固定值调速:在固定值调速过程中,每次按下中断6,程序跳转到不同初始值的设定程序, 执行不同初始值的程序,转速就不同,从而实现固定值调速。3. 液晶显示:因为调速过程中一直保持周期不变,则高电平的时长与电流的大小成正比, 而高电平的时长,与定时器的初值有关,定时器
11、初值经过运算后的结果发送给 LCD显示,这样可以使显示的数值更接近实际转速,而不是凭空想象,具有实际 用途。在每次加速的子程序后,把一个变量置1,然后在显示程序中对这一位进 行判断,若如果为1,则显示up,不为1,则显示down,从而能够对加速和减速在 液晶中显示出来。同理,在液晶显示程序中,对另一个变量进行判断,可以再开 启时显示 welcome to this system4. 灯的显示:在固定值调速的过程中每按下IT6,电动机的转速发生变化,当不同的灯亮 时,我们就可以知道现在占空比是多少,有利于观察和调节占空比。5停止:在固定值调速中,按下INT6能跳转到我设定的5个固定值,如果不按I
12、NT7, 再按下IT7时,电动机停转。3设计方框图、连续减速,固上值调速以及*外部中断6电动机的开启C8051F020 单片 机>电动机的停止和连续加速外部中断7连续减速和固左值的切换*4各部分程序设计及参数计算4. 1定时器初始化:1) 选择时钟脉冲fosc= 16MHz并选择12分频,贝|JCKCON=OOH2) 选择定时器TO和T1,定时器TO的中断向量表是OOOBH,定时器T1的中断向量表是OO1BH,工作方式1, TMOD=11H,初值相等,实现方波。3) 输出端口为推挽方式4) we (0);显示0转/分5) while(l):不断循环执行以下程序初始化部分程序:CKCO N
13、&=OXE7;/选择 12 分频TMOD=OX11;/选择定时器0, 1和工作方式一OSCICN=0X07;/选择系统时钟 16MHZP00=0:/ 输出端 口清零TH0=c3;/ 定时器 T0 赋初值TL0=c4;THl=cl;/定时器T1 赋初值TLl=c2;EA=1;/中断总使能ET0= 1;/ 允许 TO 中断ET1=1;/ 允许T1 中断we(0) ;/ 显示 0转/分XBR2=0X40;/交义开关使能P1MDOUT=OXFF;/P1 口输出方式为推挽EIE2=0X30;/中断6, 7使能while(l);4.2方波脉冲的实现当按下INT6时,执行TRO二1,从而开启定时器T
14、0,当定时时间到了以后,跳 到中断TIMEO,并且关掉T0,开启T1;进入中断TIME1后,并且关掉T1,开启T0: 这样不断的循环,就出现了方波。/定时器中断0/void time0() in term pt 1P00= 1;/端口输出高电平TR0=0;/关闭定时器TOTH l=cl;/重装初值TLl=c2;TR 1=1;/ 开启定时器 T 1/定时器中断 1 /void time 1() interrupt 3 P00=0;/端口醯出低电平TR 1 =0;/ 关闭定时器T1TH0二c3;/重装初值TL0=c4;TR0= 1;/ 关闭定时器TO4. 3连续减速调速用c5来记录当前的状态,第一
15、次按INT6时,执行easel,即开启方波脉冲, 还执行才C11二0,即液晶会显示welcome to this system:第.次按INT6时,执行case2,调用lianxujian()函数,并且调用we(c3), 显示当前转速;以下同理,第五次按INT6时,执行cased,调用lianxujianO函 数,并且调用we(c3),显示当前转速;并且执行c5=l;调回case2,继续减速,从 而实现连续减速。void INT6 interrupt 18P3IF=0; /中断标志位清零c5=c5+01;switch(c5) case l:TR0=l;/开启定时TO, P0.0输出方波 cl
16、1=0;/显示 welcome to this system we(c3);/显示当前转速 for(i=0;i<=24000;i +);/延时程序break;case 2:lianxujian();we(c3);/显示当前转速 for(i=0;i<=24000;i+););break;case 3:lianxujian();we(c3);for( i=0: i <=24000; i+); break;case 4:lianxujian();we(c3);for (i; i <=24000; i +);); break;case 5:lianxujian();c5=l;/
17、c5置1,回到easel,实现连续加速we(c3);for(i ;i<=24000;i+);); break;4. 5固定值调速我所设计的程序中,有五个固定值,当到达第五个固定值后,再按INT6,则 电动机停转。在P30没有接地时,当按INT7时,执行c5=5,这之后第一次按下INT6 时,就回执行case6,调用gudingzhi (n)函数,实现固定值调速。第二次按下INT6 时,就回执行case7,调用gudingzhi (n)函数,实现固定值调速。第三次按下INT6 时,就回执行case7,调用gudingzhi (n)函数,实现固定值调速。由于每次的n 值不同,就会有不同的占空
18、比。第六次按下INT6时,就回执行casell,执行TRO=O, TR1二0,从而关闭电动机。同时可以通过观察灯的亮灭来,知道当前的占空比是 多少,当LED1亮时,占空比为10%;当LED3亮时,占空比为30%;当LED5亮时,占 空比为50%:当LED7亮时,占空比为70%:当LED全灭时,占空比为90%; 跳转部分程序:case 6:gudingzhi(12);/占空比 10%we(c3);Pl 1=0:for(i=0;i<=18000;i+););break;case 7:gudingzhi(6);/占空比30%we(c3);P1I = 1;Pl 3=0;for(i=0;i<
19、=18000;i+);break;case 8:gudingzhi(O);/占空比50%we(c3);Pll = l;P13=l;P15=0;for(i=0;i<=20000;i+););break;case 9:gudingzhi(-6);/70%we(c3);Pll=l;P13=l;P15=l;P17=0;for( i=0: i<=20000; i+); break;case 10:gudingzhi(-12);/ 占空比90% we(c3);P17=l;for(i=0;i<=20000;i+););break;case 11:TR0=0;/ 关闭定时器TOTR1 =0;
20、/关闭定时器T1 c5=0;/回到连续加调速Pl6=0;for(i;i<=24000;i+); break;)4. 6固定值调速跳转到连续调速由于P30接地,则P30=0,不会发生跳转,每按INT7后,执行if以后的语句, 实现固定值与连续减之间的切换;当P30没有接地,即P30=l,则执行else后的语 句:当电动机处于固定值状态时,实现固定值与连续加速之间的调速;当处于连 续减的状态时,就实现了连续减和连续加的切换。因此实现了连续加,连续减, 和固定值三者之间的调速。P30=0,当按下INT7时,会在C5=l和C5=5之间切换,再按INT6会实现固定 值与连续减之间的切换;P30=l
21、,每按下INT7时,执行连续加速。从而实现固定值和连续减速到连续 加速的控制;转换的部分程序如下:void INT7 internjpt 19 P3IF=0;if(P30=0)/当P30=0时,执行这个程序c6=c6+01; III这个程序实现连减和固定值调switch(c6) III!速的切换 case 1:P3IF=O;c5=l;/跳到连续减调速P30=l;/P30 端口置1we(c3);for(i=0:i<=9000;i+););break;case 2:P3IF=0;c5=5;/跳到固定值调速P30=l;/P30 端口置1c6=0;we(c3);(for(i=0;i<=90
22、00;i+););break;elseclO二clO+Ol;/当P3O=1时,实现连续加调速switch(clO) case 1 : P3IF=O;liannxujia();P3O=O;we(c3);for(i=0;i<=9000;i+););break;case 2: P3IF=O;liannxujia();we(c3);for(i=0;i<=9000;i+););break;case 3 : P3IF=O;liannxujia();cl0=0;we(c3);for(i=0;i<=9000;i+)4. 7液晶显示当程序跳转到某个固定值时,调用显示与其对应的液晶显示子程序。将
23、设定 的固定值转化成对应的ASCII码送入到数据口。把要显示的数据送到P7口就可以 了,每次显示前要刷新。部分程序如下:/显示程序 /void we(int w)unsigned char xdata netdata10=4&49,50,51,52,53,54,55,56,57;unsigned char xdata ncedata7=32,32,114,47,109,105,110;unsigned char xdata ncfdata3=32J 17J 12);unsigned char xdata ncgdata5=32,100J 11,119,110;unsigned char
24、 xdata ncddata 13=84,84,72,69,32,83,80,69,69,6&32,73,83; unsigned char xdatanchdata 14=32,119,101,10&99,111J09,10132,116.111,32,32,32);unsigned char xdatancidata13= 32,32,116,104,105,115,32,115,121,115,116J01,109;static unsigned char datal;unsigned char Bedpoint;unsigned char lcddatacount;vo
25、id sysclk(void);void port(void);void lcd(void);void send(void);WDTCN=0XDE;WDTCN=0XAD;sysclk();port();lcd();if(cll=0) w=w+w+w;o=w% 10;/取各位 p=(w/10)%10;/ 取十位 q=w/100;/ 取百位lcdpoint=&ncddata;显示 THE SPEED IS for(lcddatacount= 13;lcddatacount>0;lcddatacount)datal=*lcdpoint;P7=datal;P6=0x04;P6=0x05;
26、lcdpoint+;for(x=0;x< 100;x+);for(x=0;x<500;x+);P7=OxcO;/ 实现换行功能P6=0x1;P6=0x0;for(x=0;x< 100;x+);lcdpoint=&netdatci;/ 显示白位 for(lcddatacount=0;lcddatacount<=10;lcddatacount+) if(lcddatacount=q)datal=*lcdpoint;P7=datal;P6=OxO5;P6=0x04;lcdpoint+;)elselcdpoint+;for(x=0;x< 100;x+);lcdpo
27、int=&netdata;/ 显示十位 for(lcddatacount=0;lcddatacount<= 10;lcddatacount+)if(lcddatacount=p)(datal=*lcdpoint;P7=datal;P6=OxO5;P6=0x04;lcdpoint+;)elselcdpoint+;for(x=0;x< 100;x+);)lcdpoint=&netdata;/ 显示个位 for(lcddatacount=0;lcddatacount<= 10;lcddatacount+) if(lcddatacount=o)datal=*lcdpo
28、int;P7=datal;P6=OxO5;P6=0x04;lcdpoint+;)elselcdpoint+;for(x=0;x< 100;x+);lcdpoint=&ncedata;/显示 r/minfor(lcddatacount=7;lcddatacount>0;lcddatacount)datal=*lcdpoint;P7=datal;P6=0x04;P6=OxO5;lcdpoint+;for(x=0;x< 100;x+);for(x=0;xv500;x+);if(c9=l)/加速显示 upIcdpoint 二&n cfdata;for(lcddatac
29、ount=3;lcddatacount>0;lcddatacount)data 1Icdpoint;P7=datal;P6=0x04;P6=0x05;lcdpoint+;for(x=0;x< 100;x+);for(x=0;xv500;x+);)elselcdpoint=&ncgd ata;/ 减速显示 downfor(lcddatacount=5;lcddatacount>0;lcddatacount)data 1Icdpoint;P7=datal;P6=0x04;P6=0x05;lcdpoint+;for(x=0;x< 100;x+);for(x=0;xv5
30、00;x+);else lcdpoint=&nchdata;/显示welcome tofor(lcddatacount= 14;lcddatacount>0;lcddatacount)datal=*lcdpoint;cl 0=0;P7=datal;P6=0x04;P6=0x05;lcdpoint+;for(x=0;x< 100;x+);for(x=0;xv500;x+);P7=OxcO;P6=0x1;P6=0x0;lcdpoint=&ncidata;/显示 this system for(lcddatacount=13;lcddatacount>0;lcdda
31、tacount) (datal=*lcdpoint;cll = l;P7=datal;P6=0x04;P6=OxO5;lcdpoint+;for(x=0;x< 100;x+);for(x=0;xv500;x+);void sysclk(void) OSCICN=0x05;void port(void)XBR0=0x00;P74OUT=0xf0;void Icd(void)P6=0x01;for(x=0;xv50;x+);P7=Ox3&P6=0x1;P6=0x0;for(x=0;x< 10;x+);P7=0x0e;P6=0x1;P6=0x0;for(x=0;xv50;x+);
32、P7=0x06;P6=0x1;P6=0x0;for(x=0;x< 100;x+);P7=0x01;P6=0x1;P6=0x0;for(x=0;x< 100;x+); )4.8连续加函数,连续减函数以及固定值函数void liannxujia()连续加调速函数,void lianxujian()连续减调速函数通 过改变定时器的初值,来改变定时器的定时器的定时时间的长短,从而来改变占 空比,但为了保证周期不发生变化,必须高电平增加多少,低电平就得减少多少, 为了使调速更细腻,每次低位减100,如果,CY二1,则高位减一;同理,每次低位 加100,如果,CY二1,则高位加l;void g
33、udingzhi (n)固定值调速函数,每次T0 高位加n,每次T1高位减n; n是每次调用传来的常量,从而实现了固定值调速。 部分程序如下:P3IF=O;c4=c4+100:/通过改变定时器的初值改变转速if(CY=O)c3二c3+l;c2=c2-100;if(CY=l)c1 =c 1-1;c9=l;/控制显示 upvoid lianxujian()/连续减调速函数P3IF=0;c4=c4-100;/调节高低电平时长if(CY=0)c3=c3-l;c2=c2+100;if(CY=l)c 1 =c 1 +1;c9=0;/ 控制显示 downvoid gudingzhi(n)/固定值调速函数P3
34、IF=0;c3=c7-n;/调节高低电平时长cl=c7+n;5单片机和主要电路简介5. 1 C8051单片机简介C8051F020单片机是美国cygnal公司推出的完全集成的混合信号系统级Mcu芯片, 具有高速、流水线结构。有64个数字L/0引脚,拥有与8051兼容的cIP-51内核(可 达25MIPS):片上资源丰富,包括:5个通用的16位定时器,5个捕捉/比较模块 的可编程计数器/定时器阵列PCA; 12位100 ksps的8通道ADC和8位500 ksps的 ADC,两个12位DAC,具有可编程数据更新方式;64X1于儿ASH存储器,4352字节RAM, 可寻址64K字节地址空间的外部数
35、据存储器接口,具有在系统重新编程能力,并 允许现场更新8051固件;片内还有全速、非侵入式的系统调试接口、看门狗定时 器等。C8051F020是真正能独立工作的片上系统,所有模拟和数字外设均可山用户同件 使能。支持观察和修改存储器、寄存器,支持断点、观察点.单步及运行和停机 命令。在使用JTAG调试时,所有的模拟和数字外设都可伞功能运行。山此看岀,C8051F020单片机具有丰富的片上硬件资源和极高的运算速度,能简 化硬件电路,儿乎不需要系统扩展就可满足控制系统对硬件资源的需求。因此采 用C8051F020单片机作为控制器,由其PCA提供PwM波形。5. 2 PWM调速原理PWM-脉冲宽度调制
36、技术,通过对微处理器输出来的一系列数字脉冲的宽度进 行i周制,等效地获得模拟电路所需要波形,从而实现对模拟电路控制的一种非 常有效的技术。冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果 基本相同。例如输出正弦半波:用一系列等幅不等宽的脉冲来代替一个正弦半波, 将止弦半波看成V个相连的脉冲序列,宽度相等但幅值不等;用矩形脉冲代替, 等幅不等宽,中点重合,面积(冲量)相等,宽度按止弦规律变化。当要改变等效 输出正弦波幅值时,按同一比例改变各脉冲宽度即可。对小功率直流电机采用FwM调速是比较方便的。通过改变电机电枢电压接通时间 与通电周期的比值(占空度)来控制电机速度。改变占空度的方法有3
37、种:(1)定 宽调频法,保持tl不变,t2变化,这样周期T随之改变;(2)调宽调频法,保持 t2不变,tl变化,这样周期T也随之改变;(3)定频调宽法,使周期T不变,而 同时改变tl和t2。前两种方法都改变了脉冲周期,当控制频率与系统的同有频 率接近时会引起振荡,因此在直流电机控制中釆用定频调宽法更为广泛。在脉冲 作用下,当电机通电时速度加快,断电时速度逐渐变慢,只要按一定规律改变通 断电时间,即可实现对电机的转速控制。5. 3液晶显示电路液晶显示屏是以5*8或5*11点阵组成的字符组。其主控制驱动电路为 HD44780 (HITACH)或其他公司的兼容电路,如SED1278 (SEIKOEP
38、SON), KS0066 (SANSUNG)和NJU6408 (NER JAPAN RADIO),都是将液晶显示点阵和 驱动电路结合为一体的液晶显示模块(LCM).对照液晶显示模块LCM与单片机的硬件接口电路图,液晶显示模块电路可直 接与单片机C8051F020的I/O口P7和P6连接。P7做数据口 (D0-D7) , P6. 0, P6. 1, 和P6. 2用作LCD模块的3条信号线RS, R/W和E控制LCD的读/写操作。LCD模块编程要点如下:1. 用LCD模块的3条信号线RS, R/W和E控制LCD的读/写操作。2. RS为寄存器选择位,RS=1,选择数据寄存器:RS二0,选择指令寄存
39、器。3. E为使能信号,下降沿触发。4. DO-D7是8位数据总线。5. VDD接+5V电源,VSS接地。LCD模块的笫16引脚为背光控制线。短接J1的1, 2脚就能加上背光。6. 编写LCD模块的驱动程序时,应对照地址分配表和LCD模块读/写时序图。6程序流程图7小结时间过得真快,转眼间为期两个星期的单片机课程设汁已经结束了。在这短 短的两周时间里,我却收获很多东西,同时也深刻的体会到了自己知识的匮乏。 在掌握课本知识的基础上,通过这次学习,充分的锻炼了自己的动手能力,让我 懂得了理论与实践相结合的重要性。单片机课程从一开始我就感觉到了难度,所以认真的对待了这次课程设计, 一直没有松懈,还好
40、的就是顺利的完成老师交代的任务,但是还是感觉到了一些 压力,时间对于我来说,有些紧张,在这两周内完成这一系列的任务,真的感觉 到了压力。对直流电动机的控制这个任务,只是有一点思路。在图书馆里我还找 到了一些关于直流电动机的书籍,这让我对直流电动机和PWM有了更深入的了 解。接下来就是编程序,我这次选择用C语言编程,对于没有用过C编程的我, 显得有些困难,虽然开始做了一些准备,看了一些关于C语言编程的书,但理论 和实际是有差距的。例如全局变量,函数调用,以及液晶显示的问题。在做液晶 显示时,要看明白每一条语句的含义,否则就会出现显示不刷新,显示不换行, 以及不显示等情况。在向老师的请教,同学的探
41、讨中,不断的去攻克一个一个难 题。这次课程设计中,我学会了做事要细心认真,同时这也是做好每一件事情的 前提。在周二那天,就是要完成显示任务,我从早上开始就发现我的显示器不能 够刷新,这是让人很头疼的事,问了其他的同学都说没问题,别人都显示了。我 也着急了,从早上一直找到实验室关门,发现竟然是一个括号的错误,在函数调 用时会有很多括号,后来自己都笑了,所以做事一定要细心,否则将事倍功半。单片机课程设计涉及到的知识点很多,深化了对单片机中的定时器,外部中 断以及LCD显示的理解,同时学了应用它们,对单片机在生活中的应用了有了 更广泛了解。程设汁是培养学生综合运用所学知识,发现,提岀,分析和解决实际
42、问题,锻炼实践能力的 重要环节,是对学生实际工作能力的具体训练和考察过程课程设讣这段时间里,我切身 体会到了学无止境这四个字的深刻含义。相信在以后的学习生活中,我都会更严 格的要求自己,通过这次学习实践,使我对自己所学到的知识有了更进一步的认 识和理解。通过亲手设计实践,充分的体会到了学习的怎趣。也学到了很多关于 单片机的知识。相信,没有什么事悄比学有所用更让人高兴的了,所以,这样一 次既动手乂动脑的学习真的让我们每个人都受益匪浅。8致谢在这次课程设计中,在短短的两周内,完成了为这样复朵的任务,要归功于 来自各个方面的帮助,我在这里表示由衷的感谢。首先,感谢吕老师和雷老师的大力支持和耐心的指导
43、。在发现程序有错误时, 我们都感觉到无从下手,感到很困难,通过与两位老师交流,指导并让我们能够 继续我们的课程设计。机器发生故障是常有的事,感谢雷老师为大家修机器,为 大家早开门,晚关门,给大家带来许多宝贵的时间。还要感谢我的同学们,感谢崔俊卿,李翠,申潇雨等儿名同学在我无助的时 候给我提供的帮助,我接受很多大家的想法才能顺利完成这次课程设讣的任务。 对我同学表示真挚的感谢。此时此刻也特别感谢学校图书馆的支持与鼓励,为我们提供了大量的图书资 源,同样的网络资源更是为大家查找资料带来了方便。最后感谢学校给我们这次单片机课程设计的机会,它让我们对数字电路有 了更深的了解,增强了我们的动手能力和应用
44、理论于实践的通过两周的单片机课 程设计,我不仅学到了很多新的单片机知识,扩大了自己的知识面,而且学到了 如何将理论知识与实际应用相结合。这将是我以后学习工作的最宝贵的一笔财 富,终身受益。9参考文献1. 51系列单片机设计实例北京航空航天大学出版社,楼然苗李光飞 编著2. 8051单片机谭程设计实训教材.清华大学岀版社,陈明荧 编著3. 单征计算机原理与应用西安大学出版社,何生辉 冯毛官4. 单征机应用与实训教程西安电子科技大学出版社,张永枫 编著5. 单片机原理与应用及C51程序设计 清华大学出版社,谢维成 杨加国 编著6. 单片机初级教程 北京航空航天大学出版社,张迎新,附录程序清单#in
45、clude <c8O51fO2O.h>sbit POO=POAO;sbit P1O=P1AO;sbit P11=P1A1;sbitP12=PlA2;sbit P13=P1A3;sbit P14=P1A4;/定义观察开启,停止,固定值,sbit P15=P1A5;/以及连续加减调速sbit P16=P1A6;sbit P30=P3A0;sbitP17=PlA7;/定义定时器初值unsigned char c 1 =0xf0,c2=0xb0,c3=0xf0,c4=0xb0; unsigned char c5=0,c6=0,c9,c 10,c7=0xf0,c8=0xb0; static
46、unsigned char datal;unsigned long x;int n,m,i,o,p.q,w=0;/函数声明/void we(int);void liannxujia();void lianxujian();void gudingzhi(n);void yanshi();/主函数/void main() WDTCN=OXDE; /关看门狗WDTCN=OXAD;CKCO N&二 0XE7;/选择 12 分频TMOD=OX11;/选择定时器0, 1和工作方式一 OSCICN=0X07;/选择系统时钟 16MHZP00=01/输出端 口清零TH0=c3;/定时器0赋初值TL0=
47、c4;THl=cl;/定时器0赋初值TLl=c2;EA= 11/ 中断总使能ET0=l;/ 允许 TO 中断ET1=1;/ 允许 T1 中断 we(0) ;/显示 0转/分 XBR2=0X40;/ 交义开关使能 P1MDOUT=OXFF;/P1 口输出方式为推挽 EIE2=OX3O;/中断6, 7使能while(l);/定时器中断0/void time0() internjpt1 P00= 1;/端 口输出 rS电平TR0=0;/ 关闭定时器TOTHl=cl;/重装初值TLl=c2;TR1=1;/开启定时器 T 1/定时器中断 1 /void time 1() intenupt 3 P00=0
48、;/ 端 口输出低电平TR1 =0;/ 关闭定时器T1TH0=c3;/ 重装初值TL0=c4;TRO=1;关闭定时器TO/外部中断6/void INT6 intenupt 18P3IF=0: /中断标志位清零c5=c5+01;switch(c5) case 1:TRO=11/开启定时TO, P0.0输出方波 cl 1=0;显示 welcome to this system we(c3);显示当前转速for(i=0;i<=24000;i+););/延时程序 break;case 2:lianxujian();we(c3);/ 显示当前转速for(i=0;i<=24000;i+);br
49、eak;case 3:lianxujian();we(c3);for( i=0; i <=24000; i+); break;case 4:lianxujian();we(c3);for(i;i<=24000;i+); break;case 5:Iianxujian();c5=l;/c5置1,回到easel,实现连续加速 we(c3);for(i ;i<=24000;i+););break;case 6:gudingzhi(12);/占空比 10%we(c3);Pl 1=0;for(i=0;i<=18000;i+);); break;case 7:gudingzhi(6
50、);/ 占空比30%we(c3);PI1 = 1;Pl 3=0;for(i=0;i<=18000;i+);); break;case 8:gudingzhi(O);/占空比50% we(c3);Pll = l;P13=l;Pl 5=0;for(i=0;i<=20000;i+); break;case 9:gudingzhi(-6);/70%we(c3);Pll=l;P13=l;P15=l;P17=0;for(i=0;i<=20000;i+);); break;case 10:gudingzhi(-12);/ 占空比90%we(c3);P17=l;for(i=0;iv=20000:i+); break;case 11:TR0=0;/ 关闭定时器TO TR 1=0;/ 关闭定时器T1 c5=0;/回到连续加调速 Pl 6=0;for(i;i<=24000;i+);); break;1)/外部中断 7/void INT7 internjpt 19P3IF=0;if(P3O=O)/当P30=0时,执行这个程序c6=c6+01;这个程序实现连续加和固定值调switch(c6)/速的切换 ca
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文明公约管理办法
- 权证销毁管理办法
- 拨备计提管理办法
- 2024年四川省长宁县卫生高级职称(卫生管理)考试题含答案
- 建设财务管理办法
- 执业资质管理办法
- 护理礼仪管理办法
- 异常申请管理办法
- 2024年四川省郫县急诊医学(副高)考试题含答案
- 往来账目管理办法
- 高中政治教学的经验分享课件
- 2022年安徽芜湖技师学院教师招聘笔试题库及答案解析
- 人才盘点操作及应用(简版)
- 学校老师联系方式惠州市
- DB11-T1239-2015药品信息代码规范
- 新媒体研究方法教学ppt课件(完整版)
- 英国CT公司MENTORII全数字直流调速器调整方法
- T∕CSBME 007-2019 基于增材制造的金属样件压缩性能试验方法
- 筛机的主要部件设计和计算
- 工地八大员岗位责任制标牌
- GMP真空带式干燥机验证方案
评论
0/150
提交评论