08级智能仪器设计仿真实验.docx

上传人:b****6 文档编号:5832144 上传时间:2023-01-01 格式:DOCX 页数:11 大小:916.88KB
下载 相关 举报
08级智能仪器设计仿真实验.docx_第1页
第1页 / 共11页
08级智能仪器设计仿真实验.docx_第2页
第2页 / 共11页
08级智能仪器设计仿真实验.docx_第3页
第3页 / 共11页
08级智能仪器设计仿真实验.docx_第4页
第4页 / 共11页
08级智能仪器设计仿真实验.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

08级智能仪器设计仿真实验.docx

《08级智能仪器设计仿真实验.docx》由会员分享,可在线阅读,更多相关《08级智能仪器设计仿真实验.docx(11页珍藏版)》请在冰豆网上搜索。

08级智能仪器设计仿真实验.docx

08级智能仪器设计仿真实验

实验一:

单片机C51程序设计集成开发环境应用及I/O口编程

一、实验目的

1、了解集成开发环境KeilVision3文件管理的特点。

2、学会使用开发环境新建文件、编辑、编译程序。

3、掌握开发环境程序设计相关设置及其意义。

4、掌握单片机普通I/O口的程序设计技术。

5、加深对单片机执行程序机制的理解。

二、实验要求

1、熟练操作开发环境。

2、利用C51相关知识,编写简单程序,生成可执行文件。

3、记录编译错误信息,总结错误原因,写出解决办法。

4、完成花样流水灯程序。

5、利用开发环境的仿真实验电路仿真程序,并得出仿真结果。

三、实验内容

1、认识KeilVision3;新建工程、文件;工程参数设置;程序编辑、编译及调试。

2、编写简单流水灯以及花样流水程序,调试程序。

3、仿真运行观察P1口的8个发光二极管现象,P1寄存器内容的变化,二者变化是否一致。

四、实验步骤

1、启动软件KeilVision3,界面如下图:

2、菜单操作Project>NewProject,在出现的对话框中输入工程名称,设计保存路径,然后保存。

3、出现CPU选择对话框,选择所用的单片机,单击确定。

4、出现加入启动代码文件对话框,单击是。

下图为建立完工程后的界面:

5、菜单操作Project>Optionsfortarget“Target1”或者直接在左侧的Target1文件夹图标上单击右键,选择Optionsfortarget“Target1”,出现下图所示的Optionsfortarget“Target1”对话框。

在Target标签下设置晶振频率、编译模式、ROM大小等,在Output标签下设置目标文件路径,是否产生可执行文件及是否产生其他信息。

6、点击File>New菜单或则点击新建图标

,然后保存,设置保存路径,注意保存文件格式为:

文件名.C。

7、在文件管理窗口中右键单击“SourceGroup1”,选择“AddFilestoGroup‘SourceGroup1’”,选中刚刚新建的程序文件,点“Add”即可把文件加入到工程中。

8、文件管理窗口中双击任何文件名即可把该文件打开,在右边的工作区中可以编辑源程序。

9、程序编辑完成后单击

图标编译,编译通过后的界面下图所示。

输出窗口中为编译信息,若有错误,系统提示错误类型及所在的行,根据此信息进行调试,直至程序编译正确通过。

10、新建工程intprj.Prj,新建c程序源文件并加入到工程中;

11、输入所编写的程序,简单流水和花样流水分别实现;

12、所给的ledkey.dll文件拷贝至Keil\C51\BIN文件夹下

13、设置工程选择project->OptionforTarget'Target1',选Debug页,左侧最下面,DialogDll中一般是DP51.DLL,不用修改,Parameter中是-P51在其后加入-dledkey即该行看起来应该是这样的:

-p51-dledkey-simboard保存即可。

14、输入所编写的程序,实现功能:

定时一秒,隔一秒P1口接的8个发光二极管亮

15、编译程序,若有错误,调试程序直至编译通过。

16、单击

按钮,进入仿真界面。

点击:

Peripherals,其中多出一个“键盘LED实验仿真板”选择该项即可。

17、单击

按钮,运行程序,观察仿真界面能否完成要求的功能。

仿真试验板电路入下图所示:

18、简单流水流程图:

19、简单流水代码:

#include

unsignedchari;

unsignedchartemp;

unsignedchara,b;

voiddelay(void)

{

unsignedcharm,n,s;

for(m=20;m>0;m--)

for(n=20;n>0;n--)

for(s=248;s>0;s--);

}

voidmain(void)

{

while

(1)

{

temp=0xfe;

P1=temp;

delay();

for(i=1;i<8;i++)

{

a=temp<

b=temp>>(8-i);

P1=a|b;

delay();

}

for(i=1;i<8;i++)

{

a=temp>>i;

b=temp<<(8-i);

P1=a|b;

delay();

}

}

}

20、花样流水流程图:

21、花样流水参考代码:

#include

unsignedcharcodetable[]={0xfe,0xfd,0xfb,0xf7,

0xef,0xdf,0xbf,0x7f,

0xfe,0xfd,0xfb,0xf7,

0xef,0xdf,0xbf,0x7f,

0x7f,0xbf,0xdf,0xef,

0xf7,0xfb,0xfd,0xfe,

0x7f,0xbf,0xdf,0xef,

0xf7,0xfb,0xfd,0xfe,

0x00,0xff,0x00,0xff,

0x01};

unsignedchari;

voiddelay(void)

{

unsignedcharm,n,s;

for(m=20;m>0;m--)

for(n=20;n>0;n--)

for(s=248;s>0;s--);

}

voidmain(void)

{

while

(1)

{

if(table[i]!

=0x01)

{

P1=table[i];

i++;

delay();

}

else

{

i=0;

}

}

}

实验二:

中断程序设计

一、实验目的

1、掌握中断程序设计技术。

2、加深对单片机中断机制的理解。

对实时控制概念有初步的感性认识。

二、实验要求

1、独立完成。

2、描述出中断发生时,中断资源的变化情况,也可以用显示技术表明中断的发生。

三、实验内容

编写中断程序,仿真运行,观察产生中断时单片机相应过程。

四、实验步骤

1、新建工程intprj.Prj,新建c程序源文件并加入到工程中

2、输入所编写的程序,程序需为主循环+中断服务程序结构

3、编译程序,若有错误,调试程序直至编译通过。

4、单击

按钮,进入仿真界面。

5、菜单Peripherials>Interrupt,对话框如下图。

6、单击

按钮仿真运行程序,观察所选的中断资源变化情况。

7、中断程序实例代码:

#include

#defineUcharunsignedchar

sbitP12=P1^2;

UcharIntCnt=5;

voidmain(void)

{

TCON=0X01;//外部中断0边沿触发

EX0=1;

EA=1;//开中断

while

(1);

}

voidExInt0_isr(void)interrupt0

{

TMOD=0x02;//T0。

方式2

TCON=0x00;

TH0=56;

TL0=56;

TR0=1;

}

voidT0_isr(void)interrupt1

{

if(--IntCnt==0)

{

IntCnt=5;

P12=~P12;

}

}

功能:

利用MCS-51的计数器T0,工作于方式2,P3.2作为故障状输入端,当出现1次负跳变时,立即在P1.2脚输出周期2ms连续方波(晶振为12MHZ)

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

当前位置:首页 > 经管营销

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

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