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

单片机计时表proteus仿真和源程序

[复制链接]

该用户从未签到

跳转到指定楼层
#
发表于 2019-1-10 06:30 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您登录!

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

x
单片机计时表proteus仿真和源程序9 w, u: u  c  K: g
) g( M) |  e/ m) O: O/ H, A
  c4 C7 n. [1 y  O; L
51单片机源程序:
8 m" A4 y3 O1 _0 T//简易计时表,未开始计时时8循环左移,INT0计时开始,INT1计时停止,精确度为0.1s$ s) R3 ^4 r; b! k
//单片机晶振选择12MHZ 0 b+ @+ l) m1 ?: H
//收获,定时器计算1us为一个指令周期,可以通过公式直接        求的所需时间
4 J- C. M$ @7 O//在数据传输很容易犯错误,因此要注意在草稿纸上演练  {% R4 H# ~+ `+ Y
//在获得数值与运用数值时,除了必要的数据转化,尽量不要处理,直接运用有利于减少错误  G: ~$ {9 I9 d
#include<reg52.h>
6 M! l" C# I. G1 i# Ounsigned char  M[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};1 ~5 h. \  r% u4 n. d. {) l
void System_Init();- V- `" |, g" o) J5 r+ Z$ N6 J! j
unsigned char flag=0;# g! O* a( ^( v5 ~& i8 E
unsigned int Timer,Time;        , }6 G- S2 h3 ~! g5 d7 {; N- o
unsigned char Dissbuf[3]={0,0,0};   
" n% t" v, `5 {' [# Svoid main()+ K4 r/ w3 s# m4 u: u
{) j% G5 ^* [+ I* R0 x1 L1 I
  unsigned char i=0;
5 I* H% Y( h* p3 L+ \  System_Init();
# ^' D  ?/ n- v/ z* f  while(1); J5 F7 S" a0 t
  {' z4 i+ F4 k1 ^. p
: I& z$ T1 B9 E# F, W
  if(flag==0). \) v) O0 i: V) G# b
  {               
  `; j# B4 l5 [$ e$ b+ m7 ?    i=Time/10;% o& P6 @( @; @# ^; M7 b1 }
    if(i%3==0)
, f: p3 g! M4 U6 k        {P0=0x002=0xff1=0xff;}
  |) c4 b- Y+ f9 _. S/ Q. \* I, t        if((i+2)%3==0)4 K1 h+ M6 A* y
        {P0=0xff2=0x00;P1=0xff;}, i6 q. m9 c; i
        if((i+1)%3==0)
1 G! ?9 w" w* l+ J0 z# W4 C        {P0=0xff;P2=0xff;P1=0x00;}
$ q1 J; ^! @* w" e5 Z8 O! Y4 ?/ D6 ]5 A  }
+ w: s6 l: S% z2 w  if(flag==1)
6 |5 k# D* I, U6 Y$ |" L, ]  {
; R, ~( G& O" F! N    i=20;0 Q3 T6 Y3 p$ q) F1 v
    P0=0xff;0 R: C( Z/ N5 {, `5 m+ Z
        P2=0xff;
0 y! ~6 |, K1 L% K3 E7 _- c8 x3 d        P1=0xff;
+ W( g9 \" S6 r4 z8 l+ X: A3 e        while(i--);  y0 O. j  H" J; F
        i=256;2 w5 d/ X4 C6 U# T9 j! d1 c
    P0=Dissbuf[0];1 i! V) N) C: ]; V3 L5 a
        P2=Dissbuf[1];
& B4 |/ h7 A' c/ R- k& `        P1=Dissbuf[2];: ?$ u, v9 X: o1 [: `
        while(i--);
! K# A0 Q  c6 E8 B  }
5 R! h. C  x: t' I: d. ^% J  }- I5 V! V  L8 a* n8 k! M
}
3 t$ R0 p0 k' p7 ^7 q1 j, ^4 P0 |9 U1 s0 n( c8 r

6 s  n: N; q/ }6 {void System_Init()
, n  ~" F  P2 q5 [2 F% E( {    {& l& U8 l' j7 X9 U
        , D: L+ W" d  b/ c1 o  o  h( b3 S
    TMOD = 0x01;
5 _+ [4 k9 H4 q3 h7 G! Y' h" m    TH0 = (65535-50000)/256;
% H# M3 t  m5 G9 j    TL0 = (65535-50000)%256;4 V# s5 m) Q/ O# t
    EA = 1;) X, ^9 I- \8 z! i; {" m& J& d! o. D
    ET0 = 1;: P8 V2 m2 q  w+ m4 i, k$ `
    TR0 = 1;6 o5 _" g# C" A6 Y
        IT0=1;
) P# T1 j& G6 P" ~# U        EX0=1;: \( X2 o- f* e
        IT1=1;0 [+ h9 \" }# X" y+ J
        EX1=1;9 O9 p4 Y# Y) v) r7 e. e1 B% ]
        }
3 Z& B/ D8 C5 }8 V3 a# @: U        void into() interrupt 0+ n9 |: W1 S% f/ o; i9 G$ s* j
        {% S! b/ ]) O8 _
         flag=1;% C0 |% `: h0 Q. B- I% @
         P0=0xff;
  c1 Y4 t+ X; R8 {7 \         P2=0xff;
/ L& G. Y/ k4 u+ @/ r" ~         P1=0xff;1 S& m5 a; u. M
         Time=0;% G% V- j6 L4 c2 H3 P5 i5 E
         TR0=1;
" N8 l: S: `* D8 j        }. O1 G  f/ t9 q* B( u
        void TIMER0() interrupt 1
5 |- p, H6 z! o5 w        {
) n7 l7 S8 S1 m8 Y$ m     TH0 = (65535-50000)/256;' A( g* v( V# E, {7 d, y
     TL0 = (65535-50000)%256;
' X, g! X4 u+ H; P: D          Timer++;
: h* k1 f$ ]/ x  o7 {, Q+ T# [- f8 l          if(Timer==2)9 H% I. B7 f! n" K2 G) q9 ]* Q
          {
! N4 N$ W3 f4 P3 c2 A& B- g! D          Timer=0;. g/ b4 l' C8 ?+ J1 m% f( t
          Time++;' }/ @1 a3 q7 |
          if(Time==999)! _) H: f7 }* a" ]" C" i6 E8 L
          {Time=0;}
1 D& W! O. ]1 s          Dissbuf[0]=M[Time%10];- P3 q3 w2 {+ K& e/ M8 A4 u
          Dissbuf[1]=M[Time%100/10]-0x80;3 O, s5 \0 Z7 R6 ^
          Dissbuf[2]=M[Time/100];
; P- Z0 p# ^) N' c9 Y2 x          }
  _; [- Z: H* e5 x5 F8 M! y" Y
- D7 A4 k' i& N
. U- A! x7 h7 s1 C4 g2 _$ h

" y4 `" p9 J* m# |5 J' O# @
& M! d: x/ Q' O; a* D  B6 }
…………限于本文篇幅 余下代码请下载附件…………* |# i1 q" p% u& `
( b8 g; w2 o+ t# B

- Q5 ]1 ]% Y+ c+ k7 l4 x
. v( {1 j# {! F8 ]% E8 G
9 Y# p+ p" e3 O# G& R5 f+ I" y- f) c, ?/ H8 a2 y- k  b( s
单片机计时表仿真工程文件和源码下载:
0 x0 b5 r5 R# H4 z" T: I$ v3 ~$ D- ]8 _  A

+ P! C3 u" a: ]% ]+ h5 g
游客,如果您要查看本帖隐藏内容请回复

  _/ r. Q2 Z: K9 h; N' B
3 E" J# N* j* Q* n3 R$ T
  • TA的每日心情
    擦汗
    2025-10-20 15:44
  • 签到天数: 62 天

    [LV.6]常住居民II

    2#
    发表于 2024-8-10 16:52 | 只看该作者
    这个论坛的规则太多了,一个小时内不能发超过两条消息,下点东西要威望值等,真是讨厌啊
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-24 21:11 , Processed in 0.234375 second(s), 27 queries , Gzip On.

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

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

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