基于单片机的信号发生器.docx

上传人:b****7 文档编号:9592931 上传时间:2023-02-05 格式:DOCX 页数:23 大小:271.78KB
下载 相关 举报
基于单片机的信号发生器.docx_第1页
第1页 / 共23页
基于单片机的信号发生器.docx_第2页
第2页 / 共23页
基于单片机的信号发生器.docx_第3页
第3页 / 共23页
基于单片机的信号发生器.docx_第4页
第4页 / 共23页
基于单片机的信号发生器.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

基于单片机的信号发生器.docx

《基于单片机的信号发生器.docx》由会员分享,可在线阅读,更多相关《基于单片机的信号发生器.docx(23页珍藏版)》请在冰豆网上搜索。

基于单片机的信号发生器.docx

基于单片机的信号发生器

课程设计(论文)

 

题目名称信号发生器设计

课程名称单片机原理与应用

学生姓名

学号

系、专业信息工程系信息工程类(信息类)

指导教师

 

2010年07月02日

 

目录

摘要I

第1章绪论2

1.1设计背景2

1.2设计要求2

1.3设计思路2

第2章系统硬件设计3

2.1设计总框图3

2.2各模块功能3

2.3设计总电路图10

第3章系统软件设计11

3.1主程序流程图11

3.2子程序流程图12

第4章系统仿真与调试16

4.1电路仿真16

4.2系统调试17

第5章总结与展望18

5.1总结18

5.2展望18

参考文献19

致谢20

附录(源程序清单)21

第1章绪论

1.1设计背景

信号发生器是提供各种测量所需信号的仪器,它是一种常用的信号源,广泛应用于电子电路、自动控制和科学实验等领域。

在分析电子线路时,常常需要了解输出信号与输入信号之间的关系,为此常用信号发生器产生一个信号来激励系统,以便观察、分析它对激励信号的反应。

自十九世纪六十年代以来,信号发生器有了迅速的发展。

出现了函数发生器、扫频信号发生器、合成信号发生器、程控信号发生器等新种类,各类信号发生器的主要性能指标也有了大幅度的提高,同时在简化机械结构、小型化、多功能等各方面也有了显著的进展。

信号发生器是一种能产生标准信号的电子仪器,是工业生产和电工、电子实验中经常使用的电子仪器之一。

信号发生器种类较多,性能各有差别,但它们都可以产生不同频率的正弦波、调幅波调频波信号,以及各种频率的方波、三角波、锯齿波和正负脉冲波信号等。

利用信号发生器输出的信号,可以对元器件的性能及参数进行测量,还可以对电工和电子产品进行指数验证、参数调整及性能鉴定。

在对数电路传递网络中、电容与电感组合电路、电容与电阻组合电路及信号调制器的频率、相位的检测中都可以得到广泛的应用。

1.2设计要求

利用单片机产生方波、锯齿波、三角波及正弦波,要求波形任意切换,频率、幅度在线可调。

并对各种波形的频率和幅度进行程序的编写,并将所写程序装入单片机的程序存储器中。

在程序运行中,当接收到来自外界的命令,需要输出某种波形时再调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出。

1.3设计思路

首先应该了解本次设计的基本要求和目的,再通过查找资料了解80C51单片机的工作原理、结构图,ADC0808的工作原理和应用。

根据设计要求画出设计流程图,在此基础上利用汇编语言进行编程。

最后根据要求利用Proteus画出电路图进行仿真。

第2章系统硬件设计

2.1设计总框图

设计总框图见图2.1

图2.1设计总框图

此方案由振荡电路、复位电路与单片机一起构成单片机最小系统,各种波形由单片机程序产生,波形数据通过P0口送D/A转换,D/A转换后经放大滤波后输出。

2.2各模块功能

2.2.180C51单片机的信号引脚说明及其功能

(1)80C51的信号引脚

①80C51的引脚排列参见图2.2

图2.280C51引脚

②80C51信号引脚介绍

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8个TTL门电流。

当P0口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL),这是由于上拉的缘故。

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取址期间,每个机器周期两次PSEN有效。

但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。

EA/VPP:

当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,EA将内部锁定为RESET,当EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

VCC:

供电电压。

GND:

接地。

③P3口的第二功能

P3口的8条口线都定义有第二功能,详见表2.1

表2.1P3口的第二功能表

引脚

第二功能

信号名称

P3.0

RXD

串行数据接收

P3.1

TXD

串行数据发送

P3.2

外部中断0申请

P3.3

外部中断1申请

P3.4

T0

定时器/计数器0的外部输入

P3.5

T1

定时器/计数器1的外部输入

