📄 pwm.lst
字号:
C51 COMPILER V8.05a PWM 08/21/2007 12:58:01 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE PWM
OBJECT MODULE PLACED IN PWM.OBJ
COMPILER INVOKED BY: C:\Keil\MCU\C51\BIN\C51.EXE PWM.C BROWSE DEBUG OBJECTEXTEND
line level source
1 //模块:PWM.C
2 //功能:PWM解码模块
3 //晶振:24.000MHz
4 //芯片: STC12C5412AD
5 //版本:V1.0.0
6 //设计:魏广寅
7 //日期:2007.4.10
8 #include "stc12c5412ad.h"
9 #define uchar unsigned char
10 #define uint unsigned int
11 #define CNT 32
12 //--------------------------------------------------------------------
13 extern uchar keyfuncindex;
14 extern void d2(void);
15 extern void lcd_init(void);
16 extern void dis_one_char(uchar x,uchar y,uchar asc_num,bit b_flag);
17 extern void dis_one_zi(uchar x_add,uchar y_add,uchar code *po,bit back_flag,bit char_moudle);
18 extern void delay(uint time);
19 extern void delay_1(uchar time);
20 extern void dis_cls(void);
21 extern uchar code tab[16];
22 uchar data value_h[CNT];
23 uchar count=0;
24 sbit key0=P3^0;
25 sbit key1=P3^1;
26 //--------------------------------------------------------------------
27 void pwm_init()
28 {
29 1 TMOD=0x01;
30 1 TH0=0;
31 1 TL0=30;
32 1 IT0=1;
33 1 EX0=1;
34 1 EA=1;
35 1 //TR0=1;
36 1 }
37 //--------------------------------------------------------------------
38 void clk() interrupt 0
39 {
40 1 if(TH0==0 & TL0==0)
41 1 TR0=1;
42 1 else
43 1 {
44 2
45 2 TR0=0;
46 2 value_h[count]=TH0;
47 2 TH0=0;
48 2 TL0=30;
49 2 count++;
50 2 if(count==CNT)
51 2 {
52 3 EX0=0;
53 3 count=0;
54 3 TH0=0;
55 3 TL0=0;
C51 COMPILER V8.05a PWM 08/21/2007 12:58:01 PAGE 2
56 3 TR0=0;
57 3 }
58 2 TR0=1;
59 2 }
60 1 }
61 //--------------------------------------------------------------------
62 void bin_to_hex(uchar x,uchar y,uchar bin)
63 {
64 1 uchar b_h,b_l;
65 1 b_h=bin & 0xf0;
66 1 b_h>>=4;
67 1 b_h=tab[b_h];
68 1 b_l=bin & 0x0f;
69 1 b_l=tab[b_l];
70 1 y*=2;
71 1 dis_one_char(x,y,b_h,1);
72 1 dis_one_char(x,y+1,b_l,1);
73 1 }
74 //--------------------------------------------------------------------
75 void pwm()
76 {
77 1 uchar i=0,x=0,y=0,ii;
78 1 g: pwm_init();
79 1 dis_cls();
80 1 while(1)
81 1 {
82 2 for(x=0;x<4;x++)
83 2 {
84 3 for(y=0;y<8;y++)
85 3 {
86 4 ii=value_h[i];
87 4 bin_to_hex(x,y,ii);
88 4 i++;
89 4 }
90 3 }
91 2 i=0;
92 2 key0=1;
93 2 key1=1;
94 2 delay_1(5);
95 2 if(key0==0)
96 2 {
97 3
98 3 for(i=0;i<32;i++)
99 3 {
100 4 value_h[i]=0;
101 4
102 4 }
103 3 goto exit;
104 3 }
105 2
106 2 if(key1==0)
107 2 {
108 3
109 3 for(i=0;i<32;i++)
110 3 {
111 4 value_h[i]=0;
112 4
113 4 }
114 3 dis_cls();
115 3 TMOD=0x00;
116 3 TH0=0;
117 3 TL0=0;
C51 COMPILER V8.05a PWM 08/21/2007 12:58:01 PAGE 3
118 3 count=0;
119 3 EX0=0;
120 3 EA=0;
121 3 TR0=0;
122 3 TR1=0;
123 3 goto g;
124 3 }
125 2
126 2 }
127 1 exit:for(i=0;i<32;i++)
128 1 {
129 2 value_h[i]=0;
130 2
131 2 }
132 1 TMOD=0x00;
133 1 TH0=0;
134 1 TL0=0;
135 1 count=0;
136 1 EX0=0;
137 1 EA=0;
138 1 TR0=0;
139 1 TR1=0;
140 1 keyfuncindex=2;
141 1 d2();
142 1 }
143 //--------------------------------------------------------------------
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 328 ----
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 + -