维修网

 找回密码
 注册

QQ登录

只需一步,快速开始

微信扫码 , 快速开始

查看: 280|回复: 1

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

[复制链接]

classn_11

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

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

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

x
有4段数码管显示时间,计时到60分钟P37输出低电平.关闭输出.
6 t9 U6 C: p: o% l+ l0 {
- ~; |/ \7 W$ x( y5 a+ S5 a不知头文件用来表示89C2051是否可行.编译通过,再用TOOP2005编程器烧写上,装到板上没有任何反应.硬件无问题,
; Y; E6 ^# x5 R4 u! P$ s1 Z
$ m9 k- R: m$ ?! I" @5 ~2 |* B- x& Z请各位大侠帮我看看软件.4 p8 j- C0 n( a& H1 }
, g% u$ A3 j" j. N
8 v/ G2 L. \  K3 i' V" H
9 P; h2 C3 e% ^% L) m9 q' B

7 j$ H! f" e# O' _* c( U' Y' l. x
8 Q& v+ u; Z' O3 n#include<reg2051.h>
/ {* D: D3 {3 b1 o, p6 D#define uchar unsigned char
8 x; s) `% _, }5 Q* I#define uint unsigned int
- L* Q2 ?: C3 F4 D! ^* s  ouchar a;
! B' m. W0 h, kuchar miao,fen,shi;
. I2 d# `* s; k- U; x( Luchar code duanma[]={0xc0,0xf9,0xa4,0xb0,0x99
% s. g2 F* c4 f  b ,0x92,0x82,0xf8,0x80,0x90};//0-9的段码
' E; A  k  G* `. h- o% Bsbit P30=P3^0; //数码管位控制2 b  r( \$ F2 F
sbit P31=P3^1;
; t- C( J* ^/ d0 h( P: X0 x  P- Hsbit P32=P3^2;5 z! N0 ^8 p  V! ~5 K
sbit P33=P3^3;
, N# D8 }6 h; A# C# u3 c; F0 N7 s3 g+ y: N9 d6 A/ t( o
sbit P37=P3^7;  ^+ e- Z7 b$ f: A  J2 l( V. d
void yanshi()
2 E1 G% @( c2 E+ l, j6 l8 M{
; N/ F* }7 S  c9 V& l! A: K( \5 g uint x=300;
1 a- V1 A+ T! D/ g1 F' e while(x--);1 M3 _9 U6 X6 }( e0 D
}2 g/ X# K' \; T3 G! \
# x6 i* y9 o- t- L+ T) c
8 U. A# m9 G- z3 Z
void chushiT1() //初始化T1
: x: Q2 l9 o+ q: _{
7 y. A) {% ~/ l/ F! r, ^4 I( P$ S3 A TMOD=0x10;//定时器1 方式2
! h1 {0 R% S& E8 m$ t TH1=(65536-50000)/256; //50ms初值
7 s0 U& T6 G2 N& {. D TL1=(65536-50000)%256;& h9 \8 z& a3 G* f4 F
EA=1; //总中断开! d2 w: o3 m* k* B. q5 B
ET1=1; //允许T1中断
- H1 G9 P9 G) P2 F TR1=1; //开定时器T1
7 h$ W, h/ b5 u- D}5 D% Y! a$ j- ~* \

- `3 @/ p' A7 d- O2 _7 `! y+ x+ _void zhongduan() interrupt 3 //T1的中断程序
) a1 c$ W; ]5 D) F/ ?, K& x/ h{. `, D! P" U9 M9 G& S
TH1=(65536-50000)/256; //重装50ms初值
% |6 Z0 W2 M7 a2 t TL1=(65536-50000)%256;5 d3 O0 F& `3 b, V
a++;  |7 O+ ]1 E8 W. f+ a
if(a==20) //1秒钟到了" [& l3 w, F/ x3 L; i: T# ~! E
{4 k/ s( C2 D- s9 D- @1 @8 P4 y$ l8 o
a=0;: `9 i3 u# c+ W& r  ^
miao++;
0 x, P* k1 O) c# i$ H  Y if(miao==60)
, ?9 G) w2 m  w- p, S {
5 j0 G% x5 k: L6 Y0 X8 W miao=0;
. j+ x$ d7 M% G, ~; h  V) ]0 c fen++;
6 R4 ]& ~8 n, y2 E' k3 t: G if(fen==60)
7 v% X# K6 Q, b {% N" `3 S" {. V+ |1 b
fen=0;
/ l7 B# \* @9 d shi++;3 Z: C* l7 v3 B! P- O
if(shi==24)7 O# ?% V- s9 [' Q9 c* x
{
/ d# U' Y% h% r5 ?: d shi=0;
% M% h( ?8 r3 X# J5 ~. F" o5 C }6 D5 D8 F( P5 L8 U6 L4 C
}  t" ]5 f3 K! f9 [
} ) q( N% t% A8 |' g6 N
}
  _& C1 E% s; C4 z9 j}9 W3 c; g: H3 P: e+ t6 T: y

& L- [! b- u+ Y4 z$ a
7 z+ p5 q$ i! ]- ?  Tvoid xianshi() //显示当前的分钟数和秒钟数* Z1 z. Q* {# n9 K1 V6 M% [/ ]7 A/ w
{, M4 z! _5 l$ M/ X" i
uchar shifen,fenzhong,shimiao,miaozhong;
% D1 Q* ~( K( s* B3 g- d8 C5 I" b& z /*分离要显示的时间*/
4 G) ^$ L) i0 J shifen=fen/10;7 J- A; a! C9 F3 S* \
fenzhong=fen%10;
$ I0 E) q) j6 X% _5 \9 R shimiao=miao/10;
# f+ d8 d3 ]/ g miaozhong=miao%10;/ V7 j2 s- i! }
/*显示各位*/3 B% s9 h% P% q* H2 k- x5 ]6 t

3 T  c7 q. p) M- x8 R0 z) a /*显示各位*/- R% k) h& B/ U$ Q) O
P30=0; //显示十分钟位% k- @+ ]4 j# q5 I
P31=132=133=11=duanma[shifen];yanshi();
3 o5 c* E7 Q1 _0 t" S
- R- Z/ A- A, d) t P30=1; //显示分钟位
4 g# D. M+ m/ G. ~ P31=0; P32=1; P33=11=duanma[fenzhong];yanshi();
- \$ q  {% d0 H. }# I4 n
0 q" ]" C4 U& T" q# Z: D$ C P30=1; //显示十秒位 2 k9 P: Z5 [7 F) v
P31=1; P32=033=1; P1=duanma[shimiao];yanshi();
. S% d' r% {1 R& d
* y/ `: v/ h$ o& [) u' s5 n( \ P30=1; //显示秒位 # D# W6 \1 D: X) z! v- q
P31=132=133=01=duanma[miaozhong];yanshi();
- e3 L5 U, d% w" S% H, A
) ~2 q& {( Y0 {0 ~! f  ?. O+ K7 T! X
}
) `+ q6 n6 G2 }3 `( t" d2 R
' H) A" L* ?& W  H  p2 c# d% _void main()- k! b1 q" e& L# T6 k' g
{- [7 w5 q% F& m) r; l2 u1 ]1 F: G9 {
chushiT1(); //初始化T1 5 O9 u! l: ?; w5 R1 Q8 o
while(1)
. b% r1 w( t( q5 E {P37=1;
7 @  q" e* Q+ x xianshi(); //显示当前时间' H$ W2 X" ~# @; H: y* }+ u" [
  x6 U7 \0 X- V" e( \7 H. r8 @
if(fen==60)
& m+ j' c6 x& D) b" b* o! D: t# \5 c9 s
{P37=0;
  e$ Y: _; h) r1 a8 Y0 L* @$ w! ~" W3 I: x
}! b) S" I6 G6 |; `

4 V: {8 E0 x, O9 Y% \7 s: {6 x }: Q; F( V/ j( O5 Q* V
}
* n! M5 A- N8 F0 |
0 f1 C& |8 \8 T' I: Y2 W7 @4 `; A, Y  V: `, l  J

$ {% _9 R  n- L, L' P/ J- J& @, `* I gghh1.jpg
$ b# d5 V( B$ Y. m0 I( a2 i+ Z! _. [7 g4 N& u8 a8 {
32d2a157.jpg

手机扫码浏览

classn_11

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

本版积分规则

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

GMT+8, 2024-5-21 15:11 , Processed in 0.281911 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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