包骏祥单片机课设.docx

上传人:b****7 文档编号:9970369 上传时间:2023-02-07 格式:DOCX 页数:18 大小:2.02MB
下载 相关 举报
包骏祥单片机课设.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

包骏祥单片机课设

课程设计任务书

学生姓名:

包骏祥专业班级:

电信1304

指导教师:

沈维聪工作单位:

信息工程学院

题目:

占空比可调信号发生器

初始条件:

1.Protues软件;

2.课程设计辅导资料:

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

3.先修课程:

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

要求完成的主要任务:

(包括课设工作量及技术要求、说明书撰写具体要求)

1.课程设计时间:

1周;

2.课程设计内容:

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

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

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

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

①目录;②设计原理和方法;③系统硬件线路设计图;④程序框图;⑤资源分配表;⑥源程序;⑦性能分析;⑧课程设计的心得体会;⑨参考文献。

指导教师签名:

年月日

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

年月日

目录

摘要1

1.设计原理和方法2

1.1方案的设计与选择2

1.2设计原理3

2.系统硬件电路设计图3

3.程序框图4

3.1主程序框图4

3.2系统初始化程序4

3.3定时器中断程序框图4

3.4键盘扫描程序框图5

4.资源分配表6

5.源程序7

6.性能分析9

6.1定时器中断分析9

6.2系统性能分析9

7.心得体会14

参考文献15

本科生课程设计成绩评定表16

摘要

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

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

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

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

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

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

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

 

1.设计原理和方法

1.1方案的设计与选择

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

方案的比较:

方案一:

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

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

方案二:

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

方案三:

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

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

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

并且电路简单。

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

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

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

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

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

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

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

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

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

按键2用于减小输出信号的频率,按一次键,输出信号的频率减少10HZ,当减少到50HZ时,频率就归于500.按键3和4决定信号的占空比,按键3用于增加信号的占空比,按下一次键,占空比就增加1,上限值为100,当再次按键时,就让占空比归1。

按键4用于减小信号的占空比,按下一次键,占空比就减1,下限值为1,当再次按键时,就让占空比回归到99。

通过上面的步骤,便可以实现占空比和频率的调节。

1.2设计原理

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

2.系统硬件电路设计图

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

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

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

 

图1系统硬件电路仿真图

3.程序框图

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

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

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

3.1主程序框图

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

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

主程序框图如下图2:

 

 

图2主程序框图

 

3.2系统初始化程序

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

3.3定时器中断程序框图

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

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

 

图3定时中断0程序框图图4定时中断1程序框图

3.4键盘扫描程序框图

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

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

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

 

 

N

Y

 

图5按键扫描程序流程图

4.资源分配表

8位P0

数码管

8位P2

数码管

4位P1

独立键盘

1位P1.4

输出波形

1位P3.2

外部中断触发

表一资源分配表

5.源程序

#include

#defineucharunsignedchar

#defineuintunsignedint

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

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

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

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

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

sbitclk=P1^4;

ucharnum;

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

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

uinttime0_H,time0_L,time1_H,time1_L;

voiddelay(uintz)

{

uinti,j;

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

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

}

voidinit()//初始化

{

TMOD=0x11;//定时器0和1都工作在方式1(高8位与低8位)

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

}

voidmain()

{

init();

while

(1);

}

voidT0_time()interrupt1

{

TR1=1;//开定时器1

TH0=time0_H;

TL0=time0_L;

clk=1;

}

voidT1_time()interrupt3

{

TR1=0;//关定时器1

TH1=time1_H;

TL1=time1_L;

clk=0;

}

voidkeyscan()interrupt0//外部中断0

{

floatTX,TZ;

EX0=0;//关中断

delay(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;

}

TX=(65536-fosc/(12.0*fre));//TX为定时器0的计数次数

TZ=(65536-(fosc*zkb))/(12.0*100*fre);//TZ为定时器1的计数次数

time0_H=(uint)TX/256;//十进制转化为十六进制高八位

time0_L=(uint)TX%256;

time1_H=(uint)TZ/256;

time1_L=(uint)TZ%256;

P1=0x0f;

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

TR0=1;//开定时器0

TR1=1;//开定时器1

}

6.性能分析

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系统性能分析

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

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

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

6.3实物与结果展示

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

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

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

实物图如下图6。

图6占空比可调信号发生器实物图

将系统接通电源,P1.4口引线与地线分别接到示波器红黑两探头,得到调节占空比和频率的结果。

如下图所示。

图7复位或初始时占空比和频率值

图8占空比调节结果

(1)

图9占空比调节结果

(2)

图10频率调节结果

(1)

图11频率调节结果

(2)

图12频率调节结果(3)

经过测试,占空比可调信号发生器设计成功。

 

7.心得体会

作为一名电信专业的大三学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。

因为通过此次课设可以把我们所学的专业基础课理论知识运用到实践中去,同时也为我们提供了良好的实践平台。

得知这个题目之后,我的第一感觉是题目挺简单。

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

刚开始没怎么弄懂原理,只是有一点头绪,后来通过看一些参考书慢慢懂得了工作原理,课设渐渐进入正题。

经过一系列准备,终于开始工作,设计电路图,编写程序,然后在protues里面仿真。

经过一次又一次的改写程序,终于我仿真出了预期的效果。

当时感觉很有成就。

这次课程设计,我真的体会到了单片机是很重要的一门课程,老师和一些工作的朋友都曾说过,如果学好一门单片机,就凭这个技术这门手艺找一个好工作也不成问题。

尽管我们在课堂学到的内容很有限,但在以后的学习中单片机还需要好好的深入研究和学习,学好了单片机也就多了一项生存的本钱。

最后感谢老师对我们的精心指导和帮助,感谢同学们对我的帮助。

参考文献

[1].张元良.单片机原理及应用教程.清华大学出版社.2011. 

[2].杨术明.单片机原理及接口技术.华中科技大学出版社.2013. 

[3].马钟梅.单片机的C语言应用程序设计(第5版).北京航空航天出版社.2014.

[4].徐敏.单片机原理及应用.机械工业出版社.2012.

[5].马永杰.单片机原理及应用(第2版).清华大学出版社.2015.

本科生课程设计成绩评定表

姓名

包骏祥

性别

专业、班级

电信1304

课程设计题目:

设计并实现占空比可调信号发生器

课程设计答辩或质疑记录:

 

成绩评定依据:

 

最终评定成绩(以优、良、中、及格、不及格评定)

 

指导教师签字:

年月日

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

当前位置:首页 > 工程科技 > 机械仪表

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

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