51单片机流水灯51单片机流水灯.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
51单片机流水灯51单片机流水灯

实验一 流水灯实验 一、实验目的 简单I/O引脚的输出 掌握软件延时编程方法 简单按键输入捕获判断 二、实验实现的功能 开机是点亮12发光二极管,闪烁三下 按照顺时针循环依次点亮发光二极管 通过按键将发光二极管的显示改为顺逆时针方式,模式1,模式2. 三、系统硬件设计 四、系统软件设计 #includestc10.h #includeintrins.h #define uchar unsigned char #define uint unsigned int #define N 300 sbit P36=P3^6; sbit P37=P3^7; //模式2显示代码 uchar code tab[]={0XFD,0X3F,0XFA,0X3F,0XF7,0X1F, 0XEF,0X2F,0XDF,0X37,0XBF,0X3B,0X7F,0X3F}; void delay(uint x) //延时函数 { uchar i; while(x--) { for(i=0;i120;i++); } } uchar scan_key()//按键扫描程序 { uchar i,m,k=0; P36=0;P37=1; for(i=0;i2;i++) { delay(N); m=P0; switch(m0xe0) { case 0xc0: k=i*3+1; return k; break; case 0xa0: k=i*3+2; return k; break; case 0x60: k=i*3+3; return k; break; } P36=1;P37=0; } } void shun() //顺时针转 { int a,b,i,k; a=0x01; b=0x04; for(i=0;i8;i++) { P2=~a; a=1; delay(N); k=scan_key(); if(k==1||k==2||k==3) { P2=0XFF;P3=0X3F;break;} } P2=0XFF; for(i=0;i4;i++) { P3=~b; b=1; delay(N); k=scan_key(); if(k==1||k==2||k==3) { P2=0XFF;P3=0X3F;break;} } P3=0Xbf; } void ni() //逆时针转 { int a,b,i,k; while(1) { a=0x80; b=0x20; for(i=0;i4;i++) { P3=~b; b=1; delay(N); } P3=0XbF; k=scan_key(); if(k==1) //按键1按下时推迟逆时针 { P2=0XFF;P3=0X3F;delay(N);break;} for(i=0;i8;i++) { P2=~a; a=1; delay(N); } P2=0XFF; k=scan_key(); if(k==1) { P2=0XFF;P3=0X3F;delay(N);break;} } } void model_1() //模式1,同色灯依次点亮 { uchar k; while(1) { P2=0XB6; P3=0Xb7; delay(2N); k=scan_key(); if(k==2) //按键2按下时推出模式1 { P2=0XFF;P3=0X3F;delay(N);break;} P2=0X6D; P3=0XaF; delay(2N); k=scan_key(); if(k==2) { P2=0XFF;P3=0X3F;delay(N);break;} P2=0XDB; P3=0X9B; delay(2

您可能关注的文档

文档评论(0)

pkaokqunw + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档