毕业设计基于单片机的PWM信号输出系统设计

上传人:仙*** 文档编号:31611864 上传时间:2021-10-12 格式:DOC 页数:62 大小:6.71MB
收藏 版权申诉 举报 下载
毕业设计基于单片机的PWM信号输出系统设计_第1页
第1页 / 共62页
毕业设计基于单片机的PWM信号输出系统设计_第2页
第2页 / 共62页
毕业设计基于单片机的PWM信号输出系统设计_第3页
第3页 / 共62页
资源描述:

《毕业设计基于单片机的PWM信号输出系统设计》由会员分享,可在线阅读,更多相关《毕业设计基于单片机的PWM信号输出系统设计(62页珍藏版)》请在装配图网上搜索。

1、摘要摘要随着电力电子技术的飞速发展,PWM 技术应用越来越广泛。同时 PWM 技术本身也发展迅速,各种新理论层出不穷。PWM 技术结合了电力电子技术、计算机技术、现代控制理论,具有抗干扰性强、效率高、可靠性好等显著优点,已经在交流逆变、开关电源等领域得到广泛应用。 本文在研究 PWM 技术当前发展状况基础上,设计了一种基于单片机的 PWM 信号输出系统。首先对系统结构和 PWM 软件算法进行了研究和分析,包括对各种 PWM 产生方法的对比分析和对称规则采样法的仔细研究以及系统的功能分区和总体结构。在总体设计完成后又设计了硬件电路各个单元模块。然后采用 C 语言编程实现了系统功能,完成设计目标。

2、最后对设计的系统进行了计算机仿真。本设计是基于单片机控制的 PWM 信号输出系统,系统以 AT89C52 单片机为核心,采用 SPWM 软件生成法中对称规则采样法,用扩展按键中断方式输入有关控制信号及参数,可以实现频率、占空比、输出时间可调的直流斩波 PWM 信号和频率、调幅比、输出时间可调的 SPWM 信号,并在 LCD1602 上实时设置参数及输出状态监视。关键词关键词:单片机;PWM; SPWM;信号;规则采样法ABSTARCTAs the developing of power electronic technology, PWM technology has applying to

3、more and more field. At the same time, PWM technology itself has taken a great progress, lots of new theory has emerged. PWM technology takes advantages of power electronic, computer technology, and modern control theory, has strong ability of anti-interference, and is more efficiency, reliable. It

4、has applied to vast field ,such as AC converter, DC chopper.This paper firstly, analysis the situation of PWM technology development, then, designed a PWM signal output system based on SCM. At the beginning, we study the soft algorithm of PWM, including comparison and analysis of several PWM algorit

5、hm and deep analysis of regular-sampling. We also designed the system structure. Following , hardware and software is designed. Every hardware module is designed with the computer, and the software is written in C language. At last, we take a simulation. The system is based on AT89C52. It use button

6、s to input parameters. It can output single polar PWM signals. The signals frequency, duty-cycle, output time can be changed. Whats more, all information is showed in a LCD1602, so that it is easier to communicated with the system. Index terms: SCM; PWM; SPWM; signal; regular-sampling 目 录1 绪论绪论.11.1

7、 PWM 的背景、应用及发展趋势.11.2 PWM 原理.11.3 本文的主要工作 .22 系统方案设计系统方案设计.32.1 系统 PWM 算法.32.1.1 等面积法.32.1.2 硬件调制法.32.1.3 软件生成法.32.2 系统结构 .52.3 涉及元器件简介.52.3.1 AT89C52 介绍.52.3.2 LCD1602 简介.82.4 仿真工具介绍.92.4.1 Protues 简介.92.4.2 Keil uVision2 简介 .113 硬件电路设计硬件电路设计.133.1 电源.133.2 单片机复位电路.143.3 单片机时钟电路.143.4 按键中断.153.5 显示

8、电路.163.6 输出电路.173.7 SPWM 测试电路 .174 软件设计软件设计.194.1 软件总流程.194.2 直流斩波 PWM 软件计算法.194.3 SPWM 软件计算法 .204.4 输出时间控制.224.5 按键中断.234.6 LCD1602 编程.264.7 显示设计.275 系统调试系统调试.315.1 系统的调试.315.2 系统仿真过程.316 结论结论.36参考文献参考文献 .37附录附录.38翻译部分翻译部分 .50外文原文:.50中文译文:.56致致 谢谢.691 绪论1.1 PWM 的背景、应用及发展趋势模拟信号的值可以连续变化,其时间和幅度的分辨率都没有

