2024年月日。
信号发生器的设计。
1 设计目的。
1) 熟悉proteus**软件,掌握单片机原理图的绘图方法;
2) 学习c语言的编程与调试的方法;
3) 掌握利用单片机产生常用波形的方法;
4) 理解d/a转换工作原理,完成单片机电压的采集与显示程序的编写与调试。
2 功能要求及技术指标。
以单片机为基础,利用adc0832设计信号发生器能产生三角波、方波、梯形波、正弦波等波形,且频率、幅度可变的波形发生器;四种波形的频率分辨率分别为50hz、200hz、50hz、10hz。
设计接口电路,将这些外设构成一个简单的单片机应用系统,画出接口的连接图和**图,并编写出控制波形的程序。
3 整体设计方案。
整体的设计框如图3.1所示,由时钟复位、按键中断、液晶显示和d/a转换四个模块组成,最后输出波形。
图3.1 总体设计框图。
4 硬件电路的设计。
4.1 时钟与复位模块。
单片机工作必须有时钟脉冲,有两种方法可以向单片机at89c52提供时钟脉冲信号,即外部时钟方式和内部时钟方式。此次设计采用内部时钟方式。内部时钟方式是利用单片机芯片内部的振荡器和电容组成并联谐振回路,如图4.
1.1所示。电容c1和c2一般取30pf左右,主要作用是帮助振荡器起振,晶体的振荡频率范围在1.
2到13mhz。晶体振荡频率高,则系统的时钟频率也越高,单片机运行速度也就越快。单片机在通常应用情况下,时钟振荡频率为6到12mhz。
图4.1.1时钟振荡电路。
单片机的复位是靠外电路实现的,在时钟电路工作后,只要在单片机的rst引脚上出现24个时钟振荡脉冲(2个机器周期)以上的高电平,单片机便实现初始化状态复位。为了保证应用系统可靠地复位,通常是rst引脚保持10ms以上的高电平。复位电路连接如图4.
1.2所示。此电路仅用一个电容及一个电阻。
系统上电时,在rc电路充电过程中,由于电容两端电压不能跳变,故使reset端电平呈高电位,系统复位。经过一段时间,电容充电,使reset端呈低电位,复位结束。
图4.1.2复位电路。
4.2 显示器模块设计。
本系统采用1602液晶来显示信号输出的状态,液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在各类仪表和低功耗系统中得到广泛的应用。相比较数码管用液晶显示具有很多优点,如位数多,可显示32位,32个数码管体积则相当庞大;显示内容丰富,可显示所有数字和大、小写字母,能更好的表示信号显示的状态,而数码管只能显示也一个频率值,不能表示正在输出的信号类别;程序简单,如果用数码管动态显示,会占用很多时间来刷新显示,而1602自动完成此功能,节省了单片机资源。
图4.2 系统显示电路
4.3 按键中断模块。
图4.3 按键中断实现。
它的工作原理是当没有按键按下时,int0端口保持高电平,中断不触发,当有任何一个按键按下时通过74ls00(双输入与非门ls04(非门)的相互连接,最终实现int0变成低电平。从而触发中断,进而执行中断服务程序。进入中断服务程序后,系统执行键盘扫描程序,来识别究竟是哪个按键按下。
然后根据识别的按键来进入相关的处理函数,例如按下波形选择键触发中断后,在中断服务程序中,系统将波形符号加1,从而改变波形。
4.4 d/a转换电路模块。
dac0832主要由8位输入寄存器、8位dac寄存器、8位d/a转换器以及输入控制电路四部分组成。8位输入寄存器用于存放主机送来的数字量,使输入数字量得到缓冲和锁存,由加以控制;8位dac寄存器用于存放待转换的数字量,由加以控制;8位d/a转换器输出与数字量成正比的模拟电流;由与门、非与门组成的输入控制电路来控制2个寄存器的选通或锁存状态。
dac0832与反相比例放大器相连,实现电流到电压的转换,因此输出模拟信号的极性与参考电压的极性相反,数字量与模拟量的转换关系为:
图4.4 d/a转换器双极性输出电路。
图4.4中,运算放大器u3b的作用是把运算放大器u3a的单向输出电压转换成双向输出电压。d/a转换器的总输出电压为:
因为,,则。这样的变化范围就是从到之间变化,从而实现电压的双极性输出,并且可以通过改变的值变化来实现幅值的改变。
5 软件设计。
5.1 总体流程图设计。
应用系统中的应用软件是根据系统功能要求而设计的,能可靠地实现系统的各种功能。如图5.1所示,本系统的软件包括程序模块有系统复位初始化、键盘中断与处理、中断0服务程序、定时器0中断服务程序、三角波发生程序、方波发生程序、 梯形波发生程序和正弦波发生程序。
在流程图中波形更换是三角波、方波、梯形波和正弦波依次更换。
图5.1 主程序流程图。
5.2 按键检测及中断处理设计。
单片机系统中,键盘扫描是cpu工作的一个主要内容之一。cpu忙于各项工作任务时,如何兼顾键盘扫描。既保证不失时机的响应键盘操作,又不过多占用cpu时间。
因此,要根据应用系统中的cpu的忙、闲情况,选择好键盘的工作方式。
本系统采用中断工作方式,该方式相交其它方式有节省cpu资源,提高效率等优点。即当键盘有健按下时,才执行键盘扫描,然后执行该键功能程序。中断处理流程图如图5.2所示。
图5.2中断处理流程图。
6 系统**。
6.1 系统**环境。
在proteus的isis 7.1sp2软件环境下画出电路原理图,接下来就是将设计的程序在keil μvision3开发集成环境上编译成机器语言,进入proteus的isis,鼠标左键点击菜单“debug”, 选中“use romote debuger monitor”,便可实现keilc与proteus连接调试。首先在proteus中双击单片机at89c52,将keilc下编程生成的。
hex文件导入到at89c52中,可在proteus中单击全速**运行按钮,进行现象的查看,能清楚地观察到芯片上每一个引脚的电平变化,红色代表高电平,蓝色代表低电平;如果现象不正确,则在keilc中单步调试程序,并在proteus观察现象,那一步不正确则对该段的程序进行修改,调试直到**完全成功为止。
系统的整体**图如图6.1所示。
图6.1 系统的**原理图。
6.2 **结果。
按下开关k0时候示波器会显示三角波,通过k0来控制波形,k1、k2来控制频率,k3停止。**结果如下所示:
三角波**:频率300hz,**结果如图6.2所示,可见三角波波形稳定且可调。
图6.2 三角波。
方波**:频率400hz,**结果如图6.3所示,可见波形稳定且频率可调。
图6.3 方波。
梯形波**:频率300hz,**结果如图6.4所示,可见波形稳定且频率可调。
图6.4 梯形波。
正弦波**:频率100hz,**结果如图6.5,可见正弦波波形稳定且可调。
图6.5 正弦波。
7 设计总结。
课程设计是培养我们综合运用所学知识,发现、提出、分析和解决实际问题的能力。通过这次单片机课程设计,使我们对单片机的结构、基本工作原理、单片机应用系统开发有了进一步的了解。函数信号发生器的硬件设计电路简单,但对各芯片的性能及工作原理不是很熟悉;软件设计并不太复杂,但需要搞清其工作原理。
为提高软件设计的总体效率,以简明、直观法对任务进行描述,在编写应用软件之前,绘制出程序流程图。
在设计的过程中,通过请教老师和同学,上网或上图书馆查资料将这些问题解决。这样不仅巩固了以前所学过的知识,加深了我对所学知识的理解,而且学到了很多在书本上未涉及的知识,锻炼了搜集有用信息的能力。在编译**时对软件keil和proteus认识更多,发现了proteus的很多优点,同时也发现它的不足之处,过于理想化,如果完全依赖,则硬件有可能无法工作。
学会了绘图软件编辑文档中的电路图和框图等。从整个设计过程中认识到自己对知识掌握不够牢靠,动手能力还远不够。总的来说,这次课程让我们收获很大。
参考文献。1] 林立,张俊亮,曹旭东,刘得军,基于proteus和keil c弹片机的原理和应用,2011,07(4):48-64.
2] 雷发禹,宾淼林,李永枧,等。基于单片机的信号发生器设计与**。邵阳学院学报(自然科学版),2009,6(3): 39-43.
3] 谭浩强著。c语言程序设计[m].北京:清华大学出版社,2005.7: 41-53.
4] 李建忠。单片机原理及应用[m].西安:西安电子科技大学出版,2002.7: 63-78.
单片机课程设计
可变程序控制器是集微机技术 自动化技术 通讯技术于一体的通用工业控制装置。它可靠性强 性能 比高 使用方便,已在工业控制的各个领域里得到了极为广泛的应用,成为实现工业自动化的一种强有力的工具 1 plc的定义有许多种。国际电工委员会 iec 对plc的定义是 可编程控制器是一种数字运算操作的电子系统...
单片机课程设计
目录。内容提要2 关键词2引言3 一 硬件电路设计3 一 电路板原理3 二 电路元器件3 二 软件设计3 一 秒钟设计方案3 二 时钟设计方案4 结语7单片机时钟设计。内容摘要 一 在实验板上用动态扫描显示00 59秒钟,具体要求如下 一 6m晶振 二 l9 l10显示00 59十进制数并循环,间隔...
单片机课程设计
1 选题背景。1.1 家庭智能防盗报警系统设计的背景及目的。随着经济的发展,人们对防盗 防劫 防火保安设备的需求量大大增加。针对偷盗 抢劫 火灾 煤气泄漏等事故进行检测和报警的系统,其需求也越来越高。家居智能是以家为平台,兼备建筑 自动化,智能化于一体的高效 舒适 安全 便利的家居环境。自动化的家居...