📄 main.lst
字号:
C51 COMPILER V8.08 MAIN 04/20/2012 21:01:10 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "fun.h"
2
3 void Timer0_interrupt() interrupt 1
4 {
5 1 //以下通过剩余步数来判断电机处于运行过程中的哪个阶段
6 1 if (step > (1000 - 64) ) //加速阶段
7 1 {
8 2 //切换到高一级转速
9 2 TH0 = speedtable[1000-step] >>8;
10 2 TL0 = speedtable[1000-step];
11 2 }
12 1 else if (step < (1000 - 64) && step > 64) //匀速阶段
13 1 {
14 2 //保持最高转速
15 2 TH0 = speedtable[63] >>8;
16 2 TL0 = speedtable[63];
17 2 }
18 1 else if (step < 64 && step >0) //减速阶段
19 1 {
20 2 //切换到低一级转速
21 2 TH0 = speedtable[step] >>8;
22 2 TL0 = speedtable[step];
23 2 }
24 1 else
25 1 {
26 2 //其它情况停机
27 2 //关定时器,关PWM,恢复运行锁,步数清零
28 2 TH0 = speedtable[0] >>8;
29 2 TL0 = speedtable[0];
30 2 TR0=0;
31 2 CR=0;
32 2 run_flag=0;
33 2 step=0;
34 2 en = 0;
35 2 }
36 1
37 1 step--;//步数减1
38 1 }
39
40 main()
41 {
42 1 ms_delay(20);
43 1
44 1 init_port();
45 1 init_timer0();
46 1 init_pca();
47 1
48 1 EA = 1;//开总中断
49 1
50 1 s1=1;
51 1 s2=1;
52 1 run_flag = 0;
53 1 en = 0;
54 1 dir=1;
55 1 step = 0;
C51 COMPILER V8.08 MAIN 04/20/2012 21:01:10 PAGE 2
56 1
57 1 while(1)
58 1 {
59 2 if (run_flag == 0) //只有在电机停止的时候才接受操作
60 2 {
61 3 if (s1 == 0)//正转按钮
62 3 {
63 4 ms_delay(10);
64 4 if (s1 ==0) //启动电机正转
65 4 {
66 5 dir = 1;
67 5 en=1;
68 5 step = 1000;//设置5圈1000步
69 5 run_flag=1;//设置电机运转锁
70 5 CR = 1; // 启动PWM
71 5 //设定T0溢出频率
72 5 TH0 = speedtable[0] >>8;
73 5 TL0 = speedtable[0];
74 5 TR0=1;//启动定时器0
75 5 }
76 4 }
77 3
78 3 if (s2 == 0)//反转按钮
79 3 {
80 4 ms_delay(10);
81 4 if (s2 ==0) //启动电机反转
82 4 {
83 5 dir = 0;
84 5 en = 1;
85 5 step = 1000;//设置5圈1000步
86 5 run_flag=1;//设置电机运转锁
87 5 CR = 1; // 启动PWM
88 5 //设定T0溢出频率
89 5 TH0 = speedtable[0] >>8;
90 5 TL0 = speedtable[0];
91 5 TR0=1;//启动定时器0
92 5 }
93 4 }
94 3 }
95 2 }
96 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 391 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 130 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -