维修网

 找回密码
 注册

QQ登录

只需一步,快速开始

微信扫码 , 快速开始

查看: 281|回复: 1

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

[复制链接]

classn_11

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

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

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

x
有4段数码管显示时间,计时到60分钟P37输出低电平.关闭输出.* _4 m& T5 E' R7 ~
+ X2 J) R: ~& [7 [1 i% i
不知头文件用来表示89C2051是否可行.编译通过,再用TOOP2005编程器烧写上,装到板上没有任何反应.硬件无问题,: l( j/ [' k4 e5 p3 V
4 t, J" l9 L  B' |2 B0 \; ^
请各位大侠帮我看看软件.6 [& d' {: \4 G
7 a8 K0 r* u% Y% \. j

* f7 V- i2 E: r
; t1 s; b! J2 R) |
+ C9 Y4 f5 @! T1 I5 a  [. v( s8 }, x2 I) h9 u  e# G2 Y) J
#include<reg2051.h>
" n/ \3 q, X9 _+ l5 D4 p#define uchar unsigned char
$ |' i/ h* c6 N( @! l#define uint unsigned int# o6 l( N. h" a& a( ?4 }) F* w9 Q3 W
uchar a;# V% z% I# T/ y2 f
uchar miao,fen,shi;8 o9 W4 r( P- d! P$ r) o
uchar code duanma[]={0xc0,0xf9,0xa4,0xb0,0x99, o7 J7 q& Z' @
,0x92,0x82,0xf8,0x80,0x90};//0-9的段码
7 c4 b( p% a% S! ~9 I: U) f0 \6 u& {sbit P30=P3^0; //数码管位控制4 R; V6 k. v' D' Y! I$ F$ A
sbit P31=P3^1;
: @7 N, }3 d/ j' h3 S& X3 ~7 Dsbit P32=P3^2;
4 L$ b& h, ]1 e  I; Gsbit P33=P3^3;2 W& U: e* J2 _; L% c- u- Y

4 p8 p- v4 T8 P: f5 y& l7 c9 ?0 D; Tsbit P37=P3^7;
6 ?& Q# y/ r( A- j; w/ S2 evoid yanshi()' C8 r5 d% z- Q4 i% P; {+ p
{
$ b/ M: h* C0 u. L9 \4 e- Y6 ~ uint x=300;
7 x( _% L/ C  ^! S" m  k. T; s1 Y while(x--);
( g2 {* q( m  O7 v+ F- ]" s7 N}# h- l& Z4 L' F0 F& `: a8 f- I
, Y+ H+ l( V/ X! F6 x+ L) I
1 l  `9 C/ j% {) S1 U* f. A
void chushiT1() //初始化T1+ j3 U0 I! |0 j+ y1 Q* b
{
; t6 `  A& l6 r& y% E TMOD=0x10;//定时器1 方式2
1 V! y$ h, ?2 {7 F5 M TH1=(65536-50000)/256; //50ms初值5 ~7 A! @2 o+ o
TL1=(65536-50000)%256;
4 [  h8 N7 }3 q6 |; ^. x5 u EA=1; //总中断开
3 m) R$ L) A/ h ET1=1; //允许T1中断+ {! c* ]$ V3 d0 I+ r9 e
TR1=1; //开定时器T1
  k/ Q% U6 j8 V; S6 Q}
9 Y1 d; ]( X2 S! Y! [# D
/ f3 |5 a# C6 {void zhongduan() interrupt 3 //T1的中断程序
+ D0 E/ K0 J- m7 o# v! f9 v+ [: c{% D) q$ ?, h+ p* Q
TH1=(65536-50000)/256; //重装50ms初值
! Y4 S* L) \4 Q- w2 x4 O+ ~( G. c TL1=(65536-50000)%256;
& w3 N' C, A5 b1 N5 J a++;: U9 j/ v5 H* s
if(a==20) //1秒钟到了6 A7 x3 B# b: \  y; X$ W9 g6 _
{
% B% B/ q+ Q7 m+ Z a=0;6 n4 X. n* B/ q5 w. Y
miao++;$ a& Q3 a* V& u$ X4 \  [  B
if(miao==60)
$ |6 q, A, n' q  R {
4 Q1 z! s( Y' a: \0 E) f2 d miao=0;
) V* g1 j+ U/ ~ fen++;
) B3 j5 \+ T0 g: r: }" x  N  h7 S if(fen==60)& S1 ^& l* a7 |* B' ~% k
{
' Y$ k1 Z3 B, Z, { fen=0;
+ c3 V. e4 D7 W9 i9 h. } shi++;
+ _2 v; Z% J+ n' K9 D  @ if(shi==24)  ^* A  Q3 o/ N  o% A  a- d( f6 Y
{2 R. a- w1 \2 ^9 z( C
shi=0;. G' ~. z8 S3 t, R5 n; z
}
$ P" R, D, f8 e$ J; |. j' n }/ j  s) e4 d$ s1 E! t
} . I( W- U  v1 x5 c
}
- A) C$ P# W5 b" e+ R}
3 K1 @7 h3 a% c. y) @; m: J) K7 j; n2 r6 L/ Y4 Q  j2 _

2 B* v8 p. A! z6 y3 T1 I+ qvoid xianshi() //显示当前的分钟数和秒钟数- d7 l' J4 U9 n9 C& x3 ?3 s
{
. ]2 _3 s0 V/ b, ]) i' h uchar shifen,fenzhong,shimiao,miaozhong;. p/ z0 O* c! O6 k
/*分离要显示的时间*/+ e- X. k: n1 a& c3 O; m
shifen=fen/10;
0 g+ D3 J1 o5 g5 ^% v1 j* \, Z fenzhong=fen%10;7 i' A4 s: l& ~3 F& b
shimiao=miao/10;
+ h; E  U2 h5 U% h3 m+ m' u miaozhong=miao%10;8 ~0 n9 \; w  \3 z! s
/*显示各位*/* N, k3 Y4 E1 S' ?

. F1 l  U- w0 O6 D: F  m* v' |- a/ G /*显示各位*/; x% i$ `$ q2 r( E5 j* B8 L& Q. j6 W
P30=0; //显示十分钟位
; J" |7 B+ l. t2 W1 C P31=132=133=11=duanma[shifen];yanshi();7 T" e7 h4 n: {
" ^# _1 {$ E8 X- s( C
P30=1; //显示分钟位
0 G# Y+ d& n: p  M P31=0; P32=1; P33=11=duanma[fenzhong];yanshi();" O" P+ i/ B! q& V% ^, A, d8 y
! F2 h6 ^; K, i9 _9 z
P30=1; //显示十秒位
$ x, [& g- g2 K# Y6 Q. t/ L P31=1; P32=033=1; P1=duanma[shimiao];yanshi();
, y4 C" y+ N( ^7 c8 R9 {. y8 W, _8 h( L* `
P30=1; //显示秒位 ! c- ?; q* W  k1 O, x0 a- {
P31=132=133=01=duanma[miaozhong];yanshi();1 i6 e% r1 f* N: N0 F$ v/ \

4 _' L- s* ]+ y- f
3 T3 l4 V  I( Z9 W( X/ G9 V}
& k- U3 b9 B% }; S, g2 w, i- k3 w0 I& N9 H5 B3 |  p
void main()
4 V/ [- M6 z& B+ J{
0 r, f% Q' M7 a* J; D chushiT1(); //初始化T1
9 Q& C: F3 T1 [: O* {. a while(1)2 T3 X& h6 Q2 s4 l$ P/ w7 ?
{P37=1;
; |( ^; T3 _( I( R3 F0 j xianshi(); //显示当前时间
8 e5 x! H  `# V2 X5 Q% u8 B5 ]/ U9 q0 k7 }
if(fen==60); H! p" a* B6 ?/ l) @1 g) g

; T6 |$ T& \. ?/ w{P37=0;
) d& Y* o8 N4 O2 B! ^8 d2 I# N  q
}8 F! n% r2 L) Z% \. q5 l

2 m6 j( Q! E, i: a& w* Z6 i }+ X! R5 S7 D) f+ X8 {; n5 X" D$ i
}
# m1 i% u1 a; c4 T8 {6 a7 G  B- S$ W8 I: j

4 t9 h# `; n5 H- u; Z
  f$ ~* o& W6 s/ }" \3 V) C+ }$ y gghh1.jpg# a4 l  D, S7 f

4 v) v) E& V4 l; P 32d2a157.jpg

手机扫码浏览

classn_11

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

本版积分规则

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

GMT+8, 2024-6-6 03:20 , Processed in 0.321591 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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