课 程 设 计

信号发生器

学生姓名: 安小鹏

学 号: 131001201

学 院: 理学院

专 业: 应用物理

指导教师: 任世伟 刘天山

年 06 月 28 日

信号发生器

摘要:

关键词:单片机,信号发生器,D/A转换

一、设计要求

二、设计原理

D/A转换接口就可以方便地产生正弦信号。正弦波的产生比较特殊,它不是由单片机直接产生波形的,它只能产生连续的阶梯波来向正弦波不断地逼近。很显然,在一个周期内阶梯波的阶梯数目越多,单片机输出的波形也就越接近正弦波。如图所所示

一般而言,计算机要形成正弦波信号的最简便办法就是使用D/A转换器,因计算机可以隔一定时间向D/A转换器输出一个数字量,而输出的该数字量为相应时刻的函数值,则在D/A转换器输出端就可以得到一个相应的函数信号。D/A转换器形成的函数信号实际上是一个阶梯状波。所以用D/A转化器形成的正弦波信号除了正弦基频分量(所需要的信号)外,还包含了各种高次谐波与余弦基频分量。因而形成的正弦波信号只能是一逼近的正弦波信号。为了正弦信号的数字量逼近,可以有多种方案。而逼近一个正弦函数的精确程度是和正弦波信号的细分度N和D/A转换器的分辨率直接有关。细分度N越大产生的正弦信号就越精确,但是这要求计算机速度也相应的高;D/A转化器的分辨率越高产生的正弦信号也就越精确,但是D/A转化器的分辨率受其价格和计算速度以及字长的制约,不宜过高,应取一个合理的分辨率。故对正弦信号逼近方案的讨论,是在确定的细分度N和D/A转化器的分辨率基础上比较的。把其结果转换为十六进制,并把计算的十六进制以表格的形式存放于EPROM内存中,然后以查表的方式来形成正弦信号。采用查表的方式单片机正弦波发生器的工作原理如下:

对正弦信号进行采样,将正弦波的第一个周期的波形均分为若干等份,设正弦波一个周期采样点数共N个。则有:

上式中n取0,1,N-1,考虑到正弦函数值的范围是从-1 0 +1,将它们转化为定点无符号数值存放,例如存放的位数(即M)是8,那么对公式①:进行数值迁移,则有:

这样正弦函数值范围-1-->0--> +1,因为00H~FFH对应的数字量为0~255,存放的8位(即M)二进制数据则相应为0-->128--> 255(十进制表示)。依次对公式②采样可得X(n),n=0,1,2,......N-1共N 个数据,组成了一张正弦数据表,单片机将这一个周期的数据表存入EPROM中。EPROM的地址线和地址发生器的输出端相连。地址发生器在时钟作用下依次产生选通地址,就会依次选中EPROM的0单元、1单元、2单元......N-1单元地址,再由D/A转化器输出相应幅值的模拟信号,当地址发生器输出满N个地址时,一个完整的正弦波就产生了。假设从数据表中每取一个数据,并将它从D/A转化器输出至少需要时间为,那么输出一个完整的正弦波所需要的时间为,则有= N。查表程序周而复始进行下去,便可产生连续的正弦波信号。

固定周期是由若干机器周期组成,机器周期一般又是单片机时钟周期的若干倍,则有:

一旦时钟确定,也就固定了。一个固定周期内的计数脉冲数就可以通过下式计算出来:

三、程序设计:

3.1、设计流程图:

3.2程序源代码:(见附录1

3.3产生波形图:(见附录2)

四、正弦波误差分析

是由若干机器周期组成,机器周期一般又是单片机时钟周期的若干倍,产生的正弦波周期为:

在一个周期内相对误差为:

若用16MHz时钟的单片机产生的正弦波,设其定时器输入脉冲周期是时钟脉冲的2倍时,则计算如下:

(

若要产生2300HZ的正弦波,其周期应为

(

取N=128则:

(

因为,所以M=27,则最大相对误差为:

由此可见,要减小误差,只能通过减小 ,就可以是误差接近真实值。

4.2采样点N对正弦波的影响

正弦波发生器是用N个顺序的以正弦变化的数值来驱动D/A芯片来产生正弦波的。按前面假设的来说,当每输出一点X(n),需要的最少时间为,那么输出一个完整的正弦波(即一个周期)需要的时间为,则=N。此时正弦波的最高频率为:

设编制的子程序。约为1s,如N取300

则Hz

即如果要求输出正弦波的频率f大于3333Hz,只能使N小于300。所以可以得出这样的结论:N越大,正弦波的精确度越高,但正弦波最高频率限也越小。

正弦波的波形精度R这一概念,R的定义式为:

将公式①代入公式④,可得

单片机c语言三角波采样点,单片机课程设计---信号发生器.doc相关推荐

  1. 单片机c语言三角波采样点,E题_江苏赛区_南京信息工程大学——放大器非线性失真分析装置 一等奖...

    放大器非线性失真研究装置(E题) 摘 要 本设计是一个能产生非线性失真的晶体管放大器,**由两级共射放大电路以及一级推挽电路构成.可以通过调节放大器内各个电阻的阻值,来变更静态工作点,以及通过短路推挽 ...

  2. 温度报警器c语言课程设计,温度报警器课程设计报告.doc

    温度报警器课程设计报告.doc 目 录 1引言4 2正文4 第1章 绪论4 1.1 设计背景4 1.2 设计来源4 1.3 设计内容与要求5 第2章 硬件电路设计5 2.1 AT89S52单片机5 2 ...

  3. c语言课程设计的摘要,投票程序设计-C语言课程设计摘要.doc

    投票程序设计-C语言课程设计摘要.doc C 语 言 课 程 设 计 题 目: <7>投票程序 设 计 者: 专 业: 班级学号: 所属院系:机电学院 指导教师: 2010年7月17日 1 ...

  4. c语言电子计算器课程设计报告,计算机程序设计课程设计报告.doc

    计算机程序设计课程设计报告.doc PAGE 1 计算机程序设计(C语言) 课程设计报告 题目:学生信息管理系统 学院: 计算机科学与工程学院 专业: 电子信息工程 班级:110406 姓名: 黄伟强 ...

  5. 计算机专业课程设计报告c语言,计算机程序设计(C语言)课程设计报告.doc

    计算机程序设计(C语言)课程设计报告.doc 计算机程序设计C语言课程设计报告题目电子动画时钟 学院 机电工程学院专业 班级090109班学号 姓名 指导教师 设计日期 一.概述选题背景 随着社会的进 ...

  6. c语言基础程序设计报告,c语言程序设计基础课程设计报告.doc

    c语言程序设计基础课程设计报告.doc 还剩 16页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: C 语言程序 ...

  7. c语言课程设计湖南工程学院,湖南工程学院15级C语言课程设计报告.doc

    湖南工程学院15级C语言课程设计报告.doc 课 程 设 计 报 告 课程名称 C语言课程设计 课题名称 通讯录 专 业 电气工程 班 级 1561 学 号 201517060105 姓 名 卢靖 指 ...

  8. c语言课程设计作业红白球,c语言课程设计报告.doc

    <c语言课程设计报告.doc>由会员分享,可在线阅读,更多相关<c语言课程设计报告.doc(28页珍藏版)>请在装配图网上搜索. 1.C程序设计课程设计学 院: * 专 业: ...

  9. 代写python期末作业价格_代写program留学生作业、代做Python程序语言作业、代写Python课程设计作业...

    代写program留学生作业.代做Python程序语言作业.代写Python课程设计作业 日期:2019-11-29 12:55 Completing the Final Project - Pyth ...

  10. tlc5620输出三角波流程图_单片机实践A/D和D/A转换的程序

    实验五.模数转换 一.实验目的 1.掌握A/D转换与单片机的接口方法: 2.掌握A/D芯片TLC549的编程方法: 3.掌握数据采集程序的设计方法: 二.实验内容 利用实验开发装置上的TLC549做A ...

最新文章

  1. Spring注解 开发
  2. 【Codeforces】 Round #374 (Div. 2)
  3. xxljob 配置具体定时任务_记一次xxl-job定时任务没有触发的问题
  4. vue混合开发笔记, this的指向
  5. 堆排序——top k问题
  6. python通过什么对象连接数据库_Python(十一)数据库连接
  7. [Publish AAR To Maven] 注册 Maven 仓库 sonatype.org 账户
  8. 六步法将消息码转换为HDB3码
  9. 误差函数erf的数值计算方法
  10. 信息学奥赛一本通答案-1006:A+B问题
  11. 信号与系统——抽样信号的傅里叶变换
  12. 微软提供的无限次延长Vista激活
  13. 国内可用的 ChatGPT
  14. 爬取图片-工作常用小工具01
  15. 零知识证明:重要构造
  16. 网络流量监控软件——MRTG(Multi Router Traffic Grapher)
  17. HDU - 3594 Cactus (强连通缩点+STL)
  18. 如何站在成功人士的肩上成为一个真正的巨人————《赛马娘 Pretty Derby》评测
  19. spring单例模式与线程安全问题的解决方案
  20. java实现空心金字塔

热门文章

  1. IE9 RC【离线安装包】!终于等到了!
  2. 解决H61、H81、B85以上的主板安装XP系统蓝屏
  3. Eclipse安装包 百度网盘
  4. Java开发 | 数据结构和算法之——递归算法
  5. SQL注入工具大比拼
  6. 线性反馈移位寄存器(Linear Feedback Shift Register, LFSR)
  7. 网吧版XP系统制作与优化终极版(转)
  8. 立方体和球形体积的计算
  9. 数字电子技术基础(四):门电路(CMOS)必看
  10. Windows 10 Enterprise LTSC MSDN官方纯净版下载