?? robot.lst
字號(hào):
C51 COMPILER V7.50 ROBOT 11/19/2008 13:25:21 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE ROBOT
OBJECT MODULE PLACED IN robot.OBJ
COMPILER INVOKED BY: C:\Program Files\C51\BIN\C51.EXE robot.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "reg51.h"
2 #include "intrins.H"
3 //8步式步進(jìn)電機(jī)脈沖序列
4 //unsigned char steps[8] = {0x77,0x33,0xbb,0x99,0xdd,0xcc,0xee,0x66};
5 unsigned char steps[8] = {0x2,0x6,0x4,0xc,0x8,0x9,0x1,0x3};
6 //當(dāng)前各電機(jī)在上述序列中的位置
7 unsigned char cur_step[8] = {0,0,0,0,0,0,0,0};
8 //這個(gè)文件用于記錄舞步信息序列
9 char speed_tickers[8] = {0,0,0,0,0,0,0,0};
10 //從上述文件中讀出的當(dāng)前舞步信息
11 unsigned char speeds[8] = {0,0,0,0,0,0,0,0};
12 unsigned char data_pointer = 0;//指向舞步數(shù)據(jù)的指針
13 unsigned char time_t = 0;//指定重新讀取一次 speeds 值的計(jì)時(shí)周期
14 code char dancedata[] = {54,15,12,12,87,95,65,45,-89,-88,-54,-54,54,68,-45,-65,-65,-48,101,121,115,117,19,
15 -98,-100,-21,-114,-101,-24,-98,95,102,102,100,130,30,10,-90,-120,87,102,103,105,109,104,-30,-102,-104,-106
-,110,100,
16 54,15,12,12,87,95,65,45,-89,-88,-54,-54,-98,95,102,102,100,130,30,10,-90,-120,87,102-114,-101,-24,-98,95,1
-02,102,
17 100,130,30,10,-90,-120,87,102,102,100,130,30,10,-90,-120,87,102,103,105,54,15,12,12,87,95,65,45,-89,-88,-5
-4,
18 -98,-100,-21,-114,-101,-24,-98,95,102,102,100,130,30,10,-90,-120,87,102,103,105,12,87,95,65,45,-89,-88,-54
-,
19 -98,-100,-21,-114,-101,-24,-98,95,102,102,100,130,30,10,-90,-120,87,102,103,105,109,104,-30,-102,-104,-106
-,110,
20 100,130,30,10,-90,-120,87,102,102,100,130,30,10,-90,-120,87,-120,87,102,103,105,109,104,-30,-102,-104,-106
-,110,
21 54,15,12,12,87,95,65,45,-89,-88,-54,-54,-98,95,102,102,100,130,30,10,-90,-120,87,102-114,-101,-24,-98,95,1
-02,102,
22 54,15,12,12,87,95,65,45,-89,-88,-54,-54,-98,95,102,102,100,130,30,10,-90,-120,87,102-114,-101,-24,-98,95,1
-02,102,
23 54,15,12,12,87,95,65,45,-89,-88,-54,-54,-98,95,102,102,100,130,30,10,-90,-120,87,102-114,-101,-24,-98,95,1
-02,102,
24 54,15,12,12,87,95,65,45,-89,-88,-54,-54,-98,95,102,102,100,130,30,10,-90,-120,87,102-114,-101,-24,-98,95,1
-02,102,
25 -98,-100,-21,-114,-101,-24,-98,95,102,102,100,130,30,10,-90,-120,87,102,103,105,12,87,95,65,45,-89,-88,-54
-,
26 -98,-100,-21,-114,-101,-24,-98,95,102,102,100,130,30,10,-90,-120,87,102,103,105,12,87,95,65,45,-89,-88,-54
-,
27 -98,-100,-21,-114,-101,-24,-98,95,102,102,100,130,30,10,-90,-120,87,102,103,105,12,87,95,65,45,-89,-88,-54
-,
28 };
29 code char pin[8] = {1,2,4,8,16,32,64,128};
30 char MAX_SPEED_TICKER = 120;
31 unsigned char i; //電機(jī)序號(hào)
32
33 void InitTimer(void) //初始化計(jì)數(shù)器
34 {
35 1 TH0 = 0xFA; //設(shè)置觸發(fā)周期:1000次
36 1 TL0 = 0x24;
37 1 TMOD = TMOD |0x01; //select mode 1
38 1 TR0 = 1; //start timer0
39 1 ET0 = 1; //enable timer 0 interrupt
40 1 EA =1; //global interrupt enable
41 1 }
42
C51 COMPILER V7.50 ROBOT 11/19/2008 13:25:21 PAGE 2
43 void SetAllSpeeds(void) //設(shè)置各電機(jī)的速度,并讓它運(yùn)動(dòng)起來
44 {
45 1 char delta; //旋轉(zhuǎn)方向 1:正 -1:反 0:停
46 1 for(i=0;i<8;i++)
47 1 {
48 2 P2=pin[i]; //發(fā)送鎖存信號(hào)
49 2 speed_tickers[i] += speeds[i]; //計(jì)數(shù)值增加 speed[i]越高,增加得越多
50 2 if(speed_tickers[i] >= MAX_SPEED_TICKER) //如果計(jì)數(shù)值超過預(yù)定最大值,就發(fā)送脈沖
51 2 {
52 3 speed_tickers[i] = 0;
53 3 delta = 1;
54 3 }
55 2 else if(speed_tickers[i] <= -MAX_SPEED_TICKER) //同上,反響旋轉(zhuǎn)
56 2 {
57 3 speed_tickers[i] = 0;
58 3 delta = -1;
59 3 }
60 2 else delta = 0;
61 2 cur_step[i] += delta;
62 2 cur_step[i] &= 0x07; //計(jì)算當(dāng)前應(yīng)發(fā)脈沖
63 2 P0 = steps[cur_step[i]];
64 2 P2 = 0;
65 2 }
66 1 }
67
68 void OnTimer(void) interrupt 1 using 2
69 {
70 1 unsigned char j;
71 1 SetAllSpeeds();
72 1 InitTimer();
73 1 time_t++;
74 1 if(time_t==200) //每200次觸發(fā)讀取一次新舞步數(shù)據(jù)
75 1 {
76 2 for(j=0;j<8;j++)
77 2 speeds[j] = dancedata[data_pointer+j];
78 2 data_pointer += 8;
79 2 time_t = 0;
80 2 }
81 1 }
82
83 void main() //程序的入口
84 {
85 1 InitTimer(); //初始化后等中斷
86 1 while(1);
87 1 }
88
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 221 ----
CONSTANT SIZE = 406 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 36 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -