流水灯实验报告总结.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
流水灯实验报告总结   电子信息工程学系实验报告   课程名称:单片机原理及接口   实验项目名称:实验2流水灯实验时间:XX-10-21班级:电信092姓名:蔡松亮学号:   一、实验目的:   进一步熟悉keil仿真软件、proteus仿真软件的使用。了解并熟悉单片机I/O口和LED灯的电路结构,学会构建简单的流水灯电路。掌握C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。   二、实验原理:   MCS-51系列单片机有四组8位并行I/O口,记作P0、P1、P2和P3。每组I/O口内部都有8位数据输入缓冲器、8位数据输出锁存器及数据输出驱动等电路。四组并行I/O端口即可以按字节操作,又可以按位操作。当系统没有扩展外部器件时,I/O端口用作双向输入输出口;当系统作外部扩展时,使用P0、P2口作系统地址和数据总线、P3口有第二功能,与MCS-51的内部功能器件配合使用。   以P1口为例,内部结构如下图所示:   图P1口的位结构   作输出时:输出0时,将0输出到内部总线上,在写锁存器信号控制下写入锁存器,锁存器的反向输出端输出1,下面的场效应管导通,输出引脚成低电平。输出1时,下面的场效应管截止,上面的上拉电阻使输出为1。作输入时:P1端口引脚信号通过一个输入三态缓冲器接入内部总线,再读引脚信号控制下,引脚电平出现在内部总线上。   I/O口的注意事项,如果单片机内部有程序存贮器,不需要扩展外部存贮器和I/O接口,单片机的四个口均可作I/O口使用;四个口在作输入口使用时,均应先对其写“1”,以避免误读;P0口作I/O口使   用时应外接10K的上拉电阻,其它口则可不必;P2可某几根线作地址使用时,剩下的线不能作I/O口线使用;P3口的某些口线作第二功能时,剩下的口线可以单独作I/O口线使用。   三、实验环境:   硬件:PC机,基本配置CPUPII以上,内存2G软件:keil2,Proteus   四、实验内容及过程:   1、用Proteus画流水灯电路图流程:   1)、运行Proteus仿真软件,单击pickfromlibraries,打开搜索元器件窗口,如图1所示:   图1打开搜索元器件窗口   2)、搜索添加元器件,如图2所示:   图2搜索添加元器件窗口   3)、添加元器 件,修改元器件的参数,绘制流水灯原理图,元器件参数为c1=c2=20pf、c3=10uf;   R1=R2=R3=R4=R5=R6=R7=R8=470欧姆、R9=10k欧姆;晶振=12M;VCC=5V。总电路图如图3所示:   图3流水灯电路原理图   2、用keil建项目流程:   1)、运行keil2软件,启动后,点击Project菜单新建项目,新建项目后,选择为AT89C51的仿真单片机的型号,单击File选择New新建程序文件,保存后,右击SourceGroup1添加入程序文件。   2)、编写程序,右击Target1打开设置输出HEX窗口,如图4所示:   图4打开设置输出HEX窗口   3)、设置输出HEX文件,勾选上Output下的CreateHEXFi:,单击确定保存,运行程序得到HEX文件,如图5所示:   图5设置输出HEX文件   3、实验内容:   1)、8个LED灯从最高位依次点亮,每次只亮一盏灯,依此循环。新建keil文件,编写程序,程序如下:   #include#include#defineuintunsignedint   #defineucharunsignedcharvoiddefay(uintz){   uintx,y;   for(x=100;x0;x--)for(y=z;y0;y--);}   uchartemp;voidmain(){   temp=0xfe;P2=temp;while(1)   {   temp=_crol_(temp,1);defay(500);P2=temp;   }}   2)、编写程序使8个LED灯从两边向中间循环点亮。   编写程序,程序如下:   uchartemp,m,n;   uinti;voidmain(){   m=0xfe;n=0x7f;while(1){   P2=mn;   m=_crol_(m,1);n=_cror_(n,1);if(m==0xef)   {   m=0xfe;n=0x7f;}}   3)、编写程序使用一根或二根I/O线接一开关控制流水灯流向。   编写程序,程序如下:   sbitp15=P1^5;voidmain(){temp=0xfe;   P2=temp;while(1)defay(500);}   {   if(p15==1){temp=_crol_(temp,1);   defay(500)

文档评论(0)

sanshengyuan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档