永发信息网

求助51单片机流水灯程序

答案:1  悬赏:70  手机版
解决时间 2021-02-09 22:47
求助51单片机流水灯程序
最佳答案
第4题
89S51 单片机的P1 口接有 8个 LED,当某一端口输出为“0”时,相应的 LED 点亮,P3.2、P3.3、P3.4、P3.5 分别接有四个按钮 K1~K4,按下按钮时,相应引脚被接地。现要求编写可键控的流水灯程序,当 K1 按下时,开始流动,K2 按下时停止流动,全部灯灭,K3 使灯由上往下流动,K4 使灯由下往上流动。
#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
void mDelay(unsigned int DelayTime)
{ unsigned int j=0;
for(;DelayTime>0;DelayTime--)
{ for(j=0;j<125;j++)
{;} }}
uchar Key()
{ uchar KeyV;
uchar tmp;
P1=P1|0x3c; //四个按键所接位置
KeyV=P1;
if((KeyV|0xc3)==0xff) //无键按下
return(0);
mDelay(10); //延时,去键抖
KeyV=P1;
if((KeyV|0xc3)==0xff)
return(0);
else
{ for(;;){ tmp=P1;
if((tmp|0xc3)==0xff)
break;}
return(KeyV);}}

void main()
{ unsigned char OutData=0xfe;
bit UpDown=0;
bit Start=0;
uchar KValue;
for(;;)
{ KValue=Key();
switch (KValue)
{ case 0xfb: //P3.2=0,Start
{ Start=1;
break; }
case 0xf7: //P3.3=0,Stop
{ Start=0;
break; }
case 0xef: //P3.4=0 Up
{ UpDown=1;
break; }
case 0xdf: //P3.5=0 Down
{ UpDown=0;
break; }
}
if(Start)
{ if(UpDown)
OutData=_crol_(OutData,1);
else
OutData=_cror_(OutData,1); P2=OutData;
}
else
P2=0xff; //否则灯全灭
mDelay(1000);
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
羽绒服跑毛怎么办?
等风来客栈(随州随县)怎么去啊,我要去那办事
食语·贝斯特开发区店在什么地方啊,我要过去
FOB条款,发货人有权修改提单收货人吗?
女生,长发,高马尾,然后头发特别有层次感,
建设银行能不能打钱到中国银行的账户
君安商务宾馆(随州随县)地址有知道的么?有点
【白雪却】白雪却嫌春色晚,故穿庭树作飞花的
金泰嘉华宾馆在什么地方啊,我要过去处理事情
日本东发船挂机4冲程6马力多少钱
朝阳宾馆(随州随县)地址好找么,我有些事要过
脸颊瘦会不会显得嘴很长
招商银行信用卡工作人员会现场确认么而且是晚
求一篇英语登机流程的演讲不要太长七八十个单
欲情故纵一般持续多久时间恰当好处呢?就是我
推荐资讯
地壳上层的岩石是?A玄武石B流纹石C花岗岩D辉
焦作市龙源湖转盘有多大?
不知道女生打拳击手臂会不会变粗
光纤网线自燃是怎么回事
花江狗肉馆在什么地方啊,我要过去处理事情
广联达中定义是什么意思
伊藤加奈子的资料
开源酒店(部汪段)地址在什么地方,想过去办事
低学历怎么就业,待遇怎么样?
对胎儿体质的形成起关键作用的是A.年龄因素B.
四通水电暖公司在哪里啊,我有事要去这个地方
我的是华为荣耀3C的手机一直在充电就是充不进
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?