单片机课程设计单片机多功能信号发生器设计

上传人:桔**** 文档编号:431450741 上传时间:2023-09-20 格式:DOC 页数:18 大小:12.20MB
返回 下载 相关 举报
单片机课程设计单片机多功能信号发生器设计_第1页
第1页 / 共18页
单片机课程设计单片机多功能信号发生器设计_第2页
第2页 / 共18页
单片机课程设计单片机多功能信号发生器设计_第3页
第3页 / 共18页
单片机课程设计单片机多功能信号发生器设计_第4页
第4页 / 共18页
单片机课程设计单片机多功能信号发生器设计_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《单片机课程设计单片机多功能信号发生器设计》由会员分享,可在线阅读,更多相关《单片机课程设计单片机多功能信号发生器设计(18页珍藏版)》请在金锄头文库上搜索。

1、单片机课程设计题 目:多功能信号发生器设计班 级: 姓 名: 学 号: 指导教师: 设计时间: 评语:成绩 目 录目 录I1. 问题分析及解决方案- 1 -1.1 题目要求- 1 -1.2 题目分析- 1 -1.2.1 信号的产生- 1 -1.2.2 信号幅度控制- 1 -1.2.3 信号频率控制- 1 -1.2.4 波形切换- 2 -1.3 程序设计流程- 2 -1.4 解决方案- 2 -2. 单片机选型及硬件配置- 3 -2.1 单片机及元件选择- 3 -2.2 I/O地址分配- 3 -2.3 系统硬件原理图- 4 -3. DAC0832简介- 4 -4. 软件实现- 6 -4.1 软件代

2、码- 6 -4.2 程序调试- 9 -5. 心得体会- 14 -参考书目- 16 -I单片机课程设计1. 问题分析及解决方案1.1 题目要求多功能信号发生器设计 (1)信号发生器能产生50-200Hz的正弦波、方波、三角波、锯齿波,数码管显示信号频率; (2)输出哪一种波形由四个按键控制;(3)波形的极性、幅度、周期、占空比可由按键操作设置和修改。1.2 题目分析1.2.1 信号的产生利用8位D/A转换器DAC0832,可以将8位数字量转换成模拟量输出。数字量输入的范围是0255之间,对应的模拟量输出范围在正负参考电压之间。由此,可以利用单片机的并行口输出的数字量,产生波形。1.2.2 信号幅

3、度控制因DAC0832的模拟量输出范围在正负参考电压之间,也就是说,当数字量输入为00H时,DAC0832的输出是Vref-,当数字量输入为FFH时,DAC0832的输出是Vref+。所以,为了调节输出波形的幅度,只要调节VREF即可,可在Vref+端接一电位器,调节VREF的电压,即可达到调节波形电压的目的。1.2.3 信号频率控制在单片机的P2口接8位的拨码开关,将其开关状态转换为8位二进制数,作为延时常数,即可调节输入信号的频率。1.2.4波形切换利用4位DIP开关来选择波形,并通过4个LED进行指示。1.3 程序设计流程图1 程序设计流程1.4 解决方案由于输出信号的频率较低,可选用A

4、T89C51作为控制器,其中方波,锯齿波,三角波只通过一定的延时完成波形的输出,正弦波还需用查表法来,单片机输出的为数字量而生活中用到的为模拟量,故需经过D/A转换器DAC0832把数字量变为模拟量输出。而DAC0832输出的为电流信号,而我们需要的是电压信号,故采用了一个集成运放将电流信号转换为电压信号,再通过一级集成运放将单极性的电压信号转换为双极性的电压信号。输出波形的类型以及频率均是通过拨码开关来控制的,由于单片机输出四种波形故用了4个拨码开关,这样每一位能够控制一中波形的输出。波形频率的控制通过8位拨码开关来控制,这样控制精度可以达到1Hz,范围为1Hz-255Hz。输出波形的幅值是

5、通过一个调节DAC0832的参考电压来实现的。2. 单片机选型及硬件配置2.1 单片机及元件选择表1 单片机及元件选择元件名称型号元件名称型号单片机AT89C51集成块DAC0832晶振12MHZ拨码开关DIPSW_8电容22u拨码开关DIPSW_42.2 I/O地址分配P0口用于输出波形,P0口输出的数字量通过DAC0832转换为模拟量,也就是电压信号,然后通过示波器就可以观察单片机输出的波形。P1.0P1.3用于点亮不同的LED指示灯,从而指示单片机输出波形的类型。当P1.0=0时第一个LED等被点亮表示单片机输出的为方波,当P1.1=0时第二个LED等被点亮表示单片机输出的为锯齿波,当P

6、1.2=0时第三个LED等被点亮表示单片机输出的为三角波,当P1.3=0时第四个LED等被点亮表示单片机输出的为三角波。P2口输入8位拨码开关状态控制波形频率,这样输出波得频率可以在1-255Hz之间任意选择。P3.0P3.3. 用于输出波形类型的控制,主要通过四位拨码开关的输入量的不同让单片机输出相应的波形,拨码开关的四种状态如下:P3.0=0,P3.1=1,P3.2=1,P3.3=1时输出方波;P3.0=1,P3.1=0,P3.2=1,P3.3=1时输出锯齿波;P3.0=1,P3.1=1,P3.2=0,P3.3=1时输出三角波;P3.0=1,P3.1=1,P3.2=1,P3.3=0时输出正

7、弦波。P3.6用于给DAC0832给写数据信号。2.3 系统硬件原理图图2 信号发生计硬件原理电路3.DAC0832简介DAC0832是一个8位D/A转换器。单电源供电,从+5+15V均可正常工作。基准电压的范围为-10V+10V;电流建立时间为1us;COMS工艺,低功耗20Mw。DAC0832转换芯片为20引脚,双列直插式封装。其引脚图如下图:图3 DAC0832引脚图D/A转换电路是一个R-2R T型电阻网络,实现8为数据的转换。其引脚信号说明如下:DI0DI7:转换数据输入。:片选信号输入,低电平有效。ILE:数据锁存允许信号输入,高电平有效。:第1写入信号输入,低电平有效。:第2写入

8、信号输入,低电平有效。:数据传送控制信号输入,低电平有效。:电流输出1;:电流输出2;:反馈电阻端。:基准电压,其电压可正可负,范围为-10V+10V。DGND:数字地。AGND:模拟地。VCC:芯片工作电源,从+5+15V均可正常工作。4.软件实现4.1 软件代码 #include #include #define uchar unsigned char #define uint unsigned int #define dac0832 XBYTE0xffff sbit SQU_K =P30;/P30-P33为拨码开关输入,用来控制输出波形 sbit SAW_K =P31; sbit TRI

9、_K =P32; sbit SIN_K =P33; sbit SQU_L =P10;/P10-P13点亮LED灯,用来指示拨码开关的状态 sbit SAW_L =P11; sbit TRI_L =P12; sbit SIN_L =P13; sbit INTad =P33; uchar code sin_tab=0,0,0,0,1,2,3,4,5,6,8, /输出正弦波时用查表的方法 9,11,13,15,17,19,22,24, 27,30,33,36,39,42,46,49, 53,56,60,64,68,72,76,80, 84,88,92,97,101,105,110,114, 119,

10、123,128,132,136,141,145,150, 154,158,163,167,171,175,179,183, 187,191,195,199,202,206,209,213, 216,219,222,225,228,231,233,236, 238,240,242,244,246,247,249,250, 251,252,253,254,254,255,255,255;/*/方波发生函数/*void square() uchar a,b; for(a=0;a127;a+) dac0832=0xff; P2=0xff; b=P2; while(b-); for(a=0;a127;a

11、+) dac0832=0; P2=0xff; b=P2; while(b-); /*/锯齿波发生函数/*void sawtooth() uchar a,b; for(a=0;a255;a+) dac0832=a; P2=0xff; b=P2; while(b-); /*/三角波发生函数/*void triang() uchar a,b; for(a=0;a1;a=a-2) dac0832=a; P2=0xff; b=P2; while(b-); /*/正弦波发生函数/*void sinwave() uchar a,b; for(a=0;a0;a-) dac0832=sin_taba; P2=0xff; b=P2; while(b-); /*/主函数/*void main() P1=0xff; P2=0xff; P3=0xff; while(1) dac0832=0; if(SQU_K=0)/输出方波LED灯和波形同频率闪烁 SQU_L=0; square(); SQU_L=1; if

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号