📄 led测试.lst
字号:
C51 COMPILER V8.02 LED测试 05/31/2007 22:14:13 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE LED测试
OBJECT MODULE PLACED IN LED测试.OBJ
COMPILER INVOKED BY: G:\8.02\C51\BIN\C51.EXE LED测试.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <AT89X52.H>
2 #include <INTRINS.h>
3 unsigned char code Tab[]={0xff,0Xfd,0xff,0xfe,0xff,0xf7,0xff,0xfb,0xff,0xdf,0xff,0xef,0xff,0x7f,0xff,0xbf
-,
4 0Xfd,0xff,0xfe,0xff,0xf7,0xff,0xfb,0xff,0xdf,0xff,0xef,0xff,0x7f,0xff,0xbf,0xff
-};
5 unsigned char code codedisplay[]={0xFF,0xFF,0xFF,0xE7,0xDB,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xDB,0xE7,0
-xFF,0xFF,/*"0",0*/
6 0xFF,0xFF,0xFF,0xEF,0x8F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0x83,0
-xFF,0xFF,/*"1",1*/
7 0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xBD,0xFB,0xFB,0xF7,0xEF,0xDF,0xBD,0x81,0
-xFF,0xFF,/*"2",2*/
8 0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xFB,0xE7,0xFB,0xFD,0xFD,0xBD,0xBB,0xC7,0xFF,0xFF,/*"3",3*/
9 0xFF,0xFF,0xFF,0xFB,0xF3,0xEB,0xDB,0xDB,0xBB,0xBB,0x81,0xFB,0xFB,0xE1,0
-xFF,0xFF,/*"4",4*/
10 0xFF,0xFF,0xFF,0x81,0xBF,0xBF,0xBF,0xA7,0x9B,0xFD,0xFD,0xBD,0xBB,0xC7,0
-xFF,0xFF,/*"5",5*/
11 0xFF,0xFF,0xFF,0xE3,0xDB,0xBF,0xBF,0xA7,0x9B,0xBD,0xBD,0xBD,0xDB,0xE7,0xFF,0xFF,/*"6",6*/
12 0xFF,0xFF,0xFF,0x81,0xBB,0xBB,0xF7,0xF7,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xFF,0xFF,/*"7",7*/
13 0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xBD,0xDB,0xE7,0xDB,0xBD,0xBD,0xBD,0xC3,0xFF,0xFF,/*"8",8*/
14 0xFF,0xFF,0xFF,0xE7,0xDB,0xBD,0xBD,0xBD,0xD9,0xE5,0xFD,0xFD,0xDB,0xC7,0xFF,0xFF};/*"9",9*/
15
16 extern Write_Date(uchar StartAddress,uchar *date,uchar bytes);
*** ERROR C141 IN LINE 16 OF LED测试.C: syntax error near 'StartAddress', expected ')'
17 extern Read_Date(uchar StartAddress,uchar *date,uchar bytes);
*** ERROR C141 IN LINE 17 OF LED测试.C: syntax error near 'StartAddress', expected ')'
18 unsigned char m;
19 unsigned int result,count=0;
20
21 void delay(void)
22 { unsigned char i,j;
23 1 for(i=0;i<15;i++){ for(j=0;j<50;j++) ; }
24 1 }
25
26 unsigned char displaycount,x;
27 unsigned char displaybuf[8]={0,0,0,0,0,0,0,0};
28 unsigned char timecount;
29 unsigned char readdata[8];
30 unsigned long a,aa,bb;
31 sbit DQ=P2^6; //选P3.7口与DS18B20的数字信号输出端DQ相连
32 bit sflag;
33
34 bit resetpulse(void) //DS18B20初始化实现对DS18B20的复位
35 { unsigned char pre;
36 1 unsigned char i;
37 1 DQ=0; //发出复位脉冲,将数据线下拉480μS-960μS
38 1 for(i=220;i>0;i--); //(改!!!!!!!!!!!!!!!!!!!!)
39 1 DQ=1; //DS18B20等待15μS-60μS
40 1 for(i=60;i>0;i--);
41 1 pre=DQ;
42 1 for(i=150;i>0;i--);
43 1 return(pre); // DS18B20返回60μS-240μS存在低脉冲,判断是否准备好接受或发送数据
44 1 }
45
46 void writecommandtods18b20(unsigned char command) //写时序
C51 COMPILER V8.02 LED测试 05/31/2007 22:14:13 PAGE 2
47 {
48 1 unsigned char i;
49 1 unsigned char j;
50 1
51 1 for(i=0;i<8;i++)
52 1 {
53 2 if((command & 0x01)==0) //写0时序
54 2 {
55 3 DQ=0; //拉低单总线至少60μS,保证DS18B20在15μS-45μS时可以正确地采样I/O总线上的低电平
56 3 for(j=35;j>0;j--);
57 3 DQ=1;
58 3 }
59 2 else //写1时序
60 2 {
61 3 DQ=0; //拉低单总线后,在15us之内就得释放
62 3 for(j=2;j>0;j--);
63 3 DQ=1;
64 3 for(j=33;j>0;j--);
65 3 }
66 2 command=_cror_(command,1);
67 2 }
68 1 }
69
70 unsigned char readdatafromds18b20(void) //读时序
71 {
72 1 unsigned char i;
73 1 unsigned char j;
74 1 unsigned char temp;
75 1
76 1 temp=0;
77 1 for(i=0;i<8;i++)
78 1 {
79 2 temp=_cror_(temp,1);
80 2 DQ=0; //单总线拉低后,读时序开始
81 2 _nop_();
82 2 _nop_();
83 2 DQ=1; //停止将数据线拉低,以读取数据
84 2 for(j=10;j>0;j--);
85 2 if(DQ==1)
86 2 {
87 3 temp=temp | 0x80;
88 3 }
89 2 else
90 2 {
91 3 temp=temp | 0x00;
92 3 }
93 2 for(j=20;j>0;j--); ////////////////////(改!!!!!!!!!!!!)
94 2 }
95 1 return(temp);
96 1 }
97
98
99
100 void main(void)
101 { SCON=0; P1=0;
102 1 Write_Date(15,date_txd,3);
*** ERROR C202 IN LINE 102 OF LED测试.C: 'date_txd': undefined identifier
103 1 Read_Date(0,date_rxd,3);
*** ERROR C202 IN LINE 103 OF LED测试.C: 'date_rxd': undefined identifier
104 1 //while(resetpulse()); //写前调用初始化程序对DS18B20复位
105 1 //writecommandtods18b20(0xcc); //单片DS18B20工作,跳过读ROM中64位地址的过程
106 1 //writecommandtods18b20(0x44); //启动DS18B20进行温度转化,将结果存入内部RAM中
C51 COMPILER V8.02 LED测试 05/31/2007 22:14:13 PAGE 3
107 1 while(1)
108 1 {
109 2 for(m=0;m<16;m++)
110 2 { SBUF=codedisplay[date_rxd[0]*16+m]; while(!TI) ; TI=0;
*** ERROR C202 IN LINE 110 OF LED测试.C: 'date_rxd': undefined identifier
111 3 SBUF=codedisplay[date_rxd[1]*16+m]; while(!TI) ; TI=0;
*** ERROR C202 IN LINE 111 OF LED测试.C: 'date_rxd': undefined identifier
112 3 SBUF=codedisplay[date_rxd[2]*16+m]; while(!TI) ; TI=0;
*** ERROR C202 IN LINE 112 OF LED测试.C: 'date_rxd': undefined identifier
113 3 SBUF=codedisplay[date_rxd[3]*16+m]; while(!TI) ; TI=0;
*** ERROR C202 IN LINE 113 OF LED测试.C: 'date_rxd': undefined identifier
114 3 SBUF=codedisplay[date_rxd[4]*16+m]; while(!TI) ; TI=0;
*** ERROR C202 IN LINE 114 OF LED测试.C: 'date_rxd': undefined identifier
115 3 SBUF=codedisplay[date_rxd[5]*16+m]; while(!TI) ; TI=0;
*** ERROR C202 IN LINE 115 OF LED测试.C: 'date_rxd': undefined identifier
116 3 SBUF=codedisplay[date_rxd[6]*16+m]; while(!TI) ; TI=0;
*** ERROR C202 IN LINE 116 OF LED测试.C: 'date_rxd': undefined identifier
117 3 SBUF=codedisplay[date_rxd[7]*16+m]; while(!TI) ; TI=0;
*** ERROR C202 IN LINE 117 OF LED测试.C: 'date_rxd': undefined identifier
118 3 //P2_0=0;P2_1=0;P2_1=1;P2_1=0;P2_0=1;
119 3 SBUF=Tab[2*m]; while(!TI) ; TI=0;
120 3 SBUF=Tab[2*m+1];while(!TI) ; TI=0;
121 3
122 3 P3_4=0;P3_4=1; P3_4=0;
123 3 delay();
124 3 /* count++;
125 3 if(count==600)
126 3 { count=0;
127 3 while(resetpulse()); //写前调用初始化程序对DS18B20复位
128 3 writecommandtods18b20(0xcc); //单片DS18B20工作,跳过读ROM中64位地址的过程
129 3 writecommandtods18b20(0xbe); // 读DS18B20RAM中温度数据
130 3 readdata[0]=readdatafromds18b20(); //温度数据低8位赋值
131 3 readdata[1]=readdatafromds18b20(); //温度数据高8位赋值
132 3 sflag=0;
133 3 if((readdata[1] & 0xf8)!=0x00) //温度数据高5位为1时,温度为负值
134 3 {
135 3 sflag=1;
136 3 readdata[1]=~readdata[1]; //对负温度值进行取反加1操作
137 3 readdata[0]=~readdata[0];
138 3 result=readdata[0]+1;
139 3 readdata[0]=result;
140 3 if(result>255)
141 3 {
142 3 readdata[1]++;
143 3 }
144 3 }
145 3 readdata[1]=readdata[1]&0x07; //将代表符号的高5位数屏蔽
146 3 aa=625;bb=(readdata[1]*256+readdata[0]);
147 3 a=bb*aa; //计算实际温度值
148 3
149 3
150 3
151 3 displaybuf[0]=a/100000; //给各显示位赋温度值
152 3 displaybuf[1]=a%100000/10000;
153 3 displaybuf[2]=a%10000/1000;
154 3 displaybuf[3]=a%1000/100;
155 3 displaybuf[4]=a%100/10;
156 3 displaybuf[5]=a%10;
157 3 while(resetpulse());
158 3 writecommandtods18b20(0xcc);
159 3 writecommandtods18b20(0x44);
160 3 }*/
C51 COMPILER V8.02 LED测试 05/31/2007 22:14:13 PAGE 4
161 3 }}}
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
C51 COMPILATION COMPLETE. 0 WARNING(S), 12 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -