📄 zhuankou.lst
字号:
C51 COMPILER V7.20 ZHUANKOU 03/27/2009 12:18:51 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE ZHUANKOU
OBJECT MODULE PLACED IN zhuankou.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE zhuankou.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /******************************************
2 *功能实现: 风扇控制系统,三档控速,三种模式
3 *MARCH 27_DAY 2009_YEAR
4 ******************************************/
5 #include <reg52.h>
6 #include<display164.h>
7
8 #include<delay.h>
9 #define uchar unsigned char
10 #define uint unsigned int
11 /************变量和端口******************/
12 sbit pwm=P0^1;//pwm输出口
13 sbit fsu=P1^5; //风速键
14 sbit mshi=P1^6;//模式键
15 uchar count=0;//风速计数
16 uint cont=0;//模式计数
17 uchar speed=0;// 选择风速类型
18 uchar mode=0;//模式选择类型
19 bit flag=0;//类型选择标志位,0为风速选择,1为模式选择
20 /************定时器中断处理***************/
21 void time0(void) interrupt 1
22 {
23 1 TH0=0;//0xf1;
24 1 TL0=0;//0xf1;
25 1 count++;
26 1 if(count>=100)
27 1 count=0;
28 1 if(speed==1)//高
29 1 {
30 2 if(count>=80)
31 2 pwm=0;
32 2 else pwm=1;
33 2 }
34 1 if(speed==2)//中
35 1 {
36 2 if(!flag)
37 2 if(count>=50)
38 2 pwm=0;
39 2 else pwm=1;
40 2 }
41 1 if(speed==3)//低
42 1 {
43 2 if(count>=20)
44 2 pwm=0;
45 2 else pwm=1;
46 2 }
47 1
48 1 }
49 //******************************
50 void time1(void) interrupt 3
51 {
52 1 TH1=0x3c;
53 1 TL1=0xb0;
54 1 cont++;
55 1 if(cont>=400)
C51 COMPILER V7.20 ZHUANKOU 03/27/2009 12:18:51 PAGE 2
56 1 cont=0;
57 1 if(mode==1)//正常状态
58 1 {
59 2 TR1=0;
60 2 speed=2;
61 2 flag=1;
62 2 TR0=1;
63 2 }
64 1 if(mode==2)//自然风状态,5秒转,5秒不转
65 1 {
66 2 TR1=1;
67 2 if(cont%200>=100)
68 2 pwm=0;
69 2 else
70 2 pwm=1;
71 2 }
72 1 if(mode==3)//睡眠状态,10秒转,10不转
73 1 {
74 2 TR1=1;
75 2 if(cont>=200)
76 2 pwm=0;
77 2 else
78 2 pwm=1;
79 2 }
80 1 }
81 /**************器件初始化*****************/
82 void deviceinit(void)
83 {
84 1 TMOD=0x12;//设置定时器
85 1 TH0=0xf1;
86 1 TL0=0xf1;
87 1 TH1=0x3c;
88 1 TL1=0xb0;
89 1
90 1 EA=1;//开中断,启动,pwm初始化
91 1 ET0=1;
92 1 ET1=1;
93 1 TR0=1;
94 1 TR1=1;
95 1 pwm=0;
96 1 P0=0x00;
97 1 P2=0x00;
98 1 P3=0x00;
99 1 IP=0x08;
100 1
101 1 }
102 /*************按键函数***************/
103 void keyscan()
104 {
105 1 if(fsu==0)
106 1 {
107 2 delay_ms(10);
108 2 if(fsu==0)
109 2 {
110 3 while(!fsu);
111 3 if(flag)
112 3 {
113 4 speed=0;
114 4 flag=0;
115 4 }
116 3 speed++;
117 3 if(speed>3)//停止
C51 COMPILER V7.20 ZHUANKOU 03/27/2009 12:18:51 PAGE 3
118 3 {
119 4 speed=0;
120 4 mode=0;
121 4 TR0=0;
122 4 pwm=0;
123 4 }
124 3 display164f(speed);
125 3 mode=0;
126 3 display164ms(0);
127 3 TR0=1;
128 3 IP=0x02;
129 3 }
130 2 }
131 1 if(mshi==0)
132 1 {
133 2 delay_ms(10);
134 2 if(mshi==0)
135 2 {
136 3 while(!mshi);
137 3 mode++;
138 3 if(mode>3) //停止
139 3 {
140 4 TR1=0;
141 4 speed=0;
142 4 mode=0;
143 4 pwm=0;
144 4 }
145 3 display164ms(mode);
146 3 speed=0;
147 3 display164f(speed);
148 3 TR1=1;
149 3 IP=0x08;
150 3 }
151 2 }
152 1 }
153 /**************主函数******************/
154 void main(void)
155 {
156 1 deviceinit();//器件初始化
157 1 while(1)
158 1 {
159 2 keyscan();//键盘控制
160 2 }
161 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 474 ----
CONSTANT SIZE = 20 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 11 ----
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 + -