У меня есть встроенный системный проект, система контроля автомобиля, мы работаем на языке c на программе microC.Автомобильный монитор встроенный проект
Я решил написать часть детали, а затем проверить ее, моя идея - когда я нажимаю и отпускаю (switch0), автомобиль будет работать, и на экране ЖК-дисплея появится «питание», после чего я должен нажать переключатель1 для ремня безопасности.
Если переключатель1 = 1, то на нем будет отображаться «BF», иначе он перевернет «BO». Когда мы входим в switch0, он отключит POWER AND BO, потому что мы не нажимаем переключатель1. Однако даже когда я нажимаю переключатель1, он не будет отображаться BF, если я не нажму кнопку switch0 и switch1 вместе !!
Это мой код:
sbit LCD_RS at RA1_bit;
sbit LCD_RW at RA2_bit;
sbit LCD_EN at RA3_bit;
sbit LCD_D4 at RD4_bit;
sbit LCD_D5 at RD5_bit;
sbit LCD_D6 at RD6_bit;
sbit LCD_D7 at RD7_bit;
sbit LCD_RS_Direction at TRISA1_bit;
sbit LCD_RW_Direction at TRISA2_bit;
sbit LCD_EN_Direction at TRISA3_bit;
sbit LCD_D4_Direction at TRISD4_bit;
sbit LCD_D5_Direction at TRISD5_bit;
sbit LCD_D6_Direction at TRISD6_bit;
sbit LCD_D7_Direction at TRISD7_bit;
sbit LED0 at RC0_bit;
sbit LED1 at RC1_bit;
sbit Switch0 at RB0_bit;
sbit Switch1 at RB1_bit;
sbit Switch2 at RB2_bit;
sbit Switch3 at RB3_bit;
int Num;
void main() {
ADCON1 = 0X07; //a port as ordinary i/o.
TRISA = 0X00; //a port as output.
TRISD = 0X00; //d port as output.
TRISC = 0X00;
TRISB = 0X0F;
PORTC = 0b00000001;
Lcd_Init(); // Initialize LCD
Delay_ms(200);
Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Cmd(_LCD_CURSOR_OFF);
LED0 = 0;
LED1= 0;
do {
if (Switch0) // if switch (RB1) is pressed
{
Delay_ms(20); // pause 20 mS
while(Switch0); // Wait for release of the button
Delay_ms(10);
Lcd_Out(1, 7, "power");
if (Switch1)
{
Delay_ms(10); // pause 20 mS
while (Switch1); // Wait for release of the butto
Delay_ms(10);
Lcd_Out(2, 6, "BF");
LED0 = 0;
}
else
{
Delay_ms(20);
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(2,1,"BO");
LED0 = ~LED0;
}
}
} while(1);
}
Вы должны правильно отформатировать свой код и особенно уважать уровни вычета. Это наиболее важно для удобства чтения. Я сделал это для тебя. Сравните с вашим исходным кодом. –