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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 kinidrily 于 2018-11-27 09:41 编辑
# r+ Y4 p# d1 D) S
+ G8 _* d: |! M8 Z, s9 m
单片机数码管显示数值,按键设置数值 源码加proteus仿真

9 [4 ?2 q  `6 X$ a
单片机源程序:
  #include<reg52.h>
; H. c3 r" w! A  #define uchar unsigned char
: ?6 r# ^! W+ U4 h. N) ]: l  #define uint unsigned int$ k1 i' M( i/ K! q8 B1 o& M
  sbit key1=P3^4;
1 D; n  ^$ a4 ~0 `  n  sbit key2=P3^5;
5 y  l, E2 B* P% M4 q1 ?  sbit wei4=P2^0;1 w! D2 d7 @) ^2 H9 P% z
  sbit wei3=P2^1;3 b$ s5 a' B- c# V0 s) Z! \* S3 Y
  uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77};
" U. v! ~; P& Y  void delayms(uint);
2 @2 A2 L" P& ?4 H+ Y8 d& _3 ]  d- }  uchar numt0,num,flat;
& G5 ^* m8 W% q   void delayms(uint xms)# N5 i5 {6 U( @4 r
   {   
0 b/ I# U; J: ~- X6 b8 J* c3 ?       uint i,j;
6 M* _& f  Q+ k$ E* e0 b           for(i=xms;i>0;i--)
+ f8 m  y) B. P5 V' J3 a; X0 N) i             for(j=110;j>0;j--);! s6 N9 q3 T$ [6 F- u) _
          }/ }& c2 n! s- t& S
   void display(uchar numdis)
4 \  k2 b& j" R* V8 ?" K; j  {
. G7 Y: p4 g% m4 X# B/ r9 g    uchar shi,ge;$ c7 l* a1 v7 o3 ]& i# Q
         shi=numdis/10;
6 l: b  J- r- y* R        ge=numdis%10;% Z' C7 A4 J4 w
        wei4=1;
) X9 C/ E( s- B0 K) l, w0 b        wei3=1;5 Z& W5 {. J9 V/ N/ F2 n
        P1=table[shi];
; \% r) q; f/ [) m  V" n. B- V! C7 Q        wei4=1;8 X) r9 `+ a5 v$ o. I2 i7 o
        wei3=0;, p/ [3 [1 s5 T) j5 e7 a! @
        delayms(5);% J" o, K! n4 s+ h+ t
        wei4=1;
1 b0 A( m! ^1 [$ Z( d# P8 v3 {        wei3=1;- ^2 L; h0 x% S' f* U7 g$ Q9 |1 Y
        P1=table[ge];
  ?; e" }. {( @        wei4=0;7 G  k* z6 {) t% G
        wei3=1;
# v! x  z1 b6 e" T: C% P& `        delayms(5);: X) n4 e/ s' N: T7 Q9 d
        }
4 F  e( s* Q( z" x6 V6 D7 h        void init()$ i% r' p0 Y6 d% R, d" T1 z
        {
: Z3 ]8 h6 v/ E  @       TMOD=0x01;
) f; D6 T9 V$ e0 z" w           TH0=(65536-45872)/256;
$ _, m' y, i9 E! S3 ^           TL0=(65536-45872)%256;
6 M5 V+ b8 K3 i, E2 ]8 n" }           EA=1;* K8 ]& H# a* u: G3 X0 U) ~, M  Y/ `
           ET0=1;
- |' M$ f$ [! K% D3 Y$ K2 d5 h           }0 |$ J/ u8 f, `3 x
   void keyscan()8 H/ \" c; Z! E* B! m9 h
   { 3 L+ q! l% I/ b6 V
      if(key1==0)
! H# Q! y9 Z$ C: }& b5 i; U          { 0 L* i' j% C$ m/ \/ K7 d, x
            delayms(10);
/ Q& w7 L2 g+ i" F4 Q                if(key1==0), t3 Y# F, q1 L0 m
                {
; C  d7 v' R  Q+ w             num++;
1 R( z$ F2 w1 E0 W9 u/ U1 r8 {                 flat++;! r' N& Y; {. e, B8 P8 W" {6 F
                 if(num==99)3 s) W7 l4 |+ Q0 G
                     num=0;$ i( T5 C" X  k/ }' m: @2 H3 m
                while(!key1);
2 W, _# c5 P0 D2 h2 Y3 l          }
6 k4 E/ t$ A2 \0 V        }  p+ E' a( o. |
   if(key2==0);
8 J$ G+ |6 w0 }( n9 |" b   {
, L, S+ g- l' Q$ l* C      delayms(10);
# D5 A2 V+ G2 K          if(key2==0)
* B3 N3 D" p' D+ M          {
7 B/ M! r+ ^$ o$ t% i, ]4 I; q             if(num==0)( `1 S; {% x$ _' z7 |* h9 ~% K
                   num=99;
0 o4 s. E  k' i3 p4 X! w4 m( |                   flat=99;
0 }6 H; _* K% U& I" X9 n                   flat--;! e" K+ P+ w- n' H# `- ]) [) }
                   num--;
, m( `1 R5 ^4 ?" Q  A3 K! n' s                   while(!key2);
6 \8 o  l1 ?! j) {; v; G/ A) b" D                   }
9 O" O0 N' Z/ b; x2 t, r- M! m        }
1 x. ]/ Q1 H1 \4 B) ?  }. Y" K$ x4 W  \9 o* F1 Z
  void main()& H" S& o+ ?$ ]& G
  {init();
+ Q6 _  {8 U6 o# h# A( W3 V1 H; O   while(1)
/ f! B( u" c& n; m  H6 ^   {; K% k& s) p8 o. l# w
     keyscan();
) C6 s* }+ D! @         display(num);
& K! w' `2 E9 b5 g" m         }}
% Y" t0 Z7 K, u* q% a% R" I7 y        void T0_time() interrupt 1
9 Y! t+ K1 p" T+ L: \        {TH0=(65536-45872)/256;( P" F% H! {, I; N2 `8 k7 o
         TL0=(65536-45872)%256;: ]  B1 t# c/ W
         numt0++;
3 j7 |* g( \. j0 l+ P7 i9 F/ X% C         if(numt0==20)( @& P* R% |2 E
         {numt0=0;
. |& \' i, B: `( f5 W         num++;
9 F9 |. R# L; A$ U& ~4 [/ z         if(num==60)1 P* y* a/ C! Y
            num=0;
…………限于本文篇幅 余下代码请从论坛下载附件…………
游客,如果您要查看本帖隐藏内容请回复
3 S2 @1 s# T& u. n: S

该用户从未签到

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-10-7 01:34 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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