维修网

 找回密码
 注册

QQ登录

只需一步,快速开始

微信扫码 , 快速开始

查看: 279|回复: 1

用89C2051定时控制输出付C原程序

[复制链接]

classn_11

发表于 2010-2-2 21:23:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
有4段数码管显示时间,计时到60分钟P37输出低电平.关闭输出.$ S! }2 D6 ?4 v# O
8 O, o5 c- j: f; G1 F6 c" q
不知头文件用来表示89C2051是否可行.编译通过,再用TOOP2005编程器烧写上,装到板上没有任何反应.硬件无问题,
/ y* ^. V  C; F" \& H  Y6 s$ y: P# U; F2 `& d) L
请各位大侠帮我看看软件.. K" j: l& h; J* e) C8 T

* L0 N0 F/ d$ L0 O* A! p2 N 7 R4 Q2 f! r+ p" c
4 a* V# ?  r- G0 J, e% g- Y. m

" M: u  O7 A. \/ s7 {% S, I% a- T1 k. N
#include<reg2051.h>1 e! z2 ]" a5 O! f. N* p
#define uchar unsigned char9 V* {( W& m1 D# ^! ^
#define uint unsigned int
4 `" O& k+ A) A( N. euchar a;7 P+ k1 s# D9 _; m, i$ k: Z& t
uchar miao,fen,shi;
! W: [0 s8 e6 P! @* r/ }uchar code duanma[]={0xc0,0xf9,0xa4,0xb0,0x994 h1 w: }+ t: ^
,0x92,0x82,0xf8,0x80,0x90};//0-9的段码  f6 z* A' G, W# \# t- m) ?5 N% E
sbit P30=P3^0; //数码管位控制& c. y$ }6 y( g4 f
sbit P31=P3^1;
1 S+ q4 ~: I0 f* x  f" Psbit P32=P3^2;
. F7 Y8 k+ K' {0 t0 R5 S; Dsbit P33=P3^3;
4 o  v+ C- g. b$ T* N1 [2 c$ `# q, R; y! @& i" Y/ z
sbit P37=P3^7;
" D& e: ]5 w$ O5 uvoid yanshi()
' C/ ?4 {7 b5 K2 |* h3 U! O# F{
/ J- I$ Y# S1 F2 p3 \) d2 w4 l4 Z uint x=300;
" ^  u' k" \  j6 ^( s- D+ z while(x--);0 ^* X6 ~$ _' `
}9 A6 |% j& ^, l

3 W5 b& d' ^9 _# C
7 X  Q, t: ?6 c8 ~void chushiT1() //初始化T1, f: p8 {- q' t9 K6 Z6 E
{7 |" w: q/ S; A* B1 G
TMOD=0x10;//定时器1 方式25 Y; m9 c6 o5 x" o! D+ u' @* T
TH1=(65536-50000)/256; //50ms初值
; n+ j! m" i# S+ A: n) S3 b2 U TL1=(65536-50000)%256;
' V: {1 f6 o8 x: i! u  @6 G EA=1; //总中断开  S% G+ C5 `! ^4 J; o  C
ET1=1; //允许T1中断9 @5 @) f& O% s7 e7 o$ @
TR1=1; //开定时器T1
5 B% }! l4 t' e}
, W' M* H3 \, |4 x: c& x1 t# C: N
! ~7 X" \# j0 n$ f2 e6 P2 q3 N+ B* @void zhongduan() interrupt 3 //T1的中断程序: i) o" b: U4 y7 Y9 W0 @2 \+ v
{7 c: \; @. V" b: I' }4 P3 l1 o
TH1=(65536-50000)/256; //重装50ms初值
: C  K/ X& `3 _/ c5 o) ~ TL1=(65536-50000)%256;
+ M. ~  Y3 A. K* F8 ] a++;' b, k( n/ J, m: s9 l- N7 c2 }
if(a==20) //1秒钟到了( v+ b$ T* G9 z3 _# h
{4 P/ d3 }2 ^' Y/ {( o* J. G8 d6 y+ a
a=0;# A" h8 A* P- ~6 f/ d; x
miao++;
  {& Y" h) I& }9 c: r# ] if(miao==60): b# }7 m" h2 l2 S/ n
{
' W$ u5 \# `! a" U* s+ O0 k miao=0;4 G2 d4 {8 P$ \
fen++;
0 B7 S0 x& `. m; M if(fen==60)6 D6 n9 q' u6 A5 K2 R3 u
{
) F; Y, ?4 m9 N7 C6 N fen=0;
1 k# p9 p8 Y' E( e3 u7 I shi++;
0 S; c* N1 E  M3 ^: I+ \2 j if(shi==24)! S  o- U# ]0 d! n( T5 @' |
{% m# ?+ d! C+ Q; E& d8 P5 g3 t
shi=0;* L7 k" ^( X/ `' ~
}" M: j3 S; E+ h* s
}
9 I. Y8 \0 H, D6 f- F- D } 0 S( ~4 I' u  }$ m* ]
}+ z& _9 h  k; b3 o& E2 A; u! s+ g
}; G# E+ @! T4 i" z  U- s5 ?
/ R4 }/ S  I' s

7 E& q2 |) }' o: N$ fvoid xianshi() //显示当前的分钟数和秒钟数
& ~' V' N  q9 Y' a3 _8 R4 t9 l{; [$ z4 p; y1 I. H- Y
uchar shifen,fenzhong,shimiao,miaozhong;6 A+ J! T6 T& c2 u6 O- d; [$ d( v1 ?
/*分离要显示的时间*/3 _3 g9 A6 s  S' X, |
shifen=fen/10;
9 a, `% b) q0 J; k% }  | fenzhong=fen%10;
& ^5 ?" ]) [+ }; s0 U shimiao=miao/10;
; |! ^3 i. a+ j! S! M) P miaozhong=miao%10;
/ n5 o9 p# u! G* ^! ?& c7 s( {# B" U /*显示各位*/
0 n5 X- @# t: M- D4 W0 ], p0 ]$ C' y9 e
/*显示各位*/; o& g5 y1 g$ n/ a" a" p+ [& a0 _
P30=0; //显示十分钟位/ X7 F3 D+ x* s' ]! }1 F( g
P31=132=133=11=duanma[shifen];yanshi();1 K8 s- m# q9 F$ \9 |& f' s7 O
& ]  j& l2 X; q' Y$ `# v9 C1 v! e
P30=1; //显示分钟位 * Y4 w; U: \- }" L. R. k
P31=0; P32=1; P33=11=duanma[fenzhong];yanshi();
3 W  ]' Z' }, h: m3 B/ p
" B+ z. z- i3 I8 ^: \( ?4 } P30=1; //显示十秒位 * r0 f8 k( R% j! O. p; [% ^5 Q# h
P31=1; P32=033=1; P1=duanma[shimiao];yanshi();
0 d) H: X2 ^% s. E2 Q' J1 E' |4 ]5 T
P30=1; //显示秒位
( ^! t# I  Z# E  n0 l! B6 J, A P31=132=133=01=duanma[miaozhong];yanshi();
4 r9 {# w+ B" O7 x  y) b2 L" I " R  T* `7 I: S

% [; Y5 p2 ]" c$ J/ v) ^}
6 q5 T+ ^! N8 h) l0 Q* n6 k+ \" [6 _4 f8 ?' S1 s1 `! C
void main()
; Q# ^1 Z- a' P5 Y$ g6 |{
: P3 E, j4 d% P5 t$ w' E- w chushiT1(); //初始化T1
+ z+ N5 l6 T+ E7 w while(1)
, w5 O  s: P* v. l {P37=1;
2 p3 L/ n: M& B5 M1 w- t1 j9 p xianshi(); //显示当前时间
6 f+ F0 i1 r& V0 G5 a6 N' Y5 S1 `# ?) M. D+ b( G6 I% [* _( k
if(fen==60)
1 n1 B3 D8 d( Q0 U$ \0 X1 L/ _4 B, b2 j/ i' E5 _& V7 f  a) c: J# S
{P37=0;
/ ^8 c- S$ Y# Z8 W9 r
# f+ z7 O- v, ]2 D0 c  |: q}
0 V6 G' U( C* v+ T
, Y% P! u2 }6 M/ z. n- g }+ Y7 \$ O- z) m" T
}$ _9 @. k; z1 Q0 n

( F' G2 j7 b' k' L
9 q; G. ~! E, n5 q8 N5 M+ a8 _9 |- ^  R2 l7 D- N( \& ?) @# B& }6 O
gghh1.jpg
3 G/ S% M! z8 O: k  z; Q; Y. H  F
+ K/ z. H$ v7 E8 G 32d2a157.jpg

手机扫码浏览

classn_11

发表于 2010-2-2 21:23:16 | 显示全部楼层
硬件确实没有连接错误吗?楼主可以试编个简单的程序显示单个数码管看看硬件是否正常,或延时那里时间改为长一点看看
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|申请友链|手机版|小黑屋|最新贴|维修网 ( 粤ICP备09047344号

GMT+8, 2024-5-8 21:41 , Processed in 0.261436 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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