单片机PWM课程设计.docx
《单片机PWM课程设计.docx》由会员分享,可在线阅读,更多相关《单片机PWM课程设计.docx(14页珍藏版)》请在冰豆网上搜索。
![单片机PWM课程设计.docx](https://file1.bdocx.com/fileroot1/2022-11/23/b12c732f-de62-4ccf-9186-7e525b08f125/b12c732f-de62-4ccf-9186-7e525b08f1251.gif)
单片机PWM课程设计
目录
1.课程设计的基本要求…………………………………………………………………1
2.总体设计……………………………………………………………………………………1
2.1基本工作原理……………………………………………………………………1
2.2硬件总体设计……………………………………………………………………2
2.2.1系统组成方案…………………………………………………………2
2.2.2扩展单元编址…………………………………………………………3
2.2.3键盘、显示功能的定义……………………………………………3
2.3软件总体设计……………………………………………………………………7
2.3.1存储单元的分配、标志位的定义………………………………7
2.3.2主程序框图及清单……………………………………………11
3.单片机系统综合调试…………………………………………………………………13
4.结束语………………………………………………………………………………………13
5.参考文献…………………………………………………………………………………14
1.课程设计的目的和要求
1.1课程设计的目的
1.了解直流电机PWM调速的原理。
2.学习ADC0809的工作原理,掌握其编程方法。
1.2课程设计的基本要求
1.通过ADC0809采样0—5V的电压值(由电位器产生)。
2.根据采样值产生占空比不同的脉冲信号,控制电机转速。
2.总体设计
2.1基本工作原理
PWM简介及调速原理
(1)简介:
PWM控制就是对脉冲的宽度进行调制的技术,即通过对一系列脉冲的宽度进行调制,来等待地获得所需要波形。
PWM的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。
让信号保持在数字形式可将噪声影响降到最小。
PWM控制技术以其控制简单,灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式。
(2)调速原理:
占空比表示了在一个周期T里,开关管导通的时间与周期的比值。
其变化范围为0—1。
在电源电压不变的情况下,电枢的端电压的平均值U取决于占空比的大小。
改变其值就可以改变端电压的平均值,从而达到调速的目的。
在PWM调速时,占空比是一个重要的参数。
以下是3种方式都可以改变占空比的值
计算公式:
占空比=ton/T
a)定宽调频法
b)调宽调频法
c)定频调宽法
目前,在直流伺服电机的控制中,主要使用定频调宽法。
(3)与V-M系统相比,PWM调速系统有下列优点:
由于PWM调速系统的开关频率较高,仅靠电枢电感的滤波作用可能就足以获得脉冲动很小的直流电流,电枢容易连续,系统的低速运行平稳,调速范围较宽,可达1:
10000左右。
又由于电流波形比V-M系统好,在相同的平均电流即相同的输出转矩下,电动机的损耗和发热都较小。
同样由于开关频率高,若与快速响应的电机配合,系统可以获得很宽的频带,因此快速响应性能好,动态抗干扰能力强。
由于电力电子器件只工作在开关状态,主电路损耗较小,装置效率比较高。
2.2硬件总体设计
2.2.1系统组成方案
本系统由PC机、MCS-51单片机开发系统、、PWM脉宽调制控制板以及直流伺服电动机等组成。
具体相关硬件如下:
二极管(1N4077)4个,场效应管(2SJ50)4个,非门74LS041个,与门74LS082个,电容(CAPACITOR)2个,芯片(AT89C51)1个,开关(BUTTON)3个,直流伺服电动机(MOTOR)1个,电阻(RES)4个,电源3个,地(GROUND)4个。
元件表
硬件型号
数量
硬件型号
数量
1N4077
4
MOTOR
1
2SJ50
4
RES
4
74LS04
1
CAPACITOR
2
74LS08
2
GROUND
4
AT89C51
1
VCC
3
BUTTON
3
2.2.2扩展单元编址
A/D转换器
ADC0809
芯片介绍:
ADC0809是一种比较典型的8位8通道逐次逼近式A/D转换器,CMOS工艺,可实现8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道地址锁存用译码电路,其转换时间为100μs左右,采用双排28引脚封装,其引脚说明如下:
IN0~IN7:
8路模拟量输入通道
ADDA~ADDC:
地址线用于选择模拟量输入通道
ALE:
地址锁存允许信号
START:
转换启动信号
D0~D7:
数据输出线
OE:
输出允许信号,低电平允许转换结果输出
CLOCK:
时钟信号输入引脚,通常使用500KHz
EOC:
转换结束信号,为0代表正在转换,1代表转换结束
Vcc:
+5V电压
VREF(+)、VREF(-):
参考电压
2.2.3键盘、显示功能的定义
AT89C51简介
AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
1)主要特性:
a)与MCS-51兼容
b)4K字节可编程闪烁存储器
c)寿命:
1000写/擦循环
d)数据保留时间:
10年
e)全静态工作:
0Hz-24MHz
f)三级程序存储器锁定
g)128×8位内部RAM
h)32可编程I/O线
i)两个16位定时器/计数器
j)5个中断源
k)可编程串行通道
l)低功耗的闲置和掉电模式
m)片内振荡器和时钟电路
2)单片机内部结构图:
3)AT89C51引脚图:
4)管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
2.3软件总体设计
2.3.1存储单元的分配、标志位的定义
Proteus简介
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
其功能特点
Proteus软件具有其它EDA工具软件(例:
multisim)的功能。
这些功能是:
(1)原理布图;
(2)PCB自动或人工布线;(3)SPICE电路仿真。
革命性的特点:
(1)互动的电路仿真 用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。
(2)仿真处理器及其外围电路 可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。
还可以直接在基于原理图的虚拟原型 上编程,再配合显示及输出,能看到运行后输入输出的效果。
配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。
具有4大功能模块
(1)智能原理图设计(ISIS)丰富的器件库:
超过27000种元器件,可方便地创建新元件:
智能的器件搜索:
通过模糊搜索可以快速定位所需要的器件;智能化的连线功能:
自动连线功能使连接导线简单快捷,大大缩短绘图时间;支持总线结构:
使用总线器件和总线布线使电路设计简明清晰;可输出高质量图纸:
通过个性化设置,可以生成印刷质量的BMP图纸,可以方便地供WORD、POWERPOINT等多种文档使用。
(2)完善的电路仿真功能(Prospice)
ProSPICE混合仿真:
基于工业标准SPICE3F5,实现数字/模拟电路的混合仿真;超过27000个仿真器件:
可以通过内部原型或使用厂家的SPICE文件自行设计仿真器件,Labcenter也在不断地发布新的仿真器件,还可导入第三方发布的仿真器件;多样的激励源:
包括直流、正弦、脉冲、分段线性脉冲、音频(使用wav文件)、指数信号、单频FM、数字时钟和码流,还支持文件形式的信号输入;丰富的虚拟仪器:
13种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、SPI调试器、I2C调试器等;生动的仿真显示:
用色点显示引脚的数字电平,导线以不同颜色表示其对地电压大小,结合动态器件(如电机、显示器件、按钮)的使用可以使仿真更加直观、生动;高级图形仿真功能(ASF):
基于图标的分析可以精确分析电路的多项指标,包括工作点、瞬态特性、频率特性、传输特性、噪声、失真、傅立叶频谱分析等,还可以进行一致性分析;
(3)独特的单片机协同仿真功能(VSM)
支持主流的CPU类型:
如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU类型随着版本升级还在继续增加,如即将支持CORTEX、DSP处理器; 支持通用外设模型:
如字符LCD模块、图形LCD模块、LED点阵、LED七段显示模块、键盘/按键、直流/步进/伺服电机、RS232虚拟终端、电子温度计等等,其COMPIM(COM口物理接口模型)还可以使仿真电路通过PC机串口和外部电路实现双向异步串行通信;实时仿真:
支持UART/USART/EUSARTs仿真、中断仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真;编译及调试:
支持单片机汇编语言的编辑/编译/源码级仿真,内带8051、AVR、PIC的汇编编译器,也可以与第三方集成编译环境(如IAR、Keil和Hitech)结合,进行高级语言的源码级仿真和调试;
(4)实用的PCB设计平台
原理图到PCB的快速通道:
原理图设计完成后,一键便可进入ARES的PCB设计环境,实现从概念到产品的完整设计;先进的自动布局/布线功能:
支持器件的自动/人工布局;支持无网格自动布线或人工布线;支持引脚交换/门交换功能使PCB设计更为合理;完整的PCB设计功能:
最多可设计16个铜箔层,2个丝印层,4个机械层(含板边),灵活的布线策略供用户设置,自动设计规则检查,3D可视化预览;多种输出格式的支持:
可以输出多种格式文件,包括Gerber文件的导入或导出,便利与其它PCB设计工具的互转(如protel)和PCB板的设计和加工。
Proteus提供了丰富的资源
(1)Proteus可提供的仿真元器件资源:
仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。
(2)Proteus可提供的仿真仪表资源:
示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。
理论上同一种仪器可以在一个电路中随意的调用。
(3)除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。
这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。
这些都尽可能减少了仪器对测量结果的影响。
(4)Proteus可提供的调试手段Proteus提供了比较丰富的测试信号用于电路的测试。
这些测试信号包括模拟信号和数字信号。
电路功能仿真
在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:
*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。
PROTEUS是单片机课堂教学的先进助手。
PROTEUS不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。
前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。
它的元器件、连接线路等却和传统的单片机实验硬件高度对应。
这在相当程度上替代了传统的单片机实验教学的功能,例:
元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。
课程设计、毕业设计是学生走向就业的重要实践环节。
由于PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台 随着科技的发展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。
它具有设计灵活,结果、过程的统一的特点。
可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。
相信在单片机开发应用中PROTEUS也能茯得愈来愈广泛的应用。
使用Proteus软件进行单片机系统仿真设计,是虚拟仿真技术和计算机多媒体技术相结合的综合运用,有利于培养学生的电路设计能力及仿真软件的操作能力;在单片机课程设计和全国大学生电子设计竞赛中,我们使用Proteus开发环境对学生进行培训,在不需要硬件投入的条件下,学生普遍反映,对单片机的学习比单纯学习书本知识更容易接受,更容易提高。
实践证明,在使用Proteus进行系统仿真开发成功之后再进行实际制作,能极大提高单片机系统设计效率。
因此,Proteus有较高的推广利用价值。
目前Proteus的最新版为7.7sp2,今年将推出8.0版本,增加DSP系列及ARMcortex处理器
2.3.2主程序框图及清单
主程序框图
汇编设计
org0h
movdptr,#0cfa3h
mova,#80h
movx@dptr,a;8255初始化
ad:
movdptr,#0cfb8h;读ADC0809引脚
mova,#0
movx@dptr,a;令PA口输出低电平
movr1,#0ffh
djnzr1,$;若R1-1不等于零则动态停机
movxa,@dptr
movr1,a
swapa;半字节交换指令只能交换累加器A
anla,#0fh;屏蔽高四位
movr2,a
setbp1.0;脉冲送P1.0
movdptr,#0cfa0h
mova,#01h;字码初始值送A
movx@dptr,A;送A口
lo1:
lcallloop
djnzr2,lo1;判断R2
clrp1.0;将P1.0清零
movdptr,#0cfa0h
mova,#00h
movx@dptr,A;令PA口输出低电平
mova,r1
anla,#0fh;屏蔽高4位
movr2,a
lo2:
lcallloop;循环读ADC0809
djnzr2,lo2
ljmpad
loop:
movr6,#2;软件延时程序
loop1:
movr7,#255
djnzr7,$
djnzr6,loop1
ret
end
3.单片机系统综合调试
PWM调试实图
将编好的汇编语言程序输入进电脑,启动单片机相应开关,执行程序,用电位器调节AT89C51的PWM的输出占空比,将A/D转换后的数据作为延时常数。
当电位器阻值发生变化,进而调节单片机输出的PWM占空比,实现对电动机的调速。
4.结束语
为期两个周的课程设计也接近了尾声。
此次课程设计的完成,凝聚着许多人的关怀和帮助。
首先要感谢我敬爱的指导教师关丽荣、龚民,她们在学术上的精心指导和严格要求,在系统研究和调试过程中给予的及时帮助。
这些使我组的课程设计得以顺利完成。
通过查阅相关资料加深了我对直流电机调速控制系统的认识,熟悉了单片机在控制系统中的运用。
并且在所学知识的基础上,利用已有的直流调速系统设计,尝试了自己的一些研究。
并且,使我将原来所学的知识系统化,理论化,实用化。
对如何使用已有知识及获取相关资料方面的能力又有了提高。
本设计基本上达到了设计目的。
实现通过单片机对直流电机的控制,通过合理的设备选型、参数设置和软件设计,提高了直流电机调速运行的可靠性。
通过本次设计,我的知识领域得到进一步扩展,专业技能得到进一步提高,同时锻炼了自己独立完成任务的能力,并掌握了很多软件、硬件开发方面的知识。
另外,我还认识到无论做什么工作,都需要踏实,勤奋,严谨的态度,这对我以后的工作将会产生深远的影响。
同时,也培养了自己认真的科学态度和严谨的工作作风,为将来能更好的适应工作岗位打下了良好的基础。
5.参考文献
【1】编著/单片机原理及其接口技术(第三版)/清华大学出版社/教材
【2】彭伟编著/单片机C语言程序设计实训100例—基于8051+Proteus仿真/电子工业出版社/图书馆藏书
【3】黄智伟杨案江编著/超低功耗单片无线系统应用入门/北京航空航天大学出版社/图书馆藏书
【4】关丽荣龚民/单片机原理及应用实验指导书/沈阳理工大学
【5】XX文库