《单片机原理及应用》课程设计.docx
《《单片机原理及应用》课程设计.docx》由会员分享,可在线阅读,更多相关《《单片机原理及应用》课程设计.docx(13页珍藏版)》请在冰豆网上搜索。
《单片机原理及应用》课程设计
《单片机原理及应用》
课程设计报告
学院:
源与动力工程学院__
班级:
__________
学号:
___________
姓名:
___________
时间:
2012-12-17~2012-12-21
目录
任务书1
第一章方案设计2
第二章硬件系统设计3
第三章软件设计4
第四章系统调试5
小结6
附录1:
原理图7
附录2:
源程序8
任务书
1.题目:
基于单片机的直流电机调速控制器设计(II)
设计要求:
(1)利用单片机及LM358,采用PWM控制原理实现直流电机的转速控制。
(2)电机转速由按键设定(16级)。
2.课程设计进度安排:
本次课程设计为期一周。
周一
周二
周三
周四
周五
上午
布置任务、分组
硬件设计
软件设计、调试
验收成果
下午
查资料,定方案
整理资料,写报告
成绩评定
平时表现:
20%
考勤:
10%
设计效果:
20%
设计报告:
50%
第一章方案设计
总体设计方案:
本设计以AT89C51单片机及LM358为核心,以键盘作为输入达到控制直流电机的启停、速度,完成了基本要求和发挥部分的要求。
在设计中,采用了PWM技术对电机进行控制,通过对占空比的计算达到精确调速的目的。
此次设计,我选用了4个开关控制电路:
K1开关控制开;K2开关控制关;K3开关控制加速(增大占空比);K4开关控制减速(减小占空比)。
以下简单的介绍下我的接线:
B5区的V-OUT——B8区的ZDJ-A
C8区的GND——B8区的ZDJ-B
B5区的PWMIN——A2区的P20
D1区的K1——A2区的P10
D1区的K2——A2区的P11
D1区的K3——A2区的P12
D1区的K4——A2区的P13
程序运行流程设计:
N
Y
Y
N
Y
N
N
Y
第二章硬件系统设计
单片机选择——AT89C51
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
外形及引脚排列如图所示
AT89C51外形及引脚排列
LM358双运算放大器:
LM358内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电压电源无关。
它的使用范围包括传感放大器、直流增益模组,音频放大器、工业控制、DC增益部件和其他所有可用单电源供电的使用运算放大器的场合。
LM358的封装形式有塑封8引线双列直插式和贴片式。
838电子
特性(Features):
ab126计算公式大全
*内部频率补偿。
*直流电压增益高(约100dB)。
*单位增益频带宽(约1MHz)。
*电源电压范围宽:
单电源(3—30V);双电源(±1.5一±15V)。
*低功耗电流,适合于电池供电。
*低输入偏流。
*低输入失调电压和失调电流。
*共模输入电压范围宽,包括接地。
*差模输入电压范围宽,等于电源电压范围。
*输出电压摆幅大(0至Vcc-1.5V)。
参数
输入偏置电流45nA8838电子38电子
输入失调电流50nA
输入失调电压2.9mV
输入共模电压最大值VCC~1.5V
共模抑制比80dB新艺图库
电源抑制比100dB
图1DIP塑封引脚图引脚功能
第三章软件设计
在进行单片机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。
开关向单片机输入相应控制指令,由单片机通过P2.0输出至LM358,通过PWM,实现电动机转向与转速的控制。
电动机所处速度级以速度档级数表示。
速度分16档,快慢与电动机所处速度级快慢一一对应。
PWM介绍:
脉宽调制(PWM)是指用微处理器的数字输出来对模拟电路进行控制,是一种对模拟信号电平进行数字编码的方法。
以数字方式控制模拟电路,可以大幅度降低系统的成本和功耗。
许多微控制器内都包含PWM控制器。
其工作原理:
脉冲宽度调制脉冲宽度调制(PWM)是英文“PulseWidthModulation”的缩写,简称脉宽调制。
它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于测量,通信,功率控制与变换等许多领域。
一种模拟控制方式,根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定。
脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。
通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。
PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。
电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。
通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。
只要带宽足够,任何模拟值都可以使用PWM进行编码。
多数负载(无论是电感性负载还是电容性负载)需要的调制频率高于10Hz,通常调制频率为1kHz到200kHz之间。
此次课程设计:
在程序中通过软件产生PWM波形,送出预设占空比的PWM波形。
PWM(脉冲宽度调制)是一系列周期固定、占空比可调的脉冲系列,由于每个脉冲的高电平时间和低电平时间之和必须等于周期数,所以输出电平的维持时间必须由定时器来控制。
设PWM的波的周期为T。
高电平时间为TH,低电平时间为TL,电压为VCC,则输出电压的平均值为:
UAV=VCC*TH/T=αVCC,当VCC固定时,其电压值取决于PWM波形的占空比α,而PWM的占空比由单片机软件内部用于控制PWM输出的寄存器值决定。
程序流程图:
终端流程图:
第四章系统调试
我们的程序是利用PWM的控制原理来实现开停,家减速的。
主要调节的是占空比α。
是频域电压随着α的变化而变化。
从而达到加速和减速。
我们拿来了示波器观看波形,在老师的帮助下顺利达到了预期的效果。
我们调节初始化后的脉宽和高电平每次的加减幅度来改善直流电机速度加减的程度。
这样就能使电机从0速到最高速正好分为16级,即加速16次达最高速,减速16次达0速。
原理:
设周期为T,高电平时间为TH,低电平时间为TL,令Δt=T/16。
每次加速都加一个Δt,每次减速都减去一个Δt。
但在电机上观看到的效果不是很好。
没有很明显的表现出来。
在过程中我们还遇到了一些程序上的小麻烦。
开启之后,进行调速,随后关闭。
就无法再开启。
没有返回到开始。
在老师的帮助下我们初步解决了问题。
达到了预期的效果。
小结
经过一个多星期的学习与努力,单片机课程设计终于完成了。
课题对我来说还是很难的,还由于是第一次接触这种类型的学习过程,一开始效率就有点低,主要是无从下手,不知该做什么。
中间还夹着电力电子的考试,一边忙着课程设计还一边要开夜车复习。
总有些心有力而力不足。
课程设计前一天我在网上搜索了很多关于课题的文档资料,有一定参照作用,但是也有很多不同之处,还因为自身的基础知识打的不牢靠,选得有些云里雾里。
但在同学老师的帮助下做了初步的选择。
本次课程设计是理论与实践相结合的一次实用性学习,要学会学以致用,将所学知识用到实处。
这在编程调试时尤其突出重要,比如小数点的显示,精度的提高,误差的减小,这些内容一部分取决于器件的优劣,还有一部分来自于程序设计的好坏。
所以,熟练汇编语言,熟练编程是我从此次课程设计中得到的一个重要启示,因为这将是我们将来学以致用的关键。
本次课程设计,我是非常的失败的。
程序是看着老师一个个打下来的。
随后虽然好好看了这个程序。
但也只是初懂。
想完完整整自己编出来还是要些时间来自己好好学习下的。
但总的来说这次课程设计还是有些收获的。
课程设计还是让我学到了不少新知识,也有不少新领悟,当然,对单片机也有了更深层次的认识,也让我对单片机有了更高的兴趣,希望学到更多关于单片机的知识,做更多的实践内容。
附录1:
原理图
原理图在耿宁的帮助下完成。
附录2:
源程序
flagbit20h.0;
STARTbitP1.0
STOPbitp1.1
UPbitP1.2
DOWNbitP1.3
OUT_PWMbitP2.0
ORG00H
LJMPMAIN
ORG0BH
LJMPINT_T0
ORG040H
MAIN:
MOVTMOD,#02H
MOV30H,#10H
SETBET0
SETBEA
MOVP1,#0FFH
CLROUT_PWM
LOP0:
JBSTART,LOP1
MOVTH0,30H
MOVA,30H
CPLA
MOVTL0,A
SETBTR0
SETBOUT_PWM
CLRTF0
SJMPLOP4
LOP1:
JBSTOP,LOP2
CLRTR0
CLROUT_PWM
SJMPLOP4
LOP2:
JBUP,LOP3
MOVA,30H
ADDA,#10H
JCLOP4
MOV30H,A
SJMPLOP4
LOP3:
JBDOWN,LOP0
MOVA,30H
CLRC
SUBBA,#10H
JCLOP4
MOV30H,A
LOP4:
MOVA,P1
CJNEA,#0FFH,LOP4
SJMPLOP0
INT_T0:
JNBOUT_PWM,T01
MOVA,30H
CPLA
MOVTH0,A
CLROUT_PWM
SJMPT0_END
T01:
MOVTH0,30H
SETBOUT_PWM
T0_END:
RETI
END
程序在老师的帮助下完成。