📄 main.lst
字号:
C51 COMPILER V6.23a MAIN 09/09/2007 15:52:25 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: e:\my_soft\keil\C51\Bin\c51.exe main.C DB OE SMALL ROM(LARGE)
stmt level source
1 //修改日期:2007年09月08日
2 //通信速率为9600,22.1184晶体或11.0592双倍速
3 //中山华力修理屏专用,共12位,共阳显示,通过485控制。
4 #include <reg52.h>
5 #include <ds1302.h>
6 #include <delay.h>
7 #include <A102.h>
8 #include <Intrins.h>
9 #include <uart.h>
10
11 sbit P1_0=P1^0;
12 sbit P1_1=P1^1;
13 sbit P1_2=P1^2;
14
15 sbit P3_2=P3^2; //串口收发控制
16 extern bit inbufsign; //接收缓冲区非空标志 有=1
17 unsigned char address,in_address,start;
18 unsigned char idata display_buff[COUNT]; //显示缓冲
19 void Test(void)
20 { unsigned char i,j;
21 1 for(i=0;i<10;i++)
22 1 { for(j=0;j<12;j++)
23 2 display_buff[j]=i;
24 2
25 2 //for(j=0;j<2;j++)
26 2 DelayX50ms(50);
27 2 }
28 1
29 1 for(j=0;j<12;j++)
30 1 display_buff[j]=0;
31 1
32 1
33 1 }
34 /****************/
35
36 /*******************************/
37 void Main(void)
38 { unsigned char i,d;
39 1 char uart_buff[18];
40 1 P3_2=0;
41 1 DelayX50ms(5);
42 1 TMOD=0x01;
43 1 SerialInit();
44 1 ET0=1; //开定时中断0(显示扫描)
45 1 TR0=1;
46 1 IP=0x10;
47 1 WriteClock(0x8e,0); //关闭写保护
48 1 i=ReadClock(0x81); //读取秒钟
49 1 WriteClock(0x80,0x7f&i); //开启走时
50 1 WriteClock(0x8e,0x80); //开启写保护*/
51 1 //ReadNumber( ) ;
52 1 Test();
53 1 //for(i=0;i<24;i++)
54 1 //display_buff[i]=i;
55 1 //if(!P1_2)
C51 COMPILER V6.23a MAIN 09/09/2007 15:52:25 PAGE 2
56 1 //address=3;
57 1 //else if(!P1_1)
58 1 //address=2;
59 1 //else if(!P1_0)
60 1 //address=1;
61 1 //else address=0;
62 1
63 1 in_address=P1;
64 1
65 1 switch(in_address)
66 1 { case 0xfe: address=1;
67 2 break;
68 2 case 0xfd: address=2;
69 2 break;
70 2 case 0xfb: address=3;
71 2 break;
72 2 case 0xf7: address=4;
73 2 break;
74 2 case 0xef: address=5;
75 2 break;
76 2 case 0xdf: address=6;
77 2 break;
78 2 case 0xbf: address=7;
79 2 break;
80 2 case 0x7f: address=8;
81 2 break;
82 2 default: address=0;
83 2 break;
84 2 }
85 1
86 1 while(1)
87 1 { P0=0;
88 2 if(inbufsign)
89 2 { //开始码高低字节,高字节为0x55,低字节为0xaa
90 3 start=GetByte();
91 3 DelayX50us(200);
92 3 if((start==0x0d)&&(inbufsign))
93 3 { DelayX50us(200);
94 4
95 4 in_address=GetByte();
96 4 DelayX50us(100);
97 4 if(in_address==0x0a)
98 4 { for(i=0;i<17;i++)
99 5 uart_buff[i]=0;
100 5 i=0;
101 5 while((i<18)&&(inbufsign))
102 5 { uart_buff[i++]=GetByte();
103 6 DelayX50us(100);
104 6 }
105 5 while(inbufsign)
106 5 { d=GetByte();
107 6 DelayX50us(100);
108 6 }
109 5
110 5
111 5 if((uart_buff[7]==0x0d)&&(uart_buff[8]==0x0a)&&(uart_buff[16]==0x0d))
112 5 { display_buff[0]=display_buff[6]=uart_buff[15]&0x0f;
113 6 display_buff[1] =display_buff[7]=uart_buff[14]&0x0f;
114 6 display_buff[2]=display_buff[8]=uart_buff[13]&0x0f;
115 6 display_buff[3]=display_buff[9]=uart_buff[6]&0x0f;
116 6 display_buff[4]=display_buff[10]=uart_buff[5]&0x0f;
117 6 display_buff[5]=display_buff[11]=uart_buff[4]&0x0f;
C51 COMPILER V6.23a MAIN 09/09/2007 15:52:25 PAGE 3
118 6 } }
119 4 DelayX50us(100);
120 4 //WriteNumber();
121 4 while(inbufsign)
122 4 { d=GetByte();
123 5 DelayX50us(100);
124 5 }
125 4 }
126 3 else
127 3 while(inbufsign)
128 3 { d=GetByte();
129 4 DelayX50us(100);
130 4 }
131 3
132 3
133 3 }
134 2
135 2 }
136 1 }
137 /********************************/
138
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 420 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 22
IDATA SIZE = 12 ----
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 + -