#include "led.h" #include "delay.h" #include "sys.h" #include "timer.h" #include "usart1.h" #include "LCD1602.h" #include "key.h" #include "exti.h" #include "string.h" #include "stdio.h"

u8 mode = 2;

void keyscan() { u8 key; key = KEY_Scan(0); if(key == 1) { mode = 1;

    LED1 = 0;
    LED2 = 1;
    LED3 = 1;

    CD4052_B = 0;//电容档
    CD4052_A = 0;

    LCD_Write_String(0,0,"   MEASURE Cx   ");
    LCD_Write_String(0,1,"    00000.0pF   ");
}
if(key == 2)
{
    mode = 2;

    LED1 = 1;
    LED2 = 0;
    LED3 = 1;

    CD4052_B = 0;//电阻档
    CD4052_A = 1;

    LCD_Write_String(0,0,"   MEASURE Rx   ");
    LCD_Write_String(0,1,"   0000.000K    ");
}
if(key == 3)
{
    mode = 3;

    LED1 = 1;
    LED2 = 1;
    LED3 = 0;

    CD4052_B = 1;//电感档
    CD4052_A = 0;

    LCD_Write_String(0,0,"   MEASURE Lx   ");
    LCD_Write_String(0,1,"    000000uH    ");
}

}

extern unsigned long RX2; extern float CZ; extern float LZ;

int main(void) { unsigned int count;

delay_init();        //延时函数初始化
NVIC_Configuration();     //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
delay_ms(300);
KEY_Init();
LED_Init();
CD4052_Init();
LCD_Init();          // 1602初始化
EXTIX_Init();
CD4052_B = 0;//电阻档
CD4052_A = 1;
LED1 = 1;
LED2 = 0;
LED3 = 1;
LCD_Write_String(0,0,"   MEASURE Rx   ");
LCD_Write_String(0,1,"   0000.000K    ");
TIM2_Int_Init(999,7199);  //定时器初始化,定时100MS

while(1)
{
    keyscan();
    if(count++ > 100)
    {
        if(mode == 1)//显示电容值
        {
            LCD_Write_Char(4,1,(long)CZ/100000+'0');
            LCD_Write_Char(5,1,(long)CZ%100000/10000+'0');
            LCD_Write_Char(6,1,(long)CZ%10000/1000+'0');
            LCD_Write_Char(7,1,(long)CZ%1000/100+'0');
            LCD_Write_Char(8,1,(long)CZ%100/10+'0');
            LCD_Write_Char(10,1,(long)CZ%10+'0');
        }
        if(mode == 2)//显示电阻值
        {
            LCD_Write_Char(3,1,RX2/1000000+'0');
            LCD_Write_Char(4,1,RX2%1000000/100000+'0');
            LCD_Write_Char(5,1,RX2%100000/10000+'0');
            LCD_Write_Char(6,1,RX2%10000/1000+'0');
            LCD_Write_Char(8,1,RX2%1000/100+'0');
            LCD_Write_Char(9,1,RX2%100/10+'0');
            LCD_Write_Char(10,1,RX2%10+'0');
        }
        if(mode == 3)//显示电感值
        {
            LCD_Write_Char(4,1,(long)LZ/100000+'0');
            LCD_Write_Char(5,1,(long)LZ%100000/10000+'0');
            LCD_Write_Char(6,1,(long)LZ%10000/1000+'0');
            LCD_Write_Char(7,1,(long)LZ%1000/100+'0');
            LCD_Write_Char(8,1,(long)LZ%100/10+'0');
            LCD_Write_Char(9,1,(long)LZ%10+'0');
        }
    }
    delay_ms(1);
}
改写这段程序;#include ledh#include delayh#include sysh#include timerh#include usart1h#include LCD1602h#include keyh#include extih#include stringh#include stdiohu8 mode = 2;void keyscan		u8 key;	 key = KEY_

原文地址: https://www.cveoy.top/t/topic/iuKZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录