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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#include<reg51.h>
; R1 f5 O# a% e% u4 Z+ T6 K0 L#define uchar unsigned char 2 G0 G) Z0 L) ~$ s: q
#define uint unsigned int
( I4 X, J; [4 e% X. ]; }& H4 Esbit B1=P3^6;
1 G/ ]) v, F4 k$ x7 F# @* u# r1 Nsbit B2=P3^7;
$ U) l1 I0 Q! {+ ~# @& T- T* ksbit buzzer=P3^5;. u, a* S9 G4 }% k$ F; q9 U
sbit clear=P3^4;       // ???????B1,B2,BUZZER,CLEAR* h0 P1 X$ n0 }9 E
uchar code distab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};- n: ?6 t* w) ?
uchar code keytab[8][8]={{1,2,3,4,5,6,7,8},         // ????????3 h* Y# o& t- q& _7 r6 T8 ^
       {9,10,11,12,13,14,15,16},
: j  t; Z4 q  t       {17,18,19,20,21,22,23,24},) O# |. c* B$ e# D! T1 A& `. b3 S
       {25,26,27,28,29,30,31,32},
% V3 L% u$ J2 T! D/ ]) M       {33,34,35,36,37,38,39,40},
# R" F! N; @' v% U: K( B, k       {41,42,43,44,45,46,47,48},) x, o2 `8 ~8 s2 S$ a% o% `
       {49,50,51,52,53,54,55,56},
/ a+ h. S: y5 i" I; n8 [% ~       {57,58,59,60,61,62,63,64}, 5 n/ o' u- B9 X6 n4 A1 Y9 Z
      };      
" U5 b1 b5 j1 D" tuchar bed_NO;0 Z# i6 R; l) H# p( Y: {3 N% `
uchar btime;
3 m) k+ R( c5 \uchar itime;       //???????bed_NO??uchar btime??uchar itime1 e- k6 o5 P1 q+ `) c; E
void delay(uint x)         //???????????; M! _5 n* \! {
{   uint i,j;! p/ X+ e4 Y5 O0 T* u! S; }& h
for(i=0;i<x;i++)* _* z" \0 L- y, B* w! c! c
{
' D5 i7 [/ V3 l5 G* H: T/ z" g  E  for(j=0;j<10;j++)
0 s3 |' ~9 q4 v3 n7 X0 E( b& `  {;;}
. u# h0 O6 R# J}" E' L# l: O$ D) R
}
0 v, Y. A$ N" H8 A4 f! l5 i8 nvoid display(void)        //??????????5 H0 {4 N  `# A9 T7 s6 Y/ j' M  B
{
% x3 C, v4 M- ^) f- yuchar a10,a1;( C3 H/ t2 K7 y- z7 f7 w. J
a10=bed_NO/10;
9 [4 n# u, {7 n, }% Ta1=bed_NO%10;
2 }* |# c3 {' |" `6 L/ LP1=distab[a10];5 |2 l9 O3 E. C, V! U5 U+ J
B1=1;. a+ y  B4 ^- I  `: j: q
delay(10);
* G% a/ [$ W; w( T/ b4 t% w' A' a. ZB1=0;/ h/ p( ?4 e6 H# Q1 z- r
P1=distab[a1];% ~- A3 A- T$ U+ l
B2=1;* L8 k% n$ Q2 ^9 F! z0 Z$ C
delay(10);
) V9 H: Y- v7 h7 V  N3 f# L/ R: _; gB2=0;
( j1 w6 N% g- ]$ x' e) ~}
$ |* j. r! V6 N4 H! T5 b; g6 kvoid key(void)             //???????
% N; A. T7 y  N1 p6 r{  z: b9 S- V2 ^& J  R
uchar hang,lie;% D2 x" s# D: @! s  K, z! f) y
P0=0x002=0xff;
- l, w5 m: l4 ]  d9 V9 g& hdelay(1);         
  G, u, t& i% }- }% H1 x0 X+ W) Zif(P2!=0xff)
! b6 Y7 o+ z. H1 \6 x{7 @% B8 H/ }1 c$ Z+ B0 j5 E, t
  delay(5);       //????5???????????
1 n" x: f" e0 M$ v3 ?1 y  if(P2!=0xff)! m  f8 W- N- n$ J( W* D+ t7 F* q2 S
  {
, U7 d  n# s7 U2 T! C   switch(P2&0xff)        //??????$ O+ y5 m6 t4 s; b+ O
    {
# s. l4 X" K5 ^3 @8 ]    case 0xfe:lie=0;break;, c6 Z4 |8 c) g4 {- j; U1 O! E
    case 0xfd:lie=1;break;! A7 O* R+ l. G. \  I
    case 0xfb:lie=2;break;
& ~' V8 `4 r2 ]& [0 V# b, @! V3 l    case 0xf7:lie=3;break;9 r6 F7 n+ `. X! R7 v
    case 0xef:lie=4;break;
5 H! C$ v; _  C    case 0xdf:lie=5;break;) @; r/ X6 F: L9 t6 N; b
    case 0xbf:lie=6;break;0 M' m) E7 [2 I0 B+ D
    case 0x7f:lie=7;break;
. \( |* B; H  d& H, U- [    }. n+ c( ?, X4 ?/ R
  P2=0xff0=0xff;; Q3 f0 Z' i1 |$ v9 o
  switch(P0&0xff)       // ??????
" v: p4 l+ N7 P% E6 j    {  x* D/ |% D1 P' E
    case 0xfe:hang=0;break;
( Q, w- g2 F0 M3 h9 v/ r* e    case 0xfd:hang=1;break;
  g& a) ^$ F- p3 h# x    case 0xfb:hang=2;break;
/ Y8 W" n" I$ ^6 m3 J    case 0xf7:hang=3;break;) {. O& q) v; ]5 U! {: o, t  D
    case 0xef:hang=4;break;
5 C+ V! ?2 A- v% i, u    case 0xdf:hang=5;break;! ^% {% {9 E3 @9 K9 n4 k: ~, o
    case 0xbf:hang=6;break;/ m2 d1 a4 l6 l( v0 K2 b
    case 0x7f:hang=7;break;" G% \' S/ h0 g5 c
    }$ C; i; N+ {$ m
  P2=0xff0=0x00;
* r4 m$ p) n9 F  while(P2!=0xff);
4 |  J4 i4 S; x- r6 ^  bed_NO=keytab[hang][lie];TR0=1;       //??????????bed_NO
2 {( W; b% P" @, T  }
0 z! v, P1 }! O8 y! I  m: N6 Gelse
9 B, ~7 U/ c+ O& X' Q  bed_NO=0;
5 A1 b! [) i: H2 M' ?5 e! v: T}  ) ^  {# H1 _6 H- Q( n7 w
}
' V. I& ^3 L7 ?# Q: Wvoid time_init(void)        // ????????????
! p, ?- ~5 K: p' F{1 c/ [0 n. v1 Q& q8 g) _
TMOD=0x01;
# i- x  L) M, ~$ _# R$ v, c' ~4 yTH0=(65536-8333)/256;        //  ?????9 `2 G$ d  b3 m
TL0=(65536-8333)%256;
: [0 }: u* l7 V& |6 B- A% eEA=1;- f" z* w/ O, D- }
ET0=1; 4 x6 {+ B8 v/ G
}1 E2 f& {1 ?# z: m
void time(void) interrupt 1 using 1      // ?????ж??  `! m5 I  P. E+ k/ x" [2 k  O
{
: r) D/ @# i: k* K, d% HTH0=(65536-8333)/256;% F8 O! x* X  D
TL0=(65536-8333)%256;
9 ~/ ~/ Y0 Q/ j) zitime++;
8 Z+ Z2 y5 F" J" m8 Zif(itime>=100)8 f3 Q4 d, s0 o# C& B
{4 P* Z! D" g( t1 X- K% Z
  itime=0;2 V# W" f& R) `; P: W, W5 E
  btime++;
% \; |! M* o: o! n6 ^4 X  if(btime>3){TR0=0;btime=0;}6 s- A( _* p/ p# {, l9 f
  buzzer=!buzzer;
! X7 u) x1 a- v* B& I; h} ; q2 E" @" Z/ c$ W3 s" ~
}+ n! f. u  z4 T* _5 x
void main(void)
1 M* L& v+ W3 s$ W9 A{
, F* t* N" n! }: ~time_init();* e2 t# j' j% U6 D4 T
for(;;)
: j- |: z* r" H& B" Q7 J$ c{
9 X" V3 Z9 T/ ~- a7 I- F2 I! w% {  key();
/ r# g; z. I. _4 i  display();- I7 v# M& s$ l) P- C* C$ p9 s/ `
  if(TR0==0){buzzer=1;}
4 c! _5 [1 h9 X0 t  if(clear==0)           //???????????
5 s/ o9 e8 b, F% g  {, j( @/ h7 r5 b+ P* \7 H0 Q
   delay(10);: S1 K% J* d7 h4 r5 r! J
   if(clear==0)7 U  w  G6 ^1 j, q
   {. a2 P8 c& r5 C: @/ _' [1 O
    bed_NO=0;2 ]$ |& M% P# t
   }' e% P) y4 E1 \0 x  x4 N7 f
   }2 z. L) V6 f8 |5 H: H9 E
}
8 r9 J* g5 o$ Z5 T7 C  g}' O6 t! v( E* z% ~0 a
6 X- r) d% Y' N# ^# o
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2019-12-27 18:06 | 只看该作者

    . t+ M+ U1 S. C3 x这程序出错了,P0=0xff;1 y/ L9 {  S$ b, O- A: w
      switch(P0&0xff)       //
    % [& N) a5 w; b7 F% b7 y0 Z7 q/ p* P. ]这个P0已经给值了,后面一名开关语言还有什么用。
  • TA的每日心情
    开心
    2023-5-15 15:25
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2019-12-27 18:07 | 只看该作者
    % ]& {$ J7 v# D
    可能指8*8键盘只扫到行出不了列的意思 $ T0 v4 P" T/ Y: L+ @( E. z; O
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-6-23 16:37 , Processed in 0.062500 second(s), 23 queries , Gzip On.

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

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

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