📄 pwm.lst
字号:
C51 COMPILER V7.50 PWM 03/13/2008 13:49:28 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE PWM
OBJECT MODULE PLACED IN PWM.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE PWM.C BROWSE DEBUG OBJECTEXTEND
line level source
1 //--------------------------------------------------------------------
2
3
4
5 //模块:PWM.C
6
7 //功能:PWM解码模块
8
9 //晶振:24.000MHz
10
11 //芯片: STC12C5412AD
12
13 #include "stc12c5412ad.h"
14 //#ifndef lcd12864_driver_new
15 //#include "lcd12864_driver_new.h"
16 //#endif
17 #define uchar unsigned char
18
19 #define uint unsigned int
20
21 #define CNT 32
22
23 //--------------------------------------------------------------------
24
25 extern uchar keyfuncindex;
26
27 extern void d2(void);
28
29 extern void lcd_init(void);
30
31 extern void dis_one_char(uchar x,uchar y,uchar asc_num,bit b_flag);
32
33 extern void dis_one_zi(uchar x_add,uchar y_add,uchar code *po,bit back_flag,bit char_moudle);
34
35 extern void delay(uint time);
36
37 extern void delay_1(uchar time);
38
39 extern void dis_cls(void);
40
41 extern uchar code tab[16];
42
43 uchar data value_h[CNT];
44
45 uchar count=0;
46
47 sbit key0=P3^0;
48
49 sbit key1=P3^1;
50
51 //--------------------------------------------------------------------
52
53 void pwm_init()
54
55 {
C51 COMPILER V7.50 PWM 03/13/2008 13:49:28 PAGE 2
56 1
57 1 TMOD=0x01;
58 1
59 1 TH0=0;
60 1
61 1 TL0=0;
62 1
63 1 IT0=1;
64 1
65 1 EX0=1;
66 1
67 1 EA=1;
68 1
69 1 }
70
71 //--------------------------------------------------------------------
72
73 void clk() interrupt 0
74
75 {
76 1
77 1 if(TH0==TL0 && TL0==0)
78 1
79 1 {
80 2
81 2 TR0=1;
82 2
83 2 }
84 1
85 1 else
86 1
87 1 {
88 2
89 2 TR0=0;
90 2
91 2 value_h[count]=TH0;
92 2
93 2 TH0=0;
94 2
95 2 TL0=0;
96 2
97 2 TR0=1;
98 2
99 2 count++;
100 2
101 2 if(count==CNT-1)
102 2
103 2 {
104 3
105 3 EX0=0;
106 3
107 3 count=0;
108 3
109 3 TH0=0;
110 3
111 3 TL0=0;
112 3
113 3 TR0=0;
114 3
115 3 }
116 2
117 2 }
C51 COMPILER V7.50 PWM 03/13/2008 13:49:28 PAGE 3
118 1
119 1 }
120
121 //--------------------------------------------------------------------
122
123 void bin_to_hex(uchar x,uchar y,uchar bin)
124
125 {
126 1
127 1 uchar b_h,b_l;
128 1
129 1 b_h=bin & 0xf0;
130 1
131 1 b_h>>=4;
132 1
133 1 b_h=tab[b_h];
134 1
135 1 b_l=bin & 0x0f;
136 1
137 1 b_l=tab[b_l];
138 1
139 1 y*=2;
140 1
141 1 dis_one_char(x,y,b_h,1);
142 1
143 1 dis_one_char(x,y+1,b_l,1);
144 1
145 1 }
146
147 //--------------------------------------------------------------------
148
149 void pwm()
150
151 {
152 1
153 1 uchar i=0,x=0,y=0,ii;
154 1
155 1 pwm_init();
156 1
157 1 dis_cls();
158 1
159 1 while(1)
160 1
161 1 {
162 2
163 2 for(x=0;x<4;x++)
164 2
165 2 {
166 3
167 3 for(y=0;y<8;y++)
168 3
169 3 {
170 4
171 4 ii=value_h[i++];
172 4
173 4 bin_to_hex(x,y,ii);
174 4
175 4
176 4
177 4 }
178 3
179 3 }
C51 COMPILER V7.50 PWM 03/13/2008 13:49:28 PAGE 4
180 2
181 2 i=0;
182 2
183 2 key0=1;
184 2
185 2 key1=1;
186 2
187 2 delay_1(5);
188 2
189 2 if(key0==0 || key1==0)
190 2
191 2 {
192 3
193 3
194 3
195 3 for(i=0;i<32;i++)
196 3
197 3 {
198 4
199 4 value_h[i]=0;
200 4
201 4
202 4
203 4 }
204 3
205 3 goto exit;
206 3
207 3 }
208 2
209 2 }
210 1
211 1 exit:for(i=0;i<32;i++)
212 1
213 1 {
214 2
215 2 value_h[i]=0;
216 2
217 2
218 2
219 2 }
220 1
221 1 TMOD=0x00;
222 1
223 1 TH0=0;
224 1
225 1 TL0=0;
226 1
227 1 count=0;
228 1
229 1 EX0=0;
230 1
231 1 EA=0;
232 1
233 1 TR0=0;
234 1
235 1 TR1=0;
236 1
237 1 keyfuncindex=2;
238 1
239 1 d2();
240 1
241 1 }
C51 COMPILER V7.50 PWM 03/13/2008 13:49:28 PAGE 5
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 264 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 33 7
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 + -