基于单片机技术波形发生器.docx

上传人:b****5 文档编号:12537314 上传时间:2023-04-20 格式:DOCX 页数:18 大小:860.52KB
下载 相关 举报
基于单片机技术波形发生器.docx_第1页
第1页 / 共18页
基于单片机技术波形发生器.docx_第2页
第2页 / 共18页
基于单片机技术波形发生器.docx_第3页
第3页 / 共18页
基于单片机技术波形发生器.docx_第4页
第4页 / 共18页
基于单片机技术波形发生器.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

基于单片机技术波形发生器.docx

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

基于单片机技术波形发生器.docx

基于单片机技术波形发生器

北京联合大学信息学院

《电子系统设计》

——单片机波形发生器

姓 名:

李冬冬

学 号:

2010080303114

系别:

电子工程系

专业:

电子信息工程

组员:

王健民

 

2013年6月25日

目录

1设计任务2

1.1总体设计方案2

1.11硬件电路设计2

1.12数模转换电路:

3

1.13放大电路:

4

1.14单片机最小系统:

4

1.2软件设计5

1.21软件流程图:

5

1.3设计功能验证:

5

1.31仿真电路:

5

1.32矩形波:

6

1.33锯齿波:

6

1.34三角波:

7

1.35正弦波:

7

1.4硬件实物功能验证(下载):

8

1.41三角波:

8

1.42正弦波:

8

1.43方波:

9

1.44三角波:

9

1.45实物电路连接:

10

2设计总结11

3附录12

3.1硬件电路元器件清单:

12

3.2程序代码:

12

1设计任务

利用单片机设计一个波形发生器,基本要求:

(1)具有产生正弦波周期性波形的功能;

(2)具有产生方波周期性波形的功能;

(3)具有产生三角波或锯齿波周期性波形的功能;

(4)具有波形存储功能;

(5)输出波形频率范围100Hz~1kHz;

(6)输出波形幅度范围为﹣5V~5V。

(7)自拟。

1.1总体设计方案

图1.1总体设计图

方案设计说明:

按键控制部分共有三个按键,一个用于选择波形,一个用于选择频率,

一个用于调节步长。

1.11硬件电路设计

设计思路:

整体的硬件设计分为三个部分,依次为单片机最小系统、数模转换部分和放大电路。

总体设计电路原理图(以AT89C52设计为例)

图1.2总体设计电路原理图

1.12数模转换电路:

图1.3数模转换电路

功能分析:

DAC0832是常用的8位电流输出型并行低速数模转换芯片,通过下一级的运算放大电路,将输出的电流信号转换为最后输出的电压信号。

1.13放大电路:

图1.4放大电路

功能分析:

将上一级DAC0832的电流输出信号转化为电压输出信号,并通过放大器,将电压的工作范围从0—5V转化为-5—+5V。

1.14单片机最小系统:

图1.5单片机最小系统

功能分析:

执行载入的指令程序,使其能够实现生成正弦波、三角波、方波的功能,并且通过按键输入,可以调节波形频率和进行波形之间的切换。

1.2软件设计

1.21软件流程图:

图1.6软件流程图

1.3设计功能验证:

1.31仿真电路:

图1.7仿真电路

仿真结果:

1.32矩形波:

图1.8矩形波

1.33锯齿波:

图1.9锯齿波

1.34三角波:

图1.20三角波

1.35正弦波:

图1.21正弦波

1.4硬件实物功能验证(下载):

1.41三角波:

图1.22三角波

1.42正弦波:

图1.23正弦波

1.43方波:

图1.24方波

1.44三角波:

图1.25三角波

1.45实物电路连接:

图1.26实物连接图

2设计总结

这次的单片机波形发生器设计实验,也是在原来的FPGA设计波形发生器的基础上,不仅把将课堂上学到的理论知识与实际应用结了起来,而且使我对电子电路、电子元器件、印制电路板等方面的知识有了更进一步加深认识,同时在软件编程、排版调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高.

从这次的课程设计中,我真真正正的意识到,在以后的学习工作中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。

此次的温度计设计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应于以后的竞争。

李冬冬

3附录

3.1硬件电路元器件清单:

电路元器件清单

序号

元器件型号和规格

数量

1

DAC0832数模转换器

1

2

LM324运算放大器

2

3

ATMEL单片机AT89C52

1

4

独立电容30pF/50V

2

5

通用焊接板(单面,3连通孔)

1

6

IC插座DIP40

1

7

晶振12M

1

8

铝电解电容10μF/50V

2

9

1/8W碳膜电阻(5%)8.2kΩ

1

10

轻触按钮开关

1

11

1/8W碳膜电阻(5%)300Ω

1

12

5×2针接插座(CONNSCOKET5×2)

1

13

IC插座DIP20

1

14

IC插座DIP14

1

15

1/8W碳膜电阻(5%)7.5kΩ

1

16

1/8W碳膜电阻(5%)15kΩ

2

17

1/8W碳膜电阻(5%)100Ω

1

18

电容0.1μF/16V

1

19

8针单排插件

2

20

数据端口插接线

8(根)

21

电源端口插接线

4(根)

3.2程序代码:

#include

sbitkey2=P1^2;//步长设置按钮

sbitkey1=P1^1;//定时器控制频率按钮

sbitkey0=P1^0;//波形选择按钮

charflag;//波型输出标置变量

bittime;

unsignedchari;

intnum;

voiddelay(intz)//延时z毫秒

{

intx,y;

for(x=z;x>0;x--)

for(y=124;y>0;y--);

}

unsignedcharsin(unsignedcharx)//正弦波

{

unsignedcharcodesin_tab[]={0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,//上半周

0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9,0xcc,0xce,0xd1,0xd3,0xd5,0xd8,

0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf4,

0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfc,0xfd,0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,

0xf6,0xf4,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe2,0xe0,0xde,0xdc,

0xda,0xd8,0xd5,0xd3,0xd1,0xce,0xcc,0xc9,0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb3,

0xb0,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x92,0x8f,0x8c,0x89,0x86,0x83,0x80,

0x80,0x7d,0x7a,0x76,0x73,0x70,0x6d,0x6a,0x67,0x64,0x61,0x5e,0x5b,0x58,0x55,0x52,//下半周期

0x4f,0x4c,0x49,0x46,0x43,0x41,0x3e,0x3b,0x39,0x36,0x33,0x31,0x2e,0x2c,0x2a,0x27,

0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15,0x14,0x12,0x10,0x0f,0x0d,0x0c,0x0b,

0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x03,0x02,0x02,0x01,0x01,0x00,0x00,0x00,

0x00,0x01,0x01,0x02,0x02,0x03,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0b,0x0c,0x0d,

0x0f,0x10,0x12,0x13,0x15,0x17,0x18,0x1a,0x1c,0x1e,0x20,0x23,0x25,0x27,0x2a,0x2c,

0x2e,0x30,0x33,0x35,0x38,0x3b,0x3d,0x3e,0x40,0x43,0x46,0x48,0x4b,0x4e,0x51,0x54,

0x57,0x5a,0x5d,0x5f,0x60,0x63,0x66,0x69,0x6b,0x6d,0x6f,0x72,0x74,0x76,0x78,0x7a,0x7e,0x80};

returnsin_tab[x];

}

voidDAC0832(unsignedcharx)

{

P2=x;

}

voidtime0()interrupt1

{

TH0=256-num;

TL0=256-num;

time=1;

}

voidfrequency()

{

if(key0==0)////key0控制flag,波形选择

{

delay(5);

if(key0==0)//再次检测

{

while(!

key0);//等待按键释放

flag++;//按一下加1

if(flag==4)//大于2返回0

flag=0;

}

}

if(key1==0)//检测P21是否按下,定时器控制频率

{

delay(5);

if(key1==0)//再次检测

{

while(!

key1);

num=num+1;//按一下减10

if(num==25)//小于5,返回5

num=10;

}

}

}

voidmain()

{

chard;

d=1;

TMOD=0X02;

num=10;

TH0=256-num;//num用来控制采样一个点所用的时间

TL0=256-num;

ET0=1;//定时器0中断的相关设置

EA=1;

TR0=1;

flag=2;//开始时有输出

i=0;

while

(1)

{if(key2==0)//按一下key2,d自加1,用于设置步长,可改变频率

{

delay(5);

if(key2==0)

{

while(!

key2);

d++;

if(d==21)//当d=21,d变为1

{d=1;}

}

}

frequency();

if(time==1)

{

time=0;

if(i>255)

i=0;

else

i=i+d;//设置后的步长

switch(flag)

{

case0:

DAC0832(i);break;//当flag=0时,锯齿波

case1:

if(i>127)//当flag=1时,三角波

DAC0832(255-2*i);

else

DAC0832(2*i);

break;

case2:

DAC0832(sin(i));//当flag=2时,正弦波

break;

case3:

if(i>127)//当falg=3时,方波

DAC0832(0);

else

DAC0832(255);

break;

default:

break;

}

}

}

}

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

当前位置:首页 > 法律文书 > 判决书

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

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