📄 pwm.lst
字号:
C51 COMPILER V7.01 PWM 12/05/2005 21:52:39 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE PWM
OBJECT MODULE PLACED IN pwm.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE pwm.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg51.h>
2 #include <intrins.h>
3 #define uchar unsigned char
4 #define uint unsigned int
5 #define POWER_MIN 60 ////39 ===135V慢速 28===183V中速
6 #define ms_waiteAA 1
7 #define ms_waite55 2
8 #define ms_waiteA5 3
9 #define ms_waiteD1 4
10 #define ms_waiteD2 5
11 sbit pwm1=P1^7;
12 sbit pwm2=P1^6;
13 sbit pwm3=P1^5;
14 sbit pwm4=P1^4;
15 uchar power1;
16 uchar power2;
17 uchar message=0;
18 void delay(uchar count)//延时
19 {
20 1 uchar i,k;
21 1 i=0;
22 1 k=0;
23 1 for (k=0;k<count;k++)
24 1 for (i=0;i<30;i++);
25 1 }
26
27
28
29
30 void Initial(void)
31 {
32 1 IT0=1;
33 1 IT1=1;
34 1 IE0=0;
35 1 IE1=0;
36 1 EX0=1;
37 1 EX1=1;
38 1 SCON=0X50;
39 1 TMOD=0x20;
40 1 TH1=0xF3;//0xF3;2400
41 1 TL1=0xF3;
42 1 TR1=1;
43 1 ES=1;
44 1 PS=1;
45 1 EA=1;
46 1 power1=71;//0~80
47 1 power2=71;//0~80
48 1 message=ms_waiteAA;
49 1 }
50
51 void pwm(void)
52 {
53 1 uchar k=0;
54 1 while(k<=POWER_MIN)
55 1 {
C51 COMPILER V7.01 PWM 12/05/2005 21:52:39 PAGE 2
56 2 if (power1<POWER_MIN)
57 2 if (k>=power1)
58 2 pwm1=0;
59 2 if (power2<POWER_MIN)
60 2 if (k>=power2)
61 2 pwm2=0;
62 2 delay(1);
63 2 k++;
64 2 }
65 1 //for (k=0;k<50;k++);
66 1 delay(1);
67 1 pwm1=1;
68 1 pwm2=1;
69 1 }
70
71 void int0 (void)interrupt 0
72 {
73 1 pwm();
74 1 }
75
76 void int1 (void)interrupt 2
77 {
78 1 pwm();
79 1 }
80
81 void receive (void) interrupt 4
82 {
83 1 uchar d;
84 1 if (TI==1)
85 1 {
86 2 TI=0;
87 2 }
88 1 if (RI==1)
89 1
90 1 RI=0;
91 1 d=SBUF;
92 1 switch (message)
93 1 {
94 2 case ms_waiteAA:
95 2 if (d==0xAA)
96 2 message=ms_waite55;
97 2 else
98 2 message=ms_waiteAA;
99 2 break;
100 2 case ms_waite55:
101 2 if (d==0x55)
102 2 message=ms_waiteA5;
103 2 else
104 2 message=ms_waiteAA;
105 2 break;
106 2
107 2 case ms_waiteA5:
108 2 if (d==0xA5)
109 2 message=ms_waiteD1;
110 2 else
111 2 message=ms_waiteAA;
112 2 break;
113 2 case ms_waiteD1:
114 2 if (d==0x02)
115 2 {
116 3 if (power2>15) power2--;
117 3 }
C51 COMPILER V7.01 PWM 12/05/2005 21:52:39 PAGE 3
118 2
119 2 else
120 2 if (d==0x04)
121 2 {
122 3 if (power2<=POWER_MIN) power2++;
123 3 }
124 2 message=ms_waiteAA;
125 2 break;
126 2
127 2 default : message=ms_waiteAA;
128 2 break;
129 2 }
130 1
131 1
132 1 }
133
134 main()
135 {
136 1 Initial();
137 1 while(1);
138 1 }
139
140
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 282 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 ----
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 + -