Protues仿真电路图
部分代码:
1.主函数代码
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "rtc.h"
#include "key.h"
#include "oled.h"
#include "ds18b20.h"
#include "beep.h"
int main(void)
{
// u8 Menu=0;
u8 key=0;
delay_init(); //ÑÓʱ³õʼ»¯
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //ÖжϷÖ×éÅäÖÃ
//uart_init(115200); //´®¿Ú²¨ÌØÂÊÉèÖÃ
LED_Init(); //LED³õʼ»¯
RTC_Init(); //RTCʱÖÓ³õʼ»¯
KEY_Init(); //°´¼ü³õʼ»¯
BEEP_Init(); //·äÃùÆ÷³õʼ»¯
OLED_Init(); //OLEDÆÁÄ»³õʼ»¯
OLED_ColorTurn(0);//0Õý³£ÏÔʾ£¬1 ·´É«ÏÔʾ
OLED_DisplayTurn(0);//0Õý³£ÏÔʾ 1 ÆÁÄ»·×ªÏÔʾ
while(DS18B20_Init()) //DS18B20³õʼ»¯
{
OLED_ShowString(10,2,"DS18B20 Error",24);
OLED_Refresh();
delay_ms(200);
}
OLED_Clear();
LED0=1;
BEEP=1;
delay_ms(200);
BEEP=0;
delay_ms(200);
while(1)
{
Show_Time();
Show_Tem();
OLED_Refresh();
if(Alr_Sta==2)
{
BEEP=1;
delay_ms(200);
BEEP=0;
delay_ms(200);
}
if((alrcalendar.alrhour==calendar.hour)&&(alrcalendar.alrmin==calendar.min)&&(alrcalendar.alrsec==calendar.sec))
{
Alr_Sta=2;
}
key=KEY_Scan(0); //µÃµ½¼üÖµ
if(key)
{
switch(key)
{
case KEY_ADD_PRES: //ÄÖÖÓÉèÖÃ
OLED_Clear();
Key_Alr_Set();
break;
case KEY_RIGHT_PRES:
Alr_Sta=0;
break;
case KEY_SET_PRES: //ʱ¼äÉèÖÃ
OLED_Clear();
Key_Set();
break;
}
}else delay_ms(20);
}
}
该工程详细代码与资料上传到了博客,可以下载