📄 s_ motor-key.lst
字号:
C51 COMPILER V7.10 S__MOTOR_KEY 10/12/2008 20:04:48 PAGE 1
C51 COMPILER V7.10, COMPILATION OF MODULE S__MOTOR_KEY
OBJECT MODULE PLACED IN S_ MOTOR-key.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE S_ MOTOR-key.C BROWSE DEBUG OBJECTEXTEND
line level source
1
2 /******************************************************************
3 /* *
4 /* AOKE210E单片机开发系统演示程序 *
5 /* *
6 /* 版本: V2.0 (2007/11/20) *
7 /* 作者: 高山流水 (Email: aoke999@sohu.com) *
8 /* 网站: www.aokemcu.cn(奥科电子) *
9 /* *
10 /* *
11 /******************************************************************/
12
13 #include <reg51.h> //51芯片管脚定义头文件
14 #include <intrins.h> //内部包含延时函数 _nop_();
15
16 #define uchar unsigned char
17 #define uint unsigned int
18
19 uchar code FFW[8]={0x1F,0x3F,0x2F,0x6F,0x4F,0xCF,0x8F,0x9F};
20 uchar code REV[8]={0x9F,0x8F,0xCF,0x4F,0x6F,0x2F,0x3F,0x1F};
21 //uchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};
22 //uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};
23
24 sbit K1 = P3^4; //正转
25 sbit K2 = P3^5; //反转
26 sbit K3 = P3^6;
27 sbit K4 = P3^7; //停止
28 sbit BEEP = P2^3; //蜂鸣器
29
30 /********************************************************/
31 /*
32 /* 延时t毫秒
33 /* 11.0592MHz时钟,延时约1ms
34 /*
35 /********************************************************/
36 void delay(uint t)
37 {
38 1 uint k;
39 1 while(t--)
40 1 {
41 2 for(k=0; k<125; k++)
42 2 { }
43 2 }
44 1 }
45
46 /**********************************************************/
47 void delayB(uchar x) //x*0.14MS
48 {
49 1 uchar i;
50 1 while(x--)
51 1 {
52 2 for (i=0; i<13; i++)
53 2 { }
54 2 }
55 1 }
C51 COMPILER V7.10 S__MOTOR_KEY 10/12/2008 20:04:48 PAGE 2
56
57 /**********************************************************/
58 void beep()
59 {
60 1 uchar i;
61 1 for (i=0;i<180;i++)
62 1 {
63 2 delayB(5);
64 2 BEEP=!BEEP; //BEEP取反
65 2 }
66 1 BEEP=1; //关闭蜂鸣器
67 1 }
68
69 /********************************************************/
70 /*
71 /*步进电机正转
72 /*
73 /********************************************************/
74 void motor_ffw()
75 {
76 1 uchar i;
77 1 uint j;
78 1 for (j=0; j<12; j++) //转1*n圈
79 1 {
80 2 if(K4==0)
81 2 {break;} //退出此循环程序
82 2 for (i=0; i<8; i++) //一个周期转30度
83 2 {
84 3 P2 = FFW[i]; //取数据
85 3 delay(10); //调节转速
86 3 }
87 2 }
88 1 }
89
90 /********************************************************/
91 /*
92 /*步进电机反转
93 /*
94 /********************************************************/
95 void motor_rev()
96 {
97 1 uchar i;
98 1 uint j;
99 1 for (j=0; j<12; j++) //转1×n圈
100 1 {
101 2 if(K4==0)
102 2 {break;} //退出此循环程序
103 2 for (i=0; i<8; i++) //一个周期转30度
104 2 {
105 3 P2 = REV[i]; //取数据
106 3 delay(10); //调节转速
107 3 }
108 2 }
109 1 }
110
111 /********************************************************
112 *
113 * 主程序
114 *
115 *********************************************************/
116
117 main()
C51 COMPILER V7.10 S__MOTOR_KEY 10/12/2008 20:04:48 PAGE 3
118 {
119 1 uchar r,N=5; //N 步进电机运转圈数
120 1 P2=0xDF;
121 1 while(1)
122 1 {
123 2 if(K1==0)
124 2 {
125 3 beep();
126 3 for(r=0;r<N;r++)
127 3 {
128 4 motor_ffw(); //电机正转
129 4 if(K4==0)
130 4 {beep();break;} //退出此循环程序
131 4 }
132 3 }
133 2 else if(K2==0)
134 2 {
135 3 beep();
136 3 for(r=0;r<N;r++)
137 3 {
138 4 motor_rev(); //电机反转
139 4 if(K4==0)
140 4 {beep();break;} //退出此循环程序
141 4 }
142 3 }
143 2 else
144 2 P2 = 0x0F;
145 2 }
146 1 }
147
148 /********************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 212 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 5
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 + -