|
做了一個(gè)stm32的萬(wàn)年歷,具有溫度顯示,鬧鐘設(shè)置,可以通過感光播放音樂。- #include "delay.h"
- #include "sys.h"
- #include "rtc.h"
- #include "oled.h"
- #include "bmp.h"
- #include "key.h"
- #include "adc.h"
- #include "ds18b20.h"
-
- u8 timetemp=0;
- u8 Naozhonghour=0;
- u8 Naozhongminite=0;
- u16 MenueSlect = 0;//0正常,1、2、3、4年4位設(shè)置,5月設(shè)置,
- //6日設(shè)置, 7時(shí)設(shè)置, 8分設(shè)置, 9秒復(fù)位設(shè)置
- //鬧鐘設(shè)置,10時(shí)設(shè)置, 11分設(shè)置, 12鬧鐘開關(guān)設(shè)置
- //感光元件設(shè)置:13感光設(shè)置
- u8 SetFalg = 0; //1為設(shè)置狀態(tài)
- u8 FirstFlag = 0;
- u8 NaozhongFlag = 0;//1為開狀態(tài)
- u8 GanguangFlag = 0;//1為開狀態(tài)
- u8 NaoxiangFlag = 0;
- u8 AllSetNumber = 0;
- //u8 Wendu = 0;
- short temperature = 0;
- u8 Bhour;
- u8 Bmin;
- u8 Bsec;
- //公歷日月年周
- u16 Bw_year;
- u8 Bw_month;
- u8 Bw_date;
- u8 Bweek;
- u16 Number = 1;
- u16 NumberBuf1 = 1;
- u16 NumberBuf2 = 10;
- u16 ActNumber = 0;
- u16 ActNumbertemp = 0;
- u16 ActNumber1[3] ;
- u8 ActNumberLoop = 0;
- u16 ActNumberBuf1;
- u16 ADBuf;
- u16 ADBuf1;
- u16 ADBuf2;
- u8 NumberBuff[3];
- float Xielv =1;
- float B =1;
- u8 CheckFalg = 0;//0正常模式,1設(shè)置步驟1,2設(shè)置步驟2
- u8 FaultFalg = 0;
- u8 FirstFalg = 0;
- u8 OKFalg = 0;
- void Set_All(void);
- void MokuaiInit(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能B端口時(shí)鐘
- GPIO_InitStructure.GPIO_Pin |= GPIO_Pin_9;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//速度50MHz
- GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化GPIOD3,6
- GPIO_SetBits(GPIOB,GPIO_Pin_9);
-
-
- //RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能B端口時(shí)鐘
- //GPIO_InitStructure.GPIO_Pin |= GPIO_Pin_5;
- //GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //
- //GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化GPIOD3,6
- }
- void HexToAsc1(uint8_t HexData,uint8_t *p)
- {
- p[0] = HexData % 10 | 0x30;
- }
- //數(shù)值轉(zhuǎn)換:3位HEX數(shù)(1字節(jié))和ASC碼轉(zhuǎn)換
- void HexToAsc3(uint16_t HexData,uint8_t *p)
- {
- p[0] = HexData / 100 ;
- p[1] = HexData % 100 / 10 ;
- p[2] = HexData % 10 ;
- }
- void KeyLedHandle(void) //鍵盤和LED處理
- {
- static u8 KeyTemp1; //按鍵值臨時(shí)緩存1
- static u8 KeyTemp2; //按鍵值臨時(shí)緩存2
- static u8 KeyCount;
- static u8 KeyValue;
- u8 tempge =0,tempshi=0,tempbai=0,tempqian=0;
- u16 temp;
-
-
-
-
- KeyTemp1 =KEY_Scan(0);
-
-
- if(KeyTemp1 !=0) //其它按鍵按下,計(jì)數(shù)為5,執(zhí)行相應(yīng)的按鍵操作
- {
- //Music=!Music;
- if(NaoxiangFlag == 1)
- {
- NaoxiangFlag = 0;
- Music_OFF;
-
-
- }
- switch(KeyTemp1)
- {
- case KEY_UP: //上+
- LED0=!LED0;
- if(SetFalg == 1)
- {
- AllSetNumber++;
- if(MenueSlect == 1)//年第一位設(shè)置
- {
-
- if(AllSetNumber >=3)
- {
- AllSetNumber = 1;
- }
- }
- else if((MenueSlect ==2)||(MenueSlect ==3)||(MenueSlect ==4)) //年第二三四位設(shè)置
- {
- if(AllSetNumber >=10)
- {
- AllSetNumber = 0;
- }
- }
- else if(MenueSlect == 5)//月設(shè)置
- {
- if(AllSetNumber >=13)
- {
- AllSetNumber = 1;
- }
- }
- else if(MenueSlect == 6)//日設(shè)置
- {
- if(AllSetNumber >=32)
- {
- AllSetNumber = 1;
- }
- }
- else if(MenueSlect == 7)//時(shí)設(shè)置
- {
- if(AllSetNumber >=24)
- {
- AllSetNumber = 0;
- }
- }
- else if(MenueSlect == 8)//分設(shè)置
- {
- if(AllSetNumber >=60)
- {
- AllSetNumber = 0;
- }
- }
- else if(MenueSlect ==9 )//秒復(fù)位
- {
- AllSetNumber = 0;
- }
- else if(MenueSlect == 10)//鬧鐘時(shí)設(shè)置
- {
- if(AllSetNumber >=24)
- {
- AllSetNumber = 0;
- }
- }
- else if(MenueSlect == 11)//鬧鐘分設(shè)置
- {
- if(AllSetNumber >=60)
- {
- AllSetNumber = 0;
- }
- }
- else if(MenueSlect == 12)//鬧鐘開關(guān)設(shè)置
- {
- if(NaozhongFlag == 0 )
- {
- NaozhongFlag = 1;//1為開狀態(tài)
- }
- else
- {
- NaozhongFlag = 0;//1為開狀態(tài)
- }
-
- }
- else if(MenueSlect == 13)//感光元件開關(guān)設(shè)置
- {
- if(GanguangFlag == 0)
- {
- GanguangFlag = 1;//1為開狀態(tài)
- }
- else
- {
- GanguangFlag = 0;//1為開狀態(tài)
- }
-
- }
- else
- {
- }
- }
-
- break;
- case KEY_DOWN: //下-
- LED0=!LED0;
- if(SetFalg == 1)
- {
-
- if(MenueSlect == 1)//年第一位設(shè)置
- {
- if(AllSetNumber ==1)
- {
- AllSetNumber = 2;
- }
- else
- {
- AllSetNumber--;
- }
- }
- else if((MenueSlect ==2)||(MenueSlect ==3)||(MenueSlect ==4)) //年第二三四位設(shè)置
- {
- if(AllSetNumber ==0)
- {
- AllSetNumber = 9;
- }
- else
- {
- AllSetNumber--;
- }
- }
- else if(MenueSlect == 5)//月設(shè)置
- {
- if(AllSetNumber ==1)
- {
- AllSetNumber = 12;
- }
- else
- {
- AllSetNumber--;
- }
- }
- else if(MenueSlect == 6)//日設(shè)置
- {
- if(AllSetNumber ==1)
- {
- AllSetNumber = 31;
- }
- else
- {
- AllSetNumber--;
- }
- }
- else if(MenueSlect == 7)//時(shí)設(shè)置
- {
- if(AllSetNumber == 0)
- {
- AllSetNumber = 23;
- }
- else
- {
- AllSetNumber--;
- }
- }
- else if(MenueSlect == 8)//分設(shè)置
- {
- if(AllSetNumber ==0)
- {
- AllSetNumber = 59;
- }
- else
- {
- AllSetNumber--;
- }
- }
- else if(MenueSlect ==9 )//秒復(fù)位
- {
- AllSetNumber = 0;
- }
- else if(MenueSlect == 10)//鬧鐘時(shí)設(shè)置
- {
- if(AllSetNumber ==0)
- {
- AllSetNumber = 23;
- }
- else
- {
- AllSetNumber--;
- }
- }
- else if(MenueSlect == 11)//鬧鐘分設(shè)置
- {
- if(AllSetNumber ==0)
- {
- AllSetNumber = 59;
- }
- else
- {
- AllSetNumber--;
- }
- }
- else if(MenueSlect == 12)//鬧鐘開關(guān)設(shè)置
- {
- if(NaozhongFlag == 0 )
- {
- NaozhongFlag = 1;//1為開狀態(tài)
- }
-
- else
- {
- NaozhongFlag = 0;//1為開狀態(tài)
- }
-
- }
- else if(MenueSlect == 13)//感光元件開關(guān)設(shè)置
- {
- if(GanguangFlag == 0)
- {
- GanguangFlag = 1;//1為開狀態(tài)
- }
- else
- {
- GanguangFlag = 0;//1為開狀態(tài)
- }
-
- }
- else
- {
- }
- }
-
- break;
- case KEY_LEFT: //左,菜單切換+
- LED0=!LED0;
- if(SetFalg == 1)
- {
-
- if(MenueSlect == 13)
- {
- MenueSlect = 1;
- }
- else
- {
- MenueSlect++;
- }
- if(MenueSlect == 1)
- {
- AllSetNumber = Bw_year/1000;
- }
- else if(MenueSlect == 2)
- {
- AllSetNumber = (Bw_year%1000)/100;
- }
- else if(MenueSlect == 3)
- {
-
- AllSetNumber = ((Bw_year%1000)%100)/10;
- }
- else if(MenueSlect == 4)
- {
- AllSetNumber = ((Bw_year%1000)%100)%10;
-
- }
- else if(MenueSlect == 5)
- {
- AllSetNumber = Bw_month;
- }
- else if(MenueSlect == 6)
- {
- AllSetNumber = Bw_date;
- }
- else if(MenueSlect == 7)
- {
- AllSetNumber = Bhour;
- }
- else if(MenueSlect == 8)
- {
- AllSetNumber = Bmin;
- }
- else if(MenueSlect == 9)
- {
- AllSetNumber = Bsec;
- }
- else if(MenueSlect == 10)
- {
- AllSetNumber = Naozhonghour;
- }
- else if(MenueSlect == 11)
- {
- AllSetNumber = Naozhongminite;
- }
- else if(MenueSlect == 12)
- {
- AllSetNumber = (Bw_year%1000)/100;
- }
- else if(MenueSlect == 13)
- {
- AllSetNumber = (Bw_year%1000)/100;
- }
-
-
-
-
- }
- break;
- case KEY_RIGHT: //右,菜單切換-
- LED0=!LED0;
- if(SetFalg == 1)
- {
- if(MenueSlect == 1)
- {
- MenueSlect = 13;
- }
- else
- {
- MenueSlect--;
- }
-
- if(MenueSlect == 1)
- {
- AllSetNumber = Bw_year/1000;
- }
- else if(MenueSlect == 2)
- {
- AllSetNumber = (Bw_year%1000)/100;
- }
- else if(MenueSlect == 3)
- {
-
- AllSetNumber = ((Bw_year%1000)%100)/10;
- }
- else if(MenueSlect == 4)
- {
- AllSetNumber = ((Bw_year%1000)%100)%10;
-
- }
- else if(MenueSlect == 5)
- {
- AllSetNumber = Bw_month;
- }
- else if(MenueSlect == 6)
- {
- AllSetNumber = Bw_date;
- }
- else if(MenueSlect == 7)
- {
- AllSetNumber = Bhour;
- }
- else if(MenueSlect == 8)
- {
- AllSetNumber = Bmin;
- }
- else if(MenueSlect == 9)
- {
- AllSetNumber = Bsec;
- }
- else if(MenueSlect == 10)
- {
- AllSetNumber = Naozhonghour;
- }
- else if(MenueSlect == 11)
- {
- AllSetNumber = Naozhongminite;
- }
- else if(MenueSlect == 12)
- {
- AllSetNumber = (Bw_year%1000)/100;
- }
- else if(MenueSlect == 13)
- {
- AllSetNumber = (Bw_year%1000)/100;
- }
-
- }
-
-
-
-
- break;
- case KEY_SURE: //確定
- LED0=!LED0;
- if(SetFalg ==0)//1為設(shè)置狀態(tài)
- {
- SetFalg = 1;
- FirstFlag = 1;
- MenueSlect = 1;
- Bw_year = calendar.w_year;
- AllSetNumber = Bw_year/1000;
-
- }
- else
- {
- SetFalg = 0;
- MenueSlect = 0;
- FirstFlag = 0;
- Set_All();
- }
- break;
- //case KEY_MENU: //菜單,設(shè)置ok
-
- // break;
- default:
- break;
-
- }
- }
-
-
- }
- void MainDisplay(void)
- {
- u8 t;
-
- //OLED_ShowPicture(0,0,128,8,BMP1);
- //delay_ms(500);
- OLED_Clear();
- //電(0) 子(1) 萬(wàn)(2) 年(3) 歷(4) 時(shí)(5) 間(6) 鬧(7) 鐘(8) 感(9) 光(10) 狀(11) 態(tài)(12) 開(13) 關(guān)(14)
-
-
- if(DS18B20_Init()) //DS18B20初始化
- {
- OLED_ShowString(16,16,"DS18B20 Error",16);//8*16
-
- //delay_ms(200);
- //OLED_Refresh();
- }
- else
- {
- OLED_ShowString(16,16,"DS18B20 OK",16);//8*16
- }
-
- //OLED_Clear();
- OLED_ShowChinese(0,1,0,16);//電
- OLED_ShowChinese(18,1,1,16);//子
- OLED_ShowChinese(36,1,2,16);//計(jì)
- OLED_ShowChinese(54,1,3,16);//萬(wàn)
- OLED_ShowChinese(72,1,4,16);//年
- //OLED_ShowChinese(90,1,5,16);//歷
-
- OLED_Refresh();
- delay_ms(60000);
- delay_ms(60000);
- delay_ms(60000);
- OLED_Clear();
-
-
- //OLED_ShowChinese(0,16,5,16);//時(shí)
- //OLED_ShowChinese(18,16,6,16);//間
- OLED_ShowChinese(26,16,15,16);//℃
-
- OLED_ShowChinese(0,32,7,16);//鬧
- OLED_ShowChinese(18,32,8,16);//鐘
- //OLED_ShowChinese(90,32,13,16);// 開
- //OLED_ShowChinese(90,32,14,16);//關(guān)
- OLED_ShowChinese(0,48,9,16);//感
- OLED_ShowChinese(18,48,10,16);//光
- OLED_ShowChinese(36,48,11,16);//狀
- OLED_ShowChinese(54,48,12,16);//態(tài)
- //OLED_ShowChinese(90,48,13,16);// 開
- //OLED_ShowChinese(90,48,14,16);//關(guān)
-
-
-
- //時(shí)間現(xiàn)實(shí)
- OLED_ShowString(2,0," - - ",12);//6*12
- OLED_ShowString(62,0,"Sunday ",12);
-
- OLED_ShowString(42,16," : : ",16);//8*16
-
- //鬧鐘顯示
- OLED_ShowString(42,32," : ",16);//8*16
-
-
-
- OLED_ShowNum(2,0,calendar.w_year,4,12);
- OLED_ShowNum(32,0,calendar.w_month,2,12);
- OLED_ShowNum(50,0,calendar.w_date,2,12);
- OLED_ShowNum(8,16,temperature/10,2,16); //顯示正數(shù)部分
- //OLED_ShowNum(0,16,Wendu,2,16); //8*16
- OLED_ShowNum(42,16,calendar.hour,2,16); //8*16
- OLED_ShowNum(66,16,calendar.min,2,16);
- OLED_ShowNum(90,16,calendar.sec,2,16);
-
-
- OLED_ShowNum(42,32,Naozhonghour,2,16); //8*16
- OLED_ShowNum(66,32,Naozhongminite,2,16);
-
- OLED_ShowChar(90,32,'N',16);//關(guān)
- OLED_ShowChar(90,48,'N',16);//關(guān)
- //OLED_ShowChar(90,32,"Y",16);//關(guān)
- //OLED_ShowChar(90,48,"Y",16);//關(guān)
-
- //OLED_ShowString(40,16,": 000",12);
- //OLED_ShowNum(40,16,Number,3,16);
- //OLED_ShowString(40,32,": 000",12);
- //OLED_ShowNum(40,32,ActNumber,3,16);
- //OLED_ShowString(0,48,"AD:0000",16);
- //OLED_ShowNum(24,48,ADBuf,4,16);
-
- /*OLED_ShowChar(48,48,t,16);//顯示ASCII字符
- t++;
- if(t>'~')t=' ';
- OLED_ShowNum(103,48,t,3,16);
- OLED_Refresh();
- delay_ms(500);
- OLED_Clear();
- OLED_ShowChinese(0,0,0,16); //16*16 中
- OLED_ShowChinese(16,0,0,24); //24*24 中
- OLED_ShowChinese(24,20,0,32);//32*32 中
- OLED_ShowChinese(64,0,0,64); //64*64 中
- OLED_Refresh();
- delay_ms(500);
- OLED_Clear();
- OLED_ShowString(0,0,"ABC",12);//6*12 “ABC”
- OLED_ShowString(0,12,"ABC",16);//8*16 “ABC”
- OLED_ShowString(0,28,"ABC",24);//12*24 “ABC”
- OLED_Refresh();
- delay_ms(500);
- OLED_ScrollDisplay(11,4);*/
- OLED_Refresh();
- delay_ms(500);
- }
- void FunDataRun(void)
- {
-
- //PBout(5)=!PBout(5);
- //}
- if(SetFalg == 1)
- {
-
- u8 tempge =0,tempshi=0,tempbai=0,tempqian=0;
- u16 temp;
- if(FirstFlag == 1)
- {
- FirstFlag = 0;
- Bw_year = calendar.w_year;
- Bw_month = calendar.w_month;
- Bw_date = calendar.w_date;
- Bhour = calendar.hour;
- Bmin = calendar.min;
- Bsec = calendar.sec;
-
- }
- OLED_ShowNum(2,0,Bw_year,4,12);
- OLED_ShowNum(32,0,Bw_month,2,12);
- OLED_ShowNum(50,0,Bw_date,2,12);
- OLED_ShowNum(42,16,Bhour,2,16); //8*16
- OLED_ShowNum(66,16,Bmin,2,16);
- OLED_ShowNum(90,16,Bsec,2,16);
- OLED_ShowNum(42,32,Naozhonghour,2,16); //8*16
- OLED_ShowNum(66,32,Naozhongminite,2,16);
- if(NaozhongFlag == 1)
- {
- OLED_ShowChar(90,32,'Y',16);//開
- }
- else
- {
- OLED_ShowChar(90,32,'N',16);//關(guān)
- }
- if(GanguangFlag == 1)
- {
- OLED_ShowChar(90,48,'Y',16);//
- }
- else
- {
- OLED_ShowChar(90,48,'N',16);//
- }
-
-
-
- tempqian = Bw_year/1000;
- tempbai = (Bw_year%1000)/100;
- tempshi = ((Bw_year%1000)%100)/10;
- tempge = ((Bw_year%1000)%100)%10;
-
- if(MenueSlect == 1)//年第一位設(shè)置
- {
-
- tempqian = AllSetNumber;
- OLED_ShowNumKong(2,0,tempqian,1,12);
-
- }
- else if(MenueSlect == 2) //年第二三四位設(shè)置
- {
- tempbai = AllSetNumber;
- OLED_ShowNumKong(8,0,tempbai,1,12);
- }
- else if(MenueSlect == 3) //年第二三四位設(shè)置
- {
- tempshi = AllSetNumber;
- OLED_ShowNumKong(14,0,tempshi,1,12);
- }
- else if(MenueSlect == 4) //年第二三四位設(shè)置
- {
- tempge = AllSetNumber;
- OLED_ShowNumKong(20,0,tempge,1,12);
- }
- else if(MenueSlect == 5)//月設(shè)置
- {
- Bw_month = AllSetNumber;
-
- OLED_ShowNumKong(32,0,Bw_month,2,12);
- }
- else if(MenueSlect == 6)//日設(shè)置
- {
- Bw_date = AllSetNumber;
-
- OLED_ShowNumKong(50,0,Bw_date,2,12);
- }
- else if(MenueSlect == 7)//時(shí)設(shè)置
- {
- Bhour = AllSetNumber;
- OLED_ShowNumKong(42,16,Bhour,2,16); //8*16
-
- }
- else if(MenueSlect == 8)//分設(shè)置
- {
- Bmin = AllSetNumber;
- OLED_ShowNumKong(66,16,Bmin,2,16);
-
- }
- else if(MenueSlect ==9 )//秒復(fù)位
- {
- Bsec = AllSetNumber;
- OLED_ShowNumKong(90,16,Bsec,2,16);
- }
- else if(MenueSlect == 10)//鬧鐘時(shí)設(shè)置
- {
- Naozhonghour = AllSetNumber;
-
- OLED_ShowNumKong(42,32,Naozhonghour,2,16); //8*16
- }
- else if(MenueSlect == 11)//鬧鐘分設(shè)置
- {
- Naozhongminite = AllSetNumber;
- OLED_ShowNumKong(66,32,Naozhongminite,2,16);
- }
- else if(MenueSlect == 12)//鬧鐘開關(guān)設(shè)置
- {
- if(NaozhongFlag == 1)
- {
- OLED_ShowCharKong(90,32,'Y',16);//開
- }
- else
- {
- OLED_ShowCharKong(90,32,'N',16);//關(guān)
- }
-
- }
- else if(MenueSlect == 13)//感光元件開關(guān)設(shè)置
- {
- if(GanguangFlag == 1)
- {
- OLED_ShowCharKong(90,48,'Y',16);//
- }
- else
- {
- OLED_ShowCharKong(90,48,'N',16);//
- }
-
- }
- else
- {
- }
-
- Bw_year = (tempqian*1000)+(tempbai*100)+(tempshi*10)+tempge;
- //OLED_ShowNum(0,48,AllSetNumber,1,16);
- //OLED_ShowNum(32,48,Bw_year,4,16);
- //RTC_Set(Bw_year,Bw_month,Bw_date,Bhour,Bmin,Bsec); //設(shè)置時(shí)間
- //RTC_Set(2023,3,3,3,3,3); //設(shè)置時(shí)間
-
- }
- else
- {
-
- //if (RTC_GetITStatus(RTC_IT_SEC) != RESET)//秒鐘中斷
- //if(SetFalg == 0)
- //{
- // RTC_ClearITPendingBit(RTC_IT_SEC|RTC_IT_OW); //清鬧鐘中斷
- RTC_Get();//更新時(shí)間
- //}
-
-
- //if(timetemp!=calendar.sec)
- //{
- //timetemp=calendar.sec;
- OLED_ShowNum(2,0,calendar.w_year,4,12);
- OLED_ShowNum(32,0,calendar.w_month,2,12);
- OLED_ShowNum(50,0,calendar.w_date,2,12);
-
- switch(calendar.week)
- {
- case 0:
- OLED_ShowString(62,0,"Sunday ",12);
- break;
- case 1:
- OLED_ShowString(62,0,"Monday ",12);
- break;
- case 2:
- OLED_ShowString(62,0,"Tuesday ",12);
- break;
- case 3:
- OLED_ShowString(62,0,"Wednesday",12);
- break;
- case 4:
- OLED_ShowString(62,0,"Thursday ",12);
- break;
- case 5:
- OLED_ShowString(62,0,"Friday ",12);
- break;
- case 6:
- OLED_ShowString(62,0,"Saturday ",12);
- break;
- }
- OLED_ShowNum(42,16,calendar.hour,2,16); //8*16
- OLED_ShowNum(66,16,calendar.min,2,16);
- OLED_ShowNum(90,16,calendar.sec,2,16);
- OLED_ShowNum(42,32,Naozhonghour,2,16); //8*16
- OLED_ShowNum(66,32,Naozhongminite,2,16);
- if(NaozhongFlag == 1)
- {
- OLED_ShowChar(90,32,'Y',16);//開
- if((calendar.hour == Naozhonghour)&&(calendar.min == Naozhongminite)&&(NaoxiangFlag == 0))
- {
- //if(NaoxiangFlag == 0)
- // {
- Music_ON;
- NaoxiangFlag = 1;
- //}
-
- }
- //else
- //{
- // NaoxiangFlag = 0;
- //}
- }
- else
- {
- OLED_ShowChar(90,32,'N',16);//關(guān)
- }
- if(GanguangFlag == 1)
- {
- OLED_ShowChar(90,48,'Y',16);//
- if(GanGuang == 0)
- {
- Music_ON;
- LED0=!LED0;
- }
- else if(NaoxiangFlag == 0)
- {
- Music_OFF;
- }
- }
- else
- {
- OLED_ShowChar(90,48,'N',16);//
- }
-
-
-
-
- }
-
- temperature=DS18B20_Get_Temp();
- if(temperature<0)
- {
- OLED_ShowChar(0,16,'-',16); //顯示負(fù)號(hào)
- temperature=-temperature; //轉(zhuǎn)為正數(shù)
- }else OLED_ShowChar(0,16,' ',16); //去掉負(fù)號(hào)
-
- OLED_ShowNum(8,16,temperature/10,2,16); //顯示正數(shù)部分
- //OLED_ShowNum(60+40+32,150,temperature%10,1,16); //顯示小數(shù)部分
-
-
-
-
-
- }
- void Naozhong_Set(void)
- {
- }
- void Set_All(void)
- {
- RTC_Set(Bw_year,Bw_month,Bw_date,Bhour,Bmin,Bsec); //設(shè)置時(shí)間
- Naozhong_Set();
-
- }
- void FunDataShow(void)
- {
- OLED_ShowNum(40,16,Number,3,16);
- OLED_ShowNum(40,32,ActNumber,3,16);
- OLED_ShowNum(24,48,ADBuf,4,16);
- }
- int main(void)
- {
-
- u8 t;
-
- delay_init();
- NVIC_Configuration(); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
- //usmart_dev.init(SystemCoreClock/1000000); //初始化USMART
- RTC_Init();
-
- //Adc_Init();
- OLED_Init();
- KEY_Init();
- MokuaiInit();
- OLED_ColorTurn(0);//0正常顯示,1 反色顯示
- OLED_DisplayTurn(0);//0正常顯示 1 屏幕翻轉(zhuǎn)顯示
-
- // OLED_DrawPoint(0,0);
- // OLED_DrawLine(20,0,50,60);
- // OLED_DrawCircle(64,32,20);
- OLED_Refresh();
- t=' ';
- LED_ON;
- //OLED_ShowString(72,0,"Sunday ",12);
- //OLED_Refresh();
-
- MainDisplay();
- while(1)
- {
- /*if(KEY_Scan(1) == KEY_UP)
- {
- OLED_ShowString(96,0,"HHH",16);//6*12
-
- }
- else
- {
- OLED_ShowString(96,0,"RRR",16);//6*12
- }
- OLED_ShowNum(0,16,KEY_Scan(1),1,16);
- OLED_ShowNum(16,16,KEY_Scan(1),1,16);
- OLED_ShowNum(32,16,KEY_Scan(1),1,16);
- OLED_ShowNum(48,16,KEY_Scan(1),1,16);
- OLED_ShowNum(64,16,KEY_Scan(1),1,16);
- OLED_ShowNum(80,16,KEY_Scan(1),1,16);*/
- /*if(FaultFalg == 0)
- {
- KeyLedHandle();
- }*/
- KeyLedHandle();
- //LinData();
- FunDataRun();
- //FunDataShow();
- OLED_Refresh();
-
-
- }
- }
復(fù)制代碼
|
-
-
軟件.7z
2020-3-3 13:23 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
223.6 KB, 下載次數(shù): 10, 下載積分: 黑幣 -5
軟件源碼
|