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

数码管显示(可调用三按键,可加减,模式选择)

[复制链接]
yunfei7370 发布时间:2008-12-11 09:49
                                               程序说明
  此程序通过键盘扫描实现了时钟可调的功能,键盘使用行列式扫描的方法,并且将扫描到的按键值用用来调表!
  利用键盘上的值来调表, 利用键盘上的值来调表,按键2为模式选择位,模式1调秒、模式2调分、模式3调小时,
                         如果模式为4则让模式为0,计数器使能,时钟开始工作
*          按键3让时钟加1调表的时候systick定时器、计数器被失能,时钟停止;
*          按键4让时钟减1调表的时候systick定时器、计数器被失能,时钟停止;。
           此时钟用数码管,时钟显示方式为“时时分分秒秒”。
  1.其中键盘的分布如下所示:
                                键盘
      
  -8------————9------————A-------------B------GPIO_Pin_7
   |              |              |             |
   |              |              |             |
  -4------————5-------——---6-------------7------GPIO_Pin_6
   |              |              |             |
   |              |              |             |
  -0------————1--------------2-------------3------GPIO_Pin_5
  GPIO_Pin_1  GPIO_Pin_2     GPIO_Pin_3   GPIO_Pin_4
  2.有关键盘的扫描按如下方法扫描:
                                       键盘扫描函数
           ①.先将 GPIO_Pin_5设置为低电平,GPIO_Pin_6、GPIO_Pin_7设置为高电平
*              依次扫描GPIO_Pin_1 ,判断GPIO_Pin_1 是否为0,若GPIO_Pin_1为0,说明有键按下,
           查表得键值0x00,若不为0则扫描GPIO_Pin_2;
               扫描GPIO_Pin_2 ,判断GPIO_Pin_2 是否为0,若GPIO_Pin_2 为0,说明有键按下,
           查表得键值0x01,若不为0则扫描GPIO_Pin_3;
               扫描GPIO_Pin_3 ,判断GPIO_Pin_3是否为0,若GPIO_Pin_3 为0,说明有键按下,
           查表得键值0x02,若不为0则扫描GPIO_Pin_4;
               扫描GPIO_Pin_4 ,判断GPIO_Pin_4 是否为0,若GPIO_Pin_4为0,说明有键按下,
           查表得键值0x03,若不为0则进行下一轮扫描;
          ②. 再将 GPIO_Pin_6设置为低电平,GPIO_Pin_5、GPIO_Pin_7设置为高电平
*             依次扫描GPIO_Pin_1 ,判断GPIO_Pin_1 是否为0,若GPIO_Pin_1为0,说明有键按下,
           查表得键值0x04,若不为0则扫描GPIO_Pin_2;
               扫描GPIO_Pin_2 ,判断GPIO_Pin_2 是否为0,若GPIO_Pin_2 为0,说明有键按下,
           查表得键值0x05,若不为0则扫描GPIO_Pin_3;
               扫描GPIO_Pin_3 ,判断GPIO_Pin_3是否为0,若GPIO_Pin_3 为0,说明有键按下,
           查表得键值0x06,若不为0则扫描GPIO_Pin_4;
               扫描GPIO_Pin_4 ,判断GPIO_Pin_4 是否为0,若GPIO_Pin_4为0,说明有键按下,
           查表得键值0x07,若不为0则进行下一轮扫描;
          ③. 再将 GPIO_Pin_6设置为低电平,GPIO_Pin_4、GPIO_Pin_5设置为高电平
*               依次扫描GPIO_Pin_1 ,判断GPIO_Pin_1 是否为0,若GPIO_Pin_1为0,说明有键按下,
           查表得键值0x08,若不为0则扫描GPIO_Pin_2;
               扫描GPIO_Pin_2 ,判断GPIO_Pin_2 是否为0,若GPIO_Pin_2 为0,说明有键按下,
           查表得键值0x09,若不为0则扫描GPIO_Pin_3;
               扫描GPIO_Pin_3 ,判断GPIO_Pin_3是否为0,若GPIO_Pin_3 为0,说明有键按下,
           查表得键值0x0A,若不为0则扫描GPIO_Pin_4;
               扫描GPIO_Pin_4 ,判断GPIO_Pin_4 是否为0,若GPIO_Pin_4为0,说明有键按下,
           查表得键值0x0B,若不为0则进行下一轮扫描;    
      若要显示则只需将变量jianzhi送入到lcd显示程序中去即可
  3。以下是键盘扫描函数:
      void jiansao(void)
      {
       
         GPIO_WriteBit(GPIOD,GPIO_Pin_6|GPIO_Pin_7, Bit_SET);
         GPIO_WriteBit(GPIOD, GPIO_Pin_5, Bit_RESET);
         kongzhi=0;
         for(i=0;i
收藏 评论1 发布时间:2008-12-11 09:49

举报

1个回答
得蜜 回答时间:2008-12-11 23:02:49

RE:数码管显示(可调用三按键,可加减,模式选择)

欢迎分享,给个精化鼓励原创。

所属标签

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