基于STM32单片机按键设置可调电子时钟

 资料编号:151

一:功能介绍

1、采用stm32单片机+8位共阳数码管+矩阵键盘+LED灯+独立按键,制作一个基于STM32单片机按键设置可调电子时钟设计Proteus仿真;

2、通过矩阵键盘可以对时间进行更改设置,并且显示到数码管上;

3、该时钟显示格式为小时-分钟-秒-毫秒,可以精确到毫秒;

4、该时钟通过独立按键进入设置模式,并且有对应的LED指示灯;

二:仿真演示视频+程序简要讲解(程序有中文注释,新手容易看懂)

151-基于STM32单片机按键设置可调电子时钟设计Proteus仿真+源程序

三:设计软件介绍

本设计使用C语言编程设计,程序代码采用keil5编写,程序有中文注释,新手容易看懂,仿真采用Proteus软件进行仿真,演示视频使用的是Proteus8.9版本;资料包里有相关软件包,可自行下载安装。

四:程序打开方法

特别注意:下载资料包以后一定要先解压! !!(建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。

11961495ee0dce6a6f57a96c6fe57832.png

d457b809ba70ae29bd0a14dbecb3aa77.png

程序部分展示,有中文注释,新手容易看懂
void Init (void);
void Mod_Time_Check (void);


// 主函数
int main(void)
{
  Init ();
  
  while (1)
  {
    Mod_Time_Check ();//设置时间
    DigitalTube_DispData_H (count_h);//显示高4位
    DigitalTube_DispData_L (count_l);//显示低4位
  }
}


// 初始化函数
void Init ()
{
  NVIC_PriorityGroupConfig (NVIC_PriorityGroup_2);
  TIM3_Int_Init(10, 884);    //定时器初始化   根据proteus环境而设置的1ms定时
  DigitalTube_Init ();//IO初始化
  LED_Init ();//LED初始化
  EXTIX_Init ();//外部中断初始化
  KEY_Init (); //按键初始化
}


// 设置时间函数
void Mod_Time_Check ()
{
    if (flag1 == 1)
    {
      int i;
      TIM_Cmd(TIM3, DISABLE);//关闭定时器
      DISP_ZERO ();


      for (i = 0; i < 8; i++)//设置8位时间
      {
        Set_Time ();
        GPIO_Write (GPIOA, 0x00);
        DISP_Bit (temp, i);
      }
      
      TIM_Cmd(TIM3, ENABLE);//设置好了后打开定时器
      flag1 = 0;
      LED0 = 1;
    }
}

五:仿真文件(采用Proteus打开)

05c3c9d5e997778fd174399ca4c0308b.png

8b80c065030ad8a511fff417a9f59bc2.png

23242d0fca5ec72326e93b74602fd3e7.png

a6a0f7072a57fb789c3ad01052a7ab86.png

六:资料清单展示(文件中包含的相关资料)

7bef683bf0fba303dd414221835e83e2.png

百度云盘资料下载链接

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值