资源简介
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通讯
相关资源
- STM32 实现SSL通讯
- 数字电位器X9c103-基于STM32
- stm32f103c8串口收发例程
- 基于STM32CANOpen例程从站心跳.zip
- 基于STM32 嵌入式实验DHT11温湿度传感器
- STM32F103T6 PLC工控板原理图+PCB文件
-
jli
nk ob stm32f072 原理图 pcb图 固件 - STM32F103同时测8路ADC值代码
- STM32F103C8T6PCB封装
- STM32串口输出MPU-9250测试过
- STM32采集HLW8032数据
- 基于STM32F407和OV5640的视觉算法二维码
- 基于stm32蓝牙收发数据代码
- STM8S003工程模版
- STM32F103C8T6温湿度显示
- Hello China STM32移植源代码
- STM32开源对讲机SPEEX
- ESP8266和STM32做server收发数据代码
- 基于STM32F103ZET6芯片的超声波模块HC-
- STM32 USB转串口驱动 Virtual COM Port Driv
- 2017年全国电子设计竞赛第十三届资料
- 永磁同步电机id=0控制,STM32F4程序
- 基于FPGA+STM32数字示波器
- STM32 大合集
- STM32H743/753中文版手册
- STM32F407ZGT6实现HAL库SPI扩展FLASH功能M
- 基于MODBUS协议的直流电机控制程序-
- STM32F1官方固件库
- 数字信号发生器.zip
- Arduino_STM32-master.zip
评论
共有 条评论