📄 main.lst
字号:
C51 COMPILER V7.07 MAIN 08/03/2005 11:35:47 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN Main.OBJ
COMPILER INVOKED BY: K:\Keil\C51\BIN\C51.EXE Main.c BROWSE DEBUG OBJECTEXTEND CODE SYMBOLS
stmt level source
1 /*
2 **********************************************************************************
3 * 此模块为主程序,包括初始化各模块变量值及联结各模块 *
4 **********************************************************************************
5 */
6 #include <reg668.h>
7 #include <constant.h>
8 #include <Task.h>
9 //#pragma optimize(5)
10
11 bit Dot_Value;
12 //bit ClockFlag;
13 bit TimeOpenflag=0;
14 bit TimerFlag=0;
15 unsigned char SongCirFg=0;
16 bit Time250msFlag=0;
17 bit Time250msFlag1=0;
18 bit flash,UpDownFlag=1;
19 bit Adjust=0;
20
21 sbit Speaker = P3^5; //扬声器控制脚
22 sbit RedLight= P3^4;
23 sbit GreenLight= P3^3;
24
25 //sfr T2MOD = 0x0C9;
26 sfr button = 0x0A0;
27
28 extern unsigned char mon,dat,hou,min,sec;
29 extern unsigned int yea;
30
31 unsigned char CountTime0;
32 unsigned char CountTime2;
33 unsigned char Disp_array[Eight];
34 unsigned char idata Timer=2,TimerArray[20][3];
35 unsigned char formflag=0,segflag=0;
36 unsigned char hout,mint;
37 unsigned char song;
38 unsigned char delay1min=0;
39 unsigned char HL2[2];
40 unsigned char RcapCnt=0;
41
42 /*
43 **********************************************************************************
44 * 延时程序:void delayx (unsigned char x)
45 **********************************************************************************
46 */
47 void delayx (unsigned char x)
48 {
49 1 unsigned int i,j,k;
50 1
51 1 for (i=0;i<=x;i++)
52 1 {
53 2 for (j=0;j<10000;j++)
54 2 {
55 3 k++;
C51 COMPILER V7.07 MAIN 08/03/2005 11:35:47 PAGE 2
56 3 }
57 2 }
58 1 }
59
60 /*
61 **********************************************************************************
62 * 系统主程序:main
63 **********************************************************************************
64 */
65 void main (void)
66 {
67 1 unsigned char i=0;
68 1
69 1 PCON=0x00; //no double baud rate
70 1 S0CON=0x50; //10-bit UART
71 1
72 1 TL0=0x00; //40 加快3min per day
73 1 TH0=0x0E2; //Value of Time is 10ms,the crystal is 18.432Mhz
74 1 ET0=1; //Timer 0 interrupt enable
75 1
76 1 TH1=0x0F6; //baud-rate: 9600bps 18.432MHz
77 1 TL1=0x0F6;
78 1 //ES0=1; //UART interrupt enable
79 1
80 1 TCON=0x05; //INT0,INT1 is edge trigger
81 1 TMOD=0x21; //Timer1 is auto load eight timer
82 1 //Timer0 is 16-bit timer
83 1 T2CON = 0x00; //16-bit Auto-reload
84 1 T2MOD = 0x00; //Clear T2MOD
85 1 TH2 = 0x88; //Value of Time is 5ms
86 1 TL2 = 0x00;
87 1 RCAP2H = 0x88; //Auto reload
88 1 RCAP2L = 0x00;
89 1 HL2[0] = 0x88;
90 1 HL2[1] = 0x00;
91 1 ET2 = 1; //Timer 2 interrupt enable
92 1
93 1 P0=0x0FF; //Initialize P0~3
94 1 P1=0x0FF;
95 1 P2=0x0FF;
96 1 P3=0x0FF;
97 1
98 1 //TR1=1; //Start Timer 1
99 1 TR0=1; //Start Timer 0
100 1 TR2=1; //Start Timer 2
101 1
102 1 EA=1; //Global enable
103 1
104 1 Dot_Value=0;
105 1 //ClockFlag=1;
106 1 CountTime0=0x00;
107 1 CountTime2=0x00;
108 1 Disp_array[0]=0x00;
109 1 Disp_array[1]=0x07;
110 1 Disp_array[2]=0x01;
111 1 Disp_array[3]=0x08;
112 1 Disp_array[4]=0x00;
113 1 Disp_array[5]=0x00;
114 1 Disp_array[6]=0x00;
115 1 Disp_array[7]=0x00;
116 1
117 1 TimerArray[0][0]=5;
C51 COMPILER V7.07 MAIN 08/03/2005 11:35:47 PAGE 3
118 1 TimerArray[0][1]=30;
119 1 TimerArray[0][2]=1;
120 1
121 1 TimerArray[1][0]=22;
122 1 TimerArray[1][1]=0;
123 1 TimerArray[1][2]=1;
124 1
125 1 TimerArray[2][0]=14;
126 1 TimerArray[2][1]=0;
127 1 TimerArray[2][2]=1;
128 1
129 1 hou=min=sec=0;
130 1 mon=7;
131 1 dat=18;
132 1 yea=2005;
133 1
134 1 while (TRUE)
135 1 {
136 2 //while (Time0IntFlag==0);
137 2 //Time0IntFlag=0;
138 2 if (button!=0x0FF)
139 2 {
140 3 delayx(2);
141 3 if (button!=0x0FF)
142 3 {
143 4 switch(button)
144 4 {
145 5 case 0x0FE: //Press button1
146 5 switch(formflag)
147 5 {
148 6 case 0: //Main form
149 6 segflag=(segflag+1)%5;
150 6 if (segflag !=0)
151 6 {
152 7 Adjust=1;
153 7 sec=0;
154 7 }
155 6 else
156 6 {
157 7 Adjust=0;
158 7 }
159 6 break;
160 6 case 1: //Timer form
161 6 segflag=(segflag+1)%2;
162 6 break;
163 6 case 2:
164 6 segflag=(segflag+1)%5;
165 6 break;
166 6 case 3: //Song form
167 6 segflag=(segflag+1)%3;
168 6 break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -