占空比可调的信号发生器.docx

上传人:b****7 文档编号:11238010 上传时间:2023-02-26 格式:DOCX 页数:17 大小:141.32KB
下载 相关 举报
占空比可调的信号发生器.docx_第1页
第1页 / 共17页
占空比可调的信号发生器.docx_第2页
第2页 / 共17页
占空比可调的信号发生器.docx_第3页
第3页 / 共17页
占空比可调的信号发生器.docx_第4页
第4页 / 共17页
占空比可调的信号发生器.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

占空比可调的信号发生器.docx

《占空比可调的信号发生器.docx》由会员分享,可在线阅读,更多相关《占空比可调的信号发生器.docx(17页珍藏版)》请在冰豆网上搜索。

占空比可调的信号发生器.docx

占空比可调的信号发生器

题目:

占空比可调的信号发生器

初始条件:

1.Protues软件;

2.课程设计辅导资料:

“占空比可调的信号发生器设计与应用”、“电路设计技术与应用”等;

3.先修课程:

模拟电子技术、数字电子技术、Protues电路设计教程及单片机原理及应用等课程

要求完成的主要任务:

(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

1.课程设计时间:

1周;

2.课程设计内容:

用4个按键分别控制输出信号的占空比和频率(用示波器观察输出波形),显示占空比范围0%~100%,频率范围50Hz~500Hz,实时测量输出信号的占空比和频率值。

3.本课程设计统一技术要求:

研读辅导资料对应章节,对选定的设计题目进行理论分析,针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表),并对实验结果进行分析和总结;

4.课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括:

①目录;

②设计原理和方法;

③系统硬件线路设计图;

④程序框图;

⑤资源分配表;

⑥源程序

⑦性能分析

⑧课程设计的心得体会(至少500字);

⑨参考文献;

时间安排:

指导教师签名:

年月日

系主任(或责任教师)签名:

年月日

目录

一.引言·······················2

二.设计原理和方法··················1

2.1.方案的设计与选择··················3

2.2.设计原理······················4

三.系统硬件电路设计图·················5

四.程序框图······················5

4.1.主程序框图·····················5

4.2.系统初始化程序···················6

4.3.定时器中断程序框图·················7

4.4.键盘扫描程序框图··················8

五.源程序······················7

六.性能分析·····················11

6.1.定时器中断分析···················11

6.2.性能分析······················11

七.心的体会·····················12

八.参考文献·····················13

九.课程设计成绩评定表················14

一.引言

单片机集成度高,功能强,可靠性高,体积小,功耗低,使用方便,价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎无处不在,无所不为。

单片机的应用领域已经从面向工业控制,通讯,交通,智能仪表等迅速发展到家用消费产品,办公自动化,汽车电子,PC机外围一记网络通讯等广大领域。

单片机有两种基本结构形式:

一种是在通用微型计算机中广泛采用的,将程序存储器和数据存储器合用一个存储器空间的结构,成为普林斯机构。

另一种是将程序存储器个数据存储器截然分开,分别寻址的结构,一般需要较大的程序存储器,目前单片机以采用程序存储器截然分开的结构多。

本课题讨论的占空比可调的信号发生器的核心是目前应用极为广泛的51系列单片机。

基于单片机的信号发生器的设计,该课题的设计目的是充分运用大学期间所学的专业知识,考察现在正在使用的信号发生器的基本功能,完成一个基本的实际系统的设计全过程。

关键是这个实际系统设计的过程,在整个过程中我可以充分发挥自动化的专业知识。

特别是这个信号发生器的设计中涉及到一个典型的控制过程。

通过单片机控制一个有特殊功能的信号发生芯片,可以产生一系列有规律的幅度和频率可调的波形。

这样一个信号发生器装置在控制领域有相当广泛的应用范围。

因为产生一系列的可调波形可以作为其他一些设备的数值输入,还可以应用与设备检测,仪器调试等场合。

高频稳定的波形信号也可以用于无线电波的调频,解调。

这些都是现代生活中必不可少的一些应用。

通过这样一个题目,我不但可以巩固专业知识,将其发挥在实际的系统设计中,并且对将来的工作也有好处。

二.设计原理和方法

2.1方案的设计与选择

在电子技术领域中,实现函数信号发生器的方法有很多种,可以采用不同的原理级器件构成不同的电路,但是可以实现相同的功能。

方案的比较:

方案一:

采用单片函数发生器如8038,8038可同时产生正弦波,方波等,而且方法简单易行。

用D/A转换器的输出来改变调制电压,也可以实现数控的调频,但是产生的频率稳定度不高。

方案二:

采用锁相式频率合成器,利用锁相环,降压控振荡器(VOC)的输出,频率锁定在所需的频率上,该方案性能良好,但是难以达到输出频率覆盖系数的要求,其电路复杂。

方案三:

采用单片机编程的方法实现。

该方法可以通过编程,来控制方波信号输出的频率和幅度,并且只要改变程序的相关参数,便可以改变输出波形的频率和占空比。

由于编程的方法产生的是数字信号,所以信号的精度可以做到很高。

并且电路简单。

鉴于方案一的信号频率不够稳定和方案二的电路复杂,频率覆盖系数难以达标等缺点,所以决定采用方案三的设计方法。

方案三不仅仅是软硬件结合,而且它使用的元器件,容易得到,且价格便宜,使得硬件的开销达到最省。

在此次设计中,利用AT89C51单片机,软硬件结合,实现占空比和频率可调。

案件的操作是通过数字电路跟外部中断0来控制的。

可以输出占空比在1%到99%可调,精度为1%,频率范围为50HZ到500HZ可调,精度为10HZ的方波。

本设计用到一个AT89C51微处理器,4个按键,一个四输入与门。

AT89C51用到两个定时器,定时器0和定时器1。

其中定时器0工作再方式1下,决定输出信号的频率,定时器1工作再方式1下,决定输出信号的占空比。

按键1和2决定信号的输出频率,按键1用于增大信号的频率,按一下就增加10HZ,当增减大500HZ时,就归为50HZ。

按键2用于减小输出信号的频率,按一次键,输出信号的频率减少10HZ,当减少到50HZ时,频率就归于500.按键3和4决定信号的占空比,按键3用于增加信号的占空比,按下一次键,占空比就增加1,上限值为99,当在此按键是,就让占空比归1.按键4用于减小信号的占空比,按下一次键,占空比就减1,下限值为1,当再次按键时,就让占空比回归到99.通过上面的步骤,可以实现占空比和频率的可调。

2.2设计原理

AT89C51单片机是整个波形信号发生器的核心部分,通过程序的编写和执行,产生各种各样的信号,并从按键接受数据,进行频率的的转换和占空比的调节,可以直接输出波形并用示波器观察。

图1:

信号发生器原理框图

三.系统硬件电路设计图

系统硬件电路原理图如下图2所示:

四个独立按键分别与单片机的P1.0,P1.1,P1.2,P1.3相连接,并且通过一个四输入的与非门,将与非门的输出当做单片机外部中断0的触发信号。

当有按键按下时,就会进入外部中断程序。

P1.4口输出信号连接到示波器,检测输出波形。

通过单片机的P0和P2口,连接到数码管,显示信号的占空比。

图2:

系统硬件电路图

四.程序框图

此占空比可调的函数信号发生器的程序主要包括这几个部分:

主程序,延时子程序,初始化程序,定时器程序和键盘扫描程序(通过外部中断控制)。

主程序用于控制系统的所有之程序的执行。

4.1主程序框图

主程序用于控制整个系统,先对系统初始化,然后通过一个空循环等待中断程序,当中断到来时候,就进入中断程序,执行中断程序。

中断程序执行完成之后,就返回主程序,继续等待。

开始

系统初始化

等待中断

图3主程序框图

4.2系统初始化程序

