求一单片机程序。AT89C51的,要求一直检测A口如果输入高电平,B口输出高电平,
A口输入低电平B口也输出低电平,C口只有在B口输出由高电平变为输出低电平之后输出一段时间的高电平,也就是延时一段时间后变为低电平。...
A口输入低电平B口也输出低电平,C口只有在B口输出由高电平变为输出低电平之后输出一段时间的高电平,也就是延时一段时间后变为低电平。
展开
展开全部
sbit A=P1^0;
sbit B=P0^0;
sbit C=P0^1;
if(A == 0)/培基/如果A输入低神渣
B = 0; //则B输出低
else
B = 1;
if(B == 0)
{
C = 1;
delay; //延时游中悄,
C = 0;
}
sbit B=P0^0;
sbit C=P0^1;
if(A == 0)/培基/如果A输入低神渣
B = 0; //则B输出低
else
B = 1;
if(B == 0)
{
C = 1;
delay; //延时游中悄,
C = 0;
}
追问
能写全么
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是很简单的,但89C51哪有A口和B口?用什么语言?延时多长时间?
更多追问追答
追问
AB口自己随便设,比如P1.0为A口,P0.0为B口,P0.1为C口。延时也可以随便比如30分钟这我自己会改。用汇编或者C语言都可以
追答
#include
#define uchar unsigned char
#define uint unsigned int
void Delay1ms(uint i) //1ms延时程序
{
uint j;
for(;i>0;i--)
{
for(j=0;j<125;j++)
{;}
}
}
void main(void)
{
P0=0XFF;
while(1)
{
if(P0^0==0) P0^1=0;
else P0^1=1;
if(P0^1==0)
{
P0^2=1;
Delay1ms(100) ;
P0^2=0;
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询