设计并实现占空比可调信号发生器.docx
- 文档编号:3013239
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:18
- 大小:1,002.43KB
设计并实现占空比可调信号发生器.docx
《设计并实现占空比可调信号发生器.docx》由会员分享,可在线阅读,更多相关《设计并实现占空比可调信号发生器.docx(18页珍藏版)》请在冰豆网上搜索。
设计并实现占空比可调信号发生器
2011年至2012年第1学期
《单片机原理与应用》课程设计
班级1006402
指导教师涂立李旎
学生人数____3_____
设计份数1
2011年12月23日
单片机课程设计报告
一.设计时间
2011年12月19日-----2011年12月23日
二.设计地点
一实验楼-401机房
三.设计目的
1、进一步熟悉和掌握单片机的结构及工作原理。
2、掌握单片机的接口技术及相关外围芯片的外特性,控制方法。
3、通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。
4、通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术,提高我们的自学能力与动手能力。
6、充分运用我们所学的专业知识,考察现在正在使用的信号发生器的基本功能,完成一个基本的实际系统的设计全过程,充分培养我们的分析能力与创新能力。
四.设计小组成员
五.指导老师
涂立(副教授)、李旎(讲师)
六.设计课题
设计并实现占空比可调信号发生器;
要求:
用4个按键分别控制输出信号的占空比和频率(用示波器观察输出波形),显示占空比范围10%、30%、50%,频率范围1Hz和5Hz,实时测量输出信号的占空比和频率值。
七.基本思路及关键问题的解决方法
1、基本思路
(1)实现可调节占空比信号发生器,我们可以设计K1是频率调节开关,K2,K3,K4为占空比调节开关。
K1按下一次时,对应的频率为1HZ,再按下K2,K3,K4为此频率下占空比分别为10%,30%,50%的输出信号;按下K1两次时(当按下次数大于2时将默认为初始状态),对应的频率为5HZ,K2,K3,K4按键的功能如上,本设计可实现同频率不同占空比的任意切换和不同频率间的直接切换。
(2)实验过程
1.开打keil软件,建立一个新工程单击【Project】在下拉菜单中找到【Newproject...】选项,如图1所示:
图1.新建工程图
2.选择工程要保存的路径,并且输入工程文件名。
Keil的一个工程里通常含有很多小文件,为了方便管理,一般将一个工程放在一个独立的文件夹下,比如保存到课程设计文件夹,工程文件的名字为lession,如图2所示:
图2.保存文件图
3.单击保存后会弹出一个对话框,要求选择单片机的型号,可以根据使用的单片机来选择。
KeilC51几乎支持所有的51内核的单片机,在这里选择Atmel的AT89C52,如图3所示,选择后单击保存。
图3.型号选择图
4.完成上一步骤后,窗口界面如图4所示:
图4.添加完单片机后的窗口界面
5.到此为止,还没有建立好一个完整的工程,虽然工程名有了,但工程当中还没有任何文件及代码,接下来的就是添加文件及代码。
6.单击【File】菜单中的【new】菜单项,或单击界面上的快捷键图标
。
如图5:
图5.添加文件图
7.新建文件后的窗口界面如图6所示:
图6.添加完文件后的窗口界面图
8.此时光标在编辑窗口中闪烁,可以输入用户的应用程序,但此时这个新建文件与刚刚建立的工程还没有直接的联系,单击图标
,窗口界面如图7所示:
图7.保持文件图
9.输入要保存的文件名,同时必须输入正确的扩展名(如果用C语言编写的程序,则扩展名必须是.c;如果用汇编语言编写的程序,则扩展名必须是.asm).这里的文件名不一定要和工程名相同,可以随意填写文件名,然后单击【保存】按钮。
10.回到编辑界面,单击【Target1】前面的“+”号,然后在【SourceGroup1】单击右键,弹出如图所示的菜单然后选择【AddFilestoGroup‘SourceGroup1’】菜单项弹出图8对话框:
图8.将文件加入工程的菜单图
11.选中【Text1】,单击【Add】按钮,再单击【Close】按钮,然后再单击左侧【SourceGroup1】前面的“+”,屏幕窗口如图9所示,接着是在编辑窗口中编写程序。
图9.编写程序界面图
12.程序的编译,单击工具栏上的
进行编译,在编译过程中如果出现错误,修改程序直到没有错误为止,然后在依次点击
和
,在此过程中出现错误的,也要修改程序直到没有错误为止,编译过程中出现警告一般可以不必考虑,但特殊时也要通过修改程序消除警告。
13.把文件转化成十六进制文件,点击【Project】在下拉菜单里找到【OptionsforTarget‘target1】’,如图10所示单击【OptionsforTarget‘target1’】会弹出如图11所示的对话框:
图10.文件转换图
图11.文件转换界面图
14.在Eprom和Ram后面的框中填入相应的数据(也可以不进行填写),然后单击Output选项出现如图12所示界面:
图12.选择生成HEX文件图
15.用鼠标左键单击CreatHEXFi:
前面的方框,这时方框里会用一个对号如图13:
图13.完成选择生成HEX文件图
然后点击确定对话框就会消失,这样刚刚所建立的文件就转化成十六进制的文件。
16.用40针排线把DP-51PRO试验仪(如图14)上的A1区J76接口与A2区J79接口相连,然后使用导线把A2区的J61接口与D1区的J52接口相连。
再用导线把A2区的J58的RXD,TXD与A2区的J53的KEY1,KEY2相连,最后用导线把A2区的J58的INTO与D4区的J8的任意一接口相连。
图14.DP-51PRO试验仪图
17.对DP-51PRO试验仪上电。
打开DPFlash软件出现如图15所示界面:
图15.打开DPFlash软件图
18.点击栏中的【文件】在下拉菜单里找到【装载】,如图16所示:
图16.装载HEX文件图
或者直接点击工具栏里图标
,点击后会弹出图17所示的对话框:
图17.选择HEX文件图
19.找到刚刚所建立的文件,点击后按打开按钮对话框就会消失。
然后单击
会弹出图18所示的对话框:
图18.等待烧片图
20.单击编程后,软件开始把程序烧入试验仪,烧片的过程如图19所示:
图19.烧片过程图
当烧片完成后,点击退出就行了。
21.关闭DPFalsh软件。
把DP-51PRO单片机仿真试验仪A1区的工作模式选择开关(MOD_sw1)切换到RUN处,然后按一下复位键(RST),MON51程序即开始运行。
观察实验运行的情况是不是符合设想,实验现象为每次按KEY1时数码管表示的值加一,按KEY2也一样的;但是如果不符合,对程序进行调试直到符合。
2、关键问题的解决方法
(1)如何用4个按键实现不同频率,不同占空比的信号输出?
用1个按键来调节频率,3个按键来实现不同占空比的调节
(2)如何实现同频率下不同占空比信号的随意调节,切换?
当一个按键按下时,用其他占空比是否按下来为条件的while循环来实现。
八.流程图及电路图
系统流程图如图20所示:
图20.流程图
电路原理图如图21所示
图21.电路图
元件清单如图22所示
表1.元件清单表
元件名称
型号与规格
数量
单片机芯片
ATMEL89C51
1片
晶振
11.0592HZ
1个
示波器
GOS-6051
1个
电阻
10千欧姆
9个
电容
20PF
2个
独立按键
4个
开关
1个
九.调试过程中出现的问题及相应的解决方法
1、程序不能烧到实验板上?
方法:
开关没有按下,实验板不能正常工作,线接触不良,程序出现了逻辑错误,需进一步的调试。
2、实验现象不跟预期相同?
程序编写有问题,可能是算法出现错误,或者板上的某些功能出现了问题
十.课程设计心得体会
我们本次课题的设计题目是设计并实现占空比可调的信号发生器,主要实现占空比可调并测出频率及占空比的值。
经过一个星期的学习、设计、编程、实物调试、最终得出结果,基本完成设计要求。
在这期间,我们发现最困难的就是调试的过程,每个程序在写好了之后在实物上调试总会出现这样那样的问题,而有些问题很难发现也很难解决,一个程序总要调试很多次才会成功,但是最后我们还是成功完成了。
在这次课程设计中,我组成员各尽其职,团结互助在最短的时间将其完成。
充分发挥了团队合作的精神,这也是我们将来走向社会,走向岗位须有的一种精神。
从这次课程设计中,使我们懂得了什么是学以致用只有运用了才能将所学知识真正领悟,我们要写学不仅是编程,更重要的解决问题的能力的提高!
十一.源程序
/*************************************************************************
本程序用4个按键分别控制输出信号的占空比和频率(用示波器观察输出波形),显示占空比范围10%、30%、50%,频率范围1Hz和5Hz,实时测量输出信号的占空比和频率值。
***************************************************************************/
#include
#defineucharunsignedchar//宏定义
#defineuintunsignedint
ucharnum;//计按下k1的个数(num)来对应不同
sbitk1=P2^0;//频率,为1时输出1HZ的波形,为2时
sbitk2=P2^1;//为5HZ的波形
sbitk3=P2^2;
sbitk4=P2^3;//定义4个按键k1,k2,k3,k4;
sbitsbq=P0^1;//使用1个示波器观察现象
voiddelay(uintz)//延时函数,用来实现占空比
{
uinti,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
voidkeyscan()//扫描函数
{
if(k1==0)//用k1来计数来调节输出频率
{
delay(5);
if(k1==0)//延时消抖
{
while(!
k1);//松手检测
num++;//用num的值来调节不同频率间的切换(1HZ和5HZ)
if(num>2)
num=0;
}
}
if(num==1)//以下为输出频率为1HZ的3种占空比
{
if(k2==0)//占空比为10%的情况
{
delay(5);//延时5ms
if(k2==0)
{
while(!
k2);
while((k3==1)&&(k4==1))//用来检测有没有
{//按键按下,当有其他
//键按下时执行相应的程序
sbq=1;//实现占空比为10%的过程
delay(100);
sbq=0;
delay(900);
}
}
}
if(k3==0)//占空比为30%的情况
{
delay(5);
if(k3==0)//实现占空比为30%的过程
{
while(!
k3);
while((k2==1)&&(k4==1))
{
sbq=1;
delay(300);
sbq=0;
delay(700);
}
}
}
if(k4==0)//占空比为50%的情况
{
delay(5);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 实现 可调 信号发生器