P3.6

外部RAM写选通

P3.7

外部RAM读选通

2.2.2DAC0808数/模转换器

PMI公司的双列直插式CMOS开关型D/A转换芯片DAC080,为16引脚电流输出型结构。

基准电压为5.00V,电源电压为+5V~-15V。

当输入端AI~A8,加入高低电平时,在3脚可输出相应的电流,经LF351转换为相应的模拟电压。

如图2.3所示。

图2.3DAC0808数/模转换器

2.2.3复位电路

为确保微机系统中电路稳定可靠工作,复位电路时必不可少的一部分,复位电路的第一功能是上电复位。

一般微机电路正常工作需要供电电源为5V±5%,即4.75—5.25V。

由于微机电路时时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。

复位电路工作原理如图所示,VCC上电时,C充电,在1K电阻上出现电压,使得单片机复位;几个毫秒后,C充满,1K电阻上电电流降为0,电压也为0,使得单片机进入工作状态。

工作期间,按下S1,C放电。

S1松手,C又充电,在10K电阻上出现电压,使得单片机复位。

几个毫秒后,单片机进入工作状态。

其电路图如图2.4所示。

图2.4复位电路

2.2.4振荡电路

本系统使用AT89C51单片机内振荡和时钟产生电路外接微调电容和振荡晶体来产生时钟周期信号来完成对时间周期的准确计时,提高元件利用效率。

其电路图如图2.5所示。

图2.5振荡电路

2.2.5波形切换电路

利用四位DIP开关,实验四种波形之间的切换,K1、K2、K3、K4分别控制方波、锯齿波、三角波、正弦波。

其电路图如图2.6所示。

图2.6波形切换电路

2.2.6D/A转换器

D/A转换就是把数字量转化为模拟量,在本次设计中将单片机产生的数字量转化为波形输出,可以生成正弦波、方波、三角波、锯齿波。

其电路图如图2.7所示。

图2.7D/A转换器

2.2.7频率调整电路

利用8位DIP的状态,向P2口输入一个8位二进制的数据,作为延时的参数,从而实现在线的频率调节。

其电路图如2.8所示。

图2.8频率调整电路

2.2.8放大电路

信号发生器所产生的波形电压、电流有限,不足以驱动较大的负载或带动后级电路,为了能使强度达到要求,在信号发生器后必须接入放大电路对信号进行调理。

本信号发生器能够实现方波、锯齿波、三角波及正弦波的输出。

其电路图如图2.9所示。

图2.9放大电路

2.3设计总电路图

总电路图如图2.10所示:

图2.10设计总电路图

第3章系统软件设计

3.1主程序流程图

在系统的程序设计中,主控模块只负责根据消息调用相应模块的处理函数,具体如何处理这些消息由各功能模块中的对应程序决定。

当收到SQU-K按下的指令后,SQUARE灯点亮,调出方波输出的相关程序,就实现了方波的产生,并在示波器上显示出来。

当收到SAW-K按下的指令后,SAWTOOTH灯点亮,调出锯齿波输出的相关程序,就实现了锯齿波的产生,并在示波器上显示出来。

当收到TRI-K按下的指令后,TRIANGLE灯点亮,调出三角波输出的相关程序,就实现了三角波的产生,并在示波器上显示出来。

当收到SIN-K按下的指令后,SINEWAVE灯点亮,调出正弦波输出的相关程序,就实现了正弦波的产生,并在示波器上显示出来。

主流程图如图3.1所示:

图3.1主程序流程图

3.2子程序流程图

3.2.1方波子程序流程图

按下SQU-K开关,点亮SQU-L,调出方波输出程序,输出一个周期的方波,流程图如图3.2所示:

图3.2方波程序流程图

3.2.2锯齿波子程序流程图

按下SAW-K开关,点亮SAW-L,调出锯齿波输出程序,输出一个周期的锯齿波,流程图如图3.3所示:

图3.3锯齿波程序流程图

 

3.2.3三角波子程序流程图

按下TRI-K开关,点亮TRI-L,调出三角波输出程序,输出一个周期的三角波,流程图如图3.4所示:

图3.4三角波程序流程图

3.2.4正弦波子程序流程图

按下SIN-K开关,点亮SIN-L,调出正弦波输出程序,输出一个周期的正弦波,流程图如图3.5所示:

图3.5正弦波程序流程图

第4章系统仿真与调试

4.1电路仿真

采用proteus仿真软件进行仿真,在仿真之前先按照预设值好的电路图进行连线,以及布局,最后确定线路已连接好,再运行开始仿真。

其仿真结果如下图所示:

4.1.1方波的仿真

如图4.1所示,此波形为幅度为5V,频率为1000Hz的方波。

图4.1方波仿真图

4.1.2三角波的仿真

如图4.2所示,此波形为幅度为5V,频率为1000Hz的三角波。

图4.2三角波仿真图

4.1.3锯齿波的仿真

如图4.3所示,此波形为幅度为5V,频率为1000Hz的锯齿波。

图4.3锯齿波仿真图

4.1.4正弦波的仿真

如图4.4所示,此波形为幅度为5V,频率为1000Hz的正弦波。

图4.4正弦波仿真图

4.2系统调试

根据方案设计要求,调试过程共分三大部分,硬件调试,软件调试,软件和硬件联调。

电路按模块逐个调试,各模块调试通过后再联调。

程序先在最小系统板调试,通过后再软硬联调。

1、硬件调试

信号电路干扰性强,对周围的电路有一定的影响,我们采取了各种干扰措施。

例如引线尽量短,减少交叉,尽量减少跳线,在电源输入端都加上去耦电容,数字地与模拟地分开,信号源与地尽量离远,增大接地面积,实践证明,这些措施对消除某些引脚上的毛刺及干扰噪声起到了很好的作用。

由于输出频率很高,因此对运放的带宽有一定的要求。

2、软件调试

本系统的软件系统采用C51写,调试也是分模块进行,各个模块调试通过函数调用,程序结构了,容易查错。

3、软硬联调

按程序定义的各个口分别把线接好,然后把程序写进单片机控制各个模块观察信号发生器的输出信号并对系统进行调节。

 

第5章总结与展望

5.1总结

通过单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。

还让我认识到单片机作为一门实践性很强的学科,动手能力是非常有必要而且必须的。

在这次课程设计中,遇到了不少问题,不过经过老师的指导和同学的帮助,查阅各种资料,最后都一一解决了,比较顺利的完成了这次设计。

在这里我感谢许老师的耐心指导和帮助。

通过这次课程设计,也发现了自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。

而这次设计也正好锻炼我们这一点,这也是非常宝贵的。

5.2展望

单片机技术作为一门应用性很强的学科,其发展直接影响着人们的生活、工厂的生产,甚至国防、军事、通信等许多方面。

信号发生器作为一种仪器,在工程设计,工业生产中得到了广泛的应用和发展,我相信随着单片机以及嵌入式系统的应用和发展,信号发生器将愈来愈朝着精度高、灵敏度高、实用性广等方面得到发展的。

 

参考文献

[1]程全.基于AT89C51实现的多种波形发生器的设计[J].周口师范学院学报,2005.22(5):

57~58.

[2]周明德.微型计算机系统原理及应用[M].北京:

清华大学出版社,2002.341~364.

[3]刘乐善.微型计算机接口技术及应用[M].北京:

北京航空航天大学出版社,2001.258~264.

[4]童诗白.模拟电路技术基础[M].北京:

高等教育出版社,2000.171~202.

[5]杜华.任意波形发生器及应用[J].国外电子测量技术,2005.1:

38~40.

[6]张友德.单片微型机原理、应用与实践[M].上海:

复旦大学出版社,2004.40~44.

[7]程朗.基于8051单片机的双通道波形发生器的设计与实现[J].计算机工程与应用,2004.8:

100~103.

[8]张永瑞.电子测量技术基础[M].西安:

西安电子科技大学出版社,2006.61~101.

[9]李叶紫.MCS-51单片机应用教程[M].北京:

清华大学出版社,2004.232~238.

[10]蔡美琴.MCS-51系列单片机系统及其应用[M].北京:

高等教育出版社,1988.56~289.

致谢

本课程设计是在刘伟春老师的悉心指导、帮助和督促下完成的。

从课题的选题到课题的开发与研究,再到本课程设计的撰写到定稿的每一步工作都倾注着刘老师的心血和汗水,同时得到同学们相助,并提供了大量的资料。

在此,对于老师和同学们的帮助表示忠心的感谢。

通过本次课程设计,使我学到了许多书本上无法学到的知识,也使我深刻体会到单片机技术应用领域的广泛。

不仅让我对学过的单片机知识有了很多的巩固,同时也对综合电子这一类课程产生了更大的兴趣。

本设计涉及到《单片机原理及应用》、《数字电子技术基础》、《模拟电子技术》等学科。

让我对专业知识有了更深的理解,也使我意识到了单片机这门学科的重要性。

在做课程设计的初期阶段,难度很大,没有头绪。

通过求助于刘老师和同学,理清了思路。

同时,在图书馆里、网上查阅资料,攻克了课程设计中的道道难题。

最后经过指导老师刘老师的耐心指点和和自己连续的奋战才算基本合格。

从这次课程设计我得到了一个经验:

办事只要有就会简单很多。

本次设计我能独立完成,算是有了很大的收获。

但最终要感谢刘老师的细心辅导和同学们的帮助。

 

附录(源程序清单)

SQU_KBITP3.4;方波选择端设为P3.4

SAW_KBITP3.5;锯齿波选择端设为P3.5

TRI_KBITP3.6;三角波选择端设为P3.6

SIN_KBITP3.7;正弦波选择端设为P3.7

SQU_LBITP1.0;方波指示端设为P1.0

SAW_LBITP1.1;锯齿波指示端设为P1.1

TRI_LBITP1.2;三角波指示端设为P1.2

SIN_LBITP1.3;正弦波指示端设为P1.3

ORG00H

START:

MOVP1,#0FFH;将P1初始化为0FFH

MOVP2,#0FFH

MOVP3,#0FFH

MOVDPTR,#SIN_TAB;将DPTR指向正弦数据表头

MAIN:

MOVP0,#00H;将P0初始化为00H

JNBSQU_K,S1;检测方波选择端SQU_K,若SQU_K=0程序转向S1

SETBSQU_L;将SQU_L置1

JNBSAW_K,S2

SETBSAW_L

JNBTRI_K,S3

SETBTRI_L

JNBSIN_K,S4

SETBSIN_L

SJMPMAIN

S1:

CLRSQU_L;清除SQU_L

LCALLSQUARE;调方波子程序

SJMPMAIN

 

SQUARE:

MOVR0,#00H

J11:

MOVP0,#0FFH;P0口输出0FFH

MOVP2,#0FFH

MOVA,P2;读P2口状态

CPLA;取反

MOVR3,A

L11:

DECR3

CJNER3,#255,L11;比较若R3不等于255,转向L11

INCR0

CJNER0,#254,J11;比较若R3不等于254,转向J11

MOVR0,#00H;R0清0

J12:

MOVP0,#00H;P0口输出00H

MOVP2,#0FFH

MOVA,P2

CPLA

MOVR3,A

L12:

DECR3

CJNER3,#255,L12;比较若R3不等于255,转向L12

INCR0

CJNER0,#254,J12;比较若R0不等于254,转向J12

MOVR0,#00H

RET

S2:

CLRSAW_L

LCALLSAWTOOTH;调锯齿波子程序

SAWTOOTH:

CLRA

MOVR7,A

J21:

MOVP0,R7;P0口输出00H

MOVP2,#0FFH

MOVA,P2

CPLA

MOVR3,A

L21:

DECR3

CJNER3,#255,L21

INCR7

CJNER7,#255,J21

RET

SJMPMAIN

S3:

CLRTRI_L

LCALLTRIANG

SJMPMAIN;调三角波子程序

TRIANG:

MOVR7,#00H

J31:

MOVP0,R7

MOVP2,#0FFH

MOVA,P2

CPLA

MOVR3,A

L31:

DECR3

CJNER3,#255,L31

INCR7

CJNER7,#255,J31

J32:

MOVP0,R7

MOVP2,#0FFH

MOVA,P2

CPLA

MOVR3,A

L32:

DECR3

CJNER3,#255,L32

DECR7

DECR7

CJNER7,#00,J32

RET

S4:

CLRSIN_L

LCALLSINWAVE;调正弦波子程序

SINWAVE:

MOVR0,#00H;R0指向正弦数据表头

K41:

MOVA,R0

MOVCA,@A+DPTR;查表

MOVP0,A;输出数据

INCR0

MOVP2,#0FFH

MOVA,P2

CPLA

MOVR3,A

L41:

DECR3

CJNER3,#255,L41

CJNER0,#92,K41

K42:

DECR0

MOVA,R0

MOVCA,@A+DPTR

MOVP0,A

MOVP2,#0FFH

MOVA,P2

CPLA

MOVR3,A

L42:

DECR3

CJNER3,#255,L42

CJNER0,#0,K42

RET

SIN_TAB:

DB0,0,0,0,1,1,2,3,4,5,6,8,9,11

DB13,15,17,19,22,24,27,30,33,36,39

DB42,46,49,53,56,60,64,68,72,76,80

DB84,88,92,97,101,105,110,114,119,123

DB128,132,136,141,145,150,154,158,163

DB167,171,175,179,183,187,191,195,199

DB202,206,209,213,216,219,222,225,228

DB231,233,236,238,240,242,244,246,247,249

DB250,251,252,253,254,255,255,255

END

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1