📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 07/21/2006 15:57:40 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\output\MAIN.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE src\MAIN.C ROM(SMALL) OPTIMIZE(9,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\M
-AIN.lst) OBJECT(.\output\MAIN.obj)
line level source
1 //==================================================
2 //程序以89c2051为基础,串行口以19200波特率(11.059M晶振)
3 //==================================================
4 #include ".\main.h"
5 #include <math.h>
6
7 #define DataPort P1 // 数据端口
8 #define Busy 0x80
9
10 // 控制引脚定义,不同的连接必须修改的部分
11 sbit RS=P3^5;
12 sbit RW=P3^4;
13 sbit Elcm=P3^7;
14
15 //sbit UP = P3^0;
16 //sbit DOWN = P3^1;
17
18 //------------------0123456789abcdef---------------------------------
19 code char exampl[]="Time: : : ";
20
21
22 union word_union
23 {
24 WORD w;
25 BYTE b[2];
26 };
27
28
29 bit r_done;
30 bit flash; //20041205
31 bit flash_sec;
32 bit flash_min;
33 bit flash_hour;
34
35 byte code TABLE[] = {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
36 byte data Clock[3] = {0,0,0};
37 byte Number;
38 byte time_set;
39 data word p;
40
41
42
43 bit gBt_TxBusy;
44 data BYTE gB_RxIndex;
45 data BYTE gBa_DebugBuf[RXDBUFSIZE];
46
47 data word gB_T1count; //0.5ms一个单位;
48 data word gB_T2count;
49
50 byte obj_speed;
51 byte avg_speed;
52
53 byte data RxCt;
54 byte data RxBuf[10];
C51 COMPILER V7.50 MAIN 07/21/2006 15:57:40 PAGE 2
55
56 void Init8051Regs(void);
57 void clearbuff(void);
58
59 //--------------------------------------------------------------
60 void WaitForEnable( void );
61 void LcdWriteData( char dataW );
62 void LcdWriteCommand( Uchar CMD,Uchar AttribC );
63 void LcdReset( void );
64 void Display( Uchar dd );
65 void DispOneChar(Uchar x,Uchar y,Uchar Wdata);
66 void ePutstr(Uchar x,Uchar y, Uchar code *ptr);
67
68 void Delay5Ms(void);
69
70 ///////////////////////////////////////////////////////////////////////////////
71 // void InitAll(void) //
72 ///////////////////////////////////////////////////////////////////////////////
73
74 void Init8051Regs(void)
75 {
76 1 EA = 0;
77 1
78 1 //SCON ----||---- SM0 SM1 SM2 REN TB8 RB8 T1 RI
79 1 SCON = 0x50; // SCON: mode 1, 8-bit UART, enable rcvr
80 1 PCON |= 0x00;
81 1
82 1 TMOD |= 0x23; // TMOD: timer 1, mode 2, 8-bit reload
83 1 // TH1 = 0xf3; // TH1: reload value for 9600 baud @ 24MHz WINBOND
84 1 TH1 = 0xfd; // TH1: 4800 baud @ 11.0596MHz 89c2051
85 1 TL1 = 0xfd; //fd-->9600 fa-->4800 f4-->2400 0xe8-->1200
86 1 TI = 1; // TI: set TI to send first char of UART
87 1 ES = 1;
88 1 //--------------------------
89 1 TL0 = 0x47; //
90 1 TR0 = 1;
91 1 ET0 = 1;
92 1 //---------------------------
93 1 TH0 = 0x00; //
94 1 TR1 = 1; // TR1: timer 1 run */
95 1 ET1 = 1; //Disable timer 0 irq
96 1
97 1 EA = 1; // global interrupt enable on
98 1 }
99
100
101 /////////////////////////////////////////////////////////////
102 // Function: Main() //
103 // Description: //
104 // //
105 //////////////////////////////////////////////////////////
106 void main(void)
107 {
108 1 Init8051Regs();
109 1
110 1 LcdReset();
111 1 Delay5Ms();
112 1 ePutstr(0,0,exampl); // 上面一行显示一个预定字符串
113 1 Delay5Ms();
114 1
115 1 r_done = 1; //20041205 有效计时
116 1
C51 COMPILER V7.50 MAIN 07/21/2006 15:57:40 PAGE 3
117 1 SBUF = 0x55;
118 1
119 1 while ( 1 ) // Infinite loop
120 1 {
121 2 multi_tasking();
122 2 }
123 1 }
124
125 //=======================================
126 //=Module Name: multi_tasking() =
127 //=Function: task allocation =
128 //=======================================
129 void multi_tasking(void)
130 {
131 1 byte bLen ;
132 1 if ( gB_RxIndex )
133 1 {
134 2 bLen = gB_RxIndex;
135 2 Delay1ms(1);
136 2 while ( gB_RxIndex > bLen )
137 2 {
138 3 bLen = gB_RxIndex;
139 3 Delay1ms(1);
140 3 }
141 2
142 2 switch ( gBa_DebugBuf[0] )
143 2 {
144 3 case 'u':
145 3 printf("uU");
146 3 printB(0x13,1);
147 3 clearbuff();
148 3 break;
149 3
150 3 case 'r':
151 3 { printf("EL\r\n"); clearbuff(); }
152 3 break;
153 3
154 3 case 't':
155 3 { printf("test done\r\n"); clearbuff(); }
156 3 break;
157 3
158 3 case 'E':
159 3 { printf("RCVOK\r\n");
160 4 printf("ERASEOK\r\n");
161 4 printf("EERR3\r\n");
162 4 printf("EERR4\r\n");
163 4 clearbuff();
164 4 }
165 3 break;
166 3
167 3 case 'R':
168 3 { printf("RCVOK\r\n");
169 4 printf("Unknow Flash");
170 4 clearbuff();
171 4 }
172 3 break;
173 3
174 3 case 'S':
175 3 { printf("SERR1\r\n");
176 4 printf("SERR2\r\n");
177 4 printf("SERR3\r\n");
178 4 printf("SERR4\r\n");
C51 COMPILER V7.50 MAIN 07/21/2006 15:57:40 PAGE 4
179 4 printf("RCVOK\r\n");
180 4 clearbuff();
181 4 }
182 3 break;
183 3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -