欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
STM32單片機萬年歷程序 采用定時器做計時
[打印本頁]
作者:
鶴先生
時間:
2022-3-30 16:39
標題:
STM32單片機萬年歷程序 采用定時器做計時
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "lcd.h"
#include "ds18b20.h"
#include "rtc.h"
#include "spi.h"
#define size 10//數組大小
#define N 4//滑動平均濾波計算平均值時所取的點數
void Smooth(float data[]);
float temprature;
int sum;
int main(void)
{
u8 t=0,count=0;
short temperature;
unsigned int t1,i;
unsigned char c;
unsigned char flag;
int xx;
/* 配置系統時鐘為72M */
SystemInit();
delay_init(); //延時函數初始化
// NVIC_Configuration();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 設置中斷優先級分組2
uart_init(9600); //串口初始化為9600
LED_Init(); //初始化與LED連接的硬件接口
RTC_Init();
LCD_Init();
/* MAX6675 SPI 接口初始化 */
SPI_MAX6675_Init();
POINT_COLOR=BLUE;//設置字體為藍色
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,150,200,16,16,"Temp: . C");
while(1)
{
if(t%10==0)//每100ms讀取一次
{
POINT_COLOR=BLUE;//設置字體為藍色
temperature=DS18B20_Get_Temp();
// printf("%d",&temperature);
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); //顯示小數部分
MAX6675_CSL();
c = MAX6675_ReadByte();
i = c;
i = i<<8;
c = MAX6675_ReadByte();
MAX6675_CSH();
i = i|((unsigned int)c); //i是讀出來的原始數據
flag = i&0x04; //flag保存了熱電偶的連接狀態
t1 = i<<1;
t1 = t1>>4;
temprature = t1*0.25;
for(i=0;i<0x2fffff;i++)
; //max6675的轉換時間是0.2秒左右,所以兩次轉換間隔不要太近
for (count=0;count<N;count++)
{
sum+=(temprature*10);
delay_ms(10);
}
xx=sum/N;
LCD_ShowString(60,200,200,16,16,"Temp: . C");
LCD_ShowNum(60+40+8,200,xx/10,2,16); //顯示正數部分
LCD_ShowNum(60+40+32,200,xx%10,1,16); //顯示小數部分
POINT_COLOR=RED;//設置字體為紅色
LCD_ShowNum(60,50,RealTime.year,4,16); //顯示年部分
LCD_ShowChar(95,50,'Y',16,0); //顯示Y
LCD_ShowNum(110,50,RealTime.mon,2,16); //顯示月部分
LCD_ShowChar(130,50,'M',16,0); //顯示M
LCD_ShowNum(145,50,RealTime.date,2,16); //顯示日部分
LCD_ShowChar(165,50,'D',16,0); //顯示D
LCD_ShowNum(60,70,RealTime.hour,4,16); //顯示時部分
LCD_ShowChar(95,70,'H',16,0); //顯示H
LCD_ShowNum(110,70,RealTime.min,2,16); //顯示分部分
LCD_ShowChar(130,70,'M',16,0); //顯示M
LCD_ShowNum(145,70,RealTime.sec,2,16); //顯示秒部分
LCD_ShowChar(165,70,'S',16,0); //顯示S
switch(RealTime.week)
{
case 0:
LCD_ShowString(80,100,200,24,24,"Sunday");//星期
break;
case 1:
LCD_ShowString(80,100,200,24,24,"Monday");//星期
break;
case 2:
LCD_ShowString(80,100,200,24,24,"Tuesday");//星期
break;
case 3:
LCD_ShowString(80,100,200,24,24,"Wednesday");//星期
break;
case 4:
LCD_ShowString(80,100,200,24,24,"Thursday");//星期
break;
case 5:
LCD_ShowString(80,100,200,24,24,"Friday");//星期
break;
case 6:
LCD_ShowString(80,100,200,24,24,"Saturday");//星期
break;
default:
break;
}
}
delay_ms(10);
t++;
if(t==20)
{
t=0;
LED0=!LED0;
}
}
}
復制代碼
Keil代碼下載:
代碼.7z
(234.21 KB, 下載次數: 29)
2022-3-31 02:48 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1