单片机专周实习报告Word格式.docx

上传人:b****6 文档编号:17044019 上传时间:2022-11-28 格式:DOCX 页数:13 大小:117.04KB
下载 相关 举报
单片机专周实习报告Word格式.docx_第1页
第1页 / 共13页
单片机专周实习报告Word格式.docx_第2页
第2页 / 共13页
单片机专周实习报告Word格式.docx_第3页
第3页 / 共13页
单片机专周实习报告Word格式.docx_第4页
第4页 / 共13页
单片机专周实习报告Word格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

单片机专周实习报告Word格式.docx

《单片机专周实习报告Word格式.docx》由会员分享,可在线阅读,更多相关《单片机专周实习报告Word格式.docx(13页珍藏版)》请在冰豆网上搜索。

单片机专周实习报告Word格式.docx

_____________________

实习指导书

实习题目:

方波波形发生器

学生姓名

第1组

课程名称

单片机应用实习

专业班级

电自专2012

地点

实验楼I506

起止时间

2014.9.15至2014.9.26

实习内容及要求

要求实习的方波波形发生器完成以下功能:

1.基本功能

①发生方波信号

②频率可调

③幅度可调

2.扩展功能

测量信号的频率;

产生其他波形,自行扩展功能

设计

参数

①前两位显示输出频率,后两位显示输出电压

②10~90Hz范围频率可调

③0-4v范围幅度可调

进度

要求

①布置任务、分析任务、学习单片机的C51功能程序设计(1天)

②方案设计、使用Protel设计和绘制硬件原理图(1.5天)

③程序设计和调试(6.5天)

④实习验收、撰写报告(1天)

详见进度安排表

参考资料

张义辉,李家庆,单片机系统综合训练指导书.重庆科技学院

张毅刚.单片机原理及应用.北京:

高等教育出版社,2005

其它

说明

1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。

2.若填写内容较多可另纸附后。

3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。

系主任:

指导教师:

张小云

2014年9月10日

摘要:

在电子工程、通信工程、自动控制、测量仪器、仪表和计算机等技术领域,经常需要用到各种各样的信号波形发生器。

本次实习主要采用PCF8591输出频率和幅值可调的方波信号。

在硬件系统设计中,采用MCS51单片机为控制核心,D/A转换电路等实现设计要求。

软件设计中,在Keil软件平台下采用C51编程,设计了调频功能和调幅功能,使得所编写的程序具有可读性强、易于修改、测试和升级方便的特点。

关键词:

单片机 数模转换频率幅值可调数字方波发生器

一、目的和功能

1.1目的:

设计一种频率和幅值范围限定且可调的数字方波发生器,产生简易的方波波形。

1.2功能:

利用PCF8591输出方波波形,用MCS51单片机上的四个按键对方波的幅值和频率进行一定范围的调节,从而输出我们想要频率的方波。

1.3具体任务:

时间

内容

地点

指导教师

12.16

9:

00

布置实习任务及要求,查资料,准备方案

KEILC51程序设计练习(定时器程序设计)

I506、图书馆

12.17

总体方案设计,硬件设计

I506

12.18

画硬件电路原理图

数码管显示程序设计、调试

12.19

显示北京时间程序设计、调试

12.20

键盘控制程序设计、调试

12.23

软件方案设计,查阅资料,画软件流程图

12.24

设计、调试程序

12.25

设计、调试程序,讲解实习报告要求

12.26

实习成果验收,完成设计报告

12.27

二、硬件设计

2.1硬件设计思想

用PCF8591将按键的变化转化成相应的数值变化,用不同的变量代表不同的按键变化,当不同变量的值发生变化,就改变方波的频率或幅值。

基本设备是MCS51单片机上STC89C51、PCF8591以及按键部分,测试时还需要用到示波器来观察输出点的波形情况。

2.2硬件电路图

三、软件设计

3.1软件设计思想

不停得扫描是否有按键输入,根据按键对应值得变化输出相应的波形。

幅值由输出高低电平值得变化控制,频率由输出高电平和低电平的时间控制。

这里用按键的次数控制某个变量的自增或自减改变幅值或频率,从而得到对应的方波。

3.2程序框图

3.3调试

Keil软件中,在“文件\新建文件”中,新建C语言源程序文件,编写相应的程序。

在“文件\新建项目”的菜单中,新建项目并将C语言源程序文件包括在项目文件中。

在“项目\编译”菜单中将C源文件编译,检查语法错误及逻辑错误。

在编译成功后,产生以“*.hex”后缀的目标文件。

最后通过专业的下载工具将“*.hex”后缀的目标文件下载到单片机,用示波器观察输出点的波形,检查实验相关功能是否完成,若不能完成则查看对应程序部分是否有缺陷,一直到所有要求都完成。

心得体会:

通过这次实习,让我对单片机的相关知识更加的熟悉,以前不懂的I2C也有了一定的了解。

特别是在这两周的实习中,在与大家的交流学习到了很多,刚开始时大家都会有一些不懂的地方,但在不停的学习中,我们共同的在进步,虽然在最后的成果上不尽如人意,但是在这个过程中我们学到的团队合作、共同进步这些道理会一直伴随我们一生。

附录:

#include<

reg52.h>

intrins.h>

#defineucharunsignedchar

sbitSCL=P3^6;

sbitSDA=P3^7;

sbitP20=P2^0;

sbitP21=P2^1;

ucharcount=0;

ucharm,b,a=0;

ucharN[]={0x00,0x05,0x0a,0x0f};

voidusdelay()//微秒延时

{

_nop_();

}

voiddelay()

for(b=0;

b<

=a*10;

b++)

{

}

//启动IIc

voidiic_start(void)//时钟保持高,数据线从高到低一次跳变,I2C通信开始

{

SDA=1;

usdelay();

SCL=1;

//延时5us

SDA=0;

SCL=0;

//停止IIc

voidiic_stop(void)

//时钟保持高,数据线从低到高一次跳变,I2C通信停止

//应答信号ack

voidack()

uchari;

SCL=1;

while((SDA==1)&

&

(i<

200))

i++;

SCL=0;

//函数名称:

iicInit_()

//函数功能:

初始化I2C总线子程序

//------------------------------------------------------------------

voidiicInit()

SDA=1;

}

//写字节

voidIICSendByte(uchardat)

for(i=0;

i<

8;

i++)

SDA=(bit)(dat&

0x80);

//数据传送是由高到底bit把数据变为非0即1的一位数据

dat<

<

=1;

//释放总线

//主函数

main()

iicInit();

while

(1)

{

if(P21==0)//调幅

if(P21==0)

count++;

while(!

P21);

if(count==4)

count=0;

if(P20==0)//调频

if(P20==0)

a++;

P20);

if(a==4)

a=0;

switch(count)

case0:

//方波

iic_start();

IICSendByte(0x90);

ack();

IICSendByte(0x40);

//模拟输出

m=0;

IICSendByte(N[m]);

iic_stop();

delay();

N[m]=~N[m];

break;

case1:

m=1;

case2:

m=2;

case3:

m=3;

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

当前位置:首页 > 小学教育 > 小升初

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

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