📄 pulse_prc.lst
字号:
C51 COMPILER V6.02 PULSE_PRC 09/10/2005 17:11:39 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE PULSE_PRC
OBJECT MODULE PLACED IN D:\2005_09\Pulse_prc.OBJ
COMPILER INVOKED BY: D:\C51\BIN\C51.EXE D:\2005_09\Pulse_prc.c SMALL DB OE CO OT(SIZE)
stmt level source
1
2 /******************************/
3 /*** pulse danlan precess **/
4 /******************************/
5
6 #include "MATH.H"
7 #include "reg52.h"
8 #include "typedef.h"
9 #include "function.h"
10 #include "define.h"
11 #include "varible.h"
12
13 sbit DA_CS = P2^0 ;
14 sbit DA_CLK = P2^1 ;
15 sbit DA_DATA = P2^2 ;
16 sbit PULSE_OUT = P2^3 ;
17
18 void Pulse_prc(void);
19 void Pulse_init(void);
20
21 /***********************************/
22 /***********************************/
23
24 void Pulse_init(void)
25 {
26 1 PULSE_OUT = 1 ; // no output
27 1 send_pulse_number = 0 ;
28 1 pulse_send_F = 0;
29 1 pulse_out_en_F = 0;
30 1 return;
31 1 }
32
33
34 /****************************/
35 /****************************/
36
37 void Pulse_prc(void)
38 {
39 1
40 1 if(net_cha <= 0.0)
41 1 {
42 2 pulse_out_en_F = 0;
43 2 return ;
44 2 }
45 1
46 1 else
47 1 {
48 2 pulse_out_en_F = 0;
49 2 send_pulse_number = (unsigned int)(net_cha*1000.0/pulse_danlan);
50 2
51 2 if((send_pulse_number >= 1)&&(send_pulse_number < MAX_SEND_NUMBER))
52 2 {
53 3 // net_cha *= 100000 ;
54 3
55 3 net_cha = net_cha - (send_pulse_number * pulse_danlan/1000.0 ); //get remain net liuliang
C51 COMPILER V6.02 PULSE_PRC 09/10/2005 17:11:39 PAGE 2
56 3 pulse_out_en_F = 1 ;
57 3 // TF1 = 0 ;
58 3 // TH1 = 0xfd ;
59 3 // TL1 = 0xe1;
60 3 // TR1 = 1 ; //start counter
61 3 // ET1 = 1 ; //enable interrupt
62 3 }
63 2 /* else
64 2 {
65 2 //net_cha = 0.0 ;
66 2 net_cha = net_cha - (float)send_pulse_number * pulse_danlan/1000.0 ;
67 2 // send_pulse_number = 0;
68 2 } */
69 2 }
70 1
71 1
72 1 }
73
74
75
76 /*********************************/
77 /*********************************/
78
79 bit next_F ;
80 /**********************************/
81 /**** timer1 interrupt ****/
82 /*** 1ms ***********************/
83
84 void Pulse_out(void) interrupt 3
85 {
86 1 EA = 0;
87 1 TF1 = 0 ; //clear interrupt flag
88 1 TH1 = 0xf8;
89 1 TL1 = 0xcc;
90 1 // TH1 = 0xf0 ; //test
91 1 // TL1 = 0xf0 ; //test
92 1 /********************************/
93 1 /****** da convert data send ****/
94 1 if(da_send_F == 1) //need send da convert data
95 1 {
96 2 if(send_bit_count < 16)
97 2 {
98 3 if(DA_CLK == 0)
99 3 {
100 4 if(next_F == 0)
101 4 {
102 5 DA_DATA = (bit)(da_send_data&0x8000) ;
103 5 da_send_data <<= 1 ;
104 5
105 5 next_F = 1 ;
106 5 }
107 4 else
108 4 {
109 5 send_bit_count++;
110 5 DA_CLK = 1 ;
111 5
112 5 next_F = 0 ;
113 5 }
114 4 }
115 3 else
116 3 {
117 4 DA_CLK = 0 ;
C51 COMPILER V6.02 PULSE_PRC 09/10/2005 17:11:39 PAGE 3
118 4
119 4 }
120 3 }
121 2 else if(send_bit_count == 16)
122 2 {
123 3 da_send_F = 0 ;
124 3 send_bit_count = 0 ;
125 3 next_F = 0 ;
126 3 DA_CLK = 0 ;
127 3 DA_CS = 1 ;
128 3 }
129 2 }
130 1
131 1 /** PULSE PRECESS **/
132 1 if(pulse_out_en_F == 1)
133 1 {
134 2 if(send_pulse_number >= 1) //continue pulse out
135 2 {
136 3 if(PULSE_OUT == 0) //if out level is high
137 3 PULSE_OUT = 1; //out low level
138 3 else if(PULSE_OUT == 1) //out level is low
139 3 {
140 4 PULSE_OUT = 0 ; //out level changed high
141 4 send_pulse_number--;
142 4 }
143 3 }
144 2 else if(send_pulse_number == 0) //pulse out is over
145 2 {
146 3
147 3 PULSE_OUT = 1 ; //out low level
148 3 pulse_out_en_F = 0 ;
149 3
150 3 // TR1 = 0 ;
151 3 // ET1 = 0 ;
152 3 }
153 2 }
154 1 EA = 1 ;
155 1 }
156
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 324 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -