本帖最后由 EASON单飞518 于 2018-10-13 18:36 编辑
在写一个温度报警系统时,在准备写按键时开始拿了最简单的测试了下,发现按键没有反应
int main(void)
{
delay_init(); //延时函数初始化
uart_init(9600); //串口初始化为9600
LED_Init(); //初始化与LED连接的硬件接口
LCD_Init();
while(DS18B20_Init()) //DS18B20初始化
{
LCD_ShowString(60,130,200,16,16,"DS18B20 Error");
delay_ms(200);
LCD_Fill(60,130,239,130+16,WHITE);
delay_ms(200);
}
LCD_ShowString(60,130,200,16,16,"DS18B20 OK");
POINT_COLOR=BLUE;//设置字体为蓝 {MOD}
LCD_ShowString(60,150,200,16,16,"Temp: . C");
while(1)
{
scan();
}
}
//按键设置上下限函数
void scan()
{
LCD_ShowString(60,170,200,16,16,"UP:");
LCD_ShowString(60,190,200,16,16,"DOWN:");
LCD_ShowNum(60+40+10,170,a,2,16); //显示正数部分
LCD_ShowNum(60+40+10,190,b,2,16); //显示小数部分
//温度的读取
if(t%10==0)//每100ms读取一次
{
temperature=DS18B20_Get_Temp();
if(temperature<0)
{
LCD_ShowChar(60+40,150,'-',16,0); //显示负号
temperature=-temperature; //转为正数
}
else LCD_ShowChar(60+40,150,' ',16,0); //去掉负号
LCD_ShowNum(60+40+8,150,temperature/10,2,16); //显示正数部分
LCD_ShowNum(60+40+32,150,temperature%10,1,16); //显示小数部分
}
delay_ms(10);
t++;
//按键部分
key=KEY_Scan(0);
if(key==KEY0_PRES)
{
a++;
}
if(temperature<=(a*10)||temperature>=(b*10))
{
LED0=!LED0;
delay_ms(200);
}
}
key=KEY_Scan(0); if(key==KEY0_PRES)
{
a++;
}
按键设置加减是这块
一周热门 更多>