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

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

[复制链接]
yunfei7370 发布时间:2008-12-11 09:49
                                               程序说明
( W$ [8 `  g' \* t! F+ s2 ~  此程序通过键盘扫描实现了时钟可调的功能,键盘使用行列式扫描的方法,并且将扫描到的按键值用用来调表!
+ t6 k' c, q' d$ e0 m& F' T  利用键盘上的值来调表, 利用键盘上的值来调表,按键2为模式选择位,模式1调秒、模式2调分、模式3调小时,
1 `4 U: h, o" K1 t0 O, T# Q0 v                         如果模式为4则让模式为0,计数器使能,时钟开始工作' Q7 Z9 Q7 X/ B
*          按键3让时钟加1调表的时候systick定时器、计数器被失能,时钟停止;
2 o4 f0 z# z5 a& x! ?*          按键4让时钟减1调表的时候systick定时器、计数器被失能,时钟停止;。  C( W+ ]  n" G+ z( b
           此时钟用数码管,时钟显示方式为“时时分分秒秒”。. }  ]/ C3 g) i- F, I7 K
  1.其中键盘的分布如下所示:
1 N- c$ K3 d2 |4 s# g8 V, u3 U1 K                                键盘! x# R0 ^  E, k; ^
      
$ q: W2 ?0 {; |  -8------————9------————A-------------B------GPIO_Pin_7: A/ a, }8 i4 e/ e
   |              |              |             |2 l4 F9 Z" T9 V! U5 R# i
   |              |              |             |% g% k( Y  x0 c- S7 w; ^9 [
  -4------————5-------——---6-------------7------GPIO_Pin_6
* b; s8 w2 S# t; [   |              |              |             |# K# ?% q6 [* \/ e2 T& Z/ q
   |              |              |             |/ O, {2 k# n0 ?& {
  -0------————1--------------2-------------3------GPIO_Pin_5! B0 @; D! t) U- S8 Y$ b. n
  GPIO_Pin_1  GPIO_Pin_2     GPIO_Pin_3   GPIO_Pin_4: Q) R$ p, f  c
  2.有关键盘的扫描按如下方法扫描:
6 `7 K% X) g# ^) @. j  Z. u0 B                                       键盘扫描函数, T: e3 r3 g# S
           ①.先将 GPIO_Pin_5设置为低电平,GPIO_Pin_6、GPIO_Pin_7设置为高电平
, [2 ^6 e7 \  p: ~& }*              依次扫描GPIO_Pin_1 ,判断GPIO_Pin_1 是否为0,若GPIO_Pin_1为0,说明有键按下,, ^. w9 f$ t$ L) e$ F+ M6 s3 s5 }
           查表得键值0x00,若不为0则扫描GPIO_Pin_2;
+ Y! ]+ b1 _7 h. [$ Q; D               扫描GPIO_Pin_2 ,判断GPIO_Pin_2 是否为0,若GPIO_Pin_2 为0,说明有键按下,
' P( D' ]: \2 L  |           查表得键值0x01,若不为0则扫描GPIO_Pin_3;
$ b5 I' G/ W6 H/ p; j0 J' V$ Z- y               扫描GPIO_Pin_3 ,判断GPIO_Pin_3是否为0,若GPIO_Pin_3 为0,说明有键按下,7 S: \( D! O- Z; {% J! Q8 Q
           查表得键值0x02,若不为0则扫描GPIO_Pin_4;
3 K1 n. [0 A6 `! K, m; S               扫描GPIO_Pin_4 ,判断GPIO_Pin_4 是否为0,若GPIO_Pin_4为0,说明有键按下,
% C: G' M3 v8 k6 N. V0 J$ G           查表得键值0x03,若不为0则进行下一轮扫描;
3 }) G4 @* j; c4 R& G) i          ②. 再将 GPIO_Pin_6设置为低电平,GPIO_Pin_5、GPIO_Pin_7设置为高电平
& g: W& Y3 J1 ?: V" w*             依次扫描GPIO_Pin_1 ,判断GPIO_Pin_1 是否为0,若GPIO_Pin_1为0,说明有键按下,1 w, W5 {# l- e* D) ]. @2 Y
           查表得键值0x04,若不为0则扫描GPIO_Pin_2;, t7 J3 e- U( D8 H$ q8 `# y6 ]
               扫描GPIO_Pin_2 ,判断GPIO_Pin_2 是否为0,若GPIO_Pin_2 为0,说明有键按下,
% Q0 N& H& o3 x& @7 r           查表得键值0x05,若不为0则扫描GPIO_Pin_3;
8 h  e: j& G4 O8 V               扫描GPIO_Pin_3 ,判断GPIO_Pin_3是否为0,若GPIO_Pin_3 为0,说明有键按下,
$ b: C- j6 p5 Y4 O2 O" a/ v& y3 Q           查表得键值0x06,若不为0则扫描GPIO_Pin_4;" t, A" K# Y! [) u
               扫描GPIO_Pin_4 ,判断GPIO_Pin_4 是否为0,若GPIO_Pin_4为0,说明有键按下,
1 K3 u5 i. \* O8 @) z- n4 t           查表得键值0x07,若不为0则进行下一轮扫描;
- Q2 D) B6 }  [. ]7 L6 F3 ?          ③. 再将 GPIO_Pin_6设置为低电平,GPIO_Pin_4、GPIO_Pin_5设置为高电平
6 ^. M0 p3 |; {! l, r*               依次扫描GPIO_Pin_1 ,判断GPIO_Pin_1 是否为0,若GPIO_Pin_1为0,说明有键按下,
% Q2 N2 {2 j( C1 v1 O7 I           查表得键值0x08,若不为0则扫描GPIO_Pin_2;
4 W' v1 v+ P( c- {) [1 }9 f  U% f               扫描GPIO_Pin_2 ,判断GPIO_Pin_2 是否为0,若GPIO_Pin_2 为0,说明有键按下,% r' W8 X1 E, E; Q
           查表得键值0x09,若不为0则扫描GPIO_Pin_3;% O, S! W5 v2 C% _8 [
               扫描GPIO_Pin_3 ,判断GPIO_Pin_3是否为0,若GPIO_Pin_3 为0,说明有键按下,0 ?2 v8 W2 e, c
           查表得键值0x0A,若不为0则扫描GPIO_Pin_4;5 y+ ]  \/ y+ U) b
               扫描GPIO_Pin_4 ,判断GPIO_Pin_4 是否为0,若GPIO_Pin_4为0,说明有键按下,
9 l3 S+ P2 a; M7 A           查表得键值0x0B,若不为0则进行下一轮扫描;    
8 y4 Q$ Y% T" {7 A* K& q  k* ?      若要显示则只需将变量jianzhi送入到lcd显示程序中去即可/ b8 I' f, S( V7 b5 \& m" |/ ~. s
  3。以下是键盘扫描函数:/ X1 L6 g! M: N. V: f3 Q
      void jiansao(void)9 a$ w+ R! z( R# D7 ~
      {
& N4 w+ Q( J  D$ E; |5 {       
: y4 n1 g. O! I, r         GPIO_WriteBit(GPIOD,GPIO_Pin_6|GPIO_Pin_7, Bit_SET);
4 W+ ~% @. [  P, `# ~# B5 O* H         GPIO_WriteBit(GPIOD, GPIO_Pin_5, Bit_RESET);  {5 F8 e% Y$ m) c+ x) L3 l
         kongzhi=0;/ d6 m& M  D5 ?
         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 手机版