📄 chengxu.lst
字号:
C51 COMPILER V8.05a CHENGXU 11/08/2010 00:28:25 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 实现功能:正转_反转_按下转松开停止
5 使用芯片:AT89S52
6 晶振:11.0592MHZ
7 编译环境:Keil
8 作者:zhangxinchunleo
9 网站:www.ourhc.cn
10 淘宝店:汇诚科技 http://shop36330473.taobao.com
11
12 【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!
13 ********************************************************/
14 #include<reg52.h> //库文件
15 #define uchar unsigned char //字符型宏定义
16 #define uint unsigned int //整型宏定义
17 uchar tcnt; //定时器计数初值定义
18 uint sec; //速度值定义
19 /********************************************************
20 控制位定义
21 ********************************************************/
22
23 sbit shi_neng=P1^0; // 使能控制位
24 sbit fang_shi=P1^1; // 工作方式控制位
25 sbit fang_xiang=P1^2;// 旋转方向控制位
26 sbit mai_chong=P1^3; // 脉冲控制位
27
28 sbit zheng_zhuan=P2^0; //正转
29 sbit fang_zhuan=P2^1; //反转
30
31
32 /********************************************************************
33 延时函数
34 *********************************************************************/
35 void delay(uchar t)
36 {
37 1 uchar i,j;
38 1 for(i=0;i<t;i++)
39 1 {
40 2 for(j=13;j>0;j--);
41 2 { ;
42 3 }
43 2 }
44 1 }
45
46 /********************************************************************
47 定时中断服务函数
48 *********************************************************************/
49 void t0(void) interrupt 1 using 0 //定时中断服务函数
50 {
51 1 tcnt++; //每过250ust tcnt 加一
52 1 if(tcnt==1) //当tcnt满足条件时
53 1 {
54 2 tcnt=0; //计满重新再计
55 2 sec++;
C51 COMPILER V8.05a CHENGXU 11/08/2010 00:28:25 PAGE 2
56 2 if(sec==20) //括号内数值越小,电机转动速度越快
57 2 {
58 3 sec=0; //计满重新再计
59 3 mai_chong=~mai_chong; //脉冲输出
60 3 }
61 2 }
62 1 }
63
64 /********************************************************
65 初始化
66 ********************************************************/
67 void init()
68 {
69 1 TMOD=0x02; //定时器工作在方式2
70 1 ET0=1;
71 1 EA=1;
72 1 TH0=0x06; //对TH0 TL0 赋值
73 1 TL0=0x06;
74 1 TR0=1; //开始定时
75 1 sec=0;
76 1 mai_chong=1; // 脉冲控制位
77 1 }
78
79 /********************************************************
80 主函数
81 ********************************************************/
82
83 main()
84 {
85 1 init(); //程序初始化
86 1 shi_neng=0; // 使能控制位
87 1 fang_shi=1; // 工作方式控制
88 1 fang_xiang=1;// 控制方向为正转
89 1 while(1)
90 1 {
91 2 if(zheng_zhuan==0){delay(100);shi_neng=1;fang_xiang=0;while(!zheng_zhuan);delay(100);shi_neng=0;fang_xia
-ng=0;}
92 2 if(fang_zhuan==0){delay(100);shi_neng=1;fang_xiang=1;while(!fang_zhuan);delay(100);shi_neng=0;fang_xiang
-=1;}
93 2 }
94 1 }
95 /********************************************************
96 结束
97 ********************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 136 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 ----
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 + -