9、限制,可直接用来进行控制,但它并不总是非常经济或可行的。其中一点就是,模拟电路容易随时间漂移,因而难以调节。能够解决这个问题的精密模拟电路可能非常庞大、笨重(如老式的家庭立体声设备)和昂贵。模拟电路还有可能严重发热,其功耗相对于工作元件两端电压与电流的乘积成正比。模拟电路还可能对噪声很敏感,任何扰动或噪声都肯定会改变电流值的大小。 PWM 的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。让信号保持为数字形式可将噪声影响降到最小。噪声只有在强到足以将逻辑 1 改变为逻辑 0 或将逻辑 0 改变为逻辑 1 时,也才能对数字信号产生影响。随着全控式电力电子器件如可关断晶闸管 GT

10、O、大功率晶体管 IGBT 、场效应功率晶体管 PMOSFET 等的出现和应用技术的进步,PWM 控制技术在电力电子技术行业,如:风力发电、电机调速、直流供电等领域,得到广泛的应用。在通信领域,由于 PWM 控制有很强的噪声抵抗能力,从模拟信号转向 PWM 可以极大地延长通信距离。在接收端,通过适当的 RC 或 LC 网络可以滤除调制高频方波并将信号还原为模拟形式。在风力发电领域,PWM 变换器的控制技术是其核心技术之一。由于 PWM 可以同时实现变频变压和抑制谐波的特点,由此在交流传动及至其它能量变换系统中得到广泛应用。PWM 信号的产生通常有两种方法 一种是软件的方法 另一种是硬件的方法。

11、硬件调制法模拟电路结构复杂,难以实现精确的控制。软件生成法其实就是用软件来实现调制的方法,其有两种基本算法,即自然采样法和规则采样法。随着电力电子技术,微电子技术和自动控制技术的发展以及各种新的理论方法,如现代控制理论,非线性系统控制思想的应用,PWM 控制技术获得了空前的发展.到目前为止,已出现了多种 PWM 控制技术。从 PWM 确定确定变换器的导通时间方式来看有三类差别显著的 PWM 用于固定开关频率的调制系统:1) 在目标参考波形和高频载波的交点去开关动作的自然采样 PWM;2) 在规则采样参考波形和高频载波交点处开关动作的规则采样 PWM;3)开关动作使得目标参考波形在一个载波周期内

12、的积分面积与开关变换器输出波形的积分面积相等的直接 PWM。PWM 技术朝着许多方向不断地发展,例如,人们越来越关注电源侧的波形质量问题,PWM 技术最近已经应用于有特殊要求的输入侧变换器的控制。此外,半导体开关的开通延迟,损耗等实际影响近来也受到关注,产生了随机 PWM、软开关 PWM 等。1.2 PWM 原理脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM 信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON) ,要么完全无(OFF) 。电压或电流源是以一种通(ON)或

13、断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用 PWM 进行编码。图 1 SPWMSPWM 法是一种比较成熟的,目前使用较广泛的 PWM 法。前面提到的采样控制理论中的一个重要结论:冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。SPWM 法就是以该结论为理论基础,用脉冲宽度按正弦规律变化而和正弦波等效的PWM 波形即 SPWM 波形控制逆变电路中开关器件的通断,使其输出的脉冲电压的面积与所希望输出的正弦波在相应区间内的面积相等,通过改变调制波的频率和幅值则可调节逆变电路

14、输出电压的频率和幅值。1.3 本文的主要工作 本文的主要工作是设计一个 PWM 信号输出系统,实现的单极性 PWM 信号输出。在直流斩波 PWM 中,要求 PWM 的频率,占空比,和输出时间均可调,输出频率为 1K-20KHz;在SPWM 模式中,频率,调幅比及输出时间可调,输出频率为 1-50Hz。2 系统方案设计2.1 系统 PWM 算法 PWM 的全称是 Pulse Width Modulation(脉冲宽度调制) ,它是通过改变输出方波的占空比来改变等效的输出电压。SPWM,就是在 PWM 的基础上改变了调制脉冲方式,脉冲宽度时间占空比按正弦规律排列,这样输出波形经过适当的滤波可以做到

15、正弦波输出。该方法的实现有以下几种方案。2.1.12.1.1 等面积法等面积法该方案实际上就是 SPWM 法原理的直接阐释,用同样数量的等幅而不等宽的矩形脉冲序列代替正弦波,然后计算各脉冲的宽度和间隔,并把这些数据存于微机中,通过查表的方式生成 PWM 信号控制开关器件的通断,以达到预期的目的.由于此方法是以 SPWM 控制的基本原理为出发点,可以准确地计算出各开关器件的通断时刻,其所得的的波形很接近正弦波,但其存在计算繁琐,数据占用内存大,不能实时控制的缺点。2.1.22.1.2 硬件调制法硬件调制法硬件调制法是为解决等面积法计算繁琐的缺点而提出的,其原理就是把所希望的波形作为调制信号,把接

16、受调制的信号作为载波,通过对载波的调制得到所期望的 PWM 波形。通常采用等腰三角波作为载波,当调制信号波为正弦波时,所得到的就是 SPWM 波形。其实方法简单,可以用模拟电路构成三角波载波和正弦调制波发生电路,用比较器来确定它们的交点,在交点时刻对开关器件的通断进行控制,就可以生成 SPWM 波。但是,这种模拟电路结构复杂,难以实现精确的控制。2.1.32.1.3 软件生成法软件生成法由于微机技术的发展使得用软件生成 SPWM 波形变得比较容易,因此,软件生成法也就应运而生。软件生成法其实就是用软件来实现调制的方法,其有两种基本算法:即自然采样法和规则采样法。 自然采样法以正弦波为调制波,等

17、腰三角波为载波进行比较,在两个波形的自然交点时刻控制开关器件的通断,这就是自然采样法.其优点是所得 SPWM 波形最接近正弦波,但由于三角波与正弦波交点有任意性,脉冲中心在一个周期内不等距,从而脉宽表达式是一个超越方程,计算繁琐,难以实时控制。 规则采样法规则采样法是一种应用较广的工程实用方法,一般采用三角波作为载波。其原理就是用三角波对正弦波进行采样得到阶梯波,再以阶梯波与三角波的交点时刻控制开关器件的通断,从而实现 SPWM 法.当三角波只在其顶点(或底点)位置对正弦波进行采样时,由阶梯波与三角波的交点所确定的脉宽,在一个载波周期(即采样周期)内的位置是对称的,这种方法称为对称规则采样。当

18、三角波既在其顶点又在底点时刻对正弦波进行采样时,由阶梯波与三角波的交点所确定的脉宽,在一个载波周期(此时为采样周期的两倍)内的位置一般并不对称,这种方法称为非对称规则采样。规则采样法是对自然采样法的改进,其主要优点就是是计算简单,便于在线实时运算,其中非对称规则采样法因阶数多而更接近正弦.其缺点是直流电压利用率较低,线性控制范围较小。 1我们这里选择软件生产法中计算简便的对称规则采样法来计算 PWM 开关动作时间。具体实施时有两种方法:(1)单极性 SPWM 法,见下图:正弦调制波周期决定于需要的调频比 kf,振幅值决定于 ku,等腰三角波载波周期决定于载波频率,振幅不变,等于ku=1 时正弦

19、调制波的振幅值,每半周期内所有三角波的极性均相同(即单极性)。调制波和载波的交点,决定了 SPWM 脉冲系列的宽度和脉冲音的间隔宽度,每半周期内的脉冲系列也是单极性的。单极性调制的工作特点:每半个周期内,逆变桥同一桥臂的两个逆变器件中,只有一个器件按脉冲系列的规律时通时断地工作,另一个完全截止;而在另半个周期内,两个器件的工况正好相反,流经负载 ZL 的便是正、负交替的交变电流。图 2 单极性 SPWM(2)双极性 SPWM 法:调制波仍为正弦波,其周期决定于 kf,振幅决定于 ku,中曲线,载波为双极性的等腰三角波,其周期决定于载波频率,振幅不变,与 ku=1 时正弦波的振幅值相等。调制波与

20、载波的交点决定了逆变桥输出相电压的脉冲系列,此脉冲系列也是双极性的,但是,由相电压合成为线电压(uab=ua-ub;ubc=ub-uc;uca=uc-ua)时,所得到的线电压脉冲系列却是单极性的。双极性调制的工作特点:逆变桥在工作时,同一桥臂的两个逆变器件总是按相电压脉冲系列的规律交替地导通和关断,毫不停息,而流过负载 ZL 的是按线电压规律变化的交变电流。图 3 双极性 PWM这里我们采用同步调制单极性 SPWM 法,载波比 N=32,调幅比 K 取值(0,1)。工业上变频器的调幅比是跟随输出频率而改变的,如在恒 V/F 控制中,K 需要考虑的因素很多,为简化问题,我们选择手动调节 K。SP

21、WM 必须做的工作是:实时地计算调制波(正弦波)和载波(三角波)的所有交点的时间坐标,根据计算结果,有序地向逆变桥中各逆变器件发出“通”和“断”的动作指令;调制波的振幅要随调制比而变,而载波的振幅则不变,所以,每次调节后,交点的时间坐标都必须重新计算。2.2 系统结构 本系统的功能框图如下。控制器需要完成输入输出交互,数据处理和 PWM 信号的生成,我们选择 AT89C52;为了节省单片机的 I/O,我们选用 4 个按键输入;需要显示的内容较多,我们选择 LCD1602;电源则取 220V 市电整理降压得到。AT89C52 的 P3 口能驱动4 路 TTL 门电路,能满足小信号输出。我们就直接

22、采用 P30 和 P31 输出 PWM 信号。由于PWM 信号对定时的精确度较高,而简单的 RC 电路稳定性不好,我们采用晶振和电容并联的谐振电路作为时钟发生电路。电源时钟电路控制器显示按键输入PWM输出生成PWMPWM参数设置输出监控出错报警中断图 4 系统结构图2.3 涉及元器件简介2.3.12.3.1 AT89C52AT89C52 介绍介绍下图给出了 At89C52 的芯片引脚结构。AT89C52 单片机是美国 ATMEL 公司生产的低电压,高性能 CMOS 8 位单片机,片内含 8K bytes 的可反复擦写的 Flash 只读程序存储器和 256bytes 的随机数据存储器(RAM)

23、 ,器件采用 ATMEL 公司的高密度,非易失性存储技术生产,与标准 MCS-51 指令系统及 8052 产品引脚兼容。功能强大的 AT89C52 单片机适合于许多较为复杂的控制应用场合。(1)AT89C52 主要性能参数与 Mcs-51 产品指令和引脚完全兼容。8 字节可重擦写 FLASH 闪速存储器1000 次擦写周期全静态操作:0HZ-24MHZ三级加密程序存储器256X8 字节内部 RAM32 个可编程 I/0 口线3 个 16 位定时计数器6 个中断源可编程串行 UART 通道、低功耗空闲和掉电模式 (2)At89C52 功能特性 AT89C52 提供以下标准功能:8 字节 FLAS

24、H 闪速存储器,256 字节内部 RAM , 32 个I/O 口线,3 个 16 位定时计数器,一个 6 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89c52 可降至 OHz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许 RAM,定时计数器串行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。图 5 AT89C52 引脚图(3)AT89C52 部分引脚功能说明XTAL1:片内晶振电路反相放大器的输入端。XTAL2:片内晶振电路反相放大器的输出端。P0:P0

25、口是一组 8 位漏极开路型双向 I/O 口,即地址/数据总线复用口。作为输出口用时每位能以吸收电流的方式驱动 8 个 TTL 逻辑门电路,对端口 P0 写“1”时,可作为高阻抗输入端用。 在 FLASH 中编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1 口:P1 是一个带内部上拉电阻的 8 位双向 I/O 口,Pl 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻某个引脚被外部信号拉低时会输出一个电流。与 AT89C51 不同之处是

26、,Pl.0 和 P1.1 还可分别作为定时/计数器 2 的外部计数输入(Pl.0/T2 )和外部触发输入(P1.1/T2EX) , FLASH 编程和程序校验期间,Pl 接收低 8 位地址。P2 口:P2 是一个带有内部上拉电阻的 8 位双向 I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑电路。对端口 P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。 在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行 MOvxDPTR 指令)时,P2 送出高 8 位地址数据

27、。在访问 8 位地址的外部数据存储器、如执行 MOVXRI 指令)时,P2 口输出 P2 锁存器的内容。 FLASH 编程或校验时,P2 亦接收高位地址和一些控制信号。P3 口:P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对 P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的 P3 口将用上拉电阻输出电流。 P3 口除了作为 I/0 口线外,更重要的用途是它的第二功能,如表格 1 所示。 此外,P3 口还接收一些用于 FLASH 闪速存储器编程和程序校验的控制信号。RST:复位输入

