📄 text1.lst
字号:
C51 COMPILER V8.02 TEXT1 05/06/2008 12:48:19 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #include<intrins.h>
3
4 sfr P1M0 = 0x91;
5 sfr P1M1 = 0x92;
6 sfr ADC_CONTR = 0xc5;
7 sfr ADC_DATA = 0xc6;
8 sbit P1_5 = P1^5;
9
10 unsigned char i = 1;
11 unsigned char flag = 0;
12 unsigned char liangdu; //转换结果
13
14 main()
15 {
16 1 P1_5 = 0;
17 1
18 1 TMOD = 0x21; //T1为波特率发生器,T0工作方式1
19 1 SCON = 0x50;
20 1 TH0 = (65535-9216)/256;
21 1 TL0 = (65535-9216)%256;
22 1 TL1 = 0xfd; //波特率为9600
23 1 TH1 = 0xfd;
24 1 ES = 0;
25 1 ET0 = 1;
26 1 TR1 = 1;
27 1 TR0 = 1;
28 1 EA = 1;
29 1
30 1 P1M0 |= 0x80; //设置P1.7为开漏,作为AD使用
31 1 P1M1 |= 0x80;
32 1 ADC_DATA = 0;
33 1 ADC_CONTR = 0x87;
34 1 _nop_();
35 1 _nop_();
36 1
37 1 while(1);
38 1 }
39
40 void time0(void) interrupt 1 using 2
41 {
42 1 if(i>=100)
43 1 {
44 2 i = 0;
45 2
46 2 ADC_CONTR &= 0xef; //清标志位
47 2 ADC_CONTR |= 0x08; //启动ADC;
48 2
49 2 while(1)
50 2 {
51 3 if((ADC_CONTR&0x10)!=0)
52 3 {
53 4 liangdu = ADC_DATA;
54 4
55 4 SBUF = liangdu; //串口发送
C51 COMPILER V8.02 TEXT1 05/06/2008 12:48:19 PAGE 2
56 4 while(!TI);
57 4 TI = 0;
58 4
59 4 if(flag==0)
60 4 {
61 5 if(liangdu<=100)
62 5 {
63 6 P1_5 = 1; //开灯
64 6 flag = 1;
65 6 }
66 5 }
67 4
68 4 else if(flag==1)
69 4 {
70 5 if(liangdu>=144)
71 5 {
72 6 P1_5 = 0; //关灯
73 6 flag = 0;
74 6 }
75 5 }
76 4 break;
77 4 }
78 3 }
79 2
80 2 }
81 1
82 1 i++;
83 1 TH0 = (65535-9216)/256;
84 1 TL0 = (65535-9216)%256;
85 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 130 ----
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 + -