流水灯在Proteus下的仿真实现.docx

上传人:b****4 文档编号:6923376 上传时间:2023-05-10 格式:DOCX 页数:18 大小:179.18KB
下载 相关 举报
流水灯在Proteus下的仿真实现.docx_第1页
第1页 / 共18页
流水灯在Proteus下的仿真实现.docx_第2页
第2页 / 共18页
流水灯在Proteus下的仿真实现.docx_第3页
第3页 / 共18页
流水灯在Proteus下的仿真实现.docx_第4页
第4页 / 共18页
流水灯在Proteus下的仿真实现.docx_第5页
第5页 / 共18页
流水灯在Proteus下的仿真实现.docx_第6页
第6页 / 共18页
流水灯在Proteus下的仿真实现.docx_第7页
第7页 / 共18页
流水灯在Proteus下的仿真实现.docx_第8页
第8页 / 共18页
流水灯在Proteus下的仿真实现.docx_第9页
第9页 / 共18页
流水灯在Proteus下的仿真实现.docx_第10页
第10页 / 共18页
流水灯在Proteus下的仿真实现.docx_第11页
第11页 / 共18页
流水灯在Proteus下的仿真实现.docx_第12页
第12页 / 共18页
流水灯在Proteus下的仿真实现.docx_第13页
第13页 / 共18页
流水灯在Proteus下的仿真实现.docx_第14页
第14页 / 共18页
流水灯在Proteus下的仿真实现.docx_第15页
第15页 / 共18页
流水灯在Proteus下的仿真实现.docx_第16页
第16页 / 共18页
流水灯在Proteus下的仿真实现.docx_第17页
第17页 / 共18页
流水灯在Proteus下的仿真实现.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

流水灯在Proteus下的仿真实现.docx

《流水灯在Proteus下的仿真实现.docx》由会员分享,可在线阅读,更多相关《流水灯在Proteus下的仿真实现.docx(18页珍藏版)》请在冰点文库上搜索。

流水灯在Proteus下的仿真实现.docx

流水灯在Proteus下的仿真实现

流水灯在Proteus下的仿真实现

 

重庆邮电大学

微处理器与嵌入式系统设计

课程实验报告

 

实验名称:

流水灯在Proteus下的仿真实现

学期:

2014-2015学年第2学期

班级:

学号:

学生姓名:

任课教师:

实验教室:

 

二〇一五年〇四月十四日

【实验名称】流水灯在proteus下的仿真实现

实验要求:

1、基本要求:

4个流水灯循环闪烁,1、3、2、4流水灯交替闪烁;

2、扩展要求:

8个流水灯依次闪烁,1、3、5、7、2、4、6、8流水灯交替闪烁,流水灯逐渐亮1、1-2、1-3、1-4、1-5、1-6、1-7、1-8。

 

实验目的:

1、熟悉proteus软件,了解proteus软件的结构组成和功能,掌握Proteus软件在单片机仿真中的应用,为开发、调试单片机应用系统做准备;

2、熟练掌握isis环境中电路图的绘制;

3、熟悉keilc51软件的程序设计方法;

4、掌握keilc51软件与proteus软件联合仿真调试的方法。

实验方法:

1、通过proteus软件绘制出由单片机和LED构成的仿真电路;

2、通过keil软件编写控制单片机并点亮LED的程序;

3、将keil生成的hex文件导入proteus中的单片机中,实现仿真。

4、观察仿真现象。

实验步骤:

1、打开软件:

双击ISIS7Professional图标,随后就进入了ProteusISIS集成环境。

2、添加元器件:

单击pickfromlibraries,通过搜索栏搜索所需元件(如:

AT89C52、LED),根据元件预览区域的显示,双击所需元件,元件则出现在原理图编辑环境的元件列表区。

用同样方法找出原理图所需全部元件。

3、放置元器件:

在元件列表区单击所需放置的元件,将鼠标置于图形编辑窗口该对象的欲放位置,单击鼠标左键,该对象完成放置。

同样方法放置原理图所需全部元件。

4、放置电源和地:

选择terminalmode选择电源和地,以放置元器件相同的放法放置电源和地。

5、连接电路。

6、编程:

通过keil软件编写控制单片机并点亮LED的程序。

7、导入:

将keil生成的hex文件导入proteus中的单片机中,实现仿真。

8、根据仿真现象优化代码。

实验效果:

1、4个流水灯循环闪烁,1、3、2、4流水灯交替闪烁;

2、8个流水灯依次闪烁,1、3、5、7、2、4、6、8流水灯交替闪烁,流水灯逐渐亮1、1-2、1-3、1-4、1-5、1-6、1-7、1-8;

实验代码:

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharxx,i;

ucharcodetable[]={0xfe,0xfd,0xfb,0xf7};

voiddelayms(uint);

 

//延时

voiddelayms(uintz)

{

uintx,y;

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

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

}

 

voidmain()

{

while

(1)

{

//数组实现1、2、3、4个流水灯循环闪烁

for(i=0;i<4;i++)

{

P0=table[i];

delayms(500);

}

//总线控制1、3、2、4流水灯交替闪烁

P0=0xfe;

delayms(500);

P0=0xfb;

delayms(500);

P0=0xfd;

delayms(500);

P0=0xf7;

delayms(500);

//8个流水灯依次闪烁

xx=0xfe;

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

{

P0=xx;

delayms(500);

xx=_crol_(xx,1);

}

//1、3、5、7流水灯交替闪烁

xx=0xfe;

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

{

P0=xx;

delayms(500);

xx=_crol_(xx,2);

}

//2、4、6、8流水灯交替闪烁

xx=0xfd;

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

{

P0=xx;

delayms(500);

xx=_crol_(xx,2);

}

//流水灯逐渐亮1、1-2、1-3、1-4、1-5、1-6、1-7、1-8

xx=0xfe;

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

{

P0=xx;

delayms(500);

xx=xx<<1;

}

}

}

心得体会:

在实现实验要求时原打算使用循环移位函数,在真正实现时发现控制4个流水灯循环闪烁不同于控制8个流水灯,需要限制循环移动的位数,故使用了for循环进行限制。

在实现流水灯的过程中,进行思考,发现可以采用很多方法,如:

位控制、总线控制还可以设置数组,每次在数组中去总线端口的数据闪烁LED。

在进行循环移位时要注意》移位每次补0。

流水灯实验并不困难,但在实现过程中的思考是从未有过的。

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

当前位置:首页 > 教学研究 > 教学反思汇报

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2