📄 chengxu.lst
字号:
C51 COMPILER V8.05a CHENGXU 01/15/2011 11:54:54 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE CHENGXU
OBJECT MODULE PLACED IN chengxu.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE chengxu.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /********************************************************************
2 汇诚科技
3
4 实现功能:STK672-040四相步进电机驱动测试程序
5 使用芯片:AT89S52 或者 STC89C52
6 晶振:11.0592MHZ
7 编译环境:Keil
8 作者:zhangxinchunleo
9 网站:www.ourhc.cn
10 淘宝店:汇诚科技 http://shop36330473.taobao.com
11 【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!
12
13 *********************************************************************/
14 /********************************************************************
15 程序说明:
16
17 当单片机P2.0口得到一个低电平信号时,步进电机正转;
18 当单片机P2.1口得到一个低电平信号时,步进电机反转;
19 当单片机P2.2口得到一个低电平信号时,步进电机加速运转;
20 当单片机P2.3口得到一个低电平信号时,步进电机减速运转;
21
22 *********************************************************************/
23
24 #include<reg52.h>
25 #define uchar unsigned char
26 #define uint unsigned int
27 uchar Y=10; //初始化速度
28 /********************************************************
29 控制位定义
30 ********************************************************/
31
32 sbit shi_neng=P1^0; // 使能控制位
33 sbit fang_xiang=P1^1;// 旋转方向控制位
34 sbit mai_chong=P1^2; // 脉冲控制位
35
36 sbit zheng_zhuan=P2^0; // 正转
37 sbit fan_zhuan=P2^1; // 反转
38 sbit jia_su=P2^2; // 加速
39 sbit jian_su=P2^3; // 减速
40
41 /********************************************************
42 延时函数
43 ********************************************************/
44 void delay(uchar i)//延时函数
45 {
46 1 uchar j,k;
47 1 for(j=0;j<i;j++)
48 1 for(k=0;k<180;k++);
49 1 }
50 /********************************************************
51 加速函数
52 ********************************************************/
53 void jia()
54 {
55 1
C51 COMPILER V8.05a CHENGXU 01/15/2011 11:54:54 PAGE 2
56 1 Y=Y-1;
57 1 if(Y<=1){Y=1;}//如果速度值小于等于1,值保持不变
58 1
59 1 }
60 /********************************************************
61 减速函数
62 ********************************************************/
63 void jian()
64 {
65 1
66 1 Y=Y+1;
67 1 if(Y>=100){Y=100;}
68 1
69 1 }
70 /********************************************************
71 主函数
72 ********************************************************/
73
74 main()
75 {
76 1 shi_neng=0; // 使能控制位
77 1 fang_xiang=1;// 旋转方向控制位
78 1 mai_chong=1; // 脉冲控制位
79 1 while(1)
80 1 {
81 2
82 2 if(zheng_zhuan==0){shi_neng=1;fang_xiang=1;}
83 2 if(fan_zhuan==0){shi_neng=1;fang_xiang=0;}
84 2 if(jia_su==0){delay(10);while(!jia_su);jia();}
85 2 if(jian_su==0){delay(10);while(!jian_su);jian();}
86 2
87 2 mai_chong=~mai_chong; //输出时钟脉冲
88 2 delay(Y); //延时(括号内数值越小,电机转动速度越快)
89 2
90 2 }
91 1 }
92 /********************************************************
93 结束
94 ********************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 100 ----
CONSTANT SIZE = ---- ----
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 + -