📄 16a.lst
字号:
C51 COMPILER V6.20c 16A 03/19/2004 10:47:41 PAGE 1
C51 COMPILER V6.20c, COMPILATION OF MODULE 16A
OBJECT MODULE PLACED IN 16a.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 16a.C COMPACT ROM(SMALL) DEBUG OBJECTEXTEND
stmt level source
1
2
3 /*------------------------------------------
4 serial ad & da.c 外电压比较器
5 Copyright 2002 DFJD Software, Inc.
6 --------------------------------------------*/
7
8 #include <reg52.h> /* special function register declarations */
9 /* for the intended 8051 derivative */
10 //#include <stdio.h> /* prototype declarations for I/O functions */
11
12 #define uint unsigned int
13 #define uchar unsigned char
14
15 uchar bdata flag;
16 sbit flag_0=flag^0;
17 sbit flag_1=flag^1;
18 sbit flag_2=flag^2;
19 sbit flag_3=flag^3;
20 sbit flag_4=flag^4;
21
22
23 sbit P3_2=P3^2;
24 sbit P3_3=P3^3;
25 sbit P3_4=P3^4;
26 sbit P3_5=P3^5;
27 sbit P3_7=P3^7;
28
29
30
31 uchar data da; /* 收*/
32 union /* 发*/
33 {
34 unsigned int t_buf[4];
35 unsigned char t_buf8[8];
36 } ad;
37
38 uchar jj;
39 uint ii;
40 sbit AOUT=P3^6;
41
42 void delay(uint i)
43 {
44 1 uint j;
45 1 for(j=0;j<i;j++);
46 1 }
47
48 serial() interrupt 4 using 1
49 {
50 1 uchar i;
51 1 uchar *pi;
52 1 ES=0;
53 1 RI=0;
54 1 i=SBUF;
55 1 if(i!=0xaa)
C51 COMPILER V6.20c 16A 03/19/2004 10:47:41 PAGE 2
56 1 {
57 2 SBUF=0xff;
58 2 while(TI==0);
59 2 TI=0;
60 2 ES=1;
61 2 return;
62 2 }
63 1 SBUF=0xbb;
64 1 while(TI==0);
65 1 TI=0;
66 1 pi=ad.t_buf8;
67 1 for(jj=0;jj<8;jj++)
68 1 {
69 2 SBUF=*pi;
70 2 while(TI==0);
71 2 TI=0;
72 2 pi++;
73 2 }
74 1 while(RI==0);
75 1 RI=0;
76 1 da=SBUF;
77 1 ES=1;
78 1 }
79
80 uint adcsand (uchar i)
81 {
82 1 // uint ii; /* 1000us<->1000mv */
83 1 P1=0xfd; /*步骤1,p1.1=0, Cf放电 */
84 1 TR0=0;
85 1 delay(10); /* dalay20us,Cf彻底放电*/
86 1 TH0=0;
87 1 TL0=0;
88 1 P1=i; /* p1.1=1开始积分*/
89 1 TR0=1; /* 起动T0 */
90 1 while(AOUT==1); /* 检测AOUT 是否跳变,aout=0,(v- > v+)积分时间到
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -