- void LCD_DisplayDataUpdate(void)
- {
- static u32 TemValue1,RhValue1;
- t++;
- if(t<15)
- {
- TemValue1 = TemValue*100;
- LCD_DisplayNumber1(0, ' ', 0);
- LCD_DisplayNumber1(1, ' ', 0);
- LCD_DisplayNumber1(2, '0' + ((TemValue1 / 1000) % 10), 0);
- LCD_DisplayNumber1(3, '0' + ((TemValue1 / 100 ) % 10), 1);
- LCD_DisplayNumber1(4, '0' + ((TemValue1 / 10 ) % 10), 0);
- LCD_DisplayNumber1(5, '0' + ((TemValue1 / 1 ) % 10), 0);
- LCD_DisplayUnit(4,1);
- LCD_DisplayNumber2(0, ' ', 0);
- }
- else if(t<30)
- {
- RhValue1 = RhValue*100;
- LCD_DisplayNumber1(0, 'H', 0);
- LCD_DisplayNumber1(1, ' ', 0);
- LCD_DisplayNumber1(2, '0' + ((RhValue1 / 1000) % 10), 0);
- LCD_DisplayNumber1(3, '0' + ((RhValue1 / 100 ) % 10), 1);
- LCD_DisplayNumber1(4, '0' + ((RhValue1 / 10 ) % 10), 0);
- LCD_DisplayNumber1(5, '0' + ((RhValue1 / 1 ) % 10), 0);
- LCD_DisplayUnit(4,0);
- LCD_DisplayNumber2(0, ' ', 0);
- }
- else
- {
- t=0;
- }
- }
- void LCD_Show_Heating_Temp(uint8_t temp)
- {
- LCD_DisplayNumber1(0, ' ', 0);
- LCD_DisplayNumber1(1, 'H', 0);
- LCD_DisplayNumber1(2, '-', 0);
- LCD_DisplayNumber1(3, '0' + ((temp / 10 ) % 10), 0);
- LCD_DisplayNumber1(4, '0' + ((temp / 1 ) % 10), 0);
- LCD_DisplayNumber1(5, 'C', 0);
- LCD_DisplayUnit(4,0);
- }
- void LCD_Show_Refrigeration_Temp(uint8_t temp)
- {
- LCD_DisplayNumber1(0, ' ', 0);
- LCD_DisplayNumber1(1, 'C', 0);
- LCD_DisplayNumber1(2, '-', 0);
- LCD_DisplayNumber1(3, '0' + ((temp / 10 ) % 10), 0);
- LCD_DisplayNumber1(4, '0' + ((temp / 1 ) % 10), 0);
- LCD_DisplayNumber1(5, 'C', 0);
- LCD_DisplayUnit(4,0);
- }
- void LCD_Show_Wind_Speed(uint8_t Wind_Speed)
- {
- switch(Wind_Speed)
- {
- case 0: //自动
- {
- LCD_DisplayNumber2(0, 'A', 0);
- break;
- }
- case 1: //低速
- {
- LCD_DisplayNumber2(0, 'L', 0);
- break;
- }
- case 2://中速
- {
- LCD_DisplayNumber2(0, 'I', 0);
- break;
- }
- case 3://高速
- {
- LCD_DisplayNumber2(0, 'H', 0);
- break;
- }
- }
- }
这里面我用了好几个函数封装了要显示的内容,首先传感器显示数据,保留了两位小数,同时对于其温湿度采用了不同的显示方法,温度由于其段码上有一个字符,所以直接显示字符就行了,湿度我用了最开头一个数码管进行显示H。然后包括后面显示风俗也是一样,用数码管拼凑字母。紧接着的是显示制冷制热模式下的温度。
之后是红外,这个在上篇中说了,产生38Khz方波,然后进行编码。
按键的话只能用前面三个进行测试,最后的和段码屏冲突了,所以我们未使用,不过我们可以用组合按键方式进行新增功能。
所以整个功能就做了5个,分别是制冷制热模式切换,风速大小切换,以及显示温湿度传感器数据,关闭空调。
空调控制还需要进行调温,这个是最主要的功能,调温的话我是采用了上面的滑动变阻器,然后其是接入到了ADC功能里面的,我们把ADC采集数据进行平均,然后就能完成温度调节了。
我把其采集到的值进行了等分,然后只需要除去这个数即可。