📄 pwm.lst
字号:
C51 COMPILER V7.01 PWM 10/25/2005 20:48:35 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
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^5;
12 sbit pwm2=P1^6;
13 uchar power1,power2,recdata;
14 uchar message=0;
15 uchar receive=0;
16
17
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=61;//0~80
47 1 power2=61;
48 1 message=ms_waiteAA;
49 1 }
50
51
52
53 void pwm(void)
54 {
55 1 uchar k=0;
C51 COMPILER V7.01 PWM 10/25/2005 20:48:35 PAGE 2
56 1 while(k<=POWER_MIN)
57 1 {
58 2 if (power1<POWER_MIN)
59 2 if (k>=power1)
60 2 pwm1=0;
61 2 if (power2<POWER_MIN)
62 2 if (k>=power2)
63 2 pwm2=0;
64 2 delay(1);
65 2 k++;
66 2 }
67 1
68 1 pwm1=1;
69 1 pwm2=1;
70 1 }
71
72 void int0 (void)interrupt 0
73 {
74 1 pwm();
75 1 }
76
77 void int1 (void)interrupt 2
78 {
79 1 pwm();
80 1 }
81
82 void receiveINT (void) interrupt 4
83 {
84 1 uchar d;
85 1 if (TI==1)
86 1 TI=0;
87 1 else
88 1 RI=0;
89 1
90 1 d=SBUF;
91 1 switch (message)
92 1 {
93 2 case ms_waiteAA:
94 2 if (d==0xAA)
95 2 message=ms_waite55;
96 2 else
97 2 message=ms_waiteAA;
98 2 break;
99 2 case ms_waite55:
100 2 if (d==0x55)
101 2 message=ms_waiteA5;
102 2 else
103 2 message=ms_waiteAA;
104 2 break;
105 2
106 2 case ms_waiteA5:
107 2 if (d==0xA5)
108 2 message=ms_waiteD1;
109 2 else
110 2 message=ms_waiteAA;
111 2 break;
112 2
113 2 case ms_waiteD1:
114 2 recdata=d;
115 2 receive=1;
116 2 message=ms_waiteAA;
117 2 break;
C51 COMPILER V7.01 PWM 10/25/2005 20:48:35 PAGE 3
118 2
119 2 default : message=ms_waiteAA;
120 2 }
121 1
122 1
123 1 }
124
125 main()
126 {
127 1 Initial();
128 1 while(1)
129 1 {
130 2 if (receive==1)
131 2 {
132 3 receive=0;
133 3 switch (recdata)
134 3 {
135 4 case 0x0F://上
136 4 if (power1>20)
137 4 power1-=10;
138 4 break;
139 4 case 0x05://下
140 4 if (power1<POWER_MIN)
141 4 power1+=10;
142 4 break;
143 4 case 0x0A://左
144 4 if (power2<POWER_MIN)
145 4 power2+=10;
146 4 break;
147 4 case 0x09://右
148 4 if (power2>20)
149 4 power2-=10;
150 4 break;
151 4 default :
152 4 break;
153 4 }
154 3
155 3
156 3 }
157 2
158 2 }
159 1 }
160
161
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 334 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 ----
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 + -