1 / 10
文档名称:

单片机跑马灯实报告.docx

格式:docx   大小:100KB   页数:10页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

单片机跑马灯实报告.docx

上传人:weizifan339913 2019/2/1 文件大小:100 KB

下载得到文件列表

单片机跑马灯实报告.docx

文档介绍

文档介绍:学号**********序号19单片机原理与接口技术实验报告实验项目序号一实验项目名称跑马灯实验姓名卢志雄专业电子信息工程班级电信14-2BF完成时间2016年4月2日一、实验内容实验内容为3项,其中第1、2项必做。1、基本的流水灯。根据图1电路,编写一段程序,使8个发光二极管D1、D2、D3、D4、D5、D6、D7、D8顺序(正序)点亮:先点亮D1,再点亮D2、D3……D8、D1……,循环点亮。每点亮一个LED,采用软件延时一段时间。2、简单键控的流水灯。不按键,按正序点亮流水灯;按下K1不松手,按倒序点亮流水灯,即先点亮D8,再顺序点亮D7、D6……D1、D8……。松手后,又按正序点亮流水灯。3、键控的流水灯。上电,不点亮LED,按一下K1键,按正序点亮流水灯。按一下K2键,按倒序点亮流水灯,按一下K3键,全部关闭LED。二、电路原理图图1跑马灯实验电路原理图三、程序流程图检测P2键值开始完成对应键值的功能判断P2键值是否改变图2简单键控的流水灯程序流程图四、源程序1、基本的流水灯#include<>#defineuintunsignedint#defineucharunsignedcharvoiddelay(j) //延时函数datauintj;{datauinti;while(j--)for(i=0;i<250;i++);}voidmain() //主函数{datauchara;a=1; //保证只有一个点亮while(1) //不断循环{P2=~a; //低电平点亮a=a<<1; //左移一位,右补0if(a==0)a=1; //全0delay(2250);} //流动点亮延时}2、简单键控的流水灯#include<>#defineucharunsignedchar#defineuintunsignedintvoiddelay(uinti){ uchart; while(i--) { for(t=0;t<120;t++); }}voidmain(){ datauchara; a=1; while(P2==0xff) { P0=~a; a=a<<1; if(a==0) a=1; delay(250); } while(P2==0xfe) { P0=~a; a=a>>1; if(a==0) a=128; delay(250); } }3、键控的流水灯#include<>#defineucharunsignedchar#defineuintunsignedintvoiddelay(uinti){ uchart; dataucharb=0xfb; while(i--) { if(P2==0xfe)b=0xfe; if(P2==0xfd)b=0xfd; if(P2==0xfb)b=0xfb; for(t=0;t<120;t++); }}voidmain(){ datauchara;a=1; while(P2==0xfe) { P0=~a; a=a<<1; if(a==0) a=1; delay(250); while(P2==0xff) { P0=~a; a=a<<1; if(a==0) a=1; delay(250); } } while(P2==0xfd) { P0=~a; a=a>>1; if(a==