• 大小: 1.09MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-09
  • 语言: 其他
  • 标签: STM32  TIM  LCD1602  

资源简介

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\JlinkLog.txt

     文件       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个文件信息

评论

共有 条评论