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

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

[复制链接]
yunfei7370 发布时间:2008-12-11 09:49
                                               程序说明3 c) V) J! w% `7 ]7 x( w$ e. C
  此程序通过键盘扫描实现了时钟可调的功能,键盘使用行列式扫描的方法,并且将扫描到的按键值用用来调表!
* i- Z* t, t$ f) ]- ]  利用键盘上的值来调表, 利用键盘上的值来调表,按键2为模式选择位,模式1调秒、模式2调分、模式3调小时,
2 {2 j' m6 T& f0 r- @2 O                         如果模式为4则让模式为0,计数器使能,时钟开始工作
" C2 u! O7 v3 `; u, \' L. S*          按键3让时钟加1调表的时候systick定时器、计数器被失能,时钟停止;
& i3 }. p: h0 `* e% n$ ]*          按键4让时钟减1调表的时候systick定时器、计数器被失能,时钟停止;。6 G, x# u3 a- ?$ H( _9 U, k
           此时钟用数码管,时钟显示方式为“时时分分秒秒”。
3 D, w9 r2 g  i4 N  1.其中键盘的分布如下所示:
, ~; k, B! a6 s' W2 n                                键盘! W9 U) {4 y, g9 V
      9 h( x! v, f5 E( V8 H- N
  -8------————9------————A-------------B------GPIO_Pin_7
; i. j1 O# d" j   |              |              |             |
4 Z& n- `' q- U  [; t/ r  W! {   |              |              |             |- U  D6 \5 M- T" X) O
  -4------————5-------——---6-------------7------GPIO_Pin_6
- c2 i" k) Z, }) Y   |              |              |             |, D, T6 [$ [# D0 Q. d
   |              |              |             |% y' X) Z  ^0 W! ?# ?# K
  -0------————1--------------2-------------3------GPIO_Pin_5# S  L' U5 ^. K! S# O9 b
  GPIO_Pin_1  GPIO_Pin_2     GPIO_Pin_3   GPIO_Pin_4* E  s5 t! s, c* s1 |: @2 P! m
  2.有关键盘的扫描按如下方法扫描:2 a, ]- @, q( E$ }, U* C
                                       键盘扫描函数
" G' C2 n4 K: I2 ]+ T- |           ①.先将 GPIO_Pin_5设置为低电平,GPIO_Pin_6、GPIO_Pin_7设置为高电平
' p, O% ?' P1 d) K* x5 F8 g*              依次扫描GPIO_Pin_1 ,判断GPIO_Pin_1 是否为0,若GPIO_Pin_1为0,说明有键按下,+ ]) {; Z$ E. f
           查表得键值0x00,若不为0则扫描GPIO_Pin_2;
- @: `# B; t0 X               扫描GPIO_Pin_2 ,判断GPIO_Pin_2 是否为0,若GPIO_Pin_2 为0,说明有键按下,( e+ [. Z1 u7 M
           查表得键值0x01,若不为0则扫描GPIO_Pin_3;
0 [$ I" U% a& Q" p2 B2 \               扫描GPIO_Pin_3 ,判断GPIO_Pin_3是否为0,若GPIO_Pin_3 为0,说明有键按下,
4 D' Q# K5 k& z6 h* t8 M6 b           查表得键值0x02,若不为0则扫描GPIO_Pin_4;5 Y" |2 m7 c/ _0 ~
               扫描GPIO_Pin_4 ,判断GPIO_Pin_4 是否为0,若GPIO_Pin_4为0,说明有键按下,, e/ ?4 e8 w+ a, h! d6 V5 K
           查表得键值0x03,若不为0则进行下一轮扫描;4 O! D' r9 N% M6 R1 \, t- D
          ②. 再将 GPIO_Pin_6设置为低电平,GPIO_Pin_5、GPIO_Pin_7设置为高电平
& k  k# d( p/ h*             依次扫描GPIO_Pin_1 ,判断GPIO_Pin_1 是否为0,若GPIO_Pin_1为0,说明有键按下," ^! z* l/ i, y" }0 S7 J
           查表得键值0x04,若不为0则扫描GPIO_Pin_2;6 O# n& f) g+ E2 X9 \
               扫描GPIO_Pin_2 ,判断GPIO_Pin_2 是否为0,若GPIO_Pin_2 为0,说明有键按下,* I3 Z! V/ d/ B8 d
           查表得键值0x05,若不为0则扫描GPIO_Pin_3;
' L. B0 d9 p, Z& d. _4 H               扫描GPIO_Pin_3 ,判断GPIO_Pin_3是否为0,若GPIO_Pin_3 为0,说明有键按下,
* p+ z/ q& [% C$ }, y) L           查表得键值0x06,若不为0则扫描GPIO_Pin_4;
' t( C+ K6 d% a+ c6 h; k5 k7 k               扫描GPIO_Pin_4 ,判断GPIO_Pin_4 是否为0,若GPIO_Pin_4为0,说明有键按下,# h1 v9 o6 l' c* E
           查表得键值0x07,若不为0则进行下一轮扫描;: b/ B* Y$ v% L! ~+ ]7 T& P2 G. ~
          ③. 再将 GPIO_Pin_6设置为低电平,GPIO_Pin_4、GPIO_Pin_5设置为高电平/ n9 o) M+ c* Z2 c8 r
*               依次扫描GPIO_Pin_1 ,判断GPIO_Pin_1 是否为0,若GPIO_Pin_1为0,说明有键按下,4 P- Z# A! s6 N9 f) V& V
           查表得键值0x08,若不为0则扫描GPIO_Pin_2;
8 o- Q* }' K: S7 d% _               扫描GPIO_Pin_2 ,判断GPIO_Pin_2 是否为0,若GPIO_Pin_2 为0,说明有键按下,
! U* |8 k! k9 `           查表得键值0x09,若不为0则扫描GPIO_Pin_3;7 ]; |* S& d' N+ D, r4 s9 r" E+ e& d
               扫描GPIO_Pin_3 ,判断GPIO_Pin_3是否为0,若GPIO_Pin_3 为0,说明有键按下,# J* m+ S9 {2 V; t6 o5 ~* j5 b4 _
           查表得键值0x0A,若不为0则扫描GPIO_Pin_4;
. |7 x+ l( t2 I; ^+ ^" p! M! s               扫描GPIO_Pin_4 ,判断GPIO_Pin_4 是否为0,若GPIO_Pin_4为0,说明有键按下,2 }3 l6 E& z* t3 Y0 s
           查表得键值0x0B,若不为0则进行下一轮扫描;    
4 |" L' W5 |) g0 u( T      若要显示则只需将变量jianzhi送入到lcd显示程序中去即可6 e6 E: ?  W$ v1 C; `3 x. X& c
  3。以下是键盘扫描函数:
2 F  p6 X7 \% o4 O/ g      void jiansao(void)/ B: x# H* W9 B* X( e
      {9 K. ]) L1 z$ d( x
       
/ N' h  F( t0 m8 z         GPIO_WriteBit(GPIOD,GPIO_Pin_6|GPIO_Pin_7, Bit_SET);6 m: a' R- ]- N( _1 Z
         GPIO_WriteBit(GPIOD, GPIO_Pin_5, Bit_RESET);# ]* N; i' L& M+ @0 x4 s+ }) t0 J9 N
         kongzhi=0;$ x3 N" y0 U  w4 O/ J
         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 手机版