📄 pwm.lst
字号:
C51 COMPILER V7.01 PWM 12/05/2005 22:02:15 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 22:02:15 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==0x01)
115 2 {
116 3 power2=39;
117 3 }
C51 COMPILER V7.01 PWM 12/05/2005 22:02:15 PAGE 3
118 2
119 2 else
120 2 if (d==0x02)
121 2 {
122 3 power2=28;
123 3 }
124 2 else
125 2 if (d==0x04)
126 2 {
127 3 power2=15;
128 3 }
129 2
130 2 else
131 2 if (d==0x08)
132 2 {
133 3 power2=71;
134 3 }
135 2
136 2 message=ms_waiteAA;
137 2 break;
138 2
139 2 default : message=ms_waiteAA;
140 2 break;
141 2 }
142 1
143 1
144 1 }
145
146 main()
147 {
148 1 Initial();
149 1 while(1);
150 1 }
151
152
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 286 ----
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 + -