📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 04/10/2008 22:19:36 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\obj\main.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE src\main.c BROWSE DEBUG OBJECTEXTEND PRINT(.\lst\main.lst) OBJECT(.\obj\mai
-n.obj)
line level source
1 #include <reg51.h>
2
3 #define EXTERN_AT89C51
4 #include "AT89C51.h"
5
6 #define EXTERN_YEJING
7 #include "yejing.h"
8
9 ///////////////////////////////////////////////////////////////////////////////
10 ////////////////外部中断0的中断服务处理程序////////////////////////////////////
11 ///////////接收一侦完整的数据(1个字节的数据),要连续进入中断33次/////////////
12 void Int_EX0(void) interrupt 0
13 {
14 1 // P32=1;////在变量声明之前不要有语句,否则报错/////////
15 1 TH0=0; TL0=0;
16 1 TR0=1;///打开定时器0,从0开始记数,用于计算脉冲宽度//////
17 1 EX0=0; //进入外部中断0后关闭外部中断0///
18 1 // TH1=0xc5; TL1=0x68;TR1=1;////定时15ms启动用于超时的定时器T1,下一次的脉冲中断///////
19 1 ////必须在15ms以内来到,否则接收系统全部归0////////////////
20 1 // TH1=0xe4; TL1=0xa8; TR1=1;////定时7ms,启动T1//////
21 1 if((n==0)||(n==33))////判断是否是引导码/////
22 1 {
23 2 n=a=temp=temp1=temp2=temp3=temp4=0;
24 2 if(Check_leader())////检查引导码是否正确///////
25 2 {
26 3 n++;
27 3 EX0=1;
28 3 //dis_data=666;////用于调试////
29 3 return;
30 3 }
31 2 else
32 2 {
33 3 EX0=1;
34 3 n=a=temp=temp1=temp2=temp3=temp4=0;
35 3 // dis_data=111;////用于调试//////
36 3 return;
37 3 }
38 2 }
39 1 else /////如果不是引导码,应该是用户码和数据码/////
40 1 {
41 2 if(Receive_bitdata()){n++; EX0=1;return;}////是可接收的位信息吗?是接收////
42 2 else ////在n不为0时,只要有1个不可接收的位信息出现,则放弃该帧后面所有的位数据接收//////
43 2 { ////接收系统全部归0,等待,直到开始下一帧新的数据接收,////////////////
44 3 /////所以在n不为0时,只有连续的无差错的32个位信息数据被接收,则是成功接收一侦完整的数据///////////
45 3 n=a=temp=temp1=temp2=temp3=temp4=0;
46 3 EX0=1;
47 3 // dis_data=777;////用于调试//////
48 3 return;
49 3 }
50 2 }
51 1 }
52 ////////////////外部中断0的中断服务处理程序结束///////////////////////////////////////////////////////////
-///
53 //////////////////////////////////////////////////////////////////////////////////////////////////////////
C51 COMPILER V7.50 MAIN 04/10/2008 22:19:36 PAGE 2
54 ///////////////////////////////////////////////////////////////////////////////
55 ////////////////定时器T1中断服务处理程序/////////////////////////////////////////////////////////////////
56 void Timer1 (void) interrupt 3
57 {
58 1 //TH1=0xc5; TL1=0x68;//////用于调试//////
59 1 //n_data++;////用于调试//////
60 1 TR1=0;
61 1 n=a=temp=temp1=temp2=temp3=temp4=0;//dis_data=777;
62 1 //if(n_data==400){n=m=temp=temp1=temp2=temp3=temp4=0;dis_data=777;TR1=0; n_data=0;} //////用于调试//////
-
63 1 return;
64 1 }
65 ///////////////////////////////////////////////////////////////////////////////
66 ////////////////////main()主函数//////////////////////////////////////////////
67 void main()
68 {
69 1 AT89C51_initialize(); /////初始化//////
70 1 Delay400Ms();
71 1 Lcd_initilize();//////液晶初始化/////
72 1 Delay400Ms();
73 1 Delay400Ms();
74 1
75 1 Disp_strings(0,0,"当前摄氏温度值: %");
76 1 Disp_strings(6,1,"度%");
77 1 while (1)
78 1 {
79 2 Receive_Infrared_Process();//////红外线接收处理//////
80 2 Disp_data(2,1, dis_data); //////dis_data的上电初值为555/////
81 2 }
82 1 }
83 ////////////////////main()主函数结束///////////////////////////////////
84 /////////////////////
85
86 ////////////////////////
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 249 ----
CONSTANT SIZE = 22 ----
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 + -