📄 51
字号:
C51 COMPILER V8.18 BUJINDIANJI 12/15/2009 17:11:14 PAGE 1
C51 COMPILER V8.18, COMPILATION OF MODULE BUJINDIANJI
OBJECT MODULE PLACED IN bujindianji.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE bujindianji.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h> //51芯片管脚定义头文件
2 #include <intrins.h> //内部包含延时函数 _nop_();
3
4 #define uchar unsigned char
5 #define uint unsigned int
6
7 sbit K1=P3^2;
8 uchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};
9 uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};
10 uchar rate ;
11 /********************************************************/
12 /*
13 /* 延时
14 /* 11.0592MHz时钟,
15 /*
16 /********************************************************/
17 void delay()
18 {
19 1 uchar k;
20 1 uint s;
21 1 k = rate;
22 1 do
23 1 {
24 2 for(s = 0 ; s <125 ; s++) ;
25 2 }while(--k);
26 1 }
27 /********************************************************/
28 /*
29 /*步进电机正转
30 /*
31 /********************************************************/
32 /********************************************************/
33 void motor_ffw()
34 {
35 1 uchar i;
36 1 uint j;
37 1 for (j=0; j<16; j++) //转1*n圈
38 1 {
39 2 //退出此循环程序
40 2 for (i=0; i<8; i++) //一个周期转45度
41 2 {
42 3 P1 = FFW[i]; //取数据
43 3 delay(); //调节转速
44 3 }
45 2 }
46 1 }
47
48 /********************************************************
49 *
50 *步进电机运行
51 *
52 *********************************************************/
53 void motor_turn()
54 {
55 1 uchar x;
C51 COMPILER V8.18 BUJINDIANJI 12/15/2009 17:11:14 PAGE 2
56 1 rate=0x10;
57 1 x=0x0f;
58 1 do
59 1 {
60 2 motor_ffw(); //加速
61 2 rate--;
62 2 }while(rate!=0x02);
63 1
64 1 do
65 1 {
66 2 motor_ffw(); //匀速
67 2 x--;
68 2 }while(x!=0x01);
69 1
70 1 do
71 1 {
72 2 motor_ffw(); //减速
73 2 rate++;
74 2 }while(rate!=0x0a);
75 1 }
76
77 /********************************************************
78 *
79 * 主程序
80 *
81 *********************************************************/
82 main()
83 {
84 1
85 1 P1=0x0f;
86 1
87 1 while(1)
88 1 {
89 2 P1=0x0f;
90 2 if(K1==0)
91 2 {
92 3 motor_turn();
93 3 }
94 2 }
95 1 }
96
97 /********************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 97 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
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 + -