📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 05/23/2008 15:00:22 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Program Files\KEIL\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "AT89X52.H"
2 #include "1602S51.H"
3 #include "DS18B20S51.H"
*** WARNING C312 IN LINE 219 OF DS18B20S51.H: misplaced endif control
4 unsigned char tt[16]={"I: . II: . "};
5 unsigned char PP[16]={"III: . "};
6
7 unsigned char sSendComBuf[5]={0x55,1,35,23,0xff};
8 unsigned char sRecComBuf[5];
9
10 unsigned char timecount=0;
11 unsigned int TesTemperature1=0;//实测得到温度 4位,到达千
12 unsigned int TesTemperature2=0;//实测得到温度
13 unsigned int TesTemperature3=0;//实测得到温度
14 bit ID_choose1=1; //第一路温度测量开关 1 开,0 关
15 bit ID_choose2=1; //第二路温度测量开关
16 bit ID_choose3=1; //第三路温度测量开关
17 unsigned int sst;
18 unsigned char count3;
19 unsigned char data bOut,bIn,bSout,bSin;
20
21
22 void initTimer(void); //初始化定时器0
23 int translate(unsigned int uiData,unsigned char ID);
24 void Key_Scan(void);//按键扫描
25 void PSendChar(unsigned char ch) ;
26 void PSendString(unsigned char *st) ;
27
28
29 //向串口发送一个字符
30 void send_char_com( unsigned char ch)
31 {
32 1 SBUF=ch;
33 1 while (TI== 0 );
34 1 TI= 0 ;
35 1 }
36
37 //向串口发送一个字符串,strlen为该字符串长度
38 void send_string_com( unsigned char *str, unsigned char strlen)
39 {
40 1 unsigned char k= 0 ;
41 1 do
42 1 {
43 2 send_char_com(str[k]);
44 2 k++;
45 2 } while (k < strlen);
46 1 }
47
48
49
50 //------------------------------
51 //串口-中断方式
52 //当要发送时,往SBUF里送值,设TI=1,设ES=1,就能发送了,
53 //UART init
54 void initUart(void)
C51 COMPILER V7.06 MAIN 05/23/2008 15:00:22 PAGE 2
55 {
56 1
57 1 SCON = 0x50 ; //SCON: serail mode 1, 8-bit UART, enable ucvr
58 1 TMOD |= 0x20 ; //TMOD: timer 1, mode 2, 8-bit reload
59 1 PCON |= 0x80 ; //SMOD=1;
60 1 TH1 = 0xFa ; //Baud:9600 fosc=11.0592MHz
61 1 IE |= 0x90 ; //Enable Serial Interrupt ES=1.EA=1
62 1 TR1 = 1 ; // timer 1 run
63 1 }
64
65
66
67
68 //串口接收中断函数
69 void serial () interrupt 4 using 3
70 {
71 1 static bit fist;
72 1 if (RI)
73 1 {
74 2 unsigned char ch;
75 2 RI = 0 ;
76 2 ch=SBUF;
77 2 // PP[10]=ch+'0';
78 2 if (ch==0x55 ) //第一字节
79 2 {
80 3 fist=1; //帧头
81 3 count3= 0 ;
82 3 sRecComBuf[count3]=ch;
83 3 }
84 2 if((fist==1)&&(count3==4)&&(ch==0xff)) //帧尾
85 2 {
86 3 fist=0; //帧尾
87 3 switch(sRecComBuf[1]) //路数选择
88 3 {
89 4 case 1:
90 4 if(sRecComBuf[2]==0x01)
91 4 {
92 5 ID_choose1=1;//启动第一路
93 5 }
94 4 else if(sRecComBuf[2]==0x02)
95 4 {
96 5 ID_choose1=0;//关闭第一路
97 5 }
98 4
99 4 break;
100 4 case 2:
101 4 if(sRecComBuf[2]==0x01)
102 4 {
103 5 ID_choose2=1;//启动第一路
104 5 }
105 4 else if(sRecComBuf[2]==0x02)
106 4 {
107 5 ID_choose2=0;//关闭第一路
108 5 }
109 4 break;
110 4 case 3:
111 4 if(sRecComBuf[2]==0x01)
112 4 {
113 5 ID_choose3=1;//启动第一路
114 5 }
115 4 else if(sRecComBuf[2]==0x02)
116 4 {
C51 COMPILER V7.06 MAIN 05/23/2008 15:00:22 PAGE 3
117 5 ID_choose3=0;//关闭第一路
118 5 }
119 4 break;
120 4 default:break;
121 4 }
122 3 }
123 2
124 2 sRecComBuf[count3]=ch;
125 2 count3++;
126 2
127 2 }
128 1
129 1 }
130
131
132
133
134 void main()
135 {
136 1
137 1 initUart();
138 1
139 1 init_LCD(); //初始化LCD----来自1602S51.H文件
140 1
141 1 display(0x80,tt,16); //界面显示
142 1 display(0xC0,PP,16);
143 1 while(1)
144 1 {
145 2 display(0x80,tt,16); //界面显示
146 2 display(0xC0,PP,16);
147 2 Key_Scan();
148 2
149 2 if(ID_choose1)
150 2 {
151 3 sst=Read_Temperature(1); //第一路
152 3 TesTemperature1=translate(sst,1);
153 3
154 3 sSendComBuf[1]=ID_choose1; //路号
155 3 sSendComBuf[2]=TesTemperature1/100 ; //整数位
156 3 sSendComBuf[3]=TesTemperature1%100; //小数位
157 3
158 3 send_string_com(sSendComBuf,5);
159 3 delay_ms(50);
160 3 }
161 2
162 2 if(ID_choose2)
163 2 {
164 3 sst=Read_Temperature(2); //第二路
165 3 TesTemperature2=translate(sst,2);
166 3
167 3 sSendComBuf[1]=2; //路号
168 3 sSendComBuf[2]=TesTemperature2/100 ; //整数位
169 3 sSendComBuf[3]=TesTemperature2%100; //小数位
170 3
171 3 send_string_com(sSendComBuf,5);
172 3 delay_ms(50);
173 3
174 3 }
175 2
176 2 if(ID_choose3)
177 2 {
178 3 sst=Read_Temperature(3); //第三路
C51 COMPILER V7.06 MAIN 05/23/2008 15:00:22 PAGE 4
179 3 TesTemperature3=translate(sst,3);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -