資源簡介
STM32 TIM2+LCD1602定時鬧鐘設計,完整程序,可以設置時間與鬧鈴!!

代碼片段和文件信息
/*****************************************************************************
*??????????????通用定時器?TIM2?+?LCD1602?秒表實驗
*兩個按鍵中斷方式控制,計時精確到10ms
*key1--Start/Stop---PA8(板子上User鍵)??key2---Clear---PC13(板子上Tamper鍵)?
*LCD1602接線:D0~D7--->PD[0..7]?RS->PE0??RW->PE1??E->PE2(外部接上拉電阻到5V)?
*說明:TIM2?10ms定時,中斷內更新秒表參數;Syart/Stop鍵中斷優先級最高(可靠)
*by?追夢?2011-4-8
*change?by:追夢?2011-4-9??LCD1602有效引腳全部接到PD口
**連接:LCD1602----->?STM32
**??????D0~D7??------?PD[0..7]
**??????RS?????------?PD13
**??????RW?????------?PD14
**??????E??????------?PD15
**按鍵:PA8?--->EXTI8??中斷模式?下降沿觸發??(mode/clock鍵)
**??????PC13--->EXTI13?中斷模式?下降沿觸發??(add加1鍵)
**狀態轉換圖:??
**????-S0--------->S1------>S2------>S3------>S4------>S5-------->
??^正常顯示 調整年 ?調整月 ?調整日 ??調整時???調整分 ?|
**????| ?V
**?????<-------S10<--------S9<------S8<-------S7<------S6<-------?
**?????????調整鬧鈴分???調鬧鈴時 ?調鬧鈴日??調鬧鈴月 ?調鬧鈴年?
*****************************************************************************/
#include?“stm32f10x.h“
#include?“LCD1602.h“
#define??BEEP_OFF?GPIOB->BSRR=GPIO_Pin_5?//響鬧鈴
#define??BEEP_ON??GPIOB->BRR=GPIO_Pin_5??//關閉鬧鈴
uint32_t?year;?//年
uint32_t?yeard;//定時鬧鈴?年
uint16_t?monthdayhourminsec;//月,日,時,分,秒
uint16_t?monthddaydhourdmind;//定時?月,日,時,分
uint16_t?timeflag;?//500ms計時標志,為0時秒加1
uint16_t?funflag;??//功能狀態標志,0~
uint16_t?clockflag;//鬧鈴標志,為1時鬧鈴時間到
uint16_t?enableclock;//開啟或關閉鬧鈴
//日歷時間初始化
void?DateTime_Init(void)
{
year=2011;
month=4;
day=9;
hour=21;
min=40;
sec=10;
timeflag=0;
funflag=0;
enableclock=0;
}
//時鐘配置函數?72MHz??端口配置
void?RCC_Configuration()
{
RCC_PCLK2Config(RCC_HCLK_Div1);
RCC_PCLK1Config(RCC_HCLK_Div2); //fPCLK1=36MHz
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA?|?RCC_APB2Periph_GPIOB?|?RCC_APB2Periph_GPIOC|\
???????????????????RCC_APB2Periph_GPIOD?|?RCC_APB2Periph_GPIOEENABLE);
}
//延時n?us
void?delay_nus(unsigned?long?n)
{
unsigned?long?j;
while(n--)
{?j=8;
??while(j--);
}
}
//延時n?ms
void?delay_nms(unsigned?long?n)
{
while(n--)
???delay_nus(1100);
}
//GPIO配置函數
void?GPIO_Configuration(void)
{
??GPIO_InitTypeDef?GPIO_InitStructure;
??//LCD1602 ??PD口OD輸出
??GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_All;
??GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;
??GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_Out_OD;?
??GPIO_Init(GPIOD?&GPIO_InitStructure);
??//key?User?Button?->?PA8
??GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_8;
??GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_IN_FLOATING;?
??GPIO_Init(GPIOA?&GPIO_InitStructure);
??//key?Tamper?Button?->?PC13
??GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_13;
??GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_IN_FLOATING;?
??GPIO_Init(GPIOC?&GPIO_InitStructure);
??//PB5腳?蜂鳴器?高電平鳴響
??GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_5;
??GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_2MHz;
??GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_Out_PP;?
??GPIO_Init(GPIOB?&GPIO_InitStructure);
}
/*******************************************************************************
*名稱:?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????78811??2011-04-10?18:56??TIM2+LCD1602定時鬧鐘實驗\List\LCD1602.map
?????文件??????50857??2011-04-10?18:56??TIM2+LCD1602定時鬧鐘實驗\List\startup_stm32f10x_hd.lst
?????文件??????89769??2011-04-10?22:22??TIM2+LCD1602定時鬧鐘實驗\MDK_STM32\Jli
?????文件???????1191??2011-04-03?15:46??TIM2+LCD1602定時鬧鐘實驗\MDK_STM32\LCD1602.plg
????.......?????68903??2011-04-10?22:22??TIM2+LCD1602定時鬧鐘實驗\MDK_STM32\LCD1602.uvopt
?????文件??????16115??2011-04-09?21:14??TIM2+LCD1602定時鬧鐘實驗\MDK_STM32\LCD1602.uvproj
?????文件???????7669??2011-04-10?22:18??TIM2+LCD1602定時鬧鐘實驗\MDK_STM32\LCD1602_Target?1.dep
????.......?????68899??2011-04-10?18:56??TIM2+LCD1602定時鬧鐘實驗\MDK_STM32\LCD1602_uvopt.bak
?????文件??????16303??2011-04-09?21:13??TIM2+LCD1602定時鬧鐘實驗\MDK_STM32\LCD1602_uvproj.bak
?????文件?????????19??2011-04-03?22:09??TIM2+LCD1602定時鬧鐘實驗\Obj\ExtDll.iex
?????文件?????333804??2011-04-10?18:56??TIM2+LCD1602定時鬧鐘實驗\Obj\LCD1602.axf
?????文件?????258210??2011-04-10?18:56??TIM2+LCD1602定時鬧鐘實驗\Obj\lcd1602.crf
?????文件????????739??2011-04-10?18:56??TIM2+LCD1602定時鬧鐘實驗\Obj\lcd1602.d
?????文件??????79633??2011-04-10?18:56??TIM2+LCD1602定時鬧鐘實驗\Obj\LCD1602.htm
?????文件????????490??2011-04-10?18:56??TIM2+LCD1602定時鬧鐘實驗\Obj\LCD1602.lnp
?????文件?????278772??2011-04-10?18:56??TIM2+LCD1602定時鬧鐘實驗\Obj\lcd1602.o
?????文件???????1371??2011-04-10?22:22??TIM2+LCD1602定時鬧鐘實驗\Obj\LCD1602.plg
?????文件????????479??2011-04-03?15:43??TIM2+LCD1602定時鬧鐘實驗\Obj\LCD1602.sct
?????文件???????1634??2011-04-10?18:56??TIM2+LCD1602定時鬧鐘實驗\Obj\LCD1602.tra
?????文件?????256476??2011-04-10?18:56??TIM2+LCD1602定時鬧鐘實驗\Obj\main.crf
?????文件????????697??2011-04-10?18:56??TIM2+LCD1602定時鬧鐘實驗\Obj\main.d
?????文件?????272960??2011-04-10?18:56??TIM2+LCD1602定時鬧鐘實驗\Obj\main.o
?????文件?????252247??2011-04-10?18:56??TIM2+LCD1602定時鬧鐘實驗\Obj\misc.crf
?????文件????????715??2011-04-10?18:56??TIM2+LCD1602定時鬧鐘實驗\Obj\misc.d
?????文件?????266764??2011-04-10?18:56??TIM2+LCD1602定時鬧鐘實驗\Obj\misc.o
?????文件???????6208??2011-04-10?18:56??TIM2+LCD1602定時鬧鐘實驗\Obj\startup_stm32f10x_hd.o
?????文件?????252797??2011-04-10?18:56??TIM2+LCD1602定時鬧鐘實驗\Obj\stm32f10x_exti.crf
?????文件????????865??2011-04-10?18:56??TIM2+LCD1602定時鬧鐘實驗\Obj\stm32f10x_exti.d
?????文件?????267652??2011-04-10?18:56??TIM2+LCD1602定時鬧鐘實驗\Obj\stm32f10x_exti.o
?????文件?????255738??2011-04-10?18:56??TIM2+LCD1602定時鬧鐘實驗\Obj\stm32f10x_gpio.crf
............此處省略40個文件信息
- 上一篇:人機交互實驗報告
- 下一篇:STM32 實現SSL通訊
評論
共有 條評論