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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
单片机计时表proteus仿真和源程序' K" w+ d- R3 W
' W, S* v- z- t8 S2 i+ L1 G6 w

! i! r6 ^' }. b/ o, t51单片机源程序:
  }( X2 s: f$ n/ \1 S$ R2 P1 }* ^//简易计时表,未开始计时时8循环左移,INT0计时开始,INT1计时停止,精确度为0.1s
2 p0 j! L# ^) F3 i+ O//单片机晶振选择12MHZ $ m: t" f$ T& ]% v0 w5 g
//收获,定时器计算1us为一个指令周期,可以通过公式直接        求的所需时间
/ k& x" k1 z8 }2 F9 e- ^5 }//在数据传输很容易犯错误,因此要注意在草稿纸上演练
* l4 o1 x; h; g" T//在获得数值与运用数值时,除了必要的数据转化,尽量不要处理,直接运用有利于减少错误
1 [6 M6 r0 y: ?5 }$ K* E: i/ l. ]#include<reg52.h>( k0 w+ k7 t- j
unsigned char  M[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
% C9 r7 k8 |$ p" d! R8 b2 @# G0 kvoid System_Init();
" u( |2 y9 t5 X0 J) O& eunsigned char flag=0;
9 L3 y! D. V. junsigned int Timer,Time;        ) p. V+ B2 G( |! s8 d
unsigned char Dissbuf[3]={0,0,0};   2 @# ^. E2 A% Q' S7 Q% {
void main()
- {0 X1 k  \0 d( l. D7 X3 C{" Z6 G& d) x8 K- V3 e# P
  unsigned char i=0;
( d; ]4 D% ^( F( C0 D( Q  System_Init();& f9 B6 }6 e" ^( E" z. C
  while(1)
2 w' F/ _  R2 W, b& F) W/ I  {+ x) u, W' l3 u$ x  H' I

4 W% l: P! L) D* U) g8 Q; L4 |( n  if(flag==0)9 J7 K( F, _  P2 d* N
  {               
! {% ^$ `+ a" }    i=Time/10;% f/ k0 p2 U6 N/ w# j
    if(i%3==0)
+ y$ H8 W: l2 g3 C1 r" k        {P0=0x002=0xff1=0xff;}
) n3 b5 I7 W9 I+ m+ s  d        if((i+2)%3==0)
: i8 G( T3 y& V1 Q        {P0=0xff2=0x00;P1=0xff;}$ f2 y9 C6 ?3 T; ?4 y
        if((i+1)%3==0)5 \+ R( B0 e! `& h' {. I3 \
        {P0=0xff;P2=0xff;P1=0x00;}
9 l" |& l/ P+ u. M' ~7 g8 m  }5 e& T: m# G5 n; B' B, |8 m) c6 k
  if(flag==1)! n1 E* r. |: V% D, U$ \
  {
# H  i8 c+ y& D8 A' d# Q( j    i=20;# \% G' q5 `: m
    P0=0xff;3 ^$ S! _) v. Y" ?
        P2=0xff;
3 Z. w& P7 b9 k        P1=0xff;: o6 [' ^& S+ |5 ^( @
        while(i--);8 B0 z  ]5 D7 T! e7 ~; B
        i=256;
& W: Y, ]4 `& r( S0 n1 A    P0=Dissbuf[0];% \0 Y3 v: x4 [" [+ t6 \8 S  J3 r( `
        P2=Dissbuf[1];+ J: e8 `1 U3 s/ ?$ u6 V
        P1=Dissbuf[2];1 Y" Y- M0 ^1 t- h  ?; c
        while(i--);8 A- i8 [1 c, R. p( e
  }
" ^3 |, v0 h( y: l: Q4 \  }
9 H; V6 G- s& Q2 v}* j+ N1 W) Q* g

8 m& X" Q: ?9 A- P
/ Q& ?' J* W( P; W  e1 w+ g  [
void System_Init()& ]9 w( i1 h! I# I6 K
    {6 N  [5 J/ ]' V
        
5 a  V/ t/ \$ N9 H* ?9 J    TMOD = 0x01;3 Q8 o" b  t  _8 |2 T* s
    TH0 = (65535-50000)/256;
/ F( R/ r) Q+ W( a7 k4 p" ?4 Z) s    TL0 = (65535-50000)%256;
( _% |. Y5 u& c8 H1 p: `+ v( ?    EA = 1;& g4 z3 F- M: h2 c. V  `" S
    ET0 = 1;5 O* H1 {% y- \4 l7 E
    TR0 = 1;0 ~0 N$ q; N: [' `7 f
        IT0=1;+ l- s, D4 r0 z- }6 [
        EX0=1;
9 X/ K! N( C" c        IT1=1;
) i( h& G6 v* Q        EX1=1;2 b) w! u# Q1 d( Y+ o
        }) U: Z2 d! n6 ^0 U% @
        void into() interrupt 0
$ q  ?8 Z( h  h1 w" B  Q& z4 B6 ]        {# N1 C7 J* O  D
         flag=1;
) D: u4 @, q) }4 X/ u8 B         P0=0xff;9 o3 y; o$ a4 m6 E( I" Q
         P2=0xff;
" X, [! L, a" ~7 g* z5 J         P1=0xff;
7 B# a4 P$ A, e* U         Time=0;
; r7 R8 i- I" [6 O         TR0=1;
( r5 {% s+ `$ c. G        }
$ F4 A9 ~9 k7 }8 @/ {! N8 N        void TIMER0() interrupt 1
+ k; d7 v. [/ C3 A% \5 D9 T        {
/ j) y+ p3 ]8 M' F+ _     TH0 = (65535-50000)/256;+ d8 ~4 L4 a! Z1 `3 }
     TL0 = (65535-50000)%256;
, d4 ^  P8 _( g+ {  Z5 |) O          Timer++;
% ]9 ?4 k2 X$ Z! c7 G          if(Timer==2)0 J5 y1 M* _  s) h' D1 o' a
          {
1 `1 n3 N5 }3 c) `) `+ M* J          Timer=0;
5 T% O* a% r: a( `( f          Time++;$ B9 T) X5 ~5 o1 j; P& k4 N4 s
          if(Time==999)
* i) H+ [  l/ R          {Time=0;}, x, l. E3 }; j  d4 ?! r
          Dissbuf[0]=M[Time%10];
( E- P  F) s, }) @+ g8 D' \- V          Dissbuf[1]=M[Time%100/10]-0x80;  d" v0 A( E+ k5 B4 Q# W
          Dissbuf[2]=M[Time/100];; d: z; P6 [* }% \; {+ }8 J/ E6 \- w
          }
# \1 |$ `' H; O3 A: J- f
8 j, A+ y) i3 m/ y9 \( ?5 P
! r/ |" H' R: u

1 g; B! T, R3 ]" Z6 {$ Y, ]
) m; h; ^. p9 l. `4 G
…………限于本文篇幅 余下代码请下载附件…………
' \; S+ W! k4 r! D5 s9 I
( `2 B5 l/ _7 d6 h6 a# L8 C
, E3 t9 }2 V/ D, x/ f$ X6 h
: k  M! A4 T) w& @

' J# G# o1 [6 @4 v* y0 K
, W) j% L/ R- z2 j( W单片机计时表仿真工程文件和源码下载:% D# I5 t" j5 ^* B# k: K
% W& [+ G" ?; ~- J! T# K  \- [6 }
4 Y" A# `# ~2 B
游客,如果您要查看本帖隐藏内容请回复

) B5 x# K) X7 F" Q0 r" C
0 H' E4 z" M) q3 S0 K
  • TA的每日心情
    擦汗
    2025-10-20 15:44
  • 签到天数: 62 天

    [LV.6]常住居民II

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-25 00:20 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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