好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

单片机实现波形发生器的课程设计报告.doc

12页
  • 卖家[上传人]:M****1
  • 文档编号:451255249
  • 上传时间:2022-11-14
  • 文档格式:DOC
  • 文档大小:597.31KB
  • / 12 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 通信工程专业通信技术课程设计报告设计题目: 单片机实现波形发生器的课程设计 年级(班级): 学生学号: 学生姓名: 指导教师: 设计时间: 设计地点: 设计题目:单片机实现波形发生器的设计设计内容:1. PC机 (安装keil uvision 软件,Pretues 软件)2. DICE-5203K 实验开发系统设计原理:方波信号是利用定时器中断产生的,每次中断时,将输出的信号按位取反即可其他波形可以通过单片机控制DAC来实现1. 三角波信号是将输出的二进制数字信号依次加1,达到0xff时依次减1,并实时将数字信号经D/A转换得到;2. 锯齿波信号是将输出的二进制数字信号依次加1,达到0xff时置为0x00,并实时将数字信号经D/A转换得到的;3. 梯形波信号是将输出的二进制数字信号依次加1,达到0xff时保持一段时间,然后依次减1,直至0x00,并实时将数字信号经D/A转换得到的4. 正弦波是将正弦曲线均匀取样后,得到等间隔时刻正弦波取样值,然后依次输出后经D/A转换得到。

      实验原理图:电源电路系统硬件组成框图:复变电路AT89S52 主控电路输出电路按键电路设计过程及数据:一、信号发生器程序流程图:开始 扫描P1口 P1==0xfe P1==0xef P1==0xfd P1==0xfb P1==0xf7梯形波函数正弦波函数三角波函数锯齿波函数方波函数二、设计步骤:1、结合DICE-5204K实验开发系统资源进行硬件设计;2、编写各个模块的程序;3、利用proteus进行系统仿真,不能达到设计要求时,重新调整或修改程序,进一步调试,直到满足设计要求;4、依据硬件电路设计,连接DICE-5203K实验开发系统相关插针及引脚;5、用数据线将PC机的串口与实验箱相连,加载程序;6、利用示波器、万用表在DICE-5203K实验开发系统上进行功能性测试三、子程序设计思路:1、方波:利用定时器中断产生,每次中断时,将输出的信号按位取反;2、三角波:将输出的二进制数字信号依次加1,达到0xff时依次减1;3、锯齿波:将输出的二进制数字信号依次加1,达到0xff时置为0x00;4、梯形波:将输出的二进制数字信号依次加1,达到0xff时保持一段时间,然后依次减1,直至0x00;5、正弦波:将正弦曲线均匀取样后,得到等间隔时刻正弦波取样值;四、程序如下:#include#include#include#define DAC0832 XBYTE[0x8800] #define uint unsigned int#define uchar unsigned charuchar code table[]={0x7f,0x8c,0x98,0xa5,0xb0,0xbc,0xc7,0xd1,0xda,0xe2,0xea,0xf0,0xf6,0xfa,0xfd,0xfe,0xff,0xfe,0xfd,0xfa,0xf6,0xf0,0xea,0xe2,0xda,0xd1,0xc7,0xbc,0xb0,0xa5,0x98,0x8c,0x80,0x73,0x67,0x5a,0x4f,0x43,0x38,0x2e,0x25,0x1d,0x15,0x0f,0x09,0x05,0x02,0x01,0x00,0x01,0x02,0x05,0x09,0x0f,0x15,0x1d,0x25,0x2e,0x38,0x43,0x4f,0x5a,0x67,0x73};void delay(uint i){ while(i--);}void fang(){ DAC0832=0; delay(15); DAC0832=0xff; delay(15);}void jvchi(){ uchar i; for(i=0;i<255;i++) DAC0832=i;}void sanj(){ uchar i; for(i=0;i<255;i++) DAC0832=i; for(i=255;i>0;i--) DAC0832=i;}void sin(){ uint i; for(i=0;i<64;i++) DAC0832=table[i];}void tix(){ uchar i; for(i=0;i<255;i++) DAC0832=i; delay(100); for(i=255;i>0;i--) DAC0832=i; delay(100);}void main(void){ while(1) { if(P1==0xfe)fang(); if(P1==0xfd)jvchi(); if(P1==0xfb)sanj(); if(P1==0xf7)sin(); if(P1==0xef) tix(); if(P1==0xff) DAC0832=0; }}五、 功能扩展及其设计思路: 通过控制位于P1^5和P1^6的开关S6和S7,经过外部中断0和定时/计数器1来计算输入的各种波形的周期个数。

      开关S6闭合时,开启外部中断0,接着开始进行进行计数;开关S6打开时,结束外部中断0,同时停止计数而开关S7用于控制 数码管的显示,闭合时,数码管根据定时/计数器1来显示数值当结束外部中断0时,数码管保持某一数值不变 设计结果及分析:1、方波:Proteus仿真软件产生的方波波形与示波器产生的波形基本相同2、锯齿波:Proteus仿真软件产生的锯齿波波形与示波器产生的波形基本相同3、三角波:Proteus仿真软件产生的三角波波形与示波器产生的波形基本相同4、正弦波:Proteus仿真软件产生的正弦波波形与示波器产生的波形基本相同5、梯形波:Proteus仿真软件产生的梯形波波形与示波器产生的波形基本相同实验数据: 波形测试值方波锯齿波三角波正弦波梯形波峰峰值(V) 5.62 5.265.245.355.23频率值(HZ) 164.3281.3140.2826.2973.5设计总结与体会: 一、 在实验过程中,我发现了很多问题:首先是proteus仿真软件的使用,从中寻找电路图中所需的各种器件,遇到了一些问题,通过和同学之间的交流还有上网查资料,对proteus有了更多的了解和掌握。

      接下来遇到的问题是,运用proteus中的示波器显示波形,由于对这个示波器的不了解,导致调不出来波形后来,通过上网查资料获得了一些帮助,使各种波形显示了出来还有就是将程序导入实验箱中,运行程序,未显示出理想波形经过老师的帮助,发现了问题所在,原来是总线的接法有问题,不适合我们所做的实验 二、实验体会: 对MCS-51单片机有了更深入的了解,掌握了MCS-51单片机应用系统开发的电路设计、装调及性能参数的测试方法,还有系统开发的程序设计方法与调试技术教师评语:指导教师:成 绩:年 月 日。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.