大家好,刚刚学习单片机,想制作一个检测信号的设备,但是程序写好后,led5灯不亮。只写了一小部分程序进行验证。请各位大神帮忙看看程序哪里有问题。谢谢啦。(正在上班,刚刚接触单片机)
#include <reg51.h>
#include <stdio.h>
#define uint unsigned int
#define uchar unsigned char
sbit k1=P1^0; //合闸信号(常开)
sbit k2=P1^1; //分闸信号(常闭)
sbit k3=P1^2; //合闸信号(常开)
sbit k4=P1^3; //分闸信号(常闭)
sbit k5=P1^4; //合闸信号(常开)
sbit k6=P1^5; //分闸信号(常闭)
sbit k7=P1^6; //储能信号(常开)
sbit k8=P1^7; //储能信号(常闭)
sbit k9=P2^0; //分闸测试按钮
sbit k10=P2^1; //合闸测试按钮
sbit K11=P2^2; //储能测试按钮
sbit led1=P0^0; //分闸测试合格,灯亮;绿色
sbit led2=P0^1; //合闸测试合格,灯亮;黄色
sbit led3=P0^2; //储能测试合格,灯亮;蓝色
sbit led4=P0^3; //信号错误指示灯。分闸不合格,led1灭,led4亮。合闸不合格,led2灭,led4亮。储能同上
sbit led5=P0^4; //分闸测试功能指示灯
sbit led6=P0^5; //合闸测试功能指示灯
sbit led7=P0^6; //储能测试功能指示灯
void delayms(uint);
void jianpan();
void main()
{
while(1)
{
jianpan();
}
}
void jianpan()
{
if(k9==0)
{
delayms(10);
if(k9==0)
{
led5=~led5;
while(!k9);
}
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
|