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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
单片机计时表proteus仿真和源程序  H# V4 E5 t0 [) {/ ?0 t
. \2 J) s% q+ j( T  p; D

4 I( e; O! ]7 G' ]7 s* r/ k51单片机源程序:5 u4 @2 E3 [- N8 b
//简易计时表,未开始计时时8循环左移,INT0计时开始,INT1计时停止,精确度为0.1s! [* d/ H4 ]( h' N# m# `
//单片机晶振选择12MHZ : a% u. D9 y! P' T6 y; b. q
//收获,定时器计算1us为一个指令周期,可以通过公式直接        求的所需时间* j/ y& l. \9 d# w3 F/ ^7 G
//在数据传输很容易犯错误,因此要注意在草稿纸上演练
$ Z# E0 v/ P: z) Q% k//在获得数值与运用数值时,除了必要的数据转化,尽量不要处理,直接运用有利于减少错误: C: }5 a& x8 Z$ M
#include<reg52.h>
- z" T1 R" f6 K% q9 b0 E9 N4 J+ zunsigned char  M[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};/ {; E/ O" s2 X0 Q  I3 s
void System_Init();, }2 o3 B  t  T  \
unsigned char flag=0;6 K, M% {: }3 b+ O6 o& u0 X( u7 n
unsigned int Timer,Time;        
9 Y. U6 d$ J. k$ x9 a: P# Xunsigned char Dissbuf[3]={0,0,0};   
! v9 q* A5 l1 Y1 Y+ T8 T' ovoid main()
3 `2 s7 K" z3 ^! E# O5 g{
7 u  ~, z/ ~5 T' S  unsigned char i=0;
# M6 W  t( C2 z+ g# [$ [/ p  System_Init();
" V- ?. X; n  `' @4 D$ C* k  while(1)& B' G" R0 \* j3 h
  {& l" J2 @' L, m+ D1 l1 y. c
6 c$ d( B$ C" h( j8 w
  if(flag==0)
. a0 s* x+ k; m/ l  {                # X+ Y- l) A* S  }" s4 E
    i=Time/10;8 h% z! ~2 [4 i
    if(i%3==0)7 a, q' d$ s' y7 T/ w
        {P0=0x002=0xff1=0xff;}" N) Z! u$ \- U/ D2 T( v. v
        if((i+2)%3==0)  N  [( K& B4 |: B! l4 k$ |
        {P0=0xff2=0x00;P1=0xff;}$ r  P6 P- A7 L2 Q/ a! b% s7 ?/ r
        if((i+1)%3==0)
. `5 v' z* @" N4 B. c" v2 T6 b        {P0=0xff;P2=0xff;P1=0x00;}
5 Y- H# w; M6 l9 `% @  }
& M$ B; h. F. P! e' ~- j& v3 v- j  if(flag==1), N' y3 S; J: u- K' n  M" u8 L
  {
' I0 X, H: p4 V5 |1 N4 R0 h# q7 A* ]    i=20;) h& J+ ^. }5 V
    P0=0xff;
6 K0 j* {" m1 A; Z! i8 @        P2=0xff;
4 T9 @; p: e' r5 _5 j% E: V        P1=0xff;
- u0 F5 ~, i$ _3 @8 a1 q        while(i--);( z8 s  S6 c3 k7 P$ A/ Q1 d
        i=256;
; h, P0 `/ u& l2 [- g    P0=Dissbuf[0];
9 ]* R* n4 A5 a. p        P2=Dissbuf[1];
/ X* a/ U$ i8 X3 r! Y        P1=Dissbuf[2];8 O% x4 d' u$ M
        while(i--);
# I  ]4 x4 D6 a8 O, n  }4 g. w6 U! }- G. |& `
  }
+ y8 D& y4 n+ Y$ g: v7 f7 ]}; E! L, C1 [+ v2 c0 W' H0 i# w
; W! J% ^) K4 [' L) z5 s
0 _$ T' w; m) G* O  d# r
void System_Init(); p" n4 U: I# J
    {
" W1 P7 }8 V* j+ c        
% k& o  k  e) m9 E    TMOD = 0x01;$ @$ i- ^( I4 W( h; i/ B- `& m; _  r
    TH0 = (65535-50000)/256;
4 ~+ K- i# K* }& m4 k4 c    TL0 = (65535-50000)%256;: H( `4 q3 b8 f
    EA = 1;% N0 B- N9 ~; V* D  t
    ET0 = 1;
# x  O4 R8 ?1 x9 r0 j    TR0 = 1;, `& f4 C' @+ x* l+ P4 B
        IT0=1;7 K) c; v; Z( C
        EX0=1;' v( Y  T! Y' r5 n% Y, \0 H3 v
        IT1=1;
9 T" ^( u% z6 y0 X2 P        EX1=1;
8 H6 t: T# r: ]% v        }
0 B' @% t6 j' _7 \. J        void into() interrupt 0
: H; q' T6 \' ], ?5 a" }4 Q, j        {
8 y( \* r# ]% k2 p2 {6 C- |; G+ A         flag=1;. J# K2 v3 E( I" t
         P0=0xff;
) a% D9 |/ N6 A4 J  n6 k         P2=0xff;
2 V( r8 L8 G. I" A  z1 b4 n         P1=0xff;2 J- O% s5 Z/ P& p( m$ |
         Time=0;2 h1 u' w$ ?3 X" _- d
         TR0=1;% z7 j1 y3 G9 Z1 z
        }
0 W  c8 o* M! Q# w0 P7 ?        void TIMER0() interrupt 1
" o* Y9 g" D- J/ R. [% J  F$ g% h        {
4 I& T2 G1 C( P     TH0 = (65535-50000)/256;
! v0 H' ^$ y* _! }9 I4 O2 |     TL0 = (65535-50000)%256;* _3 w+ G+ v3 C/ z
          Timer++;- `( ?' K* F1 C% x
          if(Timer==2)7 M6 y  ^$ \, @7 ^
          {
; U9 g$ x# R% r% U1 D/ Z          Timer=0;5 L2 |3 Y/ I0 B& d4 W. v
          Time++;
+ r4 R2 N6 r7 {& v- w$ F          if(Time==999)
+ G0 q' O# z7 u; d# }          {Time=0;}
9 ~& ]+ B+ j/ D          Dissbuf[0]=M[Time%10];
9 |( u/ L, c( W5 Y8 X" X          Dissbuf[1]=M[Time%100/10]-0x80;
' e/ U# K, {) H, K& Y3 K2 [          Dissbuf[2]=M[Time/100];- a1 R; v6 E. {! e
          }
7 m% ^. F2 O% Z1 X7 s% Q
4 Z8 C- O% r- {' v5 ]
4 _) \0 L' E1 J- M# S) {3 @0 s% d3 v
8 s! _) @4 `% ]8 m3 }4 {
$ ?4 a( Q8 q: f, Z6 I
…………限于本文篇幅 余下代码请下载附件…………
# t* a! E6 ], [# z4 U" y+ O8 ^! k) o( W% {7 T$ b& h/ l! @+ E

, h5 V/ Y! E" Z" A& w3 v8 k- Z - K/ c3 m+ W4 L) ~# q( i
( b- _9 f5 d( {! m' y

9 }; T- h7 G& Q3 ~* i* A% z6 N# B单片机计时表仿真工程文件和源码下载:
6 O7 S  |1 W9 {' |
  L2 }+ e. c7 @/ W, w, ^4 T
$ Z5 o6 h- ^% i8 N" K* L- \3 N
游客,如果您要查看本帖隐藏内容请回复
; c2 ^" D  I4 L; _6 G; \

( z6 b( f( S( x6 C! ?1 F8 ?% T3 F
  • 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-24 19:55 , Processed in 0.187500 second(s), 26 queries , Gzip On.

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

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

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