📄 pm01.lst
字号:
C51 COMPILER V6.02 PM01 08/26/2005 22:27:06 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE PM01
OBJECT MODULE PLACED IN E:\DRAGON~1\SOUREC~1\PHASEM~2\PHASEM~1\PM01.OBJ
COMPILER INVOKED BY: C:\wave6000\COMP51\C51.EXE E:\DRAGON~1\SOUREC~1\PHASEM~2\PHASEM~1\PM01.C DB SB OE
stmt level source
1 #include <reg52.h>
2 #include <source7279.h>
3
4 #define uchar unsigned char
5 #define uint unsigned int
6
7 void dis_phase();
8 void dis_fre();
9 void transdata();
10 void key_process();
11
12 uint Afre;
13
14 uchar count_time2,count_phase,count_p,key_number;
15
16 bit readdata_flag,starttime_flag,cycle_flag,disp_flag,disfre_flag;
17
18 bit cycle_signal;
19 sbit test=P2^1;
20 sbit trans=P3^0;
21 sbit control=P3^1;
22 sbit P00=P3^7;
23
24
25
26 void Time2_initial()
27 {
28 1
29 1 T2CON=0x00;
30 1 RCAP2H=0x4c;
31 1 RCAP2L=0x00;
32 1 TR2=1;
33 1 TR0=1;
34 1 }
35
36
37 main()
38 {
39 1 TMOD=0x15;
40 1 TF1=0;
41 1 IE=0X00;
42 1 EA=1;
43 1 ET2=1;
44 1 EX0=0;
45 1 trans=0;
46 1
47 1 Time2_initial();
48 1 trans=0;
49 1 starttime_flag=0;
50 1 cycle_signal=0;
51 1 initial_7279();
52 1
53 1 while(1)
54 1 {
55 2 if(starttime_flag)
C51 COMPILER V6.02 PM01 08/26/2005 22:27:06 PAGE 2
56 2 {
57 3 Time2_initial();
58 3 starttime_flag=0;
59 3 EX0=1;
60 3 }
61 2 if(readdata_flag)
62 2 {
63 3 transdata();
64 3 readdata_flag=0;
65 3 //P20=~P20;
66 3 }
67 2 if(cycle_signal)
68 2 {
69 3 if(disp_flag)
70 3 dis_phase();
71 3 cycle_signal=0;
72 3 }
73 2 if(disfre_flag)
74 2 {
75 3 if(!disp_flag)
76 3 dis_fre();
77 3 disfre_flag=0;
78 3 starttime_flag=1;
79 3 Afre=0;
80 3 //EX0=1;
81 3 }
82 2 if(control)
83 2 EX0=1;
84 2
85 2 if (!key) //如果有键按下
86 2 {
87 3 key_number=read7279(CMD_READ);
88 3 key_process();
89 3 while (!key); //等待按键放开
90 3 }
91 2
92 2 }
93 1 }
94
95 void keyprocess()
96 {
97 1 switch(key_number)
98 1 {
99 2 case 0x20:{disp_flag=1;};break;
100 2 case 0x22:{disp_flag=0;};break;
101 2 default:break;
102 2 }
103 1 }
104
105 void dis_phase()
106 {
107 1
108 1 uchar phase,data0,data1,data2,data3;
109 1 send_byte(CMD_RESET);
110 1 phase=count_p;
111 1 data0=phase%10;
112 1 phase=phase/10;
113 1 data1=phase%10;
114 1 phase=phase/10;
115 1 data2=phase%10;
116 1 data3=phase/10;
117 1 write7279(DECODE1,data0);
C51 COMPILER V6.02 PM01 08/26/2005 22:27:06 PAGE 3
118 1 write7279(DECODE1+1,data1);
119 1 write7279(DECODE1+2,data2);
120 1 write7279(DECODE1+3,data3);
121 1 count_phase=0;
122 1
123 1 }
124
125 void dis_fre()
126 {
127 1 uchar data_fre0,data_fre1,data_fre2,data_fre3,data_fre4;
128 1 uint data_fre;
129 1 send_byte(CMD_RESET);
130 1 data_fre=Afre;
131 1 data_fre0=data_fre%10;
132 1 data_fre=data_fre/10;
133 1 data_fre1=data_fre%10;
134 1 data_fre=data_fre/10;
135 1 data_fre2=data_fre%10;
136 1 data_fre=data_fre/10;
137 1 data_fre3=data_fre%10;
138 1 data_fre4=data_fre/10;
139 1 write7279(DECODE1,data_fre0);
140 1 write7279(DECODE1+1,data_fre1);
141 1 write7279(DECODE1+2,data_fre2);
142 1 write7279(DECODE1+3,data_fre3);
143 1 write7279(DECODE1+4,data_fre4);
144 1 }
145
146
147 void transdata()
148 {
149 1 P2=TH0;
150 1 short_delay();
151 1 trans=1;
152 1 short_delay();
153 1 trans=0;
154 1 P2=TL0;
155 1 short_delay();
156 1 trans=1;
157 1 short_delay();
158 1 trans=0;
159 1 //T0=0;
160 1 P00=~P00;
161 1 }
162
163
164 void Time2() interrupt 5 using 0
165 {
166 1 TF2=0;
167 1 count_time2++;
168 1 if(count_time2==20)
169 1 {
170 2 TR0=0;
171 2 TR2=0;
172 2 Afre=TH0*256;//TH0;
173 2 //Afre=Afre<<8;//TL0;
174 2 Afre=Afre+TL0;
175 2 //Afre=Afre|14; */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -