|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
#include <reg52.h>& n( K/ g4 K, J P# y: L
8 I/ e5 l5 f. P8 E- |sbit DGT0=P2^3;//数码管控制位
! A9 n% i! u* Usbit DGT1=P2^2; `' r% t3 e9 A# J! d& y; ]4 |, n
sbit DGT2=P2^1;5 s8 z- i7 K/ t
sbit DGT3=P2^0;4 U h5 A9 p8 R6 E6 p& A4 V
sbit BEEP=P2^5;. b- E0 X' ^% f$ Y; D
9 @' W% ?3 A- y2 B2 o" ^( N; f4 T( g5 g' k
unsigned char code LedChar[]={; J+ t) D8 P; m H% C
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
! i* ^7 Q6 \# i' [; ]unsigned char LedBuff[4]={0xF9,0xC0,0xC0,0xC0};//显示数据储存空间
# B$ i' g; ^! {4 z" ounsigned char flagls=0;//工作表示# d8 t2 v9 I, [+ @; _- u% M' o9 P' S
unsigned int cnt=0;//计数器9 ^# X3 O$ N- S, t* P5 s# T" g
unsigned char i=0;//循环变量2 Z/ f @6 O% W% x
void main()
`+ v& a5 |4 D0 E0 P" j{0 x8 d1 y+ ~* s
unsigned int sec=1000;//定义变量,倒计时起始数据# d# ]& S* c# @5 S5 r) d6 F
# v6 I# M9 O* c/ X$ ~3 b
TMOD=0x01;//MOV TMOD,#01H//12M晶振产生1ms定时* [. | I- Z2 K
TH0=0xFC;//定时器初置# j$ q% k0 C. m8 c% S% I
TL0=0x18;
+ [" X) x4 V# C TR0=1;//启动定时计数$ _) V5 i& p- I
EA=1;//允许中断2 @6 t- Z8 m0 L* {
ET0=1;//允许定时器0中断
+ E3 i- a! f% ~1 f% C( _ while(1)
+ r9 C, _. N' Y4 X& N4 t { 5 @2 B/ Z9 |9 D) b/ t9 e! N/ x
LedBuff[0]=LedChar[sec%10];//计数值个位存入
@+ b# w% E+ h" q* A5 ~ LedBuff[1]=LedChar[sec%100/10];//十位: A; T& ~9 N+ n+ h, A, P
LedBuff[2]=LedChar[sec%1000/100];//百位# S* x! T8 G5 x, ^2 t7 _! D6 m
LedBuff[3]=LedChar[sec/1000];//千位) F$ U1 s, Q( e( w
( U' p2 h# Y4 V! n9 n) d$ h if(flagls==1)//判断1秒时间到,工作表示有效6 e2 }. G+ O0 O* B) q' M7 r
{$ x. V9 t; S/ u# D
flagls=0;//等等下一秒,清零. A! x1 M; X9 \5 m, n N
sec--;
) S# q9 h) R3 r2 H% _* q
V0 J9 X6 P5 A# L" K1 b
0 o6 x! w% {& j$ j7 U2 c! I }
7 D$ c3 e/ W7 l0 N' s7 [8 a }
$ ?. | g0 v$ G & j/ r: k7 _% n5 n% Y9 _3 e0 e; F
8 d. d# D7 H. R}1 I3 w5 Q! K) l: M% ~/ J& l3 r
void InterruptTime0() interrupt 1//定时中断
$ _6 J8 ?) @0 ~' m G7 ~- F{! T a& C" o7 E& S# k
TH0=0xFC;//重赋初始值: h3 h) w% L% O' V A6 b
TL0=0x18;
& Y$ r4 ]& r1 G1 \9 j9 V- ]4 c cnt++;//计数器加1( P5 r0 r- q3 O& o! b; ]
if (cnt>=200)//时间
, h; S7 q8 L, a4 L8 s+ f$ v4 | {
5 I, c0 h' C: M8 k' n" ? cnt=0;//准备下一秒记时6 c- l% }4 m2 B, h5 R% O5 T
flagls=1;//1秒时间到
Y1 v0 W' R. |; L) u: |% K 9 x0 {; p @/ n& I) Z1 w! n1 w
}
# S: N1 ?, p, V8 m- j P0=0xFF;//熄灭,P0高电平
3 R. y" ~' r& f, i
0 x/ Q1 H9 _; {- [$ `9 U switch (i)7 s3 H- R+ _8 `
{# Q3 g, n8 {& }5 U: j% Z, b
case 0 GT3=0;DGT2=0;DGT1=0;DGT0=1;i++ 0=LedBuff[0];break;//个位 C- C6 B7 Z1 y" b3 |' H. Z6 v) q
case 1 GT3=0;DGT2=0;DGT1=1;DGT0=0;i++ 0=LedBuff[1];break;//十位
P, G, `) U) k, N- c- O case 2 GT3=0;DGT2=1;DGT1=0;DGT0=0;i++ 0=LedBuff[2];break;//百位
( R+ w$ ~: g" [9 B i) g case 3:DGT3=1;DGT2=0;DGT1=0;DGT0=0;i=0;P0=LedBuff[3];break;//千位
: p' t; ^" G( x8 J' W/ w2 j }. J K* l+ \7 g0 B f4 L
}
% C' l( X$ F. T3 W* @
' @) t- t1 F% c, X P* e. Z, ~4 I D/ @/ b2 K
7 U' I$ U# f0 j
% f- Z# ]9 {/ A; I# z, f
+ k* T7 s/ b8 K; v
如何把修改程序加进去?& x7 D+ V* v M5 p w
. y" N3 x; Y) @ O2 R7 K: f
|
|