28、。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位。表格 1 P3 口第二功能端口引脚第二功能P3.0RXD(串行输入口P3.1TXD(串行输出口P3.2INTO(外中断 0P3.3INTO(外中断 l)P3.4TO (定时计数器 0 )P3.5Tl (定时计数器 l )P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节一般情况下,ALE 仍以时钟振荡频率的 1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问

29、外部数据存储器时将跳过一个 ALE 脉冲。 对 Flash 存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的 8EH 单元的 D0 位置位可禁止 ALE 操作。该位置位后,只有一条 MOVX 和 MOVC 指令才能将 ALE 激活,此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE 禁止位无效。PSEN:程序储存允许 PSEN 输出是外部程序存储器的读选通信号,当 AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次 PSEN 信号。EA

30、/VPP:外部访问允许。欲使 CPU 仅访问外部程序存储器(地址为 0000H-FFFFH ) , EA 端必须保持低电平(接地)需注意的是:如果加密位 LBI 被编程,复位时内部会锁存EA 端状态。如 EA 端为高电平(接 Vcc 端), CPU 则执行内部程序存储器中的指令。 flash 存储器编程时,该引脚加上+12V 的编程允许电源 VPP ,当然这必须是该器件是使用 12V 编程电压 VPP 。(4)AT89C52 特殊功能寄存器在 AT89C52 片内存储器中,80H-FFH 共 128 个单元为特殊功能寄存器(SFE ) 。并非所有的地址都被定义,从 80H-FFH 共 128

31、个字节只有一部分被定义,还有相当一部分没有定义。对没有定义的单元读写将是无效的,读出的数位将不确定,而写入的数据也将丢失。 不应将数据1写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能。在这种情况下,复位后这些单元数值总是“0” 。(5)AT89C52 单片机扩展电路及分析AT89C52 提供以下标准功能:8 字节 FLASH 闪速存储器,256 字节内部 RAM , 32 个 I/O口线,2 个 16 位定时计数器,一个 6 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。由于 AT89C52 具有 256 字节内部 RAM。对本设计已经足够使用,因此不需要再扩展外

32、部数据存储器。 22.3.22.3.2 LCD1602LCD1602 简介简介工业字符型液晶,能够同时显示 16x02 即 32 个字符(16 列 2 行) 。1602 液晶也叫1602 字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个 5X7 或者 5X11 等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。目前市面上字符液晶绝大多数是基于 HD44780 液晶芯片的,控制原理是完全相同的,因此基于 HD44780 写的控制程序可以很方便地应用于市面上大部分的字符型

33、液晶。1602 采用标准的 16 脚接口,其中:第 1 脚:VSS 为电源地第 2 脚:VDD 接 5V 电源正极第 3 脚:V0 为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影” ,使用时可以通过一个 10K 的电位器调整对比度) 。第 4 脚:RS 为寄存器选择,高电平 1 时选择数据寄存器、低电平 0 时选择指令寄存器。第 5 脚:RW 为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第 6 脚:E(或 EN)端为使能(enable)端。第 714 脚:D0D7 为 8 位双向数据端。第 1516 脚:空脚或背灯电源。1

34、5 脚背光正极,16 脚背光负极。1602LCD 的供电电压为+5V 电压,对比度可调,内含复位电路,提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能,有 80 字节显示数据存储器 DDRAM,内建有 192 个 5X7 点阵的字型的字符发生器 CGROM,8 个可由用户自定义的 5X7 的字符发生器CGRAM。1602LCD 微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。1602 液晶模块内部的字符发生存储器(CGROM)已经存储了 160 个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有

35、一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H) ,显示时模块把地址 41H 中的点阵字符图形显示出来,我们就能看到字母“A” 。因为 1602 识别的是 ASCII 码,试验可以用 ASCII 码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如A 。2.4 仿真工具介绍2.4.12.4.1 ProtuesProtues 简介简介Protues 软件是英国 Labcenter electronics 公司出版的 EDA 工具软件。它不仅具有其它 EDA 工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚

36、起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus 是世界上著名的EDA 工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到 PCB 设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB 设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086 和 MSP430 等,2010 年即将增加 Cortex 和 DSP 系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持 IAR

37、、Keil 和 MPLAB 等多种编译。Protues 软件具有其它 EDA 工具软件(例:multisim)的功能。这些功能是:(1)原理布图(2)PCB 自动或人工布线(3)SPICE 电路仿真革命性的特点:(1)互动的电路仿真。用户甚至可以实时采用诸如 RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分 SPI 器件,部分 IIC 器件。(2)仿真处理器及其外围电路。可以仿真 51 系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Protues 建立了完

38、备的电子设计开发环境。Protues 具有 4 大功能模块:1)智能原理图设计(ISIS)丰富的器件库:超过 27000 种元器件,可方便地创建新元件;智能的器件搜索:通过模糊搜索可以快速定位所需要的器件;智能化的连线功能:自动连线功能使连接导线简单快捷,大大缩短绘图时间;支持总线结构:使用总线器件和总线布线使电路设计简明清晰;可输出高质量图纸:通过个性化设置,可以生成印刷质量的 BMP 图纸,可以方便地供 WORD、POWERPOINT 等多种文档使用。完善的电路仿真功能(Prospice)ProSPICE 混合仿真:基于工业标准 SPICE3F5,实现数字/模拟电路的混合仿真;超过 270

39、00 个仿真器件:可以通过内部原型或使用厂家的 SPICE 文件自行设计仿真器件,Labcenter 也在不断地发布新的仿真器件,还可导入第三方发布的仿真器件; 多样的激励源:包括直流、正弦、脉冲、分段线性脉冲、音频(使用 wav 文件) 、指数信号、单频FM、数字时钟和码流,还支持文件形式的信号输入; 丰富的虚拟仪器:13 种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、SPI 调试器、I2C 调试器等; 生动的仿真显示:用色点显示引脚的数字电平,导线以不同颜色表示其对地电压大小,结合动态器件

40、(如电机、显示器件、按钮)的使用可以使仿真更加直观、生动; 高级图形仿真功能(ASF):基于图标的分析可以精确分析电路的多项指标,包括工作点、瞬态特性、频率特性、传输特性、噪声、失真、傅立叶频谱分析等,还可以进行一致性分析。2)独特的单片机协同仿真功能(VSM)支持主流的 CPU 类型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430 等,CPU 类型随着版本升级还在继续增加,如即将支持 CORTEX、DSP 处理器;支持通用外设模型:如字符 LCD 模块、图形 LCD 模块、LED

