


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、信息科学与技术学院波形发生器课程设计报告题目名称:波心发生器 学生姓名:张昕灏学 号:2018508087专业年级:指导教师:时间:10级电信1班刘巧2018-07-6目录1.设计要求12设计方案12.1总体方案12.2幅度频率调节方案12.3工作原理13. 设计内容23.1硬件原理电路图的设计及分析2单片机接口 2矩阵按键3指示灯3数模转换43.2程序设计与分析4初始化4功能选择5频率 周期)和幅度设置5波形产生64. 仿真结果85. 心得体会96. 附录96.1源程序96.2仿真电路、PCB图和开发板191. 设计要求设计一个如下波形发生器 :1. 可产生锯齿波、三角波、方波;2. 通过三
2、个按键选择输出的波形,可选择不同幅值和频率;3. 需要在仿真软件上绘制设计电路图,并仿真实现4. 使用开发板设计实现,可外接示波器观察结果5. 开发板设计与仿真设计尽可能一致2. 设计方案2.1 总体方案采用AT89C51单片机和PCF8591数模转换器生成波形,生成的波形比较纯 净。它的特点是可产生任意波形,频率容易调节,稳定性好、操作方便、体积 小、耗电少。经比较,方案该既可满足课程设计的基本要求又能充分发挥其优势,电路简单,易控 制,性价比高,所以采用该方案。2.2 幅度频率调节方案方案 1:事先在数据存储区内存放一批数组,当改变频率时便调用数组赋值 给频率幅度。该方案的优点是程序简单,
3、执行效率较高。缺点是不能任意调节 参数,并且需要事先进行计算。如果存储的数组太少,则可调范围就很小,如 果存储数据太多,则计算量会大大增加,而且还可能占满数据区,而使系统无 法运行。方案 2:设置两个变量来代表周期幅度,当频率幅度需要改变时只用改变这 连个变量的数值并用数模转换即可。经比较,方案二的参数可以任意调节,频率幅度可任意控制,能够满足设计要求2.3 工作原理数字信号可以通过数 / 模转换器转换成模拟信号,因此可通过产生数字信号 再转换成模拟信号的方法来获得所需要的波形。 AT89C51 单片机本身就是一个 完整的微型计算机,具有组成微型计算机的各部分部件:中央处理器CPU、随机存取存
4、储器RAM只读存储器ROM、I/O接口电路、定时器/计数器以及串行按键查询按键停止 、 , , 1频率设置h一通讯接口等,只要将 AT89C51再配置键盘及、数模转换及波形输出等部分,即 可构成所需的波形发生器,其信号发生器构成系统框图如下图所示幅频调整幅度设置 波形产生图一数模转换波形输出3. 设计内容3.1硬件原理电路图的设计及分析单片机接口图二按键由P2 口连接按键,P0 口连接LED指示灯,p3.6和P3.7分别输出时序和脉 冲信号。矩阵按键图三键盘开关KEYIN端默认是高电平信号,KEYOUT端由程序控制输出。当 KEYOUT输出低电平时,通过检查KEYIN端是否为低电平即可判断是否
5、按键。如果KEYOUT输出高电平,KEYIN端任然是高电平,故而按键无效按键位置对应功能输出方波输出三角波输出锯齿波退出波形输出增大周期减小周期退出周期设置增大幅度减小幅度退出幅度设置当某个波形输出时,只有退出波形输出才能进行其他操作或选择输出其他波 形。当设置周期时,如果不退出周期设置,则不能进行其他操作。 当设置幅度时,如果不退出幅度设置,则不能进行其他操作。指示灯为便于操作,在方案中设计了显示灯。当灯亮时,从左到右依次表示等待 操作、正执行某个功能、修改频率或幅度、等待幅度值修改、等待频率值修 改、方波输出、三角波输出、锯齿波输出数模转换void main ()EKLEE=;ADDRO=
6、ADDR1=1;ADDR2-1;ADDR3=1; otherKeyl; ledAll=Ox; mnl ):图五SDA连接单片机P3.6 口,SCL连接单片机P3.7 口。他们对应的是时钟和脉冲 信号的输出。PCF8591是数模转换器件,AOUT 口输出的是转换后的模拟信 号波形。3.2程序设计与分析初始化因为在单片机开发板中,有对应模块 的控制信号,所以必须初始化。而对于 仿真电路来说,为了设计简单,而省略 了一些控制模块和信号,直接对所用模 块操作即可,不必进行初始化。功能选择whrile(l)mnfudu=O;stopLedO;if (fuDujia=0) | (fuDujian=O) U
7、 enFuou=l;enpi nbv=0;if nLvlia=O) | | (pHnLvian=O)enpi nLv=l;errBo=0;if(jjchieo=0)t* if(sanJ1aoBo=0)If(fangBo=0)erreo=l;程序采用循环查询方式进行 按键功能选择。因为按键行列中,不同按键 有相同引脚的控制,所以在 进行查询不同功能选择时, 一定要开放有关控制信号, 而关闭干扰信号。因为所有信号默认是关闭 的,说以程序中只需要开放 相关信号,并及时关闭即 可。频率 周期)和幅度设置1)频率 周期)设置主程序的调用方式:cm pinLvStop是按键信号,默认高电平 频率 /当按下
8、周期加信号键modifyLed=0。II参数修改指示灯信号,0表示有修改请求,灯亮if(pi nLv255 II当周期已达到上限,仍要增加时,设置为最小值 pin Lv=5。elsepinLv+=5。else if(pin LvJia n=0modifyLed=0。if(pin Lv/当周期达到下限,还要减小时,设置为最大值pin Lv=255。elsepinLv-=5。elsemodifyLed=1 。2)幅度设置 与周期设置类似-略)pinLvi)(whi le (f uDulpirLLvl)fuDul-=pnLv1; shang+4;yuShu=pinLvl-fuDul: break;e
9、lse if(pinLvlfuDul)while(pinLvlfuDulpiriLvl-=fuDul;shang4+;yuShu-fuIul-pinLvi ; break;elseshang=L;yuShu0; break;因为频率和幅度绝大多数情况 下不相等,对于方波无所谓。但对 于采用累加方式,来实现波形变化 同时使用循环方式来实现周期产生 的锯齿波和三角波来说,就不一样 了。具体如下:如果周期比幅度大,则实际幅 度会大于想要的幅度。另外因为单 片机对于溢出的数据会清零,所以 有可能出现大幅度值与小幅度值交 替出现的结果。如果幅度值大于周期,则因为 周期太小,还没有加到幅度值,一 个周期内
10、的波就已经结束。因此需要确定周期和幅度的比 例关系,单片机C语言没有除法, 故而只能用减法得出关系。波形产生1)方波for(i=0。 i wave=fuDu。tran sformData(wave。 if(boStop=0break。for(i=pinLv。i0。i-wave=0。tran sformData(wave。 if(boStop=0break。pi nLv幅度=周期x商+余数wave=yuShu。for(i=0。 itran sformData(wave。wave+=sha ng。if(boStop=0break。wave=0。delay(p in Lv。else/周期二幅度x商+
11、余数delay(yuShu。for(i=0。ivfuDu。i+delay(sha ng為tran sformData(wave。wave+。if(boStop=0break。wave=0。delay(p in Lv。3)三角波 pinLv)( wave=yu5hu;for 2; KpinLv; 1+transforitData (wave; wave+=shang;i f(fcoStop=0)break:for(i=0;ipinLv;i+ transforitDfit* (wave); wave-=shang;i f(boStop=0break;wave=0;elsedelayyuShu):f
12、or (i=0; KfuDu; i+)delay(shang); transf azirData (wave); wave+;if (baSopObreak;for(i-0;i&(keyout仁=0sbit juChiBo=P2A6 。sbit boStop=P2A7。sbit san JiaoBo=P2A5。/keyi n2-k2=(keyi n2=0&(keyout 仁=0/keyin3-k3=(keyin3=0&(keyout1=0/keyin4-k4=(keyin4=0&(keyout1=0/keyout1sbit pinLvJia=P2A4 。sbit pinLvJian=P2A5
13、。sbit pinLvStop=P2A6 。sbit enPinLv=P2A2 。 sbit fuDuJia=P2A4 。 sbit fuDuJian=P2A5 。sbit fuDuStop=P2A6 。sbit enBo=P2A3 。/keyin1-k5=(keyin1=0&(keyout2=0 /keyin2-k6=(keyin2=0&(keyout2=0/keyin3-k7=(keyin3=0&(keyout2=0/keyout2/keyin1-k9=(keyin1=0&(keyout3=0/keyin2-k10=(keyin2=0&(keyout3=0/keyin3-k11=(keyi
14、n3=0&(keyout3=0sbit enFuDu=P2A1 。/keyout3sbit otherKey=P2A0 。/keyout4 sbit juChiBoLed=P0A0 。sbit sanJiaoBoLed=P0A1 。 sbit fangBoLed=P0A2 。sbit pinLvLed=P0A3 。sbit fuDuLed=P0A4 。sbit modifyLed=P0A5 。 sbit startLed=P0A6 。sbit stopLed=P0A7 。 sbit ENLED=P1A4 。sbit ADDR0=P1A0 。sbit ADDR1=P1A1 。sbit ADDR2
15、=P1A2 。sbit ADDR3=P1A3 。void sanJiaoBo1( 。void juChiBo1( 。void fangBo1( 。void fuDu1( 。void pinLv1( 。void fuPin1(cint pinLv1,uint fuDu1 。void run1( 。void delay(uint x 。void transformData(uint a 。#endifFile1 end 源文件 2:DA.hFile2 begin #ifndef _AD_#define _AD_#define nops(。 do_nop_( 。 _nop_(。 while(0 /s
16、bit ADDA_SCL=P37。I2Csbit ADDA_SDA=P3A6。/I2Cbit ack。/void Start_I2c( 。void Stop_I2c( 。void SendByte(unsigned char c 。bit DACconversion(unsigned char sla, unsigned char c, unsigned char val 。 #endifFile2 end 源文件 3: DA.cFile3 begin #include #includeDA.hvoid Start_I2c(/ADDA_SDA=1 。nops(。ADDA_SCL=1 。nops
17、(。ADDA_SDA=0 。nops(。ADDA_SCL=0 。nops(。/* */void Stop_I2c(/ADDA_SCL=0 。 nops(。ADDA_SDA=0 。 nops(。ADDA_SCL=1 。 nops(。ADDA_SDA=1 。 nops(。*/ void SendByte(unsigned char c/ unsigned char i 。for (i=0 。 iif (c & 0x80ADDA_SDA=1 。 elseADDA_SDA=0 。 nops(。ADDA_SCL=1 。 nops(。ADDA_SCL=0 。ADDA_SDA=1 。nops(。ADDA_S
18、CL=1 。nops(。if (ADDA_SDA=1ack=0。elseack=1。ADDA_SCL=0 。/*/ bit DACconversion(unsigned char sla, unsigned char c, unsigned char val/Start_I2c( 。 /SendByte(sla 。/if (ack=0 return(0 。SendByte(c 。/if (ack=0 return(0 。SendByte(val 。 / if (ack=0 return(0 。Stop_I2c( 。 / return(1 。File3 end 源文件 4: waveformGe
19、nerator.cFile4 begin #include#includeWG .h#includeDA.cuint i=0 。uint j=0 。uint shang=0 。uint yuShu=0 。cint pinLv=255 。uint fuDu=255 。uint wave=0 。/void main(ENLED=0 。ADDR0=0 。ADDR1=1 。ADDR2=1 。ADDR3=1 。otherKey=1 。ledAll=0xff 。run1( 。/void run1(while(1enFuDu=0。stopLed=0。 if(fuDuJia=0|(fuDuJian=0 sta
20、rtLed=0 。stopLed=1。fuDuLed=0 。while(fuDuStopfuDu1( 。 fuPin1(pinLv,fuDu 。 fuDuLed=1 。stopLed=0。startLed=1 。enFuDu=1。enPinLv=0 。 if(pinLvJia=0|(pinLvJian=0 startLed=0 。stopLed=1。pinLvLed=0 。 while(pinLvStoppinLv1( 。 fuPin1(pinLv,fuDu 。pinLvLed=1 。stopLed=0。startLed=1 。enPinLv=1 。/fuPin1(pinLv,fuDu 。 e
21、nBo=0 。if(juChiBo=0startLed=0 。stopLed=1。juChiBoLed=0 。/delay(300 。 while(boStopjuChiBo1( 。 / juChiBoLed=1 。stopLed=0。startLed=1 。 if(sanJiaoBo=0startLed=0 。stopLed=1。sanJiaoBoLed=0 。 /delay(300 。 while(boStopsanJiaoBo1( 。 sanJiaoBoLed=1 。stopLed=0。startLed=1 。if(fangBo=0startLed=0 。stopLed=1。fangBo
22、Led=0 。/delay(300 。 while(boStopfangBo1( 。 fangBoLed=1 。stopLed=0。startLed=1 。enBo=1 。/void fuDu1(if(fuDuJia=0modifyLed=0 。if(fuDu255 fuDu=5 。elsefuDu+=5 。else if(fuDuJian=0modifyLed=0 。if(fuDufuDu=255 。 else fuDu-=5 。elsemodifyLed=1 。/void pinLv1(if(pinLvJia=0modifyLed=0 。if(pinLv255 pinLv=5 。elsep
23、inLv+=5 。else if(pinLvJian=0modifyLed=0 。if(pinLvpinLv=255 。elsepinLv-=5 。elsemodifyLed=1 。/ void fuPin1(cint pinLv1,uint fuDu1shang=0。yuShu=0。while(1if(fuDu1pinLv1while(fuDu1pinLv1fuDu1-=pinLv1 。 shang+。yuShu=pinLv1-fuDu1 。 break。else if(pinLv1fuDu1while(pinLv1fuDu1pinLv1-=fuDu1 。 shang+。yuShu=fuDu1-pinLv1 。 break。elseshang=1。yuShu=0。 break。/ void fangBo1(for(i=0 。 iwave=fuDu 。transformData(wave 。 if(boStop=0break 。for(i=pinLv。i0。i-wave=0。transformData(wave 。 if(boStop=0break 。/*wave=fuDu 。delay(pinLv 。wave=0 。delay(pinLv 。 */void juChiBo1(wave=0 。if(fuDupinLv wave
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030中国电热水龙头行业市场占有率及投资前景评估规划报告
- 2025至2030中国甜糯玉米市场供需平衡预测及发展行情监测报告
- 2025至2030中国猕猴桃行业市场占有率及投资前景评估规划报告
- 本硕博贯通式培养模式下课程一体化的评估与质量保障机制研究
- 教育技术与商业融合的案例分析
- 运营保险知识培训课件
- 教育游戏化的智能技术应用研究
- 创新教育与人才培养政策探析
- 商业智能技术的趋势预测与策略制定
- 教育信息化与技术集成应用
- 气象传真航行告警船舶识别一体接收机设计与实现
- 一年级下册口算题卡大全(口算练习题50套直接打印版)
- 2022-2023学年凉山彝族自治州数学三年级下册期末考试试题含答案
- 浅谈责任制整体护理课件
- 2022衢州医学检验考编真题
- 小学生旅游活动方案设计
- 清心沉香八味丸对更年期综合征的治疗作用
- 基于STM32的智能避障循迹小车系统设计答辩模板
- 苏教版三年级上册解决问题的策略应用题100题及答案
- 2024年中国林业集团有限公司招聘笔试参考题库附带答案详解
- 注塑岗位技能培训
评论
0/150
提交评论