📄 motormain.lst
字号:
C51 COMPILER V7.06 MOTORMAIN 08/10/2007 13:26:44 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MOTORMAIN
OBJECT MODULE PLACED IN MotorMain.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE MotorMain.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "at89x52.h"
2 #include "Motor\Motor.h"
3 #include "series\series.h"
4 #include "LedDigital\LedDigital.h"
5 #include "Sound\Sound.h"
6 #include "MotorMain.h"
7
8 //舵机度数控制 0 45 90 135 180
9 //uint const code Motion[5] = {0xfc48,0xf8b6,0xf524,0xf192,0xee00};
10
11 //舵机位选指针
12 uchar MotorIndex=0x00;
13
14 //接收到的字节数(0-2)
15 uchar RCharCount=0x00;
16
17 /**************************************************************************
18 名称:void Timer0Init(void)
19 功能:定时/计数器0初始化程序
20 计时2。5ms扫描8个舵机
21 **************************************************************************/
22 void Timer0Init(void)
23 {
24 1 TH0=0x80;
25 1 TL0=0x00;
26 1 TMOD|=0x01;
27 1 TR0=1;
28 1 }
29
30 /**************************************************************************
31 名称:void Timer1Init(void)
32 功能:定时/计数器1初始化程序
33 控制正频宽
34 **************************************************************************/
35 void Timer1Init(void)
36 {
37 1 TH1=0xe0;
38 1 TL1=0x00;
39 1 TMOD|=0x10;
40 1 TR1=1;
41 1 }
42
43 /*************************************************************************
44 名称:void Timer2Init(void)
45 功能:定时/计数器2初始化程序
46 产生波特率
47 **************************************************************************/
48 void Timer2Init(void)
49 {
50 1 RCAP2H=0xff;
51 1 RCAP2L=0xb8;
52 1 RCLK=1;
53 1 TCLK=1;
54 1 TR2=1;
55 1 }
C51 COMPILER V7.06 MOTORMAIN 08/10/2007 13:26:44 PAGE 2
56
57 /***************************************************************************
58 名称:void CommInit(void)
59 功能:串口初始化程序
60 ***************************************************************************/
61 void CommInit(void)
62 {
63 1 SM0=0;
64 1 SM1=1;
65 1 SM2=0;
66 1 REN=1;
67 1 }
68
69 /***************************************************************************
70 名称:void SystemInit(void)
71 功能:系统初始化及开中断
72 ***************************************************************************/
73 void SystemInit(void)
74 {
75 1 Timer0Init();
76 1 Timer1Init();
77 1 Timer2Init();
78 1 CommInit();
79 1 EA=1;
80 1 ET2=1;
81 1 ES=1;
82 1 ET1=1;
83 1 ET0=1;
84 1 }
85
86 /**************************************************************************
87 名称:void Timer0Server(void)interrupt 1
88 功能:确定正频宽
89 **************************************************************************/
90 void Timer0Server(void)interrupt 1
91 {
92 1 P2=0x00;
93 1 }
94
95 /**************************************************************************
96 名称:void Timer1Server(void)interrupt 3
97 功能:产生正频宽
98 **************************************************************************/
99 void Timer1Server(void)interrupt 3
100 {
101 1 TR1=0;
102 1 TH1=0xee;
103 1 TL1=0x00;
104 1 MotorIndex%=8; //舵机位选
105 1 P2=0x01<<MotorIndex;
106 1 TL0=MotorAngle[MotorIndex];
107 1 TH0=MotorAngle[MotorIndex]>>8; //舵机角度控制数据
108 1 MotorIndex++;
109 1 LedDigitalDisplay(); //在数码管上显示舵机控制信息
110 1 TR1=1;
111 1 }
112
113 /***************************************************************************
114 名称:void CommInterServer(void)interrupt 4
115 功能:串口中断服务程序
116 ***************************************************************************/
117 void CommInterServer(void)interrupt 4
C51 COMPILER V7.06 MOTORMAIN 08/10/2007 13:26:44 PAGE 3
118 {
119 1 if(RI==1)
120 1 {
121 2 MotorCtrl[RCharCount]=CommReceive();
122 2 RCharCount++;
123 2 if(RCharCount==0x04)
124 2 {
125 3 RCharCount=0x00;
126 3 SetMotorCtrl(); //设置舵机控制信息
127 3 LedDigitalTransport(MotorCtrlInfoToL()); //设置舵机控制信息的显示内容
128 3 }
129 2 RI=0;
130 2 }
131 1 }
132
133 /******************************************************************************
134 * 名称: main ()
135 * 功能: 主函数,整个程序的入口
136 ******************************************************************************/
137 void main()
138 {
139 1 SystemInit();
140 1 while(1)
141 1 {
142 2 ;
143 2 }
144 1 }
145
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 273 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 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 + -