📄 main.lst
字号:
C51 COMPILER V7.01 MAIN 03/09/2009 15:34:08 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<reg51.h>
2 #include<intrins.h>//包含NOP指令
3
4
5 //unsigned int count_th,count_tl;
6 unsigned char number; //number记录定时次数
7 unsigned char time1,time2; //time1是由慢到快的初始值,time2是由快到慢的初始值
8 unsigned char flag1,flag2;
9
10 sbit mode1 =P1^6;//模式1开关信号
11 sbit mode2 =P1^5;//模式2开关信号
12 sbit out =P1^7;//脉冲输出
13 sbit led1 =P1^4;//模式1指示灯
14 sbit led2 =P1^3;//模式2指示灯
15
16 extern void init_time0();
17 extern void init_out();
18 extern void init();
19 extern void delay(unsigned char,unsigned char);
20 extern void change(unsigned char,unsigned char);
21
22 void main()
23 {
24 1 unsigned char ul;
25 1 unsigned int n;
26 1 unsigned int a1,a2;
27 1 a1=100;
28 1 a2=100;
29 1 flag1=1;
30 1 flag2=1;
31 1 init(); //相关开关量初始化
32 1 // init_time0(); //功能:设置定时器0并打开中断允许
33 1 while(1)
34 1 {
35 2 if(mode1==1)
36 2 {
37 3 if(flag1==1)
38 3 {
39 4 if(a1<20000) a1+=250;
40 4 if(a1>=20000) flag1=0;
41 4 }
42 3 else
43 3 {
44 4 if(a1>100) a1-=250;
45 4 if(a1<=100) flag1=1;
46 4 }
47 3 for(n=0;n<a1;n++);
48 3 out=1;
49 3 for(n=0;n<a1;n++);
50 3 out=0;
51 3 }
52 2 if(mode2==1)
53 2 {
54 3 if(flag2==1)
55 3 {
C51 COMPILER V7.01 MAIN 03/09/2009 15:34:08 PAGE 2
56 4 if(a2<5000) a2+=10;
57 4 if(a2>=5000) flag2=0;
58 4 }
59 3 else
60 3 {
61 4 if(a2>100) a2-=10;
62 4 if(a2<=100) flag2=1;
63 4 }
64 3
65 3 for(n=0;n<a2;n++);
66 3 out=1;
67 3 for(n=0;n<a2;n++);
68 3 out=0;
69 3 }
70 2 }
71 1
72 1 }
*** WARNING C280 IN LINE 24 OF MAIN.C: 'ul': unreferenced local variable
73 //***************************************************************************************
74 //功能:初始化仪表各项功能:
75 //
76 //***************************************************************************************
77 void init(void)
78 {
79 1 out=0; //输出置为0
80 1 led1=0;
81 1 led2=0;
82 1 mode1=1;
83 1 mode2=1;
84 1 delay(10,50);
85 1 }
86 //***************************************************************************************
87 //功能:设置定时器0并打开中断禁止
88 //***************************************************************************************
89 void init_time0(void)
90 {
91 1 TMOD=0x15; //定时器1模式1计数器0模式1
92 1 TH1=0x3c;
93 1 TL1=0xb0; //装载50ms的初值
94 1 TH0=0x00;
95 1 TL0=0x00; //计数器初值
96 1 TR0=1; //启动定时器1
97 1 TR1=1; //打开计数器0
98 1 ET0=1;
99 1 EX1=0; //外中断1禁止位
100 1 ET1=1; //定时器1中断允许
101 1 EA=1; //开总中断允许
102 1 }
103 void time1_isr(void) interrupt 3 using 0 //定时器1中断服务程序
104 {
105 1 number++;
106 1 }
107
108
109 //***************************************************************************************
110 //功能:延时子程序,时间为time1*time2
111 //***************************************************************************************
112 void delay(unsigned char time1,unsigned char time2)
113 {
114 1 unsigned char tmp1,tmp2;
115 1 for(tmp1=0;tmp1<=time1;tmp1++)
116 1 {
C51 COMPILER V7.01 MAIN 03/09/2009 15:34:08 PAGE 3
117 2 for(tmp2=0;tmp2<=time2;tmp2++)
118 2 {
119 3 _nop_();
120 3 }
121 2 }
122 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 377 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 7
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -