STM32 TIM2+LCD1602定时闹钟设计,完整程序,可以设置时间与闹铃!!
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 78811 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验ListLCD1602.map
文件 50857 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Liststartup_stm32f10x_hd.lst
文件 89769 2011-04-10 22:22 TIM2+LCD1602定时闹钟实验MDK_STM32JlinkLog.txt
文件 1191 2011-04-03 15:46 TIM2+LCD1602定时闹钟实验MDK_STM32LCD1602.plg
....... 68903 2011-04-10 22:22 TIM2+LCD1602定时闹钟实验MDK_STM32LCD1602.uvopt
文件 16115 2011-04-09 21:14 TIM2+LCD1602定时闹钟实验MDK_STM32LCD1602.uvproj
文件 7669 2011-04-10 22:18 TIM2+LCD1602定时闹钟实验MDK_STM32LCD1602_Target 1.dep
....... 68899 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验MDK_STM32LCD1602_uvopt.bak
文件 16303 2011-04-09 21:13 TIM2+LCD1602定时闹钟实验MDK_STM32LCD1602_uvproj.bak
文件 19 2011-04-03 22:09 TIM2+LCD1602定时闹钟实验ObjExtDll.iex
文件 333804 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验ObjLCD1602.axf
文件 258210 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objlcd1602.crf
文件 739 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objlcd1602.d
文件 79633 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验ObjLCD1602.htm
文件 490 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验ObjLCD1602.lnp
文件 278772 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objlcd1602.o
文件 1371 2011-04-10 22:22 TIM2+LCD1602定时闹钟实验ObjLCD1602.plg
文件 479 2011-04-03 15:43 TIM2+LCD1602定时闹钟实验ObjLCD1602.sct
文件 1634 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验ObjLCD1602.tra
文件 256476 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objmain.crf
文件 697 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objmain.d
文件 272960 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objmain.o
文件 252247 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objmisc.crf
文件 715 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objmisc.d
文件 266764 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objmisc.o
文件 6208 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objstartup_stm32f10x_hd.o
文件 252797 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objstm32f10x_exti.crf
文件 865 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objstm32f10x_exti.d
文件 267652 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objstm32f10x_exti.o
文件 255738 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objstm32f10x_gpio.crf
............此处省略40个文件信息
/*****************************************************************************
* 通用定时器 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定时闹钟实验ListLCD1602.map
文件 50857 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Liststartup_stm32f10x_hd.lst
文件 89769 2011-04-10 22:22 TIM2+LCD1602定时闹钟实验MDK_STM32Jli
文件 1191 2011-04-03 15:46 TIM2+LCD1602定时闹钟实验MDK_STM32LCD1602.plg
....... 68903 2011-04-10 22:22 TIM2+LCD1602定时闹钟实验MDK_STM32LCD1602.uvopt
文件 16115 2011-04-09 21:14 TIM2+LCD1602定时闹钟实验MDK_STM32LCD1602.uvproj
文件 7669 2011-04-10 22:18 TIM2+LCD1602定时闹钟实验MDK_STM32LCD1602_Target 1.dep
....... 68899 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验MDK_STM32LCD1602_uvopt.bak
文件 16303 2011-04-09 21:13 TIM2+LCD1602定时闹钟实验MDK_STM32LCD1602_uvproj.bak
文件 19 2011-04-03 22:09 TIM2+LCD1602定时闹钟实验ObjExtDll.iex
文件 333804 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验ObjLCD1602.axf
文件 258210 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objlcd1602.crf
文件 739 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objlcd1602.d
文件 79633 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验ObjLCD1602.htm
文件 490 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验ObjLCD1602.lnp
文件 278772 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objlcd1602.o
文件 1371 2011-04-10 22:22 TIM2+LCD1602定时闹钟实验ObjLCD1602.plg
文件 479 2011-04-03 15:43 TIM2+LCD1602定时闹钟实验ObjLCD1602.sct
文件 1634 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验ObjLCD1602.tra
文件 256476 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objmain.crf
文件 697 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objmain.d
文件 272960 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objmain.o
文件 252247 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objmisc.crf
文件 715 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objmisc.d
文件 266764 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objmisc.o
文件 6208 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objstartup_stm32f10x_hd.o
文件 252797 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objstm32f10x_exti.crf
文件 865 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objstm32f10x_exti.d
文件 267652 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objstm32f10x_exti.o
文件 255738 2011-04-10 18:56 TIM2+LCD1602定时闹钟实验Objstm32f10x_gpio.crf
............此处省略40个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)