1 / 7
文档名称:

atmega16单片机设计led跑马灯实验报告.docx

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

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

分享

预览

atmega16单片机设计led跑马灯实验报告.docx

上传人:feng1964101 2019/2/16 文件大小:17 KB

下载得到文件列表

atmega16单片机设计led跑马灯实验报告.docx

文档介绍

文档介绍:atmega16单片机设计led跑马灯实验报告学号序号单片机原理与接口技术实验报告姓名卢志雄专业电子信息工程班级电信14-2BF完成时间XX年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跑马灯实验电路原理图三、程序流程图图2简单键控的流水灯程序流程图四、源程序 1、基本的流水灯#include#defineuintunsignedint#defineucharunsignedcharvoiddelay(j)datauintj;{datauinti;while(j--) for(i=0;i #defineucharunsignedchar#defineuintunsignedintvoiddelay(uinti){uchart;} voidmain(){ datauchara; while(i--){} for(t=0;t>1;if(a==0) a=128; delay(250); } 3、键控的流水灯#include #defineucharunsignedchar#defineuintunsignedintvoiddelay(uinti){uchart;} voidmain(){datauchara;a=1; dataucharb=0xfb;while(i--) {if(P2==0xfe)b=0xfe;} if(P2==0xfd)b=0xfd;if(P2==0xfb)b=0xfb;for(t=0;t typedefunsignedcharuint8; typedefunsignedintuint16;//类型定义 sbitP2_1=P2^1; sbitP2_2=P2^2; sbitP2_3=P2^3; sbitP2_4=P2^4;//位声明四个数码管开关 sbitKey2=P3^2; sbitKey3=P3^3;//位声明2个按键K2和K3 sbitLedk=P2^0;//LED开关 voiddelay(uint16i);//延时函数声明 voidrefresh();//数码管刷新函数声明 voidliushuideng();//流水灯函数声明 uint8number[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //数码管的真值表 uint8out[4]={0};//数组变量 uint16counter=0;//用作计数器的变量 uint16Time_counter=0;//用作定时器的变量 voidmain()//主函数{ TMOD=0x01;//定时器0,工作方式一 TH0=0xFC