📄 comm.lst
字号:
C51 COMPILER V7.06 COMM 05/18/2008 14:29:18 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE COMM
OBJECT MODULE PLACED IN comm.OBJ
COMPILER INVOKED BY: E:\My Electronic\Tools\Design tools\keil7.06\C51\BIN\C51.EXE comm.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <REG52.H>
2
3 #define INBUF_LEN 35 //公共数据长度
4 #define INBUF_LEN_RECEIVE 32 //接收数据长度
5 #define uint unsigned int
6 #define uchar unsigned char
7
8 extern uchar inbuf1[];
9 extern uchar read_flagg;
10 extern uchar Ir_Over;
11 extern uchar TT_Ok;
12 extern uchar PS2_ok;
13
14 uchar inbuf1[INBUF_LEN];
15 uchar count3;
16 uchar IR_Ctrl_Data;
17 uchar read_flagg;
18
19 /*****蜂鸣器函数调用声明*****/
20 //void ok_beep();
21
22 /*******LCD函数调用声明******/
23 void sent_string(uchar x,uchar y,uchar *sent_data,uchar length);
24 void LCD_clr_pic();
25
26 /****红外接收函数调用声明****/
27 void Init_IR();
28 void IR_Receive_function();
29
30
31 /****PS2接收函数调用声明****/
32 void Ps2_Getkey(void);
33
34 /******18b20函数调用声明******/
35 void Read_Temperature(unsigned char *p);
36
37 /******延时函数调用声明******/
38 void delay_2us(unsigned char us);
39
40 /****家居控制函数调用声明****/
41 void Jiaju_Ctrl_Up(void);
42
43 void init_serialcomm(void)
44 {
45 1 SCON = 0x50; //SCON: serail mode 1, 8-bit UART, enable ucvr
46 1 TMOD |= 0x20; //TMOD: timer 1, mode 2, 8-bit reload
47 1 PCON |= 0x80; //SMOD=1;
48 1 TH1 = 0xF4; //Baud:4800 fosc=11.0592MHz TH1 = 0xF4;
49 1 //Baud:62.5k fosc=12MHz TH1 = 0xFF;
50 1 IP = 0x10; //外部中断优先(0x05),串口中断优先(0x10)
51 1 IE |= 0x90; //Enable Serial Interrupt
52 1 TR1 = 1; // timer 1 run
53 1 // TI=1;
54 1 read_flagg=0;
55 1 }
C51 COMPILER V7.06 COMM 05/18/2008 14:29:18 PAGE 2
56
57 //向串口发送一个字符
58 void send_char_com(unsigned char ch)
59 {
60 1 SBUF=ch;
61 1 while(TI==0);
62 1 TI=0;
63 1 }
64
65 //向串口发送一个字符串
66 void send_string_com(unsigned char *str,unsigned char strlen)
67 {
68 1 while(strlen)
69 1 {
70 2 send_char_com(*str );
71 2 str++;
72 2 strlen--;
73 2 }
74 1 }
75
76 //串口接收中断函数
77 void serial () interrupt 4
78 {
79 1 EA=0;
80 1 if(RI)
81 1 {
82 2 RI = 0;
83 2 inbuf1[count3]=SBUF;
84 2 count3++;
85 2 if( count3==INBUF_LEN_RECEIVE )
86 2 {
87 3 read_flagg=1; //如果串口接收的数据达到INBUF_LEN个,且校验没错, 就置位取数标志
88 3 //send_char_com('*');//inbuf_len位数据接收完毕
89 3 }
90 2 }
91 1 EA=1;
92 1 }
93
94 void Index_Display()
95 {
96 1 //long IE_Temp;
97 1
98 1 while(read_flagg==0);
99 1 Read_Temperature((inbuf1+32)); //读温度数据
100 1 IR_Receive_function(); //处理红外接收数据
101 1 Ps2_Getkey();
102 1
103 1 LCD_clr_pic();
104 1
105 1 sent_string(1,0,inbuf1,11);
106 1 sent_string(2,1,inbuf1+11,8);
107 1 sent_string(0,2,"家居",4);
108 1 sent_string(2,2,(inbuf1+19),8);
109 1 sent_string(0,3,"防区",4);
110 1 sent_string(2,3,(inbuf1+27),5);
111 1 Jiaju_Ctrl_Up();//更新家居开关控制
112 1
113 1 send_string_com((inbuf1+19),17); //与PC机同步数据
114 1
115 1 read_flagg=0;
116 1 count3=0;
117 1
C51 COMPILER V7.06 COMM 05/18/2008 14:29:18 PAGE 3
118 1 }
119
120
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 233 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 38 ----
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 + -