📄 delay subroutine.lst
字号:
C51 COMPILER V7.50 DELAY_SUBROUTINE 07/16/2008 08:39:37 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE DELAY_SUBROUTINE
OBJECT MODULE PLACED IN ..\..\..\c\05\05b16\delay subroutine.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\..\..\c\05\05b16\delay subroutine.c BROWSE DEBUG OBJECTEXTEND PRINT(.\de
-lay subroutine.lst) SRC(.\delay subroutine.SRC)
line level source
1 /****************************************Copyright (c)**************************************************
2 ** 大连双马电子有限公司
3 ** 研 发 部
4 ** 研发一部
5 **
6 ** http://www.smelecom.com/
7 **
8 ** 文 件 名: Delay subroutine
9 ** 编 写 日 期: 2006年3月24日
10 ** 描 述: This programme is used for read and write the Motorola 32series MCU
11 ** 版 本: the first one
12 ** 编 者: 宋晓伟
13 **********************************************************************************************************
-*/
14
15
16
17 #include <reg54.h>
18 //#include <absacc.h>
19 //#include <intrins.h>
20
21 #define uchar unsigned char
22 #define uint unsigned int
23 sbit qTXD=P1^3;
24 sbit qRXD=P1^2;
25 //sbit qTXD=P1^6;
26 //sbit flag=PSW^5;
27
28 /*********************************************************
29 * 函数原型: void delay1us(void);
30 * 功 能: 1us的基本延迟。
31 *********************************************************/
32 void delay1us(void) {
33 1 #pragma asm
34 1 nop
35 1 nop
36 1 #pragma endasm
37 1 }
38
39
40 /*******************************************************
41 *函数原型:void delay17us(void);
42 *功 能:17us的延迟,给模拟串口提供。
43 *******************************************************/
44 void delay17us(void) {
45 1 int n;
46 1 #pragma asm
47 1 nop
48 1 nop
49 1 nop
50 1 nop
51 1 nop
52 1 nop
53 1 nop
C51 COMPILER V7.50 DELAY_SUBROUTINE 07/16/2008 08:39:37 PAGE 2
54 1 nop
55 1 nop
56 1 nop
57 1 nop
58 1 nop
59 1 nop
60 1 nop
61 1 nop
62 1 nop
63 1 #pragma endasm
64 1 for(n=0;n<=5;n++) {
65 2 delay1us();
66 2 }
67 1 }
68
69
70 /*********************************************************
71 *函数原型:void delay10us(void);
72 *功 能:10us延迟。
73 **********************************************************/
74 void delay10us(void) {
75 1 int n;
76 1 for (n=0;n<=3;n++) {
77 2 delay1us();
78 2 }
79 1 }
80 /*
81 void delay133us(void) {
82 int n;
83 for (n=0;n<=62;n++) {
84 delay1us();
85 }
86 }
87
88
89
90 /*********************************************************
91 *函数原型:void delay104us(void);
92 *功 能:10us延迟。
93 **********************************************************/
94 void delay52us(void) {
95 1 int n;
96 1 for (n=0;n<=24;n++) {
97 2 delay1us();
98 2 }
99 1 }
100
101 void delay104us(void) {
102 1 int n;
103 1 for (n=0;n<=49;n++) {
104 2 delay1us();
105 2 }
106 1 }
107
108 /*********************************************************
109 *函数原型:void delay35us(void);
110 *功 能:35us延迟。
111 **********************************************************
112
113 void delay80us(void) {
114 int n;
115 for (n=0;n<=39;n++) {
C51 COMPILER V7.50 DELAY_SUBROUTINE 07/16/2008 08:39:37 PAGE 3
116 delay1us();
117 }
118 }
119 /*void delay7us(void) {
120 int n;
121 for (n=0;n<=2;n++) {
122 delay1us();
123 }
124 }
125
126
127 void delay3us(void) {
128 int n;
129 for (n=0;n<=0;n++) {
130 delay1us();
131 }
132 }*/
133 /*********************************************************
134 *函数原型:void delay10ms(void);
135 *功 能:10ms延迟。
136 **********************************************************/
137
138 void delay10ms(void) {
139 1 int v;
140 1 for (v=0;v<700;v++)
141 1 {
142 2 delay17us();
143 2 }
144 1 }
145
146 void delay4ms(void) {
147 1 int v;
148 1 for (v=0;v<300;v++)
149 1 {
150 2 delay17us();
151 2 }
152 1 }
153
154 void delay1ms(void) {
155 1 int v;
156 1 for (v=0;v<60;v++)
157 1 {
158 2 delay17us();
159 2 }
160 1 }
161
162 /*
163
164 void delay6ms(void) {
165 int v;
166 for (v=0;v<455;v++)
167 {
168 delay17us();
169 }
170 }
171
172
173 /*********************************************************
174 *函数原型:void delay40ms(void);
175 *功 能:40ms延迟。
176 **********************************************************/
177
C51 COMPILER V7.50 DELAY_SUBROUTINE 07/16/2008 08:39:37 PAGE 4
178 void delay40ms(void) {
179 1 int v;
180 1 for (v=0;v<1500;v++)
181 1 {
182 2 delay17us();
183 2 }
184 1 }
185
186 /*********************************************************
187 *函数原型:void delay40ms(void);
188 *功 能:40ms延迟。
189 **********************************************************/
190
191 void delay200ms(void) {
192 1 int v;
193 1 for (v=0;v<13000;v++)
194 1 {
195 2 delay17us();
196 2 }
197 1 }
198
199 void delay100ms(void) {
200 1 int v;
201 1 for (v=0;v<6400;v++)
202 1 {
203 2 delay17us();
204 2 }
205 1 }
206 /*********************************************************
207 *函数原型:void delay207ms(void);
208 *功 能:207ms延迟。
209 **********************************************************
210 void delay207ms(void) {
211 int v;
212 for (v=0;v<13550;v++)
213 {
214 delay17us();
215 }
216 }
217
218 /*********************************************************
219 *函数原型:void delay60ms(void);
220 *功 能:60ms延迟。
221 **********************************************************
222 void delay60ms(void) {
223 int v;
224 for (v=0;v<3750;v++)
225 {
226 delay17us();
227 }
228 }
229
230 /*********************************************************
231 *函数原型:void delay107ms(void);
232 *功 能:107ms延迟。
233 **********************************************************
234
235 void delay107ms(void) {
236 int v;
237 for (v=0;v<7000;v++)
238 {
239 delay17us();
C51 COMPILER V7.50 DELAY_SUBROUTINE 07/16/2008 08:39:37 PAGE 5
240 }
241 }
242
243 /*********************************************************
244 *函数原型:uchar input(void);
245 *功 能:模拟串口输入函数,输入一个字节。
246 **********************************************************/
247 uchar input(void) {
248 1 int m;
249 1 uchar in_data;
250 1 in_data=0x00;
251 1
252 1 while(qRXD);
253 1 delay10us();
254 1 delay17us();
255 1 for(m=0;m<7;m++)
256 1 {
257 2 //qrTXD=1;
258 2 if(qRXD==1){
259 3 in_data|=0x80;
260 3 }
261 2 else {
262 3 in_data&=0x7f;
263 3 }
264 2 in_data>>=1;
265 2 delay17us();
266 2 }
267 1 if(qRXD==1){
268 2 in_data|=0x80;
269 2 }
270 1 else {
271 2 in_data&=0x7f;
272 2 }
273 1 delay17us();
274 1 delay1us();
275 1 delay1us();
276 1 delay1us();
277 1 delay1us();
278 1 return(in_data);
279 1 }
280
281
282
283
284
285
286
287 /*********************************************************
288 *函数原型:void output(uchar sda);
289 *功 能:模拟串口输出函数,输出一个字节。
290 **********************************************************/
291 void output(uchar sda) {
292 1 int m;
293 1 m=0;
294 1 qTXD=0;
295 1 delay17us();
296 1 while(m<8)
297 1 {if (sda&1){
298 3 qTXD=1;
299 3 }
300 2 else {
301 3 qTXD=0;
C51 COMPILER V7.50 DELAY_SUBROUTINE 07/16/2008 08:39:37 PAGE 6
302 3 }
303 2 delay17us();
304 2 m=m+1;
305 2 sda>>=1;
306 2 }
307 1 qTXD=1;
308 1 delay17us();
309 1 }
310 /*
311 void outputt(uchar sda) {
312 int m;
313 m=0;
314 qrTXD=0;
315 delay17us();
316 while(m<8)
317 {if (sda&1){
318 qrTXD=1;
319 }
320 else {
321 qrTXD=0;
322 }
323 delay17us();
324 m=m+1;
325 sda>>=1;
326 }
327 qrTXD=1;
328 delay17us();
329
330 }*/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 359 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -