单片机跑马灯实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

学号14142200277序号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跑马灯实验电路原理图XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51D0D1D2D3D4D5D6D7+5VK1K2K3K4三、程序流程图图2简单键控的流水灯程序流程图四、源程序1、基本的流水灯#includereg51.h#defineuintunsignedint#defineucharunsignedcharvoiddelay(j)//延时函数datauintj;{datauinti;while(j--)for(i=0;i250;i++);}voidmain()//主函数{datauchara;a=1;//保证只有一个点亮检测P2键值开始完成对应键值的功能判断P2键值是否改变while(1)//不断循环{P2=~a;//低电平点亮a=a1;//左移一位,右补0if(a==0)a=1;//全0delay(2250);}//流动点亮延时}2、简单键控的流水灯#includereg51.h#defineucharunsignedchar#defineuintunsignedintvoiddelay(uinti){uchart;while(i--){for(t=0;t120;t++);}}voidmain(){datauchara;a=1;while(P2==0xff){P0=~a;a=a1;if(a==0)a=1;delay(250);}while(P2==0xfe){P0=~a;a=a1;if(a==0)a=128;delay(250);}}3、键控的流水灯#includereg51.h#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;t120;t++);}}voidmain(){datauchara;a=1;while(P2==0xfe){P0=~a;a=a1;if(a==0)a=1;delay(250);while(P2==0xff){P0=~a;a=a1;if(a==0)a=1;delay(250);}}while(P2==0xfd){P0=~a;a=a1;if(a==0)a=128;delay(250);while(P2==0xff){P0=~a;a=a1;if(a==0)a=128;delay(250);}}while(P2==0xfb){P0=0xff;}}五、实验结果1、基本的流水灯基本流水灯仿真图2、简单键控的流水灯简单键控的流水灯仿真图3、键控的流水灯键控的流水灯仿真图六、思考题回答1、采用I/O口作为输出口时要考虑哪些因素?为什么实验装置中LED要串联一个电阻?答:电压的大小(包括它能感知的最小电压作为高电平),电流的驱动能力等,同时也要要考虑它是否要加上拉电阻。实验装置中LED串联一个电阻是为了防止电流过大而对LED灯有损坏。2、采用I/O口作为输入口时要注意什么?键控的流水灯时为什么要在延时程序中检测是否按键?答:在进行读操作时,必须要先向Px口的锁存器写1;本程序未采用例程所说的方法,但是在延时函数中进行按键检测是为了防止在延时程序中间有键按下却检测不到的情况,即放在延时函数中检测间隔时间短,反应快。3、为什么延时程序要做一个函数?答:可以具体事情具体处理,方便调用。比如交通信号灯的控制,红灯绿灯黄灯都有时间控制,亮的长短就要由延时程序控制等等。七、实验心得体会学习单片机这门课程,要掌握单片机指令系统中汇编语言各种基本语句的意义及汇编语言程序设计的基本知识和方法,以及单片机与其他设备相连接的输入输出中断等接口技术。跑马灯实验虽然是第一个单片机实验,却让我深有体会,首先要熟悉单片机指令,上课时跟着老师走,认真对待,每次只要跟上老师上课所讲的内容以及按要求完成老师布置的课堂习题,掌握程序的编写以及完成实际上机操作是不成问题的,然后就是必须熟练运用一些基本语句,运用proteus和uVision4等仿真软件,最后是上机操作,根据教程了解单片机与其他设备相连接的输入输出中断等接口技术,运用实际,就可以完成简单有趣的跑马灯实验了!

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功