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

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

[复制链接]
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:数码管显示(可调用三按键,可加减,模式选择)

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

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

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