~ 学年 第 1 学期
《单片机原理及接口技术》
课 程 设 计 报 告
题 目: 基于51单片机的信号发生器设计 专 业: 电子信息工程 班 级: 姓 名:
指导教师:
电气工程学院 年月20日
1、任务书 课题名称 指导教师(职称) 执行时间 学生姓名 设计目的 学号 随着电子技术的发展,信号发生器经常要用在各种科学技术领域和工程实践中。选择适当的嵌入式处理器、DA转换芯片,放大器,设计出一种基于单片机的多功能信号发生器的设计,能够实现键盘控制下输出正弦波、方波、三角波等波形。 设计要求 1.设计一个能自动稳定产生方波和三角波的函数发生器 2.输出信号频率范围:1HZ~100HZ; 3.输出电压:方波Vpp=<24V, 三角波Vpp=8V, 基于51单片机信号发生器设计 学年第 1 学期 第 7 周 承担任务
摘 要
本文以STC89C51单片机为核心设计了一个低频函数信号发生器。信号发生器采用数字波形合成技术,通过硬件电路和软件程序相结合,可能自动稳定产生方波和三角波,波形的频率和幅度在一定范围内可任意改变。波形和频率的改变通过软件控制,幅度的改变通过硬件实现。介绍了波形的生成原理、硬件电路和软件部分的设计原理。本系统可以产生最高频率100HZ的波形。该信号发生器具有体积小、价格低、性能稳定、功能齐全的优点。
关键词: 低频信号发生器;
单片机; D /A转换;
目 录
一.设计原理…………………………………………………………………………………1 二.方案论证…………………………………………………………………………………2 2.1 信号发生电路方案论证……………………………………………………………2 2.2 单片机的选择方案论证……………………………………………………………2 2.3 显示方案论证………………………………………………………………………2 三.总体系统设计……………………………………………………………………………3 四.硬件实现及单元电路设计………………………………………………………………4
4.1单片机最小系统的设计………………………………………………………………4 4.2 波形产生模块设计……………………………………………………………………4 4.3 显示模块的设计………………………………………………………………………5 五.安装调试及测量数据分析………………………………………………………………6
5.1调试过程………………………………………………………………………………6 5.2频率的测量数据………………………………………………………………………7 5.3出现的问题与解决的方法……………………………………………………………7 5.4系统仿真波形…………………………………………………………………………7 5.5效果分析………………………………………………………………………………8 5.6测量仪器………………………………………………………………………………8 参考文献………………………………………………………………………………………9
第一章.设计原理
利用51单片机采用程序设计方法产生锯齿波、正弦波、矩形波三种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,能产1Hz—100Hz的波形。通过键盘来控制三种波形的类型选择、频率变化,并通过液晶屏1602显示其各自的类型以及数值,系统大致包括信号发生部分、数/模转换部分以及液晶显示部分三部分。
1
第二章.方案论证
2.1 信号发生电路方案论证
方案一:通过单片机控制D/A,输出三种波形。此方案输出的波形不够稳定,抗干扰能力弱,不易调节。但此方案电路简单、成本低。
方案二:使用传统的锁相频率合成方法。通过芯片IC145152,压控振荡器搭接的锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方波,积分电路转换成三角波。此方案,电路复杂,干扰因素多,不易实现。
方案三:利用MAX038芯片组成的电路输出波形。MAX038是精密高频波形产生电路,能够产生准确的三角波、方波和正弦波三种周期性波形。但此方案成本高,程序复杂度高。
以上三种方案综合考虑,选择方案一。 2.2 单片机的选择方案论证
方案一:STC89C51单片机芯片全面兼容其它51单片机,是51单片机是主流大军,每一个高等院校、普通学校、网站、业余单片机培训都是以51单片机为入门教材的,所以,教材最多,例子最多。STC89C51内部有EEPROM,可以在程序中修改,断电不丢失。还增加了两级中断优先级
方案二:C8051F005单片机是完全集成的混合信号系统级芯片,具有与8051兼容的微控制器内核,与MCS-51指令集完全兼容。除了具有标准8052的数字外设部件,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件,而且执行速度快。但其价格较贵。
以上两种方案综合考虑,选择方案一 2.3 显示方案论证
方案一:采用LED数码管。LED数码管由8个发光二极管组成,每只数码管轮流显示各自的字符。由于人眼具有视觉暂留特性,当每只数码管显示的时间间隔小于1/16s时人眼感觉不到闪动,看到的是每只数码管常亮。使用数码管显示编程较易,但要显示内容多,而且数码管不能显示字母。
方案二:采用LCD液晶显示器1602。其功率小,效果明显,显示编程容易控制,可以显示字母。
以上两种方案综合考虑,选择方案二。
2
4.1单片机最小系统的设计
2. 内部存储器容量有限。 3. 应用系统开发具有特殊性。
第三章.总体系统设计
图3 总电路图
该系统采用单片机作为数据处理及控制核心,由单片机完成人机界面、系统控制、信号的采集分析以及信号的处理和变换,采用按键输入,利用液晶显示电路输出数字显示的方案。将设计任务分解为按键电路、液晶显示电路等模块。
第四章.硬件实现及单元电路设计
89C51是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单﹑可靠。用80C51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图4.1所示。由于集成度的限制,最小应用系统只能用作一些小型的控制单元。其应用特点:
1. 有可供用户使用的大量I/O口线。
3
图4.1 89C51单片机最小系统
4.2 波形产生模块设计
由单片机采用编程方法产生三种波形、通过DA转换模块DAC0832在进过滤波放大之后输出。其电路图如下:
图4.2 DAC0832的电路图
4
图4.3 波形产生电路
如上图所示,单片机的P0口连接DAC0832的八位数据输入端,DAC0832的输出端接放大器,经过放大后输出所要的波形。DAC0832的为八位数据并行输入的,其结构图如下:
图4.4 DAC0832的内部结构
4.3 显示模块的设计
通过液晶1602显示输出的波形、频率,其电路图如下:
5
图4.5液晶显示
如上图所示,1602的八位数据端接单片机的P1口,其三个使能端RS、RW、E分别接单片机的管脚。通过软件控制液晶屏可以显示波形的种类以及波形的频率。
第五章.安装调试及测量数据分析
5.1调试过程;
1. 不通电,用万用表根据电路图仔细检查各线路连接是否正常。
2. 首先是调试单片机部分,DA和运算放大器芯片不接。用STC_ISP_V483软件通过串口下程序。看是否可以正常下程序。
3.当可以正常下程序时,给51单片机下一个让所有I/0口一会儿输入0,延时,再输出1,以此类推。用万用表测量各I/O口得电压是不是一会儿高,一会儿低。
4.安上DA和运算放大器芯片,给单片机下一个输出正弦波的测试程序,通过示波器看输出是否正常。
5. 给单片机下一个完整的程序,分别按下S1,看波形是否改变。按下S2,看频率是否改变。
6
5.2频率的测量数据:
T 98.3 97.8 2T 56.5 55.8 3T 48.2 48.0 4T 42.6 43.1 5T 34.2 33.8 6T 28.4 28.6 7T 24.9 24.5 单位:HZ 8T 18.7 19.4 周期 理论值 实际值 表5-1
5.3出现的问题与解决的方法:
1. 调试单片机的串口时,发现不能正常的下程序。我想可能是单片机坏了借了一块学习板测试了一下单片机芯片,发现可以正常下载。这说明很可能是MAX232的电路出了问题。我仔细查看了电路图,又上网查了下其他的MAX232的电路图,发现我的电路图和别人的不一样。我是按照郭天翔的那本《新概念51单片机C语言教程 入门、提高、开发、拓展全》第130页的串口电路画的图,电路图中MAX232的TIOU1接串口的第3脚。而其他书上有些电路图却是MAX232的TIOU1接到了串口的第2脚。于是我将MAX232的TIOU1接串口的第2脚,再下程序,终于可以正常下载了。
2.刚开始写的测试程序输出的波形失真很大。我想可能是波形的ROM表里的数据值过小,导致DA输出的误差很大。因而卧将波形的ROM表里的数据值调大,在测试时发现波形变得好多了。
3. 调试波形的时候我发现矩形波的失真比较大。我想到可能是低通滤波器的截止频率太低了,因而我将RC低通滤波器的电阻由1K换成了100欧姆,效果好了很多。
5.4系统仿真波形:
图5.1 正弦波
7
图5.2方波
图5.3 三角波
5.5效果分析:
由5.2的频率理论值与实际值,可知频率在T,2T,3T,4T,5T,6T,7T,8T上频率误差很小。 最终的波形输出效果也很不错。
5.6测量仪器
1.示波器。
2.直流稳压电源。 3.万用表。
8
参 考 文 献
[1] 姜志海,黄玉清等.单片机原理及应用[M] .北京:电子工业出版社2009.8
[2] 张毅刚,MCS-51单片机应用设计[M]. 哈尔滨:哈尔滨工业大学出版社 2008.4 [3] 蒋智勇,单片微型计算机原理及应用[M]. 沈阳:辽宁科学技术出版社 1991.2 [4] 穆兰,单片微型计算机原理及接口技术[M]. 北京:机械工业出版社 2008.6 [5] 何立名,单片机应用文集[M]. 北京:北京航天航空大学出版社 2006.5 [6] 郭天翔,新概念51单片机C语言教程[M] .北京:电子工业出版社 2009.1 [7] 童诗白,华成英;模拟电路技术基础[M]. 北京:高等教育出版社 2006.5
9
课题名称 答辩教师(职称) 答辩时间 学年第 学期 第 周 1.P0口的性能有哪些? 答:P0是一个8位漏极开路型双向I/O口。内部不带上拉 电阻,当外接上拉电阻时,P0口能以吸收电流的方式驱动八 个LSTTL负载电路。通常在使用时外接上拉电阻,用来驱 动多个数码管。 在访问外部程序和外部数据存储器时,P0 口是分时转换的地址(低8位)/数据总线,不需要外接上拉电 阻。 2.电压表的最大分辨率(精度)是多少?如何提高其精度? 答:由于单片机为8位处理器,当输入电压为5.00V时,答 输出数据值为255(FFH)因此单片机最大的数值分辨率为 0.0196V(5/255)。这就决定了该电压表的最大分辨率(精度)辩 只能达到0.0196V。测试时电压数值的变化一般以0.02V的记 电压幅度变化,要获得更高的精度要求,应采用12位、13 位的A/D转换器。 录 3. 单片机的中断有哪些? 答:0 外部中断0 1 定时器0中断 2 外部中断1 3 定时器1中断 4 串行口中断 5 定时器2中断 4.你们编写程序的特点是什么?有什么感想和特点? 答:我们使用模块化程序设计的思想,把一个很大的程序模块化,简单化,分工化,使大的问题简单化。模块化程序设计为团队合作完成大的工程创造了可能,带来了方便。 5. 你们对你们的数字电压表误差作何分析,如何矫正? 答:简易数字电压表测得的值基本上均比标准值偏大0.01-0.02V。这可以通过校正0808的基准电压来解决,因为该电压表设计时直接用7805的供电电源作为基准电压,电压可能有偏差。可以用软件编程来校正测量值。 6.你们的调试和测试方案是什么? 答:本设计应用Proteus6及KEIL51软件,首先根据自己设计的电路图用Proteus6软件画出电路模型;然后我们用KEIL51软件对所编写的程序进行编译、链接,如果没有错10
误和警告便可生成程序的hex文件,将此文件加到电路图上使软硬件结合运行,最后进行端口电压的对比测试。 7.通过本次课程设计,你们有什么感想? 答:经过一周的努力终于设计成功,LED的显示结果和直接用数字电压表测试模拟量输入所得结果几乎一致,误差完全在合理的范围之内。大家都很高兴,我们对单片机都有了更深入的了解,同时,明白要顺利完成一个大工程,合作的重要性,并且我们会更加努力,希望以单片机为平台,向更高的嵌入式进军。 学生姓名 评 分 表 学号 评分 11
因篇幅问题不能全部显示,请点此查看更多更全内容