📄 main.lst
字号:
C51 COMPILER V7.08 MAIN 11/26/2008 16:48:12 PAGE 1
C51 COMPILER V7.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN Main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Main.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #include <intrins.h>
3 #include "port.h"
4 #include "TS1620.h"
5 #include "delay.h"
6
7 #define uchar unsigned char
8 #define uint unsigned char
9
10 unsigned char Step_Total;
11 unsigned char Step_Current;
12 unsigned char Timer1;
13 unsigned char b;
14
15 /*
16 #define LED_Port P2
17 #define LCD_Port P0
18 */
19 /******************LED PORT************************/
20 /*
21 sbit LED1=P2^0;
22 sbit LED2=P2^1;
23 sbit LED3=P2^2;
24 sbit LED4=P2^3;
25 sbit LED5=P2^4;
26 sbit LED6=P2^5;
27 sbit LED7=P2^6;
28 sbit LED8=P2^7;
29
30
31 /******************CONTROL PORT*********************/
32 /*
33 sbit Run_Stop=P1^3;
34 sbit Auto_Man=P1^4;
35 sbit SW =P1^5;
36 sbit Gas =P1^7;
37
38 /******************LCD PORT*************************/
39 /*
40 sbit rs =P1^0;
41 sbit rw =P1^1;
42 sbit ep =P1^2;
43 */
44 unsigned char code Timer_Data[8]={20,40,60,80,100,120,140,160};
45 unsigned char code Timer_S[8] ={1,2,3,4,5,6,7,8};
46 unsigned char code LED[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
47
48 unsigned char code LCD_Line2[8][16]=
49 {
50 {"Step1: 1s"},
51 {"Step2: 2s"},
52 {"Step3: 3s"},
53 {"Step4: 4s"},
54 {"Step5: 5s"},
55 {"Step6: 6s"},
C51 COMPILER V7.08 MAIN 11/26/2008 16:48:12 PAGE 2
56 {"Step7: 7s"},
57 {"Step8: 8s"}
58 };
59
60 unsigned char code LCD_Line1[2][10]=
61 {
62 {"Auto step"},
63 {"Manu step"}
64 };
65
66 //20=1s 20*x=xS
67
68
69 void Port_Init( )
70 {
71 1 P0=0xFF;
72 1 P1=0xFF; //
73 1 Gas1=0;
74 1 P2=0xFF;
75 1
76 1 P3=0xFF;
77 1 EA=0;
78 1 TMOD=0x01;
79 1 TR0=0;
80 1 ET0=1;
81 1 TH0=0x3C; //50ms
82 1 TL0=0xB0;
83 1 EA=1;
84 1 }
85 /*
86 unsigned char Scan_Key( )
87 {
88
89 return(1);
90 }
91
92 unsigned char Make_Key( )
93 {
94 return(1);
95 }
96 */
97
98 unsigned char Model_Selcet( )
99 {
100 1 unsigned char a;
101 1 unsigned char b;
102 1 delay(10);
103 1 P3=0xFF;
104 1 nc(20);
105 1 a=P3;
106 1 delay(10);
107 1 b=P3;
108 1 if(a==b)
109 1 {
110 2 if(a>=8)
111 2 Step_Total=0;
112 2 else
113 2 Step_Total=a;
114 2 switch(a)
115 2 {
116 3 case 0xFC: Step_Total=1;break;
117 3 // case 0xFD: Step_Total=2;break;
C51 COMPILER V7.08 MAIN 11/26/2008 16:48:12 PAGE 3
118 3 case 0xF5: Step_Total=3;break;
119 3 case 0xF3: Step_Total=4;break;
120 3 case 0xED: Step_Total=5;break;
121 3 case 0xDD: Step_Total=6;break;
122 3 case 0xBD: Step_Total=7;break;
123 3 case 0x7D: Step_Total=8;break;
124 3 default: Step_Total=0;
125 3 }
126 2 }
127 1
128 1 return(Step_Total);
129 1 }
130
131 void Auto_Model( )
132 {
133 1 unsigned char i;
134 1
135 1 PutStr(0,0,LCD_Line1[0]);
136 1 Send_charstr(12,0,Step_Total);
137 1 for(i=0;i<Step_Total;i++)
138 1 {
139 2 while(SW==0); //
140 2 delay(10); //
141 2 while(SW==1) //
142 2 delay(1); //
143 2 while(SW==1) //
144 2 delay(10); //
145 2 while(SW==0) //
146 2 delay(10);
147 2 PutStr(0,1,LCD_Line2[i]);
148 2 // Send_charstr(4,1,k);
149 2 Timer1=0;
150 2 TH0=0x3C; //50ms
151 2 TL0=0xB0;
152 2 TR0=1;
153 2 _nop_( );
154 2 _nop_( );
155 2 Gas1=1;
156 2 P2=LED[i];
157 2 _nop_( );
158 2 _nop_( );
159 2 while(Timer1!=Timer_Data[i]);
160 2 TR0=0;
161 2 _nop_( );
162 2 _nop_( );
163 2 Gas1=0; //
164 2 Timer1=0;
165 2 TH0=0x3C;
166 2 TL0=0xB0;
167 2 }
168 1 }
169
170 void Man_Model( )
171 {
172 1 PutStr(0,0,LCD_Line1[1]);
173 1 if(SW==0)
174 1 {
175 2 delay(10);
176 2 if(SW==0)
177 2 Gas1=1;
178 2 else
179 2 Gas1=0;
C51 COMPILER V7.08 MAIN 11/26/2008 16:48:12 PAGE 4
180 2 }
181 1 }
182
183 void main( )
184 {
185 1 Timer1=0; //时间计数
186 1 Step_Total=0; //总步数
187 1 Step_Current=0; //当前的步数
188 1
189 1 Port_Init( );
190 1 lcd_init();
191 1
192 1 // Send_charstr(0,1,Step_Total);
193 1
194 1
195 1 // Step_Total=Model_Selcet( );
196 1 // Send_charstr(0,1,Step_Total);
197 1 // PutStr(0,0,LCD_Line2[0]);
198 1 Step_Total=Model_Selcet( );
199 1 Send_charstr(0,16,Step_Total);
200 1
201 1 while(1)
202 1 {
203 2 if(Auto_Man==1)
204 2 Auto_Model( );
205 2 else
206 2 Man_Model( );
207 2
208 2 }
209 1 }
210
211 void timer0( ) interrupt 1
212 {
213 1 TH0=0x3C; //50ms
214 1 TL0=0xB0;
215 1 Timer1++;
216 1 }
217
218
219
220
221
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 383 ----
CONSTANT SIZE = 172 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 2
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 + -