该程序是在stm32开发板上实现功能的,DS18B20获取温度通过屏幕显示和串口打印出来,通过K_UP按键选择修改时间的哪个参数各自对应D1~D7指示灯亮,通过K_LEFT和K_DOWM改变数字的加减。
实物图:
stm32单片机源程序如下:
- #include "system.h"
- #include "SysTick.h"
- #include "led.h"
- #include "usart.h"
- #include "rtc.h"
- #include "tftlcd.h"
- #include "key.h"
- #include "exti.h"
- #include "DS18B20.h"
- /*******************************************************************************
- * 函 数 名 : main
- * 函数功能 : 主函数
- * 输 入 : 无
- * 输 出 : 无
- *******************************************************************************/
- int main()
- {
- u8 i=0;
- float temper;
- u8 temper_buf[6];
- int temper1;
-
- SysTick_Init(72);
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中断优先级分组 分2组
- LED_Init();
- USART1_Init(9600);
- RTC_Init();
- TFTLCD_Init();
- LED_Init();
- KEY_Init();
- My_EXTI_Init();
- DS18B20_Init();
-
- FRONT_COLOR=YELLOW;
-
- LCD_ShowFontHZ(10,120,"当前温度为");
- LCD_ShowFontHZ(80,150,"℃");
-
- while(1)
- {
- i++;
- if(i%5==0)
- {
- temper=DS18B20_GetTemperture();
- temper1=temper*100;
- temper_buf[0]=temper1/10000+0x30;
- temper_buf[1]=temper1%10000/1000+0x30;
- temper_buf[2]=temper1%1000/100+0x30;
- temper_buf[3]='.';
- temper_buf[4]=temper1%100/10+0x30;
- temper_buf[5]=temper1%10+0x30;
- LCD_ShowString(10,150,tftlcd_data.width,tftlcd_data.height,24,(u8 *)temper_buf);
- }
- if(i%20==0)
- {
- led1=!led1;
- }
- delay_ms(10);
- }
- }
复制代码
所有资料51hei提供下载:
可调时钟加温度显示.rar
(327.7 KB, 下载次数: 45)
|