初始化程序主要是给计数器0和1赋初值,让初始化占空比为50%,信号频率为50HZ,设置定时器0和定时器1的工作方式,并且开启计数器0和计数器1,设置外部中断的触发方式,开启总中断。

4.3定时器中断程序框图

定时器中断0中断程序框图如下图4所示,定时器中断1程序框图如下图5所示。

定时器0用于控制输出信号的频率,定时器1用于控制输出信号的占空比。

中断程序0入口

中断程序1入口

TR1=1

TR1=0

重装计数初值值

重装计数初值

P1.4输出高电平

P1.4输出低电平

4.4键盘扫描程序框图

键盘扫描程序框图如下图6所示

当有按键按下时,进入到外部中断,然后暂时关闭外部中断,启动延时程序,以消除抖动。

然后检测是哪个按键被按下,然后对频率跟占空比的变量做出相应的赋值,并且将占空比的值送到数码管显示。

并且对定时器0和定时器1分别赋新的初值,开启外部中断,定时器0和1中断,中断程序结束。

开始

关中断

延时消抖

是否有按键按下

判断按键号

按键处理

占空比送数码管显示

计算定时器该装入的初值

N

Y

初值分别送定时器0和1

开中断

结束

图6按键扫描程序流程图

五.源程序

#include

#defineucharunsignedchar

#defineuintunsignedint

floatfosc=12000000;//系统时钟频率

sbitkey1=P1^0;//控制频率的增加

sbitkey2=P1^1;//控制频率的减少

sbitkey3=P1^2;//控制占空比的增加

sbitkey4=P1^3;//控制占空比的减少

sbitclk=P1^4;

uintzkb=50;//占空比初值,取值范围为0到100

uintfre=50;//频率初值,取值范围为50到500

uinttime0_H,time0_L,time1_H,time1_L;

uintzkb_shi,zkb_ge;

uchartable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

voiddelayms(uintz)

{

uinti,j;

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

for(j=110;j--;j>0);

}

voidinit()

{

TMOD=0x11;//定时器0和1都工作在方式1

time0_H=0xB1;

time0_L=0xE0;

time1_H=0xD8;

time1_L=0xF0;

TH0=0xB1;//定时器0装入初值,计数器计数20000次,20ms

TL0=0xE0;

TH1=0xD8;//定时器1装入初值,计数器计数10000次,10ms

TL1=0xF0;

IT0=1;//外部中断1为低电平触发

EX0=1;//开外部中断1

ET0=1;//定时器T0中断允许

ET1=1;//定时器T1中断允许

EA=1;//开启总中断

TR0=1;//开启定时器0

TR1=1;//开启定时器1

P0=0x3F;//数码管初始化显示占空比为50%

P2=0x6D;

}

voidmain()

{

init();

while

(1);

}

voidT0_time()interrupt1

{

TR1=1;//开定时器1

TH0=time0_H;

TL0=time0_L;

clk=1;

}

voidT1_time()interrupt3

{

TR1=0;//关定时器0

TH1=time1_H;

TL1=time1_L;

clk=0;

}

voidkeyscan()interrupt0//外部中断0

{

floatTX,TZ;

EX0=0;//关中断

delayms(10);//延时消抖

if(P1!

=0x0F)

if(key1==0)

{fre=fre+10;

if(fre>500)

fre=50;}

if(key2==0)

{fre=fre-10;

if(fre<50)

fre=500;}

if(key3==0)

{zkb=zkb+1;

if(zkb>99)

zkb=1;}

if(key4==0)

{zkb=zkb-1;

if(zkb<1)

zkb=99;}

zkb_shi=zkb/10;//占空比数码显示

zkb_ge=zkb;

P2=table[zkb_shi];

P0=table[zkb_ge];

TX=(65536-fosc/(12.0*fre));

TZ=(65536-(fosc*zkb))/(12.0*100*fre);

time0_H=(uint)TX/256;

time0_L=(uint)TX%6;

time1_H=(uint)TZ/256;

time1_L=(uint)TZ%6;

P1=0x0f;

EX0=1;

TR0=1;

TR1=1;

}

六.性能分析

6.1定时器中断分析

本次占空比可调的信号发生器的设计采用了定时器0和定时器1中断,定时器0中断用于控制信号的频率,定时器1用于控制信号的占空比。

当调节输出信号的占空比时,信号的频率就不变;如果调节信号的频率,占空比就不变。

设fre表示输出的频率,zkb表示输出的占空比,TX为定时器0的计数次数,TZ为定时器1的计数次数。

给TX装入初值为:

TX=(65536-fosc/(12.0*fre));给TZ装入初值为TZ=(65536-(fosc*zkb))/(12.0*100*fre);

当定时器0计数到时,开启定时器1,定时器1开始计数,并且P1.4口输出高电平。

当经过一个周期中高电平持续的时间后,定时器1计数时间就到了,程序进入到定时器1中断执行,然后关掉定时器1,并且输出低电平。

因为定时器0中断是一直开着的,当经过一个周期中低电平持续的时间后,定时器0计数又到了,进入定时器0中断执行,如此循环。

当改变fre或者zkb的时候,就可以相应改变输出信号的占空比跟频率。

6.2系统性能分析

该系统实现占空比跟频率可调的信号发生器。

占空比的调节范围是1%到99%,精度是1%,当达到上限值时,再次增加时,占空比归于1%,达到下限时,再次减少,占空比自动归于99%。

频率的调节范围是50HZ到500HZ,精度是10HZ,当达到上限值时,再次增加时,频率自动归于50HZ,当达到下限值时,再次减少时,频率自动归于500HZ。

总之,这次设计达到了设计要求,输出的信号稳定度高,误差小,并且方便调节,硬件电路简单。

七.心的体会

此次课程设计我收获很多。

大三下学期了,马上就要进入大四,此次课设也是大学仅剩的几个课设之一了,我想通过自己的努力,好好做一下,好好锻炼自己的专业能力。

接到这个题目,第一感觉还是蛮简单的。

因为以前自己也学习过一段时间的单片机,我的题目是占空比可调的信号发生器,我感觉英蛮简单。

但是当我真正的去做的时候,事情并不是我想象中的那样。

刚开始没有怎么弄懂原理,只是脑袋里面有一个很模糊的概念,要慢慢的把它实现出来。

在网上找了点参考资料,自己设计了一个电路图,弄了一个汇编程序,在protues里面仿真的时候,没有达到自己想要的结果,我调试了很久,不断地改程序,但是结果总是差强人意,频率的变化很大,没有规律。

由于汇编程序的跳转指令比较多,我纠结了半天都没弄出来。

然后我就开始该用C语言写程序,以前用C语言写过,对C语言有一定的基础。

我还在网上找了一点资料,对我的原理图也做了改进,我认为最经典的地方是把四个按键通过一个四输入与非门连接到外部中断0的入口,这样就可以很方便的检测按键,为写程序提供了方便。

通过这一点我了解到,好的硬件电路是软件的基础啊。

电路设计好了之后,写程序就方便多了,很快程序写出来了,在Protues里面仿真成功了,当时感觉好开心。

这次课程设计,我花了好几天的时间,前期是查资料,从上个星期六开始,我就在寝室研究,不断地调试程序,从刚开始的毫无进展,到做出课设要求的波形,心里还是很开心的。

我感觉想做点东西,自己必须沉下心来,查阅资料,自己思考,要有耐心,只要你能坚持,你肯定能做出你想要做的东西的。

感谢沈老师的悉心指导。

八.参考文献

1.周明德·微型计算机系统原理及应用北京:

清华大学出版社2002

2.李明德·单片微型计算机与接口技术北京:

电子工业出版社2008

3.李叶紫·MCS-51单片机应用教程北京:

清华大学出版社2004

4.何立民·MCS-51单片机应用系统设计北京:

北京航空航天大学出版社2003

5.段晨东·单片机原理与接口技术北京:

清华大学出版社

忽略此处..

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

当前位置:首页 > 工程科技 > 材料科学

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

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