📄 zhenghe.lst
字号:
C51 COMPILER V7.06 ZHENGHE 06/04/2011 09:32:05 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE ZHENGHE
OBJECT MODULE PLACED IN zhenghe.OBJ
COMPILER INVOKED BY: D:\软件\工具\C51\BIN\C51.EXE zhenghe.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*-----------------------------------------------
2 名称:定时器1
3 日期:2009.5
4 修改:无
5 内容:通过定时让LED灯闪烁
6 ------------------------------------------------*/
7 #include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
8
9 sbit PWM=P1^0; //定义LED端口
10 sbit PWM1=P1^1;
11 sbit PWM2=P1^2;
12
13
14 /*------------------------------------------------
15 定时器初始化子程序
16 ------------------------------------------------*/
17 void Init_Timer1(void)
18 {
19 1 TMOD |= 0x10; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响
20 1 TH1=0xFF; //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出
21 1 TL1=0xA3;
22 1 EA=1; //总中断打开
23 1 ET1=1; //定时器中断打开
24 1 TR1=1; //定时器开关打开
25 1 }
26
27 void delay(unsigned int j)
28 {
29 1
30 1 while(--j);}
31
32
33
34 int a,m,n,o;
35 int flag;
36
37
38
39 void main()
40
41 {
42 1 Init_Timer1();
43 1 PWM=0;
44 1 PWM1=0;
45 1 PWM2=0;
46 1
47 1 PWM=0;
48 1 PWM1=0;
49 1 PWM2=0;
50 1
51 1
52 1 a=0;
53 1 while(1)
54 1 {
55 2
C51 COMPILER V7.06 ZHENGHE 06/04/2011 09:32:05 PAGE 2
56 2
57 2 if(m==100&&n==100&&o==100)
58 2 {
59 3 m=0;
60 3 n=0;
61 3 o=0;
62 3 }
63 2
64 2
65 2
66 2
67 2 if(m<100)
68 2 {
69 3 if(a<5)
70 3 {
71 4 PWM1=1;
72 4 PWM=1;
73 4
74 4
75 4
76 4 }
77 3
78 3 else if (a>5&&a<25)
79 3 {
80 4 PWM=0;
81 4 PWM1=1;
82 4 }
83 3 else if (a>25&&a<200)
84 3 {
85 4 PWM=0;
86 4 PWM1=0;
87 4 }
88 3 else if (a==200)
89 3 {
90 4 a=0;
91 4 m++;
92 4 }
93 3 }
94 2
95 2 else if (m==100)
96 2 {
97 3
98 3
99 3 if (n<100)
100 3
101 3 {
102 4 if(a<5)
103 4 {
104 5 PWM=1;
105 5 PWM2=1;
106 5 }
107 4 else if (a>5&&a<25)
108 4 {
109 5 PWM=1;
110 5 PWM2=0;
111 5 }
112 4 else if (a>25&&a<200)
113 4 {
114 5 PWM=0;
115 5 PWM2=0;
116 5 }
117 4 else if (a==200)
C51 COMPILER V7.06 ZHENGHE 06/04/2011 09:32:05 PAGE 3
118 4 {
119 5 a=0;
120 5 n++;
121 5 }
122 4 }
123 3
124 3 else if (n==100)
125 3 {
126 4 if (o<100)
127 4 {
128 5
129 5 if(a<5)
130 5 {
131 6 PWM1=1;
132 6 PWM2=1;
133 6 }
134 5 else if (a>5&&a<25)
135 5 {
136 6 PWM1=0;
137 6 PWM2=1;
138 6 }
139 5 else if (a>25&&a<200)
140 5 {
141 6 PWM1=0;
142 6 PWM2=0;
143 6 }
144 5 else if (a==200)
145 5 {
146 6 a=0;
147 6 o++;
148 6 }
149 5
150 5 else if (o==100)
151 5
152 5 {
153 6 a=0;
154 6 m=0;
155 6 n=0;
156 6 o=0;
157 6
158 6 }
159 5
160 5
161 5
162 5 }
163 4
164 4
165 4
166 4
167 4
168 4 }
169 3
170 3
171 3
172 3 }
173 2
174 2
175 2
176 2
177 2
178 2
179 2
C51 COMPILER V7.06 ZHENGHE 06/04/2011 09:32:05 PAGE 4
180 2 }
181 1 }
182
183
184
185 /*------------------------------------------------
186 定时器中断子程序
187 ------------------------------------------------*/
188 void Timer1_isr(void) interrupt 3 using 1
189 {
190 1 TH1=0xFF; //中赂持
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -