📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 12/10/2007 17:35:30 PAGE 1
C51 COMPILER V7.50, 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 /*
2 FILENAME: main.c (selftest)
3 VERSION: 1.0.0.0
4 AUTHOR: Tony Huang (cnwzhjs@gmail.com)
5 RELEASE DATE: Nov 28, 2007
6 DESCRIPTION: The selftest program for the motor part of the wireless car
7 */
8
9 #include <regx51.h>
10 #include <absacc.h>
11
12 #include "timer.h"
13 #include "pwm.h"
14 #include "motor.h"
15 #include "serial.h"
16
17 #define CAR_ADDRESS 3
18
19 sbit led = P3^5;
20
21 int cnt = 5000;
22 unsigned char seconds = 0;
23
24 bit flag;
25
26 void system_init(void);
27 void wait(unsigned char sec);
28 void self_test(void);
29
30 unsigned char cmd ;
31 signed char parameter;
32
33 void main(void)
34 {
35 1 system_init();
36 1
37 1 drv_motor_set_speed(0, 0);
38 1 drv_motor_set_speed(1, 0);
39 1
40 1 led = 1;
41 1
42 1 self_test();
43 1
44 1 while(1)
45 1 ;
46 1 }
47
48 void self_test(void)
49 {
50 1 // full speed move forward
51 1 drv_motor_set_speed(0, 100);
52 1 drv_motor_set_speed(1, 100);
53 1
54 1 wait(2);
55 1
C51 COMPILER V7.50 MAIN 12/10/2007 17:35:30 PAGE 2
56 1 // full speed move backward
57 1 drv_motor_set_speed(0, -100);
58 1 drv_motor_set_speed(1, -100);
59 1
60 1 wait(2);
61 1
62 1 // half speed move forward
63 1 drv_motor_set_speed(0, 50);
64 1 drv_motor_set_speed(1, 50);
65 1
66 1 wait(2);
67 1
68 1 // half sp0eed move backward
69 1 drv_motor_set_speed(0, -50);
70 1 drv_motor_set_speed(1, -50);
71 1
72 1 wait(2);
73 1
74 1 // turn right
75 1 drv_motor_set_speed(0, -100);
76 1 drv_motor_set_speed(1, 100);
77 1
78 1 wait(2);
79 1
80 1 // turn left
81 1 drv_motor_set_speed(0, 100);
82 1 drv_motor_set_speed(1, -100);
83 1
84 1 wait(2);
85 1
86 1 drv_motor_set_speed(0, 0);
87 1 drv_motor_set_speed(1, 0);
88 1
89 1 led = !led;
90 1 }
91
92 void system_init(void)
93 {
94 1 drv_timer_init(0,0,2,0,0,2);
95 1
96 1 TH0 = 0xec;
97 1 TL0 = 0xec;
98 1 TH1 = 0xe8;
99 1 TL1 = 0xe8;
100 1
101 1 drv_timer_enable(0);
102 1 drv_timer_enable(1);
103 1
104 1 SM0 = 1;
105 1 SM1 = 1;
106 1
107 1 PCON = 0;
108 1
109 1 REN = 1;
110 1
111 1 ET0 = 1;
112 1 EA = 1;
113 1 }
114
115 void timer0_int(void) interrupt 1 using 1
116 {
117 1 drv_pwm_on_timer();
C51 COMPILER V7.50 MAIN 12/10/2007 17:35:30 PAGE 3
118 1
119 1 if(cnt > 0)
120 1 {
121 2 cnt --;
122 2 return;
123 2 }
124 1 else
125 1 {
126 2 seconds++;
127 2 }
128 1
129 1 cnt = 5000;
130 1 }
131
132 void wait(unsigned char sec)
133 {
134 1 unsigned int expire = seconds + sec * 5;
135 1
136 1 while(expire > seconds)
137 1 ;
138 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 314 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -