大家好,剛剛學習單片機,想制作一個檢測信號的設備,但是程序寫好后,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--);
}
|