单片机实验报告2.docx
- 文档编号:12032634
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:16
- 大小:1.09MB
单片机实验报告2.docx
《单片机实验报告2.docx》由会员分享,可在线阅读,更多相关《单片机实验报告2.docx(16页珍藏版)》请在冰豆网上搜索。
单片机实验报告2
单片机实验报告二
姓名:
班级:
学号:
指导老师:
目录
1、新建项目新建源文件2
2、输入源代码、做语法错误的排查、编译2
3、调试环节(监视窗口的使用、外围设备的应用)3
4、定时器查询和中断定时10
5、软件仿真13
6、感想14
在第一次单片机实验的基础上,通过软件仿真及对程序的下载来实现单片机的定时。
主要分为延时程序,定时器定时和中断定时。
1、新建项目新建源文件
新建项目:
单击主菜单“Project”——项目命令菜单,单击“NewProject”——创建新项目。
设定保存文件夹名test1,文件名也为test1。
点击Atmel后出现很多项目
找到我们的AT89C51
点击“ok”
点击“确定”后,页面的变化如下:
点击“是”,如下:
至此,项目文件夹已存在,上图左上角标题栏左侧已出现创建的项目名称“test1”,目前文件夹中没有任何文件。
点击菜单中的“File”——主菜单中的文件菜单,单击“New”——新建文件
直接点击快捷键
,如下图:
修改C语言源文件的保存位置、文件名和拓展名。
拓展名必须是.c,假设将文件名修改为test.c,保存在test1项目文件夹下。
点击“保存”之后,窗口变化如下:
将新创建的C语言源文件添加到项目里。
单击左侧窗口中“Target1”前面的“+”号,然后在“SourceGroup1”——选择源文件上单击右键
出现“AddFilestoGroup‘SourceGroup1’”,单击之后出现如下界面:
选中“test.c”文件,单击Add按钮,再点击Close按钮,出现如下界面:
即在左侧“SourceGroup1”中多了一个子项test.c,表示成功将新建的C语言源文件关联到项目中,故可在右侧的test.c中输入C语言程序。
3、输入源代码、做语法错误的排查、编译
C语言程序输入完成后,就需要对项目进行编译,排查程序中可能存在的语法或结构错误,生成十六进制格式的机器指令文件。
在对程序进行编译之前,需要对项目进行设置,即右击左侧窗口处“Target1”,弹出如下页面:
点击上图中的“OptionsforTarget‘Target1’”,出现如下页面:
注意在设置项目晶振频率时,应将其中的24.0MHZ改成12.0MHZ。
点击“Output”,设置编译时是否生成十六进制的机器指令文件“HEXFile”。
选择“ok”结束设置
项目设置完毕后,就可以对编写的程序进行编译。
输入程序后,点击
按钮,对程序进行编译。
源程序:
#include
#defineucharunsignedchar
sbitP17=P1^7;或者P17=0x97
main()
{
TMOD=0x01;//T0工作方式1
TH0=0x3C;//T0定时50ms初值
TL0=0xB0;
TR0=1;//打开定时器T0
while
(1)
{if(TF0)//判断T0是否溢出
{TF0=0;//清溢出标志位
P17=~P17;//P1.7口输出状态取反
TH0=0x3C;//T0定时50ms初值
TL0=0xB0;
}}
}
没有出现错误,可以继续进行。
4、调试环节(监视窗口的使用、外围设备的应用)
程序编译完成后,可以进行调试仿真,测试程序能否满足要求。
点击如下图所示的“Start/StopDebugSession”按钮,或者点击快捷键
,进入调试页面
出现了如上图所示的提示
4、定时器查询和中断定时
在完成上一个测试之后,只需要将其中的程序换以需要的程序,就可以实现定时器查询和中断定时的功能。
(1)定时器查询
源程序:
#include
main()
{unsignedcharnum;//定时次数
TMOD=0x01;//T0工作方式1
TH0=0x3C;//T0定时50ms初值
TL0=0xB0;
TR0=1;//打开定时器T0
num=0;
P1=0x01;
while
(1)
{if(TF0)//判断T0是否溢出
{TF0=0;//清溢出标志位
TH0=0x3C;//T0定时50ms初值
TL0=0xB0;
num++;
if(num==20)
{if(P1==0x80)P1=1;
elseP1=(P1<<1);//左移一个单位
num=0;//重置定时次数
}}}}
(2)中断定时
源程序:
#include
#defineucharunsignedchar
unsignedcharnum;
main()
{//定时次数
TMOD=0x01;//T0工作方式1
TH0=0x3C;//T0定时50ms初值
TL0=0xB0;
TR0=1;
ET0=1;
EA=1;//打开定时器T0
num=0;
P1=0x01;
while
(1);
}
voidtimer0(void)interrupt1
//中断入口地址000BH
{//if(TF0)//判断T0是否溢出
{//TF0=0;//清溢出标志位
TH0=0x3C;//T0定时50ms初值
TL0=0xB0;
num++;
if(num==20)
{if(P1==0x80)P1=1;
elseP1=(P1<<1);//左移一个单位
num=0;//重置定时次数
}}}
5、软件仿真
以中断程序为例:
当把程序下载到单片机时,需要停止程序运行,单击Target1,然后点右键,选择OptionsforTarget‘Target1’,点调试,出现下图:
选择wave系列mcs-51单片机,点击“ok”,当外部连接好硬件之后,点击
、
,即可在硬件上实现定时。
我们从外在的观察上可以看到的是,LED灯依次亮起,且每次只亮一个,时间间隔随我们设置而改变。
6、感想
通过这次实验,让我明白了单片机的结构系统是什么样的。
自己将程序下载到单片机中,连接调试和不断的改变纠正,把LED调整到需要的状态,使我们得到了满足。
虽然遇到了困难但还是开阔了思维学习到了知识。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 报告