📄 24htimer.lst
字号:
C51 COMPILER V7.00 24HTIMER 08/12/2007 18:15:48 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE 24HTIMER
OBJECT MODULE PLACED IN 24HTimer.OBJ
COMPILER INVOKED BY: C:\Program Files\keil\C51\BIN\C51.EXE 24HTimer.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //单协第三次课Demo版
2 //2006-5-19
3
4 #include "AT89X51.H"
5
6 typedef struct TIME
7 {
8 unsigned char Hour ;
9 unsigned char Minute ;
10 unsigned char Second ;
11 unsigned int mSecond ;
12
13 } TIME ;
14 TIME Timer ;
15
16 unsigned char DisBuff[ 8 ];
17 unsigned char LedP;
18 unsigned char code LedCode[]={
19 0x3f,0x06,0x5b,
20 0x4f,0x66,0x6d,
21 0x7d,0x07,0x7f,
22 0x6f,0x40
23 } ;
24
25
26 void DelayXms(unsigned int X) {
27 1 unsigned char n ;
28 1 while( X-- ) {
29 2 for( n= 0; n< 124; n++ ) {
30 3 }
31 2 }
32 1 }
33
34
35 //
36 // 每2ms执行一回中断的中断程序, 实现LED数码管动态显示
37 //
38 void ISR_Timer0(void) interrupt 1
39 {
40 1
41 1 TL0= ( 65536-2000 ) % 256 ;
42 1 TH0= ( 65536-2000 ) / 256 ;
43 1
44 1
45 1 P2= 1<<LedP ;
46 1
47 1 P0= LedCode[ DisBuff[ LedP ] ] ;
48 1 LedP++ ;
49 1 if( LedP ==8 ) LedP= 0;
50 1
51 1 Timer.mSecond++ ;
52 1
53 1 if( Timer.mSecond< 500 )
54 1 return ;
55 1
C51 COMPILER V7.00 24HTIMER 08/12/2007 18:15:48 PAGE 2
56 1 Timer.mSecond= 0 ;
57 1 Timer.Second++ ;
58 1
59 1 if( Timer.Second< 60 )
60 1 return ;
61 1
62 1 Timer.Second= 0 ;
63 1 Timer.Minute++ ;
64 1
65 1 if( Timer.Minute< 60 )
66 1 return ;
67 1
68 1 Timer.Minute= 0 ;
69 1 Timer.Hour++ ;
70 1 if( Timer.Hour< 24 )
71 1 return;
72 1
73 1 Timer.Hour= 0 ;
74 1 }
75
76 void LedShow( void )
77 {
78 1 DisBuff[0]= Timer.Second%10;
79 1 DisBuff[1]= Timer.Second/10;
80 1
81 1
82 1 DisBuff[3]= Timer.Minute%10 ;
83 1 DisBuff[4]= Timer.Minute/10 ;
84 1
85 1
86 1 DisBuff[6]= Timer.Hour%10 ;
87 1 DisBuff[7]= Timer.Hour/10 ;
88 1 }
89
90
91 void InitSet(void)
92 {
93 1 DisBuff[ 2 ] = 10;
94 1 DisBuff[ 5 ] = 10;
95 1
96 1 TMOD= 0x01 ; // 模式配置,time0 16位计数方式
97 1 TH0= ( 65536-2000 ) / 256 ;
98 1 TL0= ( 65536-2000 ) % 256 ;
99 1 TR0= 1 ; // time0 计数开始
100 1 ET0= 1 ; // 允许产生中断
101 1
102 1 EA= 1 ; // 总中断有效
103 1 }
104
105
106
107 void main( void )
108 {
109 1 InitSet( );
110 1 while(1)
111 1 {
112 2 LedShow( );
113 2 DelayXms( 50 );
114 2
115 2 }
116 1 }
117
C51 COMPILER V7.00 24HTIMER 08/12/2007 18:15:48 PAGE 3
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 241 ----
CONSTANT SIZE = 11 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 14 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -