你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】基于STM32单片机抢答器时间显示设计

[复制链接]
STMCU小助手 发布时间:2022-5-11 13:59
一.硬件方案
本设计出以STM32单片机为核心的八路抢答器。我们采用了数字显示器LCD1602直接指示,自动锁存显示结果设计思想,它能根据不同的抢答输入信号,经过单片机的控制处理并产生不同的与输入信号相对应的输出信号,最后通过LCD1602显示,即使两组的抢答时间相差几微秒,也可分辨出是哪组优先按下的按键,。
主要由STM32F103C8T6单片机+LCD1602液晶显示+5路按键组成;;如图:

5%KN]GNV89{7VGFKHUU~P.png

二.设计功能

(1)当系统上电后,系统开始计时;当按键按下时,计时停止,显示屏显示当前时间及按键的号数;
(2)设置有五个按键,分别为1、2、3、4、5号位,按下时显示对应号数;
(3)液晶只能显示1个数字。
(4)按下复位按键后,则开始新一轮的抢答。

三.设计原理图
(1)原理图主要采用AD软件进行设计,如图:

ZQ)DJ~LI12F~GW)6XZ]Y[J2.png

(2)PCB图如下:

ZDZ)L93(G(JHY3D5GE5QXT9.png

四.软件设计
(1)程序流程图

3YMXOS`CBCCO6V`~Q86O0TE.png

(2)主程序源码

  1. int main(void)
  2. {
  3.         delay_init();                     //延时函数初始化         
  4.         uart_init(9600);                 //串口初始化为115200
  5. //        uart2_init(9600)        ;
  6.   TIM3_Int_Init(499,7199);//50ms
  7.          
  8. //        LED_Init();                                  //初始化与LED连接的硬件接口
  9.         KEY_Init();
  10.          
  11.         Lcd_GPIO_init();  
  12.         Lcd_Init();        
  13.         
  14.         while(1)
  15.         {
  16.                 if(keyFlag == 0)//按键无任何按下
  17.                 {
  18.                         CheckKey();  //按键设置
  19.                 }               
  20.                
  21.                 if(disFlag==1)                                        //显示
  22.                 {
  23.                         disFlag = 0;        
  24.                         if(keyFlag == 0)
  25.                         {
  26.                                 Dtimes++;                                
  27.                                 sprintf(tab1,"    N     ");//没有人按键
  28.                         }
  29.                         else
  30.                         {
  31.                                 sprintf(tab1,"    %d     ",keyFlag);//显示按键的值
  32.                         }        
  33.                         Lcd_Puts(0,1,(unsigned char *)tab1);        //初始化显示
  34.                         sprintf(tab0,"time :%5.1fs     ",(float)Dtimes/10);                //显示时间               
  35.                         Lcd_Puts(0,0,(unsigned char *)tab0);        //初始化显示                                         
  36.                 }
  37.         }                                                                                            
  38. }        


复制代码

收藏 评论0 发布时间:2022-5-11 13:59

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版