📄 timer-smg.lst
字号:
C51 COMPILER V8.08 TIMER_SMG 08/10/2009 14:01:10 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE TIMER_SMG
OBJECT MODULE PLACED IN timer-smg.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE timer-smg.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #define uchar unsigned char
3 #define uint unsigned int
4
5 sbit K1 = P3^7;
6 uchar i,Second_Counts,Key_Flag_Idx;
7 bit Key_State;
8 uchar DSY_CODE[]=
9 {
10 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
11 };
12
13 void DelayMS(uint ms)
14 {
15 1 uchar t;
16 1 while(ms--)
17 1 {
18 2 for(t=0;t<120;t++);
19 2 }
20 1 }
21
22 void Key_Event_Handle()
23 {
24 1 if(Key_State == 0)
25 1 {
26 2 Key_Flag_Idx=(Key_Flag_Idx+1)%3;
27 2 switch(Key_Flag_Idx)
28 2 {
29 3 case 1:EA=1;ET0=1;TR0=1;break;
30 3 case 2:EA=0;ET0=0;TR0=0;break;
31 3 case 0:P0=0x3f;P2=0x3f;i=0;Second_Counts=0;
32 3 }
33 2 }
34 1 }
35
36 void main()
37 {
38 1 P0 = 0x3f;
39 1 P2 = 0x3f;
40 1 i = 0;
41 1 Second_Counts = 0;
42 1 Key_State = 1;
43 1 TMOD = 0x01;
44 1 TH0 = (65535-50000)/256;
45 1 TL0 = (65535-50000)%256;
46 1 while(1)
47 1 {
48 2 if(Key_State != K1)
49 2 {
50 3 DelayMS(10);
51 3 Key_State = K1;
52 3 Key_Event_Handle();
53 3 }
54 2 }
55 1 }
C51 COMPILER V8.08 TIMER_SMG 08/10/2009 14:01:10 PAGE 2
56
57 void DSY_Refresh() interrupt 1
58 {
59 1 TH0 = (65535-50000)/256;
60 1 TL0 = (65535-50000)%256;
61 1 if(++i==2)
62 1 {
63 2 i = 0;
64 2 ++Second_Counts;
65 2 P0 = DSY_CODE[Second_Counts/10];
66 2 P2 = DSY_CODE[Second_Counts%10];
67 2 if(Second_Counts == 100) Second_Counts = 0;
68 2 }
69 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 197 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 13 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -