单片机课程设计---占空比可调的方波发生器.doc
【精品文档】如有侵权,请联系网站删除,仅供学习与交流单片机课程设计-占空比可调的方波发生器.精品文档.东 北 石 油 大 学 课 程 设 计课 程 单片机课程设计 题 目 占空比可调的方波发生器 院 系 电气信息工程学院测控系 专业班级 测控08-02 学生姓名 项鸿雁 学生学号 080601240201 指导教师 路敬祎(讲师)、段志伟(讲师) 2011年 7 月 22日东北石油大学课程设计任务书课程 单片机课程设计 题目 占空比可调的方波发生器 专业 测控技术与仪器 姓名 项鸿雁 学号 080601240201 一、任务 设计一款基于AT89C51单片机的占空比可调的方波发生器,实现方波发生器占空比可调。二、设计要求 1 通过电位器产生电压,控制占空比可调的方波。 2 通过对AT89C51单片机的编程,实现占空比可调的方波发生器。 3 写出详细的设计报告。 4 给出全部电路和源程序。三、参考资料 1 李正发.电工电子技术基础实验M.北京:科学出版社,2005.110-115. 2 李群芳,张士军,黄建.单片微型计算机与接口技术(第2版)M.北京:电子工 业出版社.2005.68-76. 3 周永金.模拟电子技术与应用J.西安:陕西国防学院电子教研室.2005.34-56. 4 朱志伟,刘湘云.单片机及嵌入式系统的应用J.北京:北京航空航天大学出版 社,2010.(06). 5 张毅刚.单片机原理及应用M.高等教育出版社.2003:160-190.完成期限 2011.7.13 至 2011.7.22 指导教师 路敬祎(讲师)、段志伟(讲师) 专业负责人 曹广华 2011年 7月 13 日目录第1章 绪论11.1 占空比可调的方波发生器概述11.2 占空比可调的信号发生器技术状况11.3 本设计任务3第2章 总体方案论证与设计42.1 方案设计与选择42.2 总体硬件组成框图5第3章 系统硬件设计63.1 AT89C51芯片介绍63.2 LED显示电路设计63.3 时钟电路的设计73.4 按键接口电路83.5 复位电路8第4章 系统的软件设计94.1 主程序设计94.2 定时器中断子程序94.3 按键及显示子程序设计10第5章 系统调试与测试结果分析125.1 使用的仪器仪表125.2 系统调试125.3 测试结果12结 论13参考文献14附录1 程序15附录2 仿真效果图18第1章 绪论 信号发生器是为进行电子测量提供符合一定技术要求的电信号的设备。在电子测量技术领域内,几乎测量所有的电参量都需要或可以借助于信号发生器进行测量,所以,它是电子测量中最基本的、使用最广泛的电子测量仪器之一。信号发生器的种类很多,在电子电路测量中,大致可以分为正弦信号发生器、函数信号发生器和脉冲信号发生器三大类。函数发生器可以输出多种波形,现有的函数发生器有的能输出14种不同的信号波形1。1.1 占空比可调的方波发生器概述 单片机集成度高,功能强,可靠性高,体积小,功耗低,使用方便,价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎无处不在,无所不为。单片机的应用领域已经从面向工业控制,通讯,交通,智能仪表等迅速发展到家用消费产品,办公自动化,汽车电子,PC机外围一记网络通讯等广大领域。单片机有两种基本结构形式:一种是在通用微型计算机中广泛采用的,将程序存储器和数据存储器合用一个存储器空间的结构,成为普林斯机构。另一种是将程序存储器个数据存储器截然分开,分别寻址的结构,一般需要较大的程序存储器,目前单片机以采用程序存储器截然分开的结构多。本课题讨论的占空比可调的信号发生器的核心是目前应用极为广泛的51系列单片机2。 基于单片机的占空比可调方波发生器的设计,是通过单片机控制一个有特殊功能的信号发生芯片,可以产生一系列有规律的幅度和频率可调的波形。这样一个信号发生器装置在控制领域有相当广泛的应用范围。因为产生一系列的可调波形可以作为其他一些设备的数值输入,还可以应用与设备检测,仪器调试等场合。高频稳定的波形信号也可以用于无线电波的调频,解调3。这些都是现代生活中必不可少的一些应用。1.2 占空比可调的信号发生器技术状况显示屏的控制系统包括输入接口电路、信号控制、转换和数字化处理电路及输出接口电路等,涉及的具体技术很多,其关键技术包括串行传输与并行传输技术、动态扫描与静态锁存技术、自动检测及远程控制技术等。1.2.1 中断技术 所谓“中断”,是指CPU执行正常程序时,系统中出现特殊请求,CPU暂时中止当前的程序,转去处理更紧急的事件(执行中断服务程序),处理完毕(中断服务完成)后,CPU自动返回原程序的过程。4个专用寄存器用于中断控制,用户通过设置其状态来管理中断系统。分别是:TCON: 定时器/计数器控制寄存器;SCON: 串行口控制寄存器;IE: 中断允许寄存器;IP: 中断优先级寄存器。中断优先原则:对同时发生多个中断申请时:不同优先级的中断同时申请:先高后低;相同优先级的中断同时申请:按序执行;正处理低优先级中断又接到高级别中断:高打断低;正处理高优先级中断又接到低级别中断:高不理低。单片机工作时,在每个机器周期中S5P2都会去查询各个中断标志,如果有中断请求。必须满足下列条件单片机才能响应中断: 相应的中断是开放的; 没有同级的中断或更高级别的中断正在处理; 正在执行的指令必须执行完最后 1个机器周期; 若正在执行RETI,或正在访问IE或IP寄存器,则必须执行完当前指令的下一条指令后方能响应中断。 中断过程包括中断请求、中断响应、中断服务、中断返回四个阶段。中断请求:中断源将相应请求中断的标志位置 “1”,表示发出请求,并由CPU 查询;中断响应:在中断允许条件下相应中断。断点入栈撤除中断标志关闭低同级中断允许中断入口地址送PC。 这些工作都是由硬件自动完成的;中断服务:根据入口地址转中断服务程序,包含保护现场、执行中断主体、恢复现场;中断返回:执行中断返回RETI指令断点出栈开放中断允许返回原程序4。1.2.2 定时器技术定时是单片机的晶振经过12分频后获得的一个脉冲源,对脉冲源的个数进行计数。定时的种类分为:软件定时:利用执行一个循环程序进行时间延迟。其特点是定时时间精确,不需外加硬件电路,但占用CPU时间。因此软件定时的时间不宜过长;硬件定时:利用硬件电路实现定时。其特点是不占用CPU时间,通过改变电路元器件参数来调节定时,但使用不够灵活方便。对于时间较长的定时,常用硬件电路来实现;可编程定时器:通过专用的定时器/计数器芯片实现。其特点是通过对系统时钟脉冲进行计数实现定时,定时时间可通过程序设定的方法改变,使用灵活方便。使用T0/T1的步骤:确定选择T0/T1确定工作模式:定时、计数;确定工作方式:方式0、方式1、方式2、方式3;计算T0/T1初值;编写主程序,中断入口处理,定时器/计数器初始化;编写中断服务程序。定时器/计数器初始化的步骤:写TMOD,设置定时器/计数器的工作方式、模式;计算定时器/计数器的初值,写入TH0/TH1、TL0/TL1;设置IE、IP,以开放相应的中断和设定中断优先级5。1.3 本设计任务现在市场上的信号发生器很多,而占空比可调的信号发生器在控制领域有相当广泛的应用范围。因为产生一系列的占空比可调波形可以作为其他一些设备的数值输入,还可以应用与设备检测,仪器调试等场合。高频稳定的波形信号也可以用于无线电波的调频,解调。本次设计是以AT89C51为核心设计一个占空比可调的方波发生器,通过定时器和中断来实现输出占空比可调的方波。第2章 总体方案论证与设计本系统采用单片机AT89C51为占空比可调方波发生器的控制核心,系统主要包括最小系统、LED七段码显示、脉冲输出方波、示波器。2.1 方案设计与选择实现方波发生器的方法很多,但主要有三个方案:采用单片函数发生器8038,采用锁相式频率合成器,采用单片机编程。方案一:采用单片函数发生器8038,8038可同时产生正弦波、方波等,而且方法简单易行,用D/A转换器额输出来改变调制电压,也可以实现数控调整频率。但产生信号的频率稳定度不高。方案二:采用锁相式频率合成器,利用锁相环,将压控振荡器VCO的输出频率锁定在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,且电路复杂。方案三:采用单片机编程的方法来实现,该方案可以通过编程的方法控制信号的占空比,而且在硬件电路不变的情况下,通过改变程序来实现占空比的变换。此外,由于通过编程的方法产生的是数字信号,因此信号的精度可以做的很高。鉴于方案一的信号频率不够稳定和方案二的电路复杂,频率覆盖系数难以达标等缺点,所以决定采用方案三的设计方法。它不仅采用软硬件结合,软件控制硬件的方法来实现,使得信号频率的稳定性和精度的准确性得以保证,而且他使用的几种元器件都是常用元器件,容易得到,且价格便宜。 在此次设计中采用一个AT89C51微处理器,2个按键,两个LED七段码显示器,一个示波器。AT89C51 用到两个定时器,定时器0 和定时器1。其中定时器0 工作在定时方式1下和P1.2结合来进行占空比加一和减一的设定;定时器1 工作在定时方式2下和P1.3结合来进行占空比加五减五的设定。两个按键分别控制占空比加1减1和加5减5。设定的占空比的值通过连接在P0,P2口的两个七段码LED显示器来显示,占空比的比值在1:99至99:1之间。2.2 总体硬件组成框图时钟电路LED显示AT80C51 复位电路示波器显示按键电路图2-1 总体硬件组成框图 系统框图如图2-1所示,系统主要由四大模块组成即时钟电路、LED显示、复位电路、按键电路和示波器显示。第3章 系统硬件设计3.1 AT89C51芯片介绍如图3-1所示为AT89C51的芯片引脚结构。图3-1 AT89C51芯片引脚结构 AT89C51单处机内部设置两个16位可编程的定时器/计数器T0和T1,它们具有计数器方式和定时器方式两种工作方式及4种工作模式。在波形发生器中,将其作定时器使用,用它来精确地确定波形的两个采样点输出之间的延迟时间。模式1采用的是16位计数器,当T0或T1被允许计数后,从初值开始加计数,最高位产生溢出时向CPU请求中断6。 中断系统是使处理器具有对外界异步事件的处理能力而设置的。当中央处理器CPU正在处理某件事的时候外界发生了紧急事件,要求CPU暂停当前的工作,转而去处理这个紧急事件。在波形发生器中,只用到片内定时器/计数器溢出时产生的中断请求,即是在AT89C51输出一个波形采样点信号后,接着启动定时器,在定时器未产生中断之前,AT89C51等待,直到定时器计时结束,产生中断请求,AT89C51响应中断,接着输出下一个采样点信号,如此循环产生所需要的信号波形。3.2 LED显示电路设计 此系统中LED显示电路是由单片机和LED数码管直接相连组成的。如图3-2所示。图3-2 LED显示电路 通过P0口和P2口显示相应的数据。由于P0口的内部没有上拉电阻,不能输出高电平,故在P0口上串接一个排阻。3.3 时钟电路的设计 AT89C51单片机有两个引脚(XTAL1,XTAL2)用于外接石英晶体和微调电容,从而构成时钟电路,其电路图如图3-3所示。 电容C1、C2对振荡频率有稳定作用,其容量的选择为30pF,振荡器选择频率为6MHz的石英晶体。图3-3 时钟电路3.4 按键接口电路图3-4为键盘接口电路的原理图,。图3-4 键盘接口电路图中K1与P3.2相连,控制占空比变化步进为1,K2与P3.3相连,控制占空比变化步进为5。3.5 复位电路 如图3-5所示为复位电路。 加一个(大于两个机器周期的)高电平使单片机复位。图中为按键加上电复位电路。在复位状态下,程序指针PC=0000H。 图3-5 按键加上电复位电路第4章 系统的软件设计4.1 主程序设计本系统中下位机(单片机89C51)的主要功能就是实现占空比可调、产生方波并通过LED显示器和示波器显示出来。其主程序流程如图4-1所示。 Y等待定时器1溢出判断是否有中断标志 N开始初始化:设定时器0工作方式为方式1,定时器1工作方式为方式2产生方波 图4-1 主程序流程图4.2 定时器中断子程序 定时器中断子程序中有定时器0和定时器1中断,定时器0控制占空比变化步进为1,如图4-27,定时器1控制占空比变化步进为5,如图4-3。结束定时器0中断入口TR1=1重装定时初值低电平时,结合P1.2占空比变化步进为1图4-2定时器0中断流程图结束定时器1中断入口TR1=0重装定时初值低电平时,结合P1.2占空比变化步进为5 图4-3定时器1中断流程图4.3 按键及显示子程序设计 按键及显示子程序设计流程图如图4-4所示。赋初值计算定时初值关中断结束判断按键号键处理占空比是否超界开始关中断延时消抖是否有键按下 N Y N Y 图4-4 按键及显示子程序设计流程图 第5章 系统调试与测试结果分析5.1 使用的仪器仪表 单片机 AT89C51示波器 OSCILLOSCOPE上拉电阻 RESPACK-8LED七段码显示器 7SEG-DIGITAL5.2 系统调试根据系统设计方案,本系统的调试为软件调试和仿真调试。5.2.1软件调试 用Keil C编译此次课程设计所用的汇编语言程序,查看是否有语法错误,当没有语法错误之后,编译生成hex文件。5.2.2仿真调试软件调试结束后会生成一个hex文件。用Proteus画仿真电路图,画完电路图后将hex文件写入单片机AT89C51,然后仿真8。5.3 测试结果此次系统设计结果较好,在仿真图上进行仿真时,可以发现,LED显示屏上的初始值为50,示波器输出方波占空比为1/2。按动拨码开关K1,LED显示屏上显示的数值加1,按动拨码开关K2,LED显示屏上显示的数值加5,直到达到99后跳回50。结 论本次的单片机课程设计较为成功,我采用单片机AT89C51为占空比可调方波发生器的控制核心,通过两个按键实现占空比的不同幅度的调节,按动K1时变化幅度为1,按动K2时按动幅度为5。通过按键控制占空比的比值可在1:99:-99:1之间变化。系统主要包括单片机最小系统、LED七段码显示、脉冲输出方波、按键电路、时钟电路、复位电路以及示波器显示模块。最终制作出一个可以调节占空比的方波发生器。系统采用单片机编程的方法来实现,通过编程的方法控制信号的占空比,而且在硬件电路不变的情况下,通过改变程序来实现占空比的变换。此外,由于通过编程的方法产生的是数字信号,因此信号的精度很高,避免了采用单片函数发生器的信号频率不稳定以及采用锁相式频率合成器的电路复杂,频率覆盖系数难以达标等缺点。通过软硬件的仿真调试,实现了本次设计的基本功能:占空比可调方波发生器。但在实际应用中,功能不仅仅于此,通过对程序的稍做修改,还可以实现频率与占空比都可调的方波,正弦波,三角波等波形的发生器。参考文献1 李正发.电工电子技术基础实验M.北京:科学出版社,2005.110-115.2 李群芳,张士军,黄建.单片微型计算机与接口技术(第2版)M.北京:电子工 业出版社.2005.68-76.3 周永金.模拟电子技术与应用J.西安:陕西国防学院电子教研室.2005.34-56.4 朱志伟,刘湘云.单片机及嵌入式系统的应用J.北京:北京航空航天大学出版 社,2010.(06).5 张毅刚.单片机原理及应用M.高等教育出版社.2003:160-190.6 陈文峰.基于虚拟仪器检测系统J.单片机应用.2005,23(10).78-80.7 边春远,王志强.MCS-51单片机应用开发实用子程序M.北京:人民邮电出版 社,2005.396-398.8 周润景.基于Proteus的电路与单片机仿真系统设计与仿真J.北京航空航天 大学出版社.2006.27-32.附录1 程序 COUNT EQU 30H AS EQU 30H M EQU 35H ORG 0000H LJMP START ORG 0003HLJMP INT00ORG 0013HLJMP INT11START: SETB EX0SETB PX0SETB IT0SETB EX1CLR PX1SETB IT1SETB EACLR P1.5MOV TMOD,#21HMOV TH1,#38HMOV TH0,#0B1HMOV TL0,#0E0HSETB TR0SETB TR1MOV DPTR,#TABLEMOV M,#50MOV P0,#3FHMOV P2,#6DHMOV AS,#0 TOP:SETB TR1SETB P1.0CLR P1.1MOV TH0,#0B1HMOV TL0,#0E0HMOV AS,#0MOV B,#10MOV A,MMOV B,#100DIV ABJZ TIME1MOV B,#10CLERK:SETB P1.5LCALL DELAYCLR P1.5LCALL DELAYSETB P1.5LCALL DELAYCLR P1.5MOV M,#50LCALL SHOWLJMP TOPTIME1:JBC TF1,NEXTSJMP TIME1NEXT:INC ASMOV A,MCJNE A,AS,TIME1CLR P1.0SETB P1.1CLR TR1TIME0:JBC TF0,TOPSJMP TIME0INT00:JNB P1.2,LOOP1INC MLCALL SHOWRETILOOP1:DEC MLCALL SHOWRETIINT11:JNB P1.2,LOOPMOV A,MADD A,#5MOV M,ALCALL SHOWRETILOOP:MOV A,MSUBB A,#5MOV M,ALCALL SHOWRETISHOW:MOV A,MMOV B,#10DIV ABMOVC A,A+DPTRMOV P2,AMOV A,BMOVC A,A+DPTRMOV P0,AMOV B,#10RETDELAY:MOV R6,#0FFHDEY1:MOV R7,#0FFHDEY2:MOV R5,#3 DJNZ R5,$DJNZ R7,DEY2DJNZ R6,DEY1RETTABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND附录2 仿真效果图东北石油大学课程设计成绩评价表课程名称单片机课程设计题目名称占空比可调方波发生器学生姓名项鸿雁学号080601240201指导教师姓名路敬祎段志伟职称讲师讲师序号评价项目指 标满分评分1工作量、工作态度和出勤率按期圆满的完成了规定的任务,难易程度和工作量符合教学要求,工作努力,遵守纪律,出勤率高,工作作风严谨,善于与他人合作。202课程设计质量课程设计选题合理,计算过程简练准确,分析问题思路清晰,结构严谨,文理通顺,撰写规范,图表完备正确。453创新工作中有创新意识,对前人工作有一些改进或有一定应用价值。54答辩能正确回答指导教师所提出的问题。30总分评语:指导教师: 年 月 日