欢迎来到天天文库
浏览记录
ID:52325392
大小:179.96 KB
页数:20页
时间:2020-03-26
《流水灯在Proteus下的仿真实现.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、重庆邮电大学微处理器与嵌入式系统设计课程实验报告实验名称:流水灯在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、应用,为开发、调试单片机应用系统做准备;2、熟练掌握isis环境中电路图的绘制;3、熟悉keilc51软件的程序设计方法;4、掌握keilc51软件与proteus软件联合仿真调试的方法。实验方法:1、通过proteus软件绘制出由单片机和LED构成的仿真电路;2、通过keil软件编写控制单片机并点亮LED的程序;3、将keil生成的hex文件导入proteus中的单片机中,实现仿真。4、观察仿真现象。实验步骤:1、打开软件:双击ISIS7Professional图标,随后就进入了ProteusISIS集成环境。2、添加元器件:单击pickfromlibraries,通过搜
3、索栏搜索所需元件(如:AT89C52、LED),根据元件预览区域的显示,双击所需元件,元件则出现在原理图编辑环境的元件列表区。用同样方法找出原理图所需全部元件。3、放置元器件:在元件列表区单击所需放置的元件,将鼠标置于图形编辑窗口该对象的欲放位置,单击鼠标左键,该对象完成放置。同样方法放置原理图所需全部元件。4、放置电源和地:选择terminalmode选择电源和地,以放置元器件相同的放法放置电源和地。5、连接电路。6、编程:通过keil软件编写控制单片机并点亮LED的程序。7、导入:将keil生成的hex文件导入proteus中的单片机中,实现仿真。8、根据仿真现象优化代
4、码。实验效果: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#defineuintunsignedintucharxx,i;ucharcodetable[]={0xfe,0xfd,0xfb,0xf7};voiddelayms(uint);//延时voiddelayms(uintz){uintx,y;
5、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_(x
6、x,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-8xx=0xfe;for(i=8;i>0;i--){P0=xx;delayms(500);xx=xx<<1;}}}心得体会:在实现实验要求时原打算使用循环移位函数,在真正实现时发现控制4个
7、流水灯循环闪烁不同于控制8个流水灯,需要限制循环移动的位数,故使用了for循环进行限制。在实现流水灯的过程中,进行思考,发现可以采用很多方法,如:位控制、总线控制还可以设置数组,每次在数组中去总线端口的数据闪烁LED。在进行循环移位时要注意》移位每次补0。流水灯实验并不困难,但在实现过程中的思考是从未有过的。
此文档下载收益归作者所有