找回密码
 注册
关于网站域名变更的通知
查看: 354|回复: 2
打印 上一主题 下一主题

求大神帮助,单片机程序只能扫描行 不能扫描列

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-12-27 18:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
#include<reg51.h>
. ^" ^2 `  n; Q# ], I" T2 X2 C#define uchar unsigned char
7 z  Q8 x: W1 g& d#define uint unsigned int
# o. [- @: k: o% p# B/ t, zsbit B1=P3^6;
" @/ J2 l: n" x5 h$ w( Hsbit B2=P3^7;% P. I7 }. B' E+ n
sbit buzzer=P3^5;4 \* e2 z! e) [
sbit clear=P3^4;       // ???????B1,B2,BUZZER,CLEAR0 c  @# f! S0 J3 z( Z
uchar code distab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
5 `' a5 s- I0 E% b" quchar code keytab[8][8]={{1,2,3,4,5,6,7,8},         // ????????# k8 x) E! b( J+ A
       {9,10,11,12,13,14,15,16},
5 Z- \) [8 @. F4 }       {17,18,19,20,21,22,23,24},* F4 C$ e" |: W% D
       {25,26,27,28,29,30,31,32},
' W5 {! b: R4 B& i9 X% G* u$ V( L; V       {33,34,35,36,37,38,39,40},
* l6 p% T& `: F' ?6 P6 [% l       {41,42,43,44,45,46,47,48},6 o9 _9 T4 x0 f! M7 L
       {49,50,51,52,53,54,55,56},5 L; b7 s" u  v6 ~" V! T
       {57,58,59,60,61,62,63,64},
' E6 j- c' [/ K+ y+ {6 g$ u9 y- e3 E      };       % R' R2 P5 n" `6 A
uchar bed_NO;7 u2 u6 ^/ U6 b5 D8 O4 C2 z
uchar btime;, r" y2 P) ^/ w2 D/ T2 F$ y$ S4 M
uchar itime;       //???????bed_NO??uchar btime??uchar itime
% E+ e+ P$ G" k0 Y7 V4 o/ x. ?7 bvoid delay(uint x)         //???????????- i$ V6 a9 H+ r' `) E: z
{   uint i,j;# R0 X' S! A8 x7 H. N) q( ^7 z
for(i=0;i<x;i++)- J1 G5 y9 d: A, n6 |
{7 ^9 {* C' P) h( A- W
  for(j=0;j<10;j++)& z0 _" w8 O" Y
  {;;}
  T& C/ d0 t5 T0 d- C: ?4 |* ^}
2 I: L+ [) G* c& r; R8 C}
1 M' u9 n! T) q! Qvoid display(void)        //??????????
/ t7 d) C! L% k6 |! w  y{
) o1 I! V, E: s" guchar a10,a1;
- Z  H" X! i4 S3 Q1 c3 ?a10=bed_NO/10;; c2 Q* y% ?8 E1 T+ R! T6 S# c
a1=bed_NO%10;9 i5 Y" }1 N" \# }0 J, b+ M/ M
P1=distab[a10];
! l. ~0 S6 ]3 q( q7 L0 a$ z1 yB1=1;
( I2 \! t$ {6 @+ ~8 Hdelay(10);. {. ]# R, h% i' g. x* Y
B1=0;& D+ U- l8 A6 B) O! M) K
P1=distab[a1];+ ~  Y5 K2 e: k; @8 a* `
B2=1;
% }9 x  j1 O( `  S7 \2 Gdelay(10);
- C! [' T! ^& f/ z* _& qB2=0;# f0 k: Z, N# J" ^' ?' i
}4 w% Z# N/ g6 r- [6 N) t9 R
void key(void)             //???????
. `2 c. j3 Q6 g1 y0 d% f5 w6 G* {{- |0 n' D" y6 Q/ E6 e4 s
uchar hang,lie;
2 r+ R5 \7 V0 U+ p- `P0=0x002=0xff;, Z$ W6 W: u; L$ ?
delay(1);          7 \$ @' k& x9 N8 m0 B; t
if(P2!=0xff)
% K; J! C1 V- \8 z/ ^* k{
% p& P/ W, |0 ?8 I! \3 S  delay(5);       //????5???????????, d$ n1 L; e, a1 Y! ^
  if(P2!=0xff)
6 z4 W1 k9 t  T& \  {; V) T; v( Z' d  w! u' {
   switch(P2&0xff)        //??????' B6 j% E- V7 s* M; V# F
    {
' F4 [! u, a: D- ]' l0 e    case 0xfe:lie=0;break;3 `6 E7 S8 F: d! \. o
    case 0xfd:lie=1;break;
9 P) K" k/ n- k! R  e4 |    case 0xfb:lie=2;break;
4 ]' h7 c% u- L0 ^    case 0xf7:lie=3;break;
& o& z% D! I. m& t    case 0xef:lie=4;break;8 x7 @5 u6 ^  s. O
    case 0xdf:lie=5;break;
& T$ z' D, _; U6 k% d$ E$ S  F    case 0xbf:lie=6;break;
$ p$ e0 y2 G  h" }9 N- h4 f' v    case 0x7f:lie=7;break;
9 z* `: I4 O5 N1 n1 B& R    }; s- z- ?3 @) x
  P2=0xff0=0xff;( q! v" H& U5 |
  switch(P0&0xff)       // ??????
9 j8 |/ {+ c7 i5 C    {
9 I5 _9 Y) n/ r) `$ `4 S    case 0xfe:hang=0;break;- Z3 ]1 k9 j% }: S7 ]  ?4 T
    case 0xfd:hang=1;break;
1 Y" b" j4 w4 z+ ~    case 0xfb:hang=2;break;
) h& a0 S3 H3 m    case 0xf7:hang=3;break;& j7 R4 A% w3 V! Z
    case 0xef:hang=4;break;- ^2 G3 p( ^  h3 C4 \
    case 0xdf:hang=5;break;$ ]4 e0 |& D' h; c% V
    case 0xbf:hang=6;break;
4 d% o9 p. X& M! @* |    case 0x7f:hang=7;break;
1 T7 p0 l* b* x* I" v- @    }: ^, D% `  f$ m9 ]- x4 k
  P2=0xff0=0x00;- h( |) \/ G9 Q
  while(P2!=0xff);- J: d( w' o  b( v- f# d( B( R
  bed_NO=keytab[hang][lie];TR0=1;       //??????????bed_NO
6 e, A3 h/ R5 U3 ^! k, h- c7 F  }
' @5 ^* S% ~0 N+ |8 H& d) yelse, l/ c) T' r) D7 ?1 i
  bed_NO=0;
& m) t8 V9 [8 I' e* c, j/ T}  
* V% A  }" j. R- N# T/ |}
- J5 w5 w# x; n0 Q! N) Hvoid time_init(void)        // ????????????
* Y1 T4 ~4 k# D3 d$ z" `5 k! a% Z{
5 V5 j" I2 J/ ZTMOD=0x01;: d8 Z# e+ a7 W3 L. v; a
TH0=(65536-8333)/256;        //  ?????
4 |  N' C; j, H+ E0 Y) @  {* G6 O4 KTL0=(65536-8333)%256;, }1 _6 e8 k5 }$ ^: A# W
EA=1;
' n5 _! W0 b7 P4 D8 q6 y9 ^) _3 R/ DET0=1;
8 s: C& U2 G. ]+ D}
% {# d2 V$ t9 P0 n/ y0 a, cvoid time(void) interrupt 1 using 1      // ?????ж??
5 S9 S0 ~2 G, ^+ }8 `# D2 _* Y6 G{
8 q* \' |8 ^5 o2 F- y0 OTH0=(65536-8333)/256;
- w5 [) U  S6 I$ j- L: ]TL0=(65536-8333)%256;' t5 G0 f7 S* m8 Y* I
itime++;
; t" @4 P( X$ ?+ R& P0 ~. Zif(itime>=100)
3 u7 t* U; z" a& I$ B/ R{$ s  q$ p* J# N8 w6 ^
  itime=0;- V' u  |! O5 E; n; K6 X6 t
  btime++;$ k# z' b* L9 ^" F8 o6 }! g
  if(btime>3){TR0=0;btime=0;}
1 v, {. X1 |4 a# B) `  buzzer=!buzzer;  ?; H: P4 x; _7 N' S4 @* S# W
} * B- C; ^6 s9 p6 s( {( D5 e
}% H+ A$ V, Y5 }+ y8 l) @
void main(void)/ A5 R# O" q+ _$ E! i+ V
{% q: r) M3 D& j- j7 Z% H+ b
time_init();
! E; B  C5 G; a1 Ifor(;;)
0 I& _$ l7 l' `* |0 V( y2 ^{, l( _; o6 {8 x" X
  key();+ l" N, g; Z' G: l$ o* P* q8 V
  display();) ~; B6 h; g4 V- {9 k
  if(TR0==0){buzzer=1;}
' Z9 K* }2 u. E  if(clear==0)           //???????????
6 k0 S. s+ s9 s  {
' c( l6 J& X* o8 A( A# K   delay(10);, |6 T* ~$ @% J0 F2 ]3 f
   if(clear==0)& ]* ?6 J* I* S( {- o- k
   {9 C% {1 e" a, Y
    bed_NO=0;
- W  W9 h0 @. x6 L6 n; b$ G   }
5 x% F' x: N# |- D/ v   }" S  e5 q) a, [
}
& S; R6 H6 a: X, H2 f+ X8 L: }}% Z/ J' I; X/ G& `; f  l! @

" f: {6 D. x+ _0 T8 x
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2019-12-27 18:06 | 只看该作者
    7 l: S$ P% z7 A5 Y8 g) `
    这程序出错了,P0=0xff;' V3 F  ~2 V( ~: t
      switch(P0&0xff)       //4 Q) r( u1 o0 A9 m5 {
    这个P0已经给值了,后面一名开关语言还有什么用。
  • TA的每日心情
    开心
    2023-5-15 15:25
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2019-12-27 18:07 | 只看该作者
    2 N  v# a/ B- a+ `5 i" w; m5 a7 C" q% Y
    可能指8*8键盘只扫到行出不了列的意思 . T% G" p: t* y3 e  w
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-24 01:25 , Processed in 0.109375 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表