41、 点阵、LED 七段显示模块、键盘/按键、直流/步进/伺服电机、RS232 虚拟终端、电子温度计等等,其COMPIM(COM 口物理接口模型)还可以使仿真电路通过 PC 机串口和外部电路实现双向异步串行通信; 实时仿真:支持 UART/USART/EUSARTs 仿真、中断仿真、SPI/I2C 仿真、MSSP 仿真、PSP 仿真、RTC 仿真、ADC 仿真、CCP/ECCP 仿真。 编译及调试:支持单片机汇编语言的编辑/编译/源码级仿真,内带 8051、AVR、PIC 的汇编编译器,也可以与第三方集成编译环境(如 IAR、Keil 和 Hitech)结合,进行高级语言的源码级仿真和调试。3)实

42、用的 PCB 设计平台原理图到 PCB 的快速通道: 原理图设计完成后,一键便可进入 ARES 的 PCB 设计环境,实现从概念到产品的完整设计; 先进的自动布局/布线功能:支持器件的自动/人工布局;支持无网格自动布线或人工布线;支持引脚交换/门交换功能使 PCB 设计更为合理; 完整的 PCB 设计功能:最多可设计 16 个铜箔层,2 个丝印层,4 个机械层(含板边) ,灵活的布线策略供用户设置,自动设计规则检查,3D 可视化预览; 多种输出格式的支持:可以输出多种格式文件,包括 Gerber 文件的导入或导出,便利与其它 PCB设计工具的互转(如 protel)和 PCB 板的设计和加工。

43、4)Protues 提供了丰富的资源(1)Protues 可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有 30 多个元件库。(2)Protues 可提供的仿真仪表资源 :示波器、逻辑分析仪、虚拟终端、SPI 调试器、I2C 调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器可以在一个电路中随意的调用。(3)除了现实存在的仪器外,Protues 还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对

44、测量结果的影响。(4)Protues 可提供的调试手段 Protues 提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。Protues 的软件仿真功能:支持当前的主流单片机,如 51 系列、AVR 系列、PIC12 系列、PIC16 系列、PIC18 系列、Z80 系列、HC11 系列、68000 系列等。1.提供软件调试功能。2.提供丰富的外围接口器件及其仿真。RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分 SPI 器件,部分 IIC 器件。这样很接近实际。在训练学生时,可以选择不同的方案,这样更利于培养学生。3.提供丰富的虚拟仪器,利用虚拟仪器在仿

45、真过程中可以测量外围电路的特性,培养学生实际硬件的调试能力。4.具有强大的原理图绘制功Protues 电路功能仿真:在 PROTUES 绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTUES 的原理图中看到模拟的实物运行状态和过程。PROTUES 是单片机课堂教学的先进助手。PROTUES 不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测

46、、电路修改、软件调试、运行结果等。课程设计、毕业设计是学生走向就业的重要实践环节。由于 PROTUES 提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台。随着科技的发展“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中 PROTUES 也能茯得愈来愈广泛的应用。2.4.22.4.2 KeilKeil uVision2uVision2 简介简介Keil uV

47、ision2 是德国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统,使用接近于传统 c 语言的语法来开发,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。KEILC51 标准 C 编译器为 8051 微控制器的软件开发提供了 C 语言环境,同时保留了汇编代码高效,快速的特点。C51 编译器的功能不断增强, 使你可以更加贴近 CPU 本身,及其它的衍生产品。C51 已被完全集成到 uVision2 的集成开发环境

48、中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2 IDE 可为它们提供单一而灵活的开发环境。Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows 界面,能在很短的时间内就能学会使用 keil c51 来开发单片机应用程序 。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。3 硬件电路设计3.1 电源本电路所需 5V 直流电源采用工频 220V 电源,经由一个变压器降压后,通过 H

49、桥整流,再使用三端稳压芯片稳压得到。常见的三端稳压集成电路有正电压输出的 78系列和负电压输出的 79系列。三端IC 的三条引脚分别是输入端、接地端和输出端。有 TO- 220 ,TO-202 的标准封装,也有9013 样子的 TO-92 封装。用 78/79 系列三端稳压 IC 来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。因为本设计只需要正电压 5V,故这里选用 7805。 37805 的主要电气参数如下表:表格 2 7805 电气参数电路中由于 7805 的输入输出电压差典型值为 2V,设计 PWM 输出功率 3W,加上单片

50、机及其他功耗,可选用 220V/9V/10W 规格的变压器。整流桥可以选择正向电流 1A,耐压值为 25V。整流出来的波形是脉动的,为了得到平稳的电压,在整流桥输出端接一个大电容。7805 的最高输出电流约为 1.5A,输出功率:参数符号测试条件最小值典型值最大值单位输出电压VoTj=254.85.05.2V5.0mA1o1.0A,Potempt4)OUTPUT0=0;else OUTPUT0=1;elseif(sjbacitempt4)OUTPUT1=0;else OUTPUT1=1;if(aci=31)aci=0,acj+;tempt4=(long unsigned int)sineacj

51、)*k/10;if(acj=31)acj=0,OUTPUT0=0,OUTPUT1=0,FLAG=1-FLAG;if(tjump)TH0=tempt2; /tempt2=(65536-1000/freq*(100-rac)/100)/256; TL0=tempt3; /tempt3=(65536-1000/freq*(100-rac)/100)%256; OUTPUT=0; 4.4 输出时间控制这里我们用定时器 1,同样工作在方式 1。最大定时时间:Tmax=216*10(-6)s=65536 uS而我们希望输出时间以秒记,因此需要进行定时扩充。为方便计算,定时时间设为 50000 uS。这样:

52、TH1=(65536-50000)/256=60;TL1=(65536-50000)%256=176;输出时间到时关闭 PWM 输出。输出时间控制程序如下:/*T1 中断服务程序*/void timer1(void)interrupt 3 using 1count1+; /定时扩充TH1=60;TL1=176;if(count1=20) /定时一秒count1=0;ToutReal-;if(ToutReal=0)TR0=TR1=0,OUTPUT=0;/关闭 PWM 输出,停止计时。4.5 按键中断为了减少硬件开销少占用单片机的 I/O 口,这里只设计了 4 个按键。按键动作时的典型波形如图。可

53、以看到实际波形中电压抖动现象,影响单片机判断。消抖有硬件和软件两种方式。硬件消抖可以采用 RC 电路或 RS 触发器。但是在按键多时增加硬件开销,所以我们采用软件消抖的方式。按键抖动时间一般为 10-20ms,所以可以延时 20ms 后判断按键是否真的动作(包括按下和松开) 。图 15 按键动作电压波形C51 编译器支持在 C 语言源程序中直接编写 89C52 单片机的中断服务函数程序 。C51 编译器对函数的定义进行了扩展,增加了一个扩展关键字 interrupt。 关键字interrupt 是函数定义时的一个选项,加上这个选项就可以将一个函数 定义成中断服务函数。定义中断服务函数的一般形式

54、为中断表函数类型 函数名 ( 形式参数表 )interrupt n using n 关键 字 interrupt 后面的 n 是中断号,n 的取值范围为 0 3 1 编译器从 8 n + 3处产生中断向量。具体的中断号 n 和中断向量取决于不同的单片机芯片:89C52 单 片机的常 用中断源 和中断向量如表 1 所示 89C52 系列单片机可以在内部 R A M 中使用 4 个不同的工作寄存器组,每个寄存器组中包含 8 个工作寄存 器( R0 R7) 。C51 编译器扩展了一个关键宇 using,专门用来选择单片机中不同的工作寄存器组。using 后面的 n是一个 03 的常整数,分别选中 4

55、 个不同的工作寄存器组。在定义一个函 数时 using是一个选项,如果不用该选项,则由编译器选择一个寄存器组作绝对寄存器组访问。关键 字 usin 对函数目标代码的影响如下:在函数的八口处将当前工作寄存器组保护到堆栈中指定的工作寄存器内容不会改变,函数返回之前将被保护的工作寄存器蛆从堆栈中恢复。为了能够在线修改 PWM 参数而不中断输出,外部中断需要不打断定时器 0 的中断,因而我们选择优先级较低的外部中断 INT1。为了方便修改参数,我们采用低电平触发。按键中断程序如下:void EXINT1(void) interrupt 2 using 1Delay1ms(20);EX1=0; /关中断

56、if(KEY1=0)KeyValue=1;else if(KEY2=0)KeyValue=2;else if(KEY3=0)KeyValue=3;else if(KEY4=0)KeyValue=4;EX1=1;由于只有四个按键,因此每个按键都是复用的,有多种的功能,且必须和 LCD1602 显示的内容配合好。按键的功能安排如下:表格 3 按键功能状态按键编号01234567报警0进入模式选择界面确认确认确认确认确认进入调整输出界面停止输出无1进入模式选择界面选择DC增加增加增加无进入调整输出界面修改参数无2进入模式选择界面选择AC减少减少减少无进入调整输出界面无无3进入模式选择界面无返回上一界

57、面返回上一界面返回上一界面返回上一界面进入调整输出界面返回上一个界面返回欢迎界面参数修改程序如下:case 1: while(KeyValue=2)dcac=1,KeyValue=0;/模式选择while(KeyValue=3)dcac=0,KeyValue=0;Manag(dcac);if(KeyValue=1)Delay1ms(20);if(dcac)script=2; /直流斩波模式else script=10;/SPWM 模式KeyValue=0;LCD_cls();break;case 2: if(KeyValue=2)/设置 fDelay1ms(20);freq+,KeyValue

58、=0;if(KeyValue=3)Delay1ms(20); freq-,KeyValue=0;DcConf(freq);if(KeyValue=4)Delay1ms(20); script=1,KeyValue=0;LCD_cls();if(KeyValue=1)Delay1ms(20);script=3;KeyValue=0;LCD_cls();break;case 3:if(dcac)if(KeyValue=2)/设置 racDelay1ms(20);rac+=10,KeyValue=0;if(KeyValue=3)Delay1ms(20);rac-=10,KeyValue=0;DcCo

59、nr(rac);else if(KeyValue=2)/设置 kDelay1ms(20);k+=1,KeyValue=0;if(KeyValue=3)Delay1ms(20);k-=1,KeyValue=0;DcConr(k);if(KeyValue=4)Delay1ms(20);script=2,KeyValue=0;LCD_cls();if(KeyValue=1)Delay1ms(20);script=4,KeyValue=0;LCD_cls();break;case 4: if(KeyValue=2)/设置 ToutDelay1ms(20);Tout+=10,KeyValue=0;if(

60、KeyValue=3)Delay1ms(20);Tout-=10,KeyValue=0;DcCont(Tout);if(KeyValue=4)Delay1ms(20);script=3,KeyValue=0;LCD_cls();if(KeyValue=1)Delay1ms(20);script=5,KeyValue=0;LCD_cls();break;4.6 LCD1602 编程1602 液晶模块内部的字符发生存储器(CGROM)已经存储了 160 个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的

61、代码是 01000001B(41H) ,显示时模块把地址 41H 中的点阵字符图形显示出来,我们就能看到字母“A” 。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。1602 液晶模块内部的控制器共有 11 条控制指令。它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。下表为LCD1602 的显示地址。因为写入显示地址时要求最高位 D7 恒定为高电平 1 所以实际写入的数据应该是字符地址加上 80H。下表为 LCD1602 的显示地址。如要在第二行第一个位置显示数

62、据,则在写入的数据应该是 40H+80H=C0H。为了使用方便我们把 LCD1602 的常用操作写成函数,需要时直接调用函数即可。常用操作有:LCD 是否忙检测,LCD 清屏,写指令,光标定位,显示字符及字符串,LCD 初始化。由于 1602 无法直接显示数据,需要先把数据转换为字符串,再送到 1602 显示。转换后的字符串要注意清除前面的 0。字符串转换函数和数据显示函数如下:void DataToChar(int dat)/数据-字符串转换函数。DataArray3=dat%10;DataArray2=(dat-DataArray3)/10)%10;DataArray0=dat/1000;

63、DataArray1=(dat/100)%10;void DispD(int dat)/数据显示函数i=j=0;DataToChar(dat);/数据-字符串转换for(j=0;j3;j+)/清除前面的 0if(DataArrayj)i=1;if(i)LCD_write_data(DataArrayj+48);LCD_write_data(DataArrayj+48);4.7 显示设计由于 LCD1602 只有 16*2 个显示点,无法在一个界面中完成所有的显示内容这里我们按功能来分显示界面。界面 0:程序启动时及出错后的数据初始化界面 1:模式选择void Manag(int dat)LCD

64、_set_position(0);LCD_prints(MODE:);LCD_set_position(7);if(dat)LCD_prints(DC);else LCD_prints(SPWM);LCD_set_position(0 x40);LCD_prints(OK);界面 2:设置频率void DcConf(int dat)LCD_set_position(0);LCD_prints(f:);DispD(dat);if(dcac)LCD_prints(KHz );/直流 PWM 输出 1-20KHzelse LCD_prints(Hz );/SPWM 输出 1-100HzLCD_set

65、_position(0 x40);LCD_prints(OK);LCD_set_position(0 x4c);LCD_prints(BACK);界面 3:设置占空比或调幅比void DcConr(int dat)if(dcac)/设置占空比LCD_set_position(0);LCD_write_data(0 xe0);LCD_write_data(:);DispD(dat);LCD_prints(% );else/设置调幅比LCD_set_position(0);LCD_prints(k:);DispD(dat);LCD_prints(/10 );LCD_set_position(0 x

66、40);LCD_prints(OK);LCD_set_position(0 x4c);LCD_prints(BACK);界面 4:设置输出时间void DcCont(int dat)LCD_set_position(0);LCD_prints(Tout:);DispD(dat);/LCD_set_position(0 x07);LCD_prints(S );LCD_set_position(0 x40);LCD_prints(OK);LCD_set_position(0 x4c);LCD_prints(BACK);界面 5:启动输出void DcConok(void)LCD_set_position(3);LCD_prints(OUTPUT NOW?);LCD_set_position(0 x40);LCD_prints(OK);LCD_set_position(0 x4c);LCD_prints(BACK);界面 6:在线监控 f , 或 k,Tout。输出完毕后关闭输出。void Dcmont(void)LCD_set_position(0);LCD_prints(f:);Disp

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!