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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#include<reg51.h>
' D0 Y- ?& e# ~5 K' x. H#define uchar unsigned char . _; U, K4 z6 S1 I. g* |
#define uint unsigned int
* Q4 \$ u! u7 P- C2 w" U9 }sbit B1=P3^6;
; M$ ]6 s# Q6 esbit B2=P3^7;+ S  ?5 i/ a, t! q9 t: B& h0 l
sbit buzzer=P3^5;) Q- @6 ^! {5 p& C+ W# [1 ]
sbit clear=P3^4;       // ???????B1,B2,BUZZER,CLEAR
; v$ |6 y1 i3 w) H/ tuchar code distab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};$ ^' B" Z1 U% K, F6 @9 ^' H* e2 _
uchar code keytab[8][8]={{1,2,3,4,5,6,7,8},         // ????????5 j" T: V* N$ X( Y% F. _$ [
       {9,10,11,12,13,14,15,16},* l, y" C7 @, c
       {17,18,19,20,21,22,23,24},
; o- [3 m; Q, J! @* g       {25,26,27,28,29,30,31,32},
$ X( D* Y2 ?" r1 ~# B$ m       {33,34,35,36,37,38,39,40},
& J; @5 A: Q. t, L2 f7 |       {41,42,43,44,45,46,47,48},
$ d5 T! o  ?' C       {49,50,51,52,53,54,55,56},
  _3 f  k2 ~# j1 H5 a" ]5 i0 u, u       {57,58,59,60,61,62,63,64}, ! E, ], i1 E8 x' B4 T
      };       5 _3 o9 v' y3 _( x: O
uchar bed_NO;8 K- L- d" ?4 j
uchar btime;
' e% g( N7 J* }: f6 buchar itime;       //???????bed_NO??uchar btime??uchar itime
& f& {/ E% O. `" D0 G/ U. Ovoid delay(uint x)         //???????????6 C& \$ k7 m! j( S  z& k( [- o
{   uint i,j;
# |. Z- ?# ]* T# N* U) xfor(i=0;i<x;i++)
# H4 m: g: Q. Q% s, z{; N  [6 `% [9 {" w; T( y- D* q: `
  for(j=0;j<10;j++)
. N# y7 O: b: j  {;;}9 w' d. J' U! }0 _$ v' j3 o$ g
}. b) a" M* n" ?* n; I
}2 {  P$ u: B5 z3 T. P3 b1 P
void display(void)        //??????????/ u& ~9 D/ w# J5 J0 A
{
6 P9 t8 ~- ]; Y# p  L6 ~, p9 quchar a10,a1;) ~: q9 z# N5 `& R6 J: J- P
a10=bed_NO/10;/ l& G7 p) n) P7 x3 L% [9 q
a1=bed_NO%10;# Z+ _$ p( V1 V: z4 O3 t$ m
P1=distab[a10];
2 x9 _3 q$ n; r7 t( P4 ZB1=1;
  A: Y3 a6 W4 F6 ldelay(10);
  b2 v& ^) _7 MB1=0;, Q, H  m8 p  A- P. Y' ]! j
P1=distab[a1];  B) O7 U2 Y; F2 X, s# J4 w
B2=1;
2 C& _: X3 j) S$ V  i' _6 p- Mdelay(10);
  Q( \  W: e9 `0 j$ VB2=0;
+ q) I+ e( m& E% d/ p7 r}7 x1 _" S% z+ [
void key(void)             //???????
. P- A1 L/ p/ b1 f8 A8 e" h6 q/ Y8 s* p{0 N; i. D9 P* [) X7 h
uchar hang,lie;
3 Z% d) f6 ?) q9 [/ o# @' KP0=0x002=0xff;6 T1 ]) U2 Z- y* @; K# I! B% W2 p
delay(1);          # A# g7 Q' C3 V* K" q# ?0 l  Z
if(P2!=0xff)
+ R/ O! v' y5 G% q. v; o7 o{5 ?# M2 ~- Z: t8 q4 p' D, D
  delay(5);       //????5???????????
( ^3 s* C+ K0 ]7 _0 }: g2 C  if(P2!=0xff)
' V+ G0 T2 c. [4 B) o. r  {
& F& e. j' P8 y/ j, H   switch(P2&0xff)        //??????
1 p% t' }/ D' _# q! v7 P  ]    {- K2 f3 ]3 N$ p
    case 0xfe:lie=0;break;
2 A( G( y0 ?5 E  L' K    case 0xfd:lie=1;break;
: m9 \& M. W* h: N! N7 c    case 0xfb:lie=2;break;
) u2 L6 C2 B) S8 s- [0 q    case 0xf7:lie=3;break;
6 t4 T% }0 z# ]+ c& F; d/ J    case 0xef:lie=4;break;
. Z% D2 Z2 F+ {7 @" u8 H3 Z" Q    case 0xdf:lie=5;break;8 b3 W" R& s9 h' _
    case 0xbf:lie=6;break;
9 a! b* J2 _, U, w, l( Z* T0 c    case 0x7f:lie=7;break;( i3 W% u# f. Q0 \6 J6 ]$ r( L5 {
    }
) i+ B2 ~& t7 e" Q, |  P2=0xff0=0xff;) A; J- S/ {/ M7 V# g$ T
  switch(P0&0xff)       // ??????5 M! N8 ?6 c$ C$ B
    {0 ?+ d  I* R, d' x
    case 0xfe:hang=0;break;, @5 C: k0 H$ x; w
    case 0xfd:hang=1;break;" W  d  ^* w, G# [/ v( y$ H8 s
    case 0xfb:hang=2;break;* h# k+ Y9 E3 m5 i) z
    case 0xf7:hang=3;break;
0 H) l$ Q" w2 S# E7 D+ M+ ~    case 0xef:hang=4;break;
$ Z5 i' t) P$ ?5 q    case 0xdf:hang=5;break;
6 e& E* [. ^; {5 N    case 0xbf:hang=6;break;$ T* H+ u: c+ d- Q
    case 0x7f:hang=7;break;+ Y! J% }. _, j: H* \# t- e, T
    }
; j0 }3 g4 d8 |1 I/ K2 ]  P2=0xff0=0x00;
, N% [. y) z8 r  while(P2!=0xff);, _( J* b+ p" k8 r# e% U
  bed_NO=keytab[hang][lie];TR0=1;       //??????????bed_NO
7 o1 B- Y' j8 x( {* l7 C  }/ e3 c! j+ V3 V/ V
else
( G. |9 \3 T; D% ]4 k: X  bed_NO=0;" I, K1 F# N: {( q
}  
1 }  H7 _9 p3 ^9 }, x}' q  e3 u" k) t5 J
void time_init(void)        // ????????????
# Z6 _! M3 E4 F  ]; f! n" u" ~{7 u  g/ T1 x4 I/ [9 E
TMOD=0x01;* B! L9 ]! l# o+ q1 x) D0 n# b: n
TH0=(65536-8333)/256;        //  ?????
, }' X6 q4 x) Y6 V; bTL0=(65536-8333)%256;
9 D7 E$ v; w( S7 Q2 O1 f3 VEA=1;
7 a" `: F1 R$ P$ ]) P, oET0=1; 0 r% t4 ~0 t! J/ _
}
8 d' _- ~) X% B! Q2 S* ]5 J" d% L5 _void time(void) interrupt 1 using 1      // ?????ж??- |1 z8 ]- B# y5 m% k
{% o& K# ?; E( k
TH0=(65536-8333)/256;7 z! n( s/ w+ `0 r$ `
TL0=(65536-8333)%256;
6 b; b/ h* v" O) J8 Oitime++;# Z# W: H2 X  z( v- i, K
if(itime>=100)0 z! s6 g7 j1 z9 Q
{
3 t4 {4 B, `% `: _3 w' l  itime=0;
" v) k. s1 I3 ?" J  btime++;/ q3 g- ?# b+ \' [8 w: a8 ~
  if(btime>3){TR0=0;btime=0;}( V( S3 J& c% t6 ~- M* a
  buzzer=!buzzer;
7 S2 `9 i: z9 U3 {$ w' j' Y} 6 Q; Q7 X  j4 Q' u3 [5 P& d
}
5 F* ]2 F% d- R  L, N/ q' r+ |void main(void)
( S3 P1 c( c! X, g2 v0 y, D0 n{
$ _9 K1 Y# N  g7 J" g9 vtime_init();4 I# |4 b7 L( C. a- i# Q6 o
for(;;)
' ~  t' ^# k' c, A. ?6 e* m- s{
# ?- u8 d, f1 S( [. |  key();& V9 \. D: ]2 b9 q/ m; F; C, |
  display();. ]! N7 |# t" U! K5 ]
  if(TR0==0){buzzer=1;}$ ^5 L9 ]1 A3 I, q, o; e
  if(clear==0)           //???????????
) g* O7 c- Q- i* u# X# D  {/ L( k& f  t( K2 w7 C$ K' k
   delay(10);- g  t0 l' \% y5 _
   if(clear==0)
1 c( C/ t( r6 P- @   {" t5 h" L8 Z. l$ b
    bed_NO=0;
$ I/ Z3 o* ~( K   }
- }; S$ J- X+ F! [3 o9 {8 u! B+ l   }( J! ?7 C; o2 o  j
}
! I, B1 A3 y; q}$ @3 `+ k0 L) @. `" I' V
& D  l- e# p: a
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2019-12-27 18:06 | 只看该作者
    8 ?8 N/ v4 m& y
    这程序出错了,P0=0xff;
    : a0 y6 r, f( E9 Q  switch(P0&0xff)       //
    5 r% d) s2 k$ h这个P0已经给值了,后面一名开关语言还有什么用。
  • TA的每日心情
    开心
    2023-5-15 15:25
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2019-12-27 18:07 | 只看该作者
    2 J5 Y0 ^$ B6 [# ]( Y
    可能指8*8键盘只扫到行出不了列的意思 $ y% K4 s& A2 a; X0 z: [
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-18 20:32 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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