《基于单片机的简易低频信号发射源的设计毕业设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的简易低频信号发射源的设计毕业设计.doc(27页珍藏版)》请在三一办公上搜索。
1、分类号: 学校代码:11460学 号: 10090318 南京晓庄学院本科毕业设计基于单片机的简易低频信号源的设计The Design of Simple Low-frequency Signal Source Based on Simple Microcontroller摘要随着电子测量和其他产业的快速发展为多种信号发生器和电子技术的强烈需求,产生的信号发生器的范围增加,性能改进。在教育和科研开发,生产工程的实践,如教学,工业过程控制,生物医学等领域,经常需要使用低频信号源。信号发生器作为一种通用的电子设备,在生产,研究,监测和控制,通信等领域得到了广泛的应用。本系统为简易低频信号源的设计,
2、通过控制键、D/A转换及外围电路实现低频信号产生功能。能输出三角波、正弦波、方波。关键词:低频信号源,单片机,D/A转换AbstractWith the rapid development of electronic measurement and other industries for the strong demand for a variety of signal generators and electronic technology, resulting in increased range of the signal generator, the performance impr
3、oved. In scientific research, production and engineering education practice, such as the field of teaching experiments, industrial process control, biomedical, etc. often need to use low-frequency signal generating source. Signal generator as a generic electronic equipment, in production, research,
4、monitoring and control, communications and other fields have been widely used. The system is a simplified design of low-frequency signal source, through the control keys, D / A conversion circuit and the external low frequency signal generating function. This system can output a triangle wave, sine
5、wave, square wave. Key words: low-frequency signal, source single-chip, D / A converter,目 录1绪论11.1课题研究的背景11.2国内外波形发生器技术进展11.3课题研究的目的及意义11.4论文的主要研究内容22系统的硬件设计32.1硬件结构框图与电路原理图32.2系统的硬件模块设计32.2.1主控模块32.2.2 DA转换模块52.3时钟电路72.4复位电路72.5按键控制模块82.6电路原理图83系统的软件设计93.1主流程图93.2各功能模块子程序104 系统调试124.1软件调试124.2硬件调试1
6、2结论15参考文献16致谢17附录:原代码181绪论 1.1课题研究的背景波形发生器采用模拟电子电路,和模拟设备体积大,存在的价格,功耗等缺点,并产生更复杂的信号波形,电路结构非常复杂。同时,在两个方面的综合性能,通过调整电位器来实现输出频率的调节,很难调整到一个固定的值;二是脉冲的占空比不可调节。在上个世纪的十年,微处理器,可以使用的处理器,以及,波形发生器的功能扩展的硬件和软件的复杂波形。上世纪年代末,有几个真的高性能,高价位的函数发生器,但惠普推出的信号模拟器系统模型,它由波形数字化、波形发生软件组成。1.2国内外波形发生器技术进展(1)在过去由于较低的频率范围相对狭窄的应用,提高了输出
7、波形的频率,使波形发生器可以在更广泛领域的应用。波形发生器通常允许函数是用一系列的点,线和固定,段落,波形数据到内存同时利用一个强大的方式。促进一个任意波形发生器的波形发生器的发展和作用,对各种计算机语言的快速发展,和任意波形发生器的软件术起到了促进作用。(2)与VXI资源结合。总线由于测量测量仪器产生复杂的波形,需要在许多领域的测量系统使用一个高需求的成熟,系统资源提供了明显的优势,但由于模块的开发周期长,需要特定的机箱配套使用,模块允许波形发生器是有限的大面积如航空航天,军事和国防。(3)当今世界在以电子信息技术为前提下推动了社会跨跃式的进步,科学技术的飞速发展日新月异带动了各国生产力的大
8、规模提高。由此可见科技已成为各国竞争的核心,尤其是电子信息技术更显得尤为重要,在国民生产各部门电子信息技术得到了广泛的应用。1.3课题研究的目的及意义目前,市场上的信号发生器的品种,一般基于频带分为以下几类:超高频:频率在1MHz以上,可达几十兆赫兹。高频:几百KHZ 到几MHZ。低频:频率为几十HZ到几百KHZ。超低频:频率为零点几赫兹到几百赫兹。超高频信号发生器,产生一般使用振荡器电路的波形图。在实际应用中,超低频波和高频波一般不采用,通常与频率,那是几十到数百赫兹的频率。基于以上用途,本次毕业论文要设计一个低频信号源,用单片机,加上一片D/A转换芯片,你可以做一个简单的信号发生器,频率可
9、以通过单片机编程。我们可以生产各种波形的程序编写,为机器,用户的选择运行不同的程序有不同的波形。一些输出的电压转换电路耦合到完成一个频率,信号发生器的通用设计的振幅可以调。这样的机器便宜的小,功耗低,中度频率,携带方便。1.4论文的主要研究内容本文结合国内外研究成果,通过比较几种常用的低频信号源论文内容主要分为以下几部分。第1章:介绍了低频信号源,背景,目的,意义和内容。第2章:分析概括几种设计思路,设计系统的总原理图,分模块介绍系统的硬件功能。第3章:详细介绍设计中用到的器件的性能。第4章:描述了软件工作流模块描述了其每个子过程。第5章:介绍调试流程。2系统的硬件设计2.1硬件结构框图与电路
10、原理图波形的产生是通过AT89C2051单片机执行某一波形发生程序,向D/A转换器的输入端按一定的规律发生数据,从而在D/A转换电路的输出端得到相应的电压波形。DAC0832有三种联接方式。一种是两级缓冲器型,即输入数据经过两级缓冲器型。输入数据经过两级缓冲器后,送D/A转换电路。第二种是单级缓冲器型,输入数据经输入寄存器直接送入DAC寄存器,然后送D/A转换电路。第三种是两个缓冲器直通,输入数据直接送D/A转换电路进行转换。结构框图如图2-1:图2-1结构框图2.2系统的硬件模块设计2.2.1主控模块在设计中,AT89C2051芯片主要用作处理键盘输入的信息,输出相应波形需要的数字量,输出显
11、示模块需要的位选信号和要显示的数据。下面是对AT89C2051芯片的简介:1. AT89C2051内部结构概述:AT89C2051单片机芯片集成了以下几个基本组成部分。1. 一个8位的CPU2. 256B单元内数据存储器(RAM)3. 4KB片内程序存储器(ROM)4. 4个8位并行I/O接口P0P3。5. 两个定时/计数器。6. 5个中断源的中断管理控制系统。7. 一个个全双工串行端口(通用异步接收发送器)2.管脚:VCC:电源电压输入端。GND:电源地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。P1口:P1口是提供内部上拉电阻的位双向端口,可接收输出电流保险杠
12、。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流。P3口: P3口除了作为普通I/O口,还有第二功能:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(T0定时器的外部计数输入)P3.5 T1(T1定时器的外部计数输入)I/O端口作为输入端口有两种模式,称为读取端口读引脚。除了P1口外P0、P2、P3口都还有其他的功能。ALE/PROG:如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引
13、脚被略微拉高。PSEN:外部程序存储器的选通,低电平有效。在这段期间从外部程序存储器读取,每个机器周期两次有效。然而,你访问外部数据存储器时,这两个有效信号不会出现。EA/VPP:外部程序存储器访问允许。当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:片内振荡器反相放大器和时钟发生器的输入端。XTAL2:片内振荡器反相放大器的输出端。AT89C2051单片机引脚如图2-2所示。
14、图2-2 AT89C2051单片机引脚2.2.2 DA转换模块DAC0832是CMOS工艺制造的8位数/模(D/A)转换器在进行转换。几个性能参数主要涉及以下:分辨率8位DAC的分辨率为1/255=0.39%。转换精度1LSB。它反映了DAC的线性度。在一般情况下,转换精度与实用性的绝对转换精度。绝对转换精度相对于输出表示为一个百分比的全面相对转换精度,有时与最低比特位(LSB)的几分之几。非线性误差。D/A转换器转换成线性误差被定义为实际的特性曲线之间的最大偏差和理想特性曲线,和相对测量的满量程的百分比偏差。转换速率/建立时间。响应时间如果运算放大器的输出电压输出时间主要是人体所需的。根据对
15、上述参数的综合考虑,由于DAC0832有如上特征,本设计选定DAC0832芯片,其简介如下:1.DAC0832的内部结构当从低到高,低,数据锁存到输入寄存器,然后输入寄存器的输出不再是按照输入数据的变化。第二锁存器,和低水平的同时,高度,然后输入和一个输出寄存器的变化;此后,当从低到高,变低,输入数据被锁存到寄存器。2.DAC0832的引脚特性各引脚的特性如图2-3:图2-3 DAC0832引脚图XFER传输控制信号,低有效。DI7DI08位数据输入端。IOUT1模拟电流输出端1。IOUT2模拟电流输出端2。IOUT1+IOUT2=常数。Rfb反馈电阻引出端。VREF参考电压输入端。可接电压范
16、围为10V。VCC芯片供电电压端。范围为+5V+15V,最佳工作状态是+15V。3.DAC0832的工作方式DAC0832大致有3种工作方式:单缓冲方式:单缓冲方式控制输入和寄存器接收数据的同时,或只输入寄存器和寄存器连接在直道。双缓冲方式:进行两级缓冲。直通方式:不进行缓冲,适用于比较简单的场合。根据上述资料,单片机与DAC0832的相连电路如图2.7所示,其中P3口与DAC0832的数据输入端口D0D7相连,DAC0832的VCC,ILE接电源,Vref接参考电压,XFER,AGND,DGND,WR1,WR2。2.3时钟电路单片机的时钟信号通常用两种电路形式得到:内部振荡和外部振荡方式。在
17、引脚XTAL1和XTAL2外接晶体振荡器或陶瓷谐振荡器,构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自积振荡,并产生振荡时钟脉冲。晶振通常选用6MHZ、12MHZ、或24MHZ。电容C1、C2的主要作用是帮助振荡器起振,其值的大小对振荡器频率有微调作用,典型值为C1=C2=30pF,如图2-4所示。图2-4 时钟部分电路图2.4复位电路AT89C2051单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。上电或开关复位要求电源接
18、通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作,如图2-5所示。图2-5 上电自动复位电路2.5按键控制模块键盘中每一个按键都是一个常开的开关电路,当所设置的功能键按下时,则处于闭合状态,需要通过接口电路与单片机相连,以便把键的开关状态通知单片机,单片机可以采用查询或中断的方式了解有无键输入并检查哪一个按键被按下,并通过转移指令转入执行该键的功能程序,执行完又返回到原始状态。控制系统按最小化工作
19、模式设计,P3.0P3.2脚接三个按键,其中T1为频率增加键,T2为频率减小键,T3为正弦波与三角波选择按键。当按下T1键时,每按一次则输出波形频率加10HZ,当按下T2键时,每按一次则输出波形频率减10HZ,如图2-6。图2-6按键模块控制图2.6电路原理图电路原理图如下:图2-7电路原理图3系统的软件设计3.1主流程图主程序的任务时进行上电初始化,并在程序运行中不断查询按键情况,执行相应的功能,系统主流程图如图3-1所示。图 3-1 系统主流程图3.2各功能模块子程序低频信号源信号的产生程序主要分以下几个模块:1.初始化子程序:主要工作是设置定时器的工作模式、初值预置、开中断和打开定时器等
20、。在这里,定时器T1工作与16位定时模式,单片机按定时时间重复地把波形数据送到DAC0832的寄存器,初始化子程序流程图如图3-2所示。图3-2 初始化子程序流程图2.键盘扫描子程序:键扫描子程序的任务是检查3个按键是否有按键下,若有键按下,则执行下相应的功能。键盘扫描程序流程图如图3-3所示。图3-3 键盘扫描程序流程图3.波形数据产生子程序波形数据产生子程序是定时器T1的中断程序。当定时器计数溢出时,发生一次中断。当发生中断时,单片机将按次序将波形数据表中的波形数据一一送入DAC0832,DAC0832再根据输入的数据大小输出对应的电压,波形数据产生子程序流程图如图3-4所示。图3-4波形
21、数据产生子程序流程图4 系统调试4.1软件调试首先在Keil软件中查找AT89C2051芯片,把它作为控制处理器,然后开始新建一个工程文件,将之前编写好的各个功能程序录入到软件中去,在开始编译之前我会首先检查程序有没有明显错误的代码,然后保存过后开始编译程序,KEIL会在编译之后把错误的程序结果标注出来方便了人们的修改。然后根据错误位置提示加以修改,当各个功能程序都编译完成后,然后再对整个程序进行全速执行,再查看整体程序中有哪些地方出现错误,接着根据提示加以修改知道全速执行整个程序完全正确无误。最后软件调试成功。如图4-1图4-1软件调试结果4.2硬件调试对于中频率的增减按键由于计数器为16位
22、定时器,最大值为65535,所以在加减时用255作为加减数。这样频率的调整变化比较快,但在接近最高频率时变化太快。如果加减时用1作为加减数,那么在频率的高端变化平稳,而在频率的低端则变化太慢。调试时可根据应用特点选择加减数的大小。简易低频信号源输出的频率不是很高,在设计时每周期波形用了256个采样点合成,波形不是很平滑。如果增加采样点,则输出的频率会更低。用单片机产生低频信号的最大优点是可以输出复杂的不规则波形,这是一般的通用信号源无法做到的。仿真原理图如图4-2图4-2仿真图方波波形仿真图如图4-3 图4-3方波波形仿真图 正弦波波形仿真图如图4-4图4-4正弦波波形仿真图三角波波形仿真图如
23、图4-5 图4-5三角波波形仿真图结论 本文主要研究了以AT89S51单片机为主要控制器件的低频信号源的设计。主要内容如下: 1、论文首先介绍了低频信号源的发展状况,突出了运用单片机做控制器的低频信号源的优点,研究了几种主流设计思路并最终选定了软硬件结合的方法。2、其次研究了电路整体设计和各个模块的设计并对用到的器件做了描述,数模转换选定了DAC0832芯片,单片机产生所需要的输出波形数据,键盘用来更改波形和频率。3、论文最后对设计的软件部分和调试过程进行了研究,描述了整个程序的框架,绘制了流程图,然后依次完成了初始化程序和其他各项子程序,其中在键盘扫描子程序上做了比较细致的描述。调试过程将主
24、要仿真形式描述出来。4、简易低频信号源输出的频率不是很高,在设计时每周期波形用了256个采样点合成,波形不是很平滑。如果增加采样点,则输出的频率会更低。用单片机产生低频信号的最大优点是可以输出复杂的不规则波形,这是一般的通用信号源无法做到的。参考文献1 潘永雄. 单片机原理与应用(第2版)M 电子工业出版社。2 何立民.单片机应用技术选编(8)M 北京航空航天大学出版社,2000。3 张洪润等.单片机原理及应用M 北京科学出版社. 2002.8。4 安鹏,马伟.S12单片机模块应用及程序调试J.电子产品世界,2006:162-163. 5 邬宽明.单片机外围器件实用手册M.北京航空大学出版社,
25、1998.6 沙占友.单片机外围电路设计M.电子工业出版社,2003:46-48.7 邵贝贝.单片机嵌入式应用的在线开发方法M.清华大学出版社,北京20048 阎石.数字电子技术基础M.高等教育出版社,第四版.9 谢自美.电子线路设计实验测试M.华中科技大学出版社,第二版.10 赵晶.电路设计与制版 Protel 99 高级应用M.人民邮电出版社,2000.11 张毅刚单片机原理及应用 M 高等教育出版社。12 戴佳51单片机应用程序设计实例精讲 M电子工业出版社。13胡汉才 单片机原理及其接口技术.北京:北京清华大学和出版社.14楼然苗 李光飞. 单片机课程设计指导. M 北京航空航天大学出
26、版社,2012。致谢经历了两个多月我终于完成了这个论文,虽然在写作过程中遇到了各种各样的难题,但是在老师与同学的帮助指导下,我还是圆满的完成了。尤其要感谢我的论文指导老师谢军老师,他对我进行了无私的指导,不厌其烦。还要感谢论文中所借鉴到著作的作者,没有他们的启发我也很难把论文写的完整。由于我的水平有限,论文难免有不足之处,欢迎各位老师批评指正。附录:原代码#include reg51.h#define uchar unsigned char#define uint unsigned int#define key P3 /键盘口#define dataout P1 /正弦波等数据输出口/*正弦波
27、数据表*/uchar code sin_tab256= 0x80,0x83,0x85,0x88,0x8A,0x8D,0x8F,0x92, 0x94,0x97,0x99,0x9B,0x9E,0xA0,0xA3,0xA5, 0xA7,0xAA,0xAC,0xAE,0xB1,0xB3,0xB5,0xB7, 0xB9,0xBB,0xBD,0xBF,0xC1,0xC3,0xC5,0xC7, 0xC9,0xCB,0xCC,0xCE,0xD0,0xD1,0xD3,0xD4, 0xD6,0xD7,0xD8,0xDA,0xDB,0xDC,0xDD,0xDE, 0xDF,0xE0,0xE1,0xE2,0xE3,0
28、xE3,0xE4,0xE4, 0xE5,0xE5,0xE6,0xE6,0xE7,0xE7,0xE7,0xE7, 0xE7,0xE7,0xE7,0xE7,0xE6,0xE6,0xE5,0xE5, 0xE4,0xE4,0xE3,0xE3,0xE2,0xE1,0xE0,0xDF, 0xDE,0xDD,0xDC,0xDB,0xDA,0xD8,0xD7,0xD6, 0xD4,0xD3,0xD1,0xD0,0xCE,0xCC,0xCB,0xC9, 0xC7,0xC5,0xC3,0xC1,0xBF,0xBD,0xBB,0xB9, 0xB7,0xB5,0xB3,0xB1,0xAE,0xAC,0xAA,0xA7
29、, 0xA5,0xA3,0xA0,0x9E,0x9B,0x99,0x97,0x94, 0x92,0x8F,0x8D,0x8A,0x88,0x85,0x83,0x80, 0x7D,0x7B,0x78,0x76,0x73,0x71,0x6E,0x6C, 0x69,0x67,0x65,0x62,0x60,0x5D,0x5B,0x59, 0x56,0x54,0x52,0x4F,0x4D,0x4B,0x49,0x47, 0x45,0x43,0x41,0x3F,0x3D,0x3B,0x39,0x37, 0x35,0x34,0x32,0x30,0x2F,0x2D,0x2C,0x2A, 0x29,0x28,0
30、x26,0x25,0x24,0x23,0x22,0x21, 0x20,0x1F,0x1E,0x1D,0x1D,0x1C,0x1C,0x1B, 0x1B,0x1A,0x1A,0x1A,0x19,0x19,0x19,0x19, 0x19,0x19,0x19,0x19,0x1A,0x1A,0x1A,0x1B, 0x1B,0x1C,0x1C,0x1D,0x1D,0x1E,0x1F,0x20, 0x21,0x22,0x23,0x24,0x25,0x26,0x28,0x29, 0x2A,0x2C,0x2D,0x2F,0x30,0x32,0x34,0x35, 0x37,0x39,0x3B,0x3D,0x3F
31、,0x41,0x43,0x45, 0x47,0x49,0x4B,0x4D,0x4F,0x52,0x54,0x56, 0x59,0x5B,0x5D,0x60,0x62,0x65,0x67,0x69, 0x6C,0x6E,0x71,0x73,0x76,0x78,0x7B,0x7D;/*三角波数据表*/uchar code thr_tab256= 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, 0x98,
32、0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7, 0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7, 0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, 0xBF,0xBE,0xBD,0xBC,0xBB,0xBA,0xB9,0xB8, 0xB7,0xB6,0xB5,0xB4,0xB3,0xB2,0xB1,0xB0, 0xAF,0xAE,0xAD,0xA
33、C,0xAB,0xAA,0xA9,0xA8, 0xA7,0xA6,0xA5,0xA4,0xA3,0xA2,0xA1,0xA0, 0x9F,0x9E,0x9D,0x9C,0x9B,0x9A,0x99,0x98, 0x97,0x96,0x95,0x94,0x93,0x92,0x91,0x90, 0x8F,0x8E,0x8D,0x8C,0x8B,0x8A,0x89,0x88, 0x87,0x86,0x85,0x84,0x83,0x82,0x81,0x80, 0x7F,0x7E,0x7D,0x7C,0x7B,0x7A,0x79,0x78, 0x77,0x76,0x75,0x74,0x73,0x72,0
34、x71,0x70, 0x6F,0x6E,0x6D,0x6C,0x6B,0x6A,0x69,0x68, 0x66,0x66,0x65,0x64,0x63,0x62,0x61,0x60, 0x5F,0x5E,0x5D,0x5C,0x5B,0x5A,0x59,0x58, 0x55,0x55,0x55,0x54,0x53,0x52,0x51,0x50, 0x4F,0x4E,0x4D,0x4C,0x4B,0x4A,0x49,0x48, 0x44,0x44,0x45,0x44,0x43,0x42,0x41,0x40, 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, 0x4
35、8,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, 0x50,0x51,0x52,0x53,0x55,0x55,0x56,0x57, 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, 0x60,0x61,0x62,0x63,0x66,0x65,0x66,0x67, 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, 0x70,0x71,0x72,0x73,0x77,0x75,0x76,0x77, 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F;/*/uint data THHL
36、=65535;/T1的16位定时器初值uchar data keyword,n=0; /键值存放,查表指针bdata sinthr;sbit sin_thr=sinthr0; /正弦波三角波标志(1为正弦波)sbit ww=key7; /方波输出口/*键扫描子函数*/keyscan()keyword=key&0x07; /00000111 P30 P31 P32if(keyword!=0x07)while(key&0x07)!=0x07);/等待键释放switch(keyword)case 6:if(THHL=65235)THHL=65535;elseTHHL=THHL+255;break;case 5:if(THHL=255)n=0;elsen+;ww=ww;EA=1;