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

单片机数码管显示数值,按键设置数值 源码加proteus仿真

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 kinidrily 于 2018-11-27 09:41 编辑
; A* J0 p: |  e: J& w  M  g8 |( y; e, J  t( g$ C9 C6 _' q
单片机数码管显示数值,按键设置数值 源码加proteus仿真
% `" j: `  M. ^# `  ^0 k5 }, w: k
单片机源程序:
  #include<reg52.h>
; s, j, ?6 G2 X. k$ M, G( T0 e, s' O  #define uchar unsigned char$ M5 z) X1 f* l5 Y4 F
  #define uint unsigned int
, A$ e( H6 Y4 L7 q7 M9 B0 _  sbit key1=P3^4;* |3 H  O5 |8 R
  sbit key2=P3^5;
1 K0 r7 o1 T  e; J, T$ }  sbit wei4=P2^0;2 B* \* N, \/ s* I5 w! R8 F; S
  sbit wei3=P2^1;4 u3 B) f- ^9 {" @
  uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77};0 F" x" g% ~9 L5 n: V! i
  void delayms(uint);1 R3 {* y+ z5 X) w
  uchar numt0,num,flat;( @  j3 C7 M4 |3 h7 ?
   void delayms(uint xms)7 \; c& b+ H+ @! ]3 v4 j4 |. c
   {   
+ x8 @5 d# I: j9 }       uint i,j;
1 F. q3 }8 l% v( t3 g% k           for(i=xms;i>0;i--); m% @; B- B+ \" K/ y9 _  y) Y
             for(j=110;j>0;j--);
+ O' f: u$ P6 i          }
4 n2 q  S5 V7 V8 u& ]6 C# R( b' `+ h" Q   void display(uchar numdis)
# f  n4 Q- V8 X: F  {
6 w1 y: T$ d) b  O/ O2 X# a    uchar shi,ge;3 [( v) I. e' k3 l( J( {
         shi=numdis/10;
9 N" p1 a3 S7 R9 U  Z3 o* F        ge=numdis%10;$ U2 y5 N  f: f) x7 R
        wei4=1;
- ~+ a+ i. w1 R+ |$ B! n        wei3=1;: L4 o' x( p4 c. h+ t
        P1=table[shi];
" h. R* I. G, W: ^        wei4=1;
( l6 l, M/ ?- _* b" R8 E- F; G) T        wei3=0;( z7 n& s% H! M8 Q
        delayms(5);- @" c" s) S3 {7 E4 o
        wei4=1;
1 C) X6 ?  I. O; l  k! v        wei3=1;: O9 ?1 @* P% f! E$ F* l1 x
        P1=table[ge];0 ?% R, \0 T+ ~. @/ \+ p
        wei4=0;3 I$ _7 y1 a" `3 ~
        wei3=1;
5 S4 J. M" L- q' n        delayms(5);
3 \+ r4 @$ H7 a* E  Z        }
  \" M' o: J" G$ Q4 I- S0 ~0 w: @8 N" Z* |        void init()
& y: _8 S' z3 T0 a  }, t        { ! [: ?7 @% C, I, D! R9 _; x
       TMOD=0x01;
/ Z* u' B+ k2 v" T$ A6 s4 K2 Z! c0 |           TH0=(65536-45872)/256;
9 ^3 F! Z0 |. J8 J8 s1 P. D1 f! W           TL0=(65536-45872)%256;
9 Z: A, w2 R9 R- K8 B           EA=1;/ p/ n( j4 n/ H: e4 j* c% S5 t
           ET0=1;
3 }! p( ?# O+ R' N$ S3 D3 V. O. w$ D           }2 H9 ^$ R. e& u2 W9 A* W) Z4 i
   void keyscan()0 W) P. i% a, F. y0 b- d
   {
! [' }, W- O* s( J  B7 C- C      if(key1==0)9 b' T9 n' k1 x
          { / k: l. |: ?: K: V' L' K/ Q
            delayms(10);
4 ]4 S& X' o* l                if(key1==0)
  u+ j  A9 V9 p9 S5 `                {
. t7 F0 B# \: B6 Q+ Q2 _             num++;
9 J) B# x5 P% T3 g                 flat++;
8 _, `! x% z& X( J9 J/ m4 d                 if(num==99)
. c& l6 F7 B1 M3 F7 R/ N- o/ t# z                     num=0;
. g' m- \$ l5 }" G/ R7 @" l5 a                while(!key1);
7 g- V& {  I  H' s* o$ t& k. _. [% d0 o          }
, f* ?. V2 _- i" D8 _        }
: m# {; {2 ^' `7 S# K" g. u   if(key2==0);
) T2 B& v; H$ ~9 k( _   {   L, d7 x  V% Y4 P7 X& h/ W
      delayms(10);
, U3 M& |! E7 O$ h  g          if(key2==0)0 L: T9 e  {* T+ f4 `& ]
          {: e9 _/ h9 E) i# {4 x+ j- W7 I
             if(num==0)
: t/ b& {& |6 K2 V: t# `- ~                   num=99;
& s  Q4 I6 L% j' V" t4 ^0 M# G                   flat=99;
+ Y8 K& {0 }6 e3 X                   flat--;
/ l$ c7 J2 t  d9 p3 R                   num--;
. X, w0 ?7 A) |5 D6 k$ B! r) u                   while(!key2);
* h% w8 E# C  P% E* X" x                   }
' I0 k+ F% f  p" Z7 K1 M$ @- i        }4 W: K" L2 a$ r/ U4 v( v
  }1 U) D/ _1 R: T; A2 p3 l
  void main()
$ N$ Q+ L/ J5 T. ~) z  {init();
; G/ g5 {" b4 W# C2 m# A3 @- Z; b8 U   while(1)
  j) p7 J9 Z/ Q   {
8 Y6 z9 J8 d- H1 L1 h' a& O, _4 r     keyscan();
( I3 `+ C1 c' {- Q+ _$ p         display(num);
& U+ M: K4 \. l/ [, f; ^         }}% X4 u' }% c. ]7 c
        void T0_time() interrupt 1% i) I: F. k7 N( c
        {TH0=(65536-45872)/256;
# f% z: Z8 r( F" M( [         TL0=(65536-45872)%256;
( N2 n# P& M( N9 e* ~# W4 U         numt0++;
/ C* R# _# O3 q         if(numt0==20)$ y) T! k' h  g' f/ z1 [
         {numt0=0;
4 x6 H( H( |& h2 \+ _9 G, a  ?1 l         num++;
6 s& k9 O+ U7 \         if(num==60)- r6 E" h  Z. {1 J! `
            num=0;
…………限于本文篇幅 余下代码请从论坛下载附件…………
游客,如果您要查看本帖隐藏内容请回复

9 l% [% P0 m( |1 Y. ^

该用户从未签到

3#
发表于 2019-2-28 17:53 | 只看该作者
看看楼主的代码和原理图

该用户从未签到

5#
发表于 2019-6-19 01:59 | 只看该作者

该用户从未签到

6#
发表于 2019-12-8 22:40 | 只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-20 05:44 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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