學(xué)了那么久的單片機(jī)了,一直想做一個(gè)綜合的應(yīng)用,正好家里缺個(gè)看時(shí)間的東東,我尋思就做個(gè) 萬年歷吧。
設(shè)計(jì)的功能有:時(shí)間顯示,日期顯示,溫顯示,整點(diǎn)報(bào)時(shí),設(shè)置鬧鐘。 
硬件上采用了 DS1302+DS18B20+四腳I2Coled+紅外接收器+蜂鳴器,主控是stm32f103rct6
Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
名稱
STM32f103核心板
DS1302
DS18B20
四腳I2Coled
有源蜂鳴器
紅外接收器
CR2032電池盒
IN4148
NPN型三極管
10K電阻
1K電阻
104獨(dú)石電容
32.768MHZ晶振
共陽七色LED
4.7K電阻
大體思路是DS18B20與 DS1302 分別提供溫度與時(shí)間數(shù)據(jù),BEEP讓鬧鐘響,oled屏就負(fù)責(zé)顯示。
新人第一次發(fā)帖,請(qǐng)各位大佬前輩們輕噴  ,部分程序來自網(wǎng)絡(luò),感謝大家共享的資料 #include "delay.h"
#include "sys.h"
#include "oled.h"
#include "bmp.h"
#include "show.h"
#include "beep.h"
void main()
{
ledinit();
BEEP_Init();
delay_init(); //延時(shí)函數(shù)初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí) LED_Init(); //LED端口初始化
OLED_Init(); //初始化OLED
OLED_Clear();
Ds1302Init();
Remote_Init();
while(1)
{
show();
delay_ms(20);
}
}
全部資料51hei下載地址:
32萬年歷.7z
(1.67 MB, 下載次數(shù): 669)
2019-4-8 21:43 上傳
點(diǎn)擊文件名下載附件
|