📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 11/19/2007 15:27:52 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "reg51.h"
2
3 bit Read_Test(unsigned char);
4 void delay(unsigned int);
5 void Led_Show(unsigned char,bit );
6 unsigned char Read_Key(unsigned char *,unsigned char *);
7 void Process(void);
8 bit I2c_Read(unsigned char,unsigned char);
9 bit I2c_Write(unsigned char,unsigned char);
10 unsigned char data intr[6];
11 unsigned char error = 0;
12 unsigned char old_data = 0,pc = 0,key;
13
14 void main()
15 {
16 1 // unsigned char key;
17 1 // unsigned char in_data = 0, old_data = 0, pc = 0,old_pc = 0;
18 1 unsigned char in_data = 0;
19 1 unsigned char old_pc = 0;
20 1 bit b = 0,old_b = 0;
21 1
22 1 I2c_Read(pc,1);
23 1 old_data = in_data = intr[0];
24 1 Led_Show(in_data,0);
25 1 while(1)
26 1 {
27 2 key = Read_Key(&in_data,&pc);
28 2 b = key & 0xf0 ? 1:0;
29 2
30 2 switch (key){
31 3 case 0x00: if (old_data != in_data || old_b != b )
32 3 {
33 4 if (old_b != b)
34 4 {
35 5 I2c_Read(pc,1);
36 5 in_data = intr[0];
37 5 }
38 4 old_b = b;
39 4 old_data = in_data;
40 4 Led_Show(in_data,0);
41 4 }
42 3 break;
43 3 case 0x01: Led_Show(in_data,0); break;
44 3 case 0x02: Led_Show(in_data,0); break;
45 3 case 0x03: if (I2c_Write(pc,in_data) == 0) // test Wri == 0
46 3 {
47 4 pc += 1;
48 4 Led_Show(pc,1);
49 4 while(Read_Key(&key,&pc) == 03) ;
50 4 old_b = 1;
51 4 }
52 3 else
53 3 while(1) Led_Show(0xee,1);
54 3 break;
55 3 case 0x10:
C51 COMPILER V7.06 MAIN 11/19/2007 15:27:52 PAGE 2
56 3 case 0x11:
57 3 case 0x12: if (old_pc != pc || old_b != b)
58 3 {
59 4 old_b = b;
60 4 old_pc = pc;
61 4 Led_Show(pc,1);
62 4 I2c_Read(pc,1);
63 4 in_data = intr[0];
64 4 }
65 3 break;
66 3 case 0x13: Process(); // test DA == 0 and Wri == 0
67 3 default: ;
68 3 }
69 2
70 2 }
71 1 }
72
73 void delay(unsigned int count)
74 {
75 1 unsigned int i;
76 1 unsigned char j;
77 1 for (i = 0;i < count;i++)
78 1 for (j = 0;j < 100;j++)
79 1 ;
80 1 }
81
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 261 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 10 2
IDATA SIZE = ---- ----
BIT SIZE = ---- 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -