|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
#include <reg52.h>
/ r2 t7 C8 {0 P) h% O9 a
# z9 A x0 `- y8 N8 R6 a, jsbit DGT0=P2^3;//数码管控制位 [" q( m( B2 s& m
sbit DGT1=P2^2;
6 I+ {. b% z5 y1 q" Rsbit DGT2=P2^1;
9 Z0 l; G7 U+ }+ w- X2 Csbit DGT3=P2^0;
* Y' C) V. K3 jsbit BEEP=P2^5;" T0 h J( e' v ~$ ^# n U
* z- a8 u/ s- b4 f! k2 T& g4 Z5 G; e9 X, F
unsigned char code LedChar[]={
: B+ v5 f3 r4 ^ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
8 m1 A( E) |. B2 R& \ ~unsigned char LedBuff[4]={0xF9,0xC0,0xC0,0xC0};//显示数据储存空间: J! T0 h& k0 _0 m1 n! Q4 f" }
unsigned char flagls=0;//工作表示7 G2 s! I% E" i; s# U
unsigned int cnt=0;//计数器
% C( B2 v- F8 \; R8 E% Ounsigned char i=0;//循环变量
7 k& l; n6 ~( i- S/ u. g3 nvoid main()
' X$ ^+ u% T! R{
! U! k* d# p* e/ |' W/ F# N unsigned int sec=1000;//定义变量,倒计时起始数据
" E! w1 \# U" |* h8 q8 V
# h! r# {1 u; j9 `: M) h* x5 y3 Z TMOD=0x01;//MOV TMOD,#01H//12M晶振产生1ms定时
7 f0 w# v: K: Q TH0=0xFC;//定时器初置
; I; [9 I; o+ Y9 X TL0=0x18;
S: W; S' c' S) M TR0=1;//启动定时计数( C, b) k! g& z) G# _
EA=1;//允许中断& M' u2 ?3 w" v. J& G: @! B5 I
ET0=1;//允许定时器0中断
! v& k' e7 o p8 e while(1). _" W( {+ _8 s
{
, m4 c; w1 D4 ]- X9 N- O! g3 Z LedBuff[0]=LedChar[sec%10];//计数值个位存入
+ L) z* g9 ` ?8 ^4 H1 t2 ?6 E LedBuff[1]=LedChar[sec%100/10];//十位
" g/ k; }( p: T LedBuff[2]=LedChar[sec%1000/100];//百位* s; s$ Q" i I
LedBuff[3]=LedChar[sec/1000];//千位) X8 S; C8 G0 O7 [
2 \9 n- S3 \( w, ~8 K$ t# j N
if(flagls==1)//判断1秒时间到,工作表示有效
3 |& m7 U& P+ c {/ @6 S( u/ {# T) i- t/ m* m
flagls=0;//等等下一秒,清零
1 ~. R2 r9 E* ~5 [, T sec--;/ ~+ Y3 P4 e4 o" D9 @0 K
, Q5 ] K" k: x2 _, J4 m# `6 d
8 {7 S9 i. x" p( h+ K& Z
}
) E3 D: q! z, t! @8 P }5 y( @: N L3 `* ?* U
) X0 b# }2 W# t( z& ~4 F
. f& s6 ^: V0 q( ?/ _' o: c}7 D% n; m9 R1 l3 z& f2 d6 }4 M
void InterruptTime0() interrupt 1//定时中断
+ R& o& i$ }4 u; R: ?# a{
" n1 S& f- K, P TH0=0xFC;//重赋初始值
* C* W! [) K; B7 N TL0=0x18;# Q7 v; i/ a. [% Q! \
cnt++;//计数器加1! l& U. I. J/ t
if (cnt>=200)//时间5 T4 z! l& c3 ] E+ X# g
{, Q9 L" Y1 ?' R9 c3 l/ q
cnt=0;//准备下一秒记时$ S4 u/ d- ^6 K1 b% m8 L
flagls=1;//1秒时间到
+ h |$ b$ F j, f' w9 g7 f
, h) z* F) H( H }
% d5 w, f/ Q+ N; d1 |9 _ P0=0xFF;//熄灭,P0高电平
. i5 I3 h/ x: v" s% E0 d' ]7 K. q! i9 x% @) O
switch (i)8 b7 U$ j- V& ^. e. T4 r5 j
{' {6 X, n. Z) C" U: W" s
case 0 GT3=0;DGT2=0;DGT1=0;DGT0=1;i++ 0=LedBuff[0];break;//个位
( R7 F2 ~) e: N% O2 z; E1 F5 `& f case 1 GT3=0;DGT2=0;DGT1=1;DGT0=0;i++ 0=LedBuff[1];break;//十位" g) H- { \) @" ?6 k- h' m! S
case 2 GT3=0;DGT2=1;DGT1=0;DGT0=0;i++ 0=LedBuff[2];break;//百位
3 @: W6 S" [$ S$ c9 ^ case 3:DGT3=1;DGT2=0;DGT1=0;DGT0=0;i=0;P0=LedBuff[3];break;//千位
! f5 n/ ~+ s, t2 y" u+ k7 F* K1 @% a- g }
7 g# c" ^$ \+ q7 h2 D}
0 i& k A3 _$ k% z# n* `
e5 G2 n. [) g( |) Y& C6 k
% z$ s' I+ `7 |% Y
: S' V4 z$ o" l. D5 t& C4 n! L% ^6 p6 V+ ^3 B
2 \) [7 T: Q" q+ \3 g 如何把修改程序加进去?
8 s1 m: N$ f' b
! O) \2 f7 \# ^) z3 p- a! N |
|