📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 12/16/2007 21:25:43 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 #include "intrins.h"
3 #include "Lcd1602.h"
4 #define uchar unsigned char
5 #define uint unsigned int
6
7 sbit BEEP = P1^6; //报警提示口
8 sbit vout = P1^7; //脉冲发送口
9 sbit P3_2 = P3^2; //中断接收口
10 //sbit INT = P1^6;
11 bit flag;
12
13 //unsigned char discol[4]={0xef,0xdf,0xbf,0x7f};
14 unsigned char code Anum_code[]={"0123456789"};
15 //unsigned char disbuf[4]={0,1,2,3};
16 float high,low;
17 unsigned char qian,bai,shi,ge;
18 //unsigned char j=600;
19
20 /*void delay_1ms(void) //12mhz delay 1.01ms
21 {
22 unsigned char x,y;
23 x=3;
24 while(x--)
25 {
26 y=40;
27 while(y--);
28 }
29 }
30
31 void delay_1us(unsigned char i) //i=1, 5us; i=2,7us; i=3,9us
32 {
33 while(--i);
34 }*/
35
36 void delay_50us(unsigned int t) // t=100, 5ms; t=1000, 50ms
37 {
38 1 unsigned char j;
39 1 for(;t>0;t--)
40 1 for(j=19;j>0;j--);
41 1 }
42
43 /*void delay_50ms(unsigned int t) // t=10, 500ms; t=100, 5s;
44 {
45 unsigned int j;
46 for(;t>0;t--)
47 for(j=6245;j>0;j--);
48 }*/
49 void display(void)
50 {
51 1 Write_Comm(0x01); //清显示屏
52 1 Write_Comm(0x80);
53 1 Write_Data(Anum_code[qian]);
54 1 //Write_Comm(0x80);
55 1 Write_Data(Anum_code[bai]);
C51 COMPILER V7.50 MAIN 12/16/2007 21:25:43 PAGE 2
56 1 //Write_Comm(0x80);
57 1 Write_Data(Anum_code[shi]);
58 1 //Write_Comm(0x83);
59 1 Write_Data(Anum_code[ge]);
60 1 }
61
62 void work(void)
63 {
64 1 //unsigned char qian,bai,shi,ge;
65 1 float value;
66 1 value=(high*256+low)*17/100;
67 1 qian=value/1000;
68 1 bai=(value-qian*1000)/100;
69 1 shi=(value-qian*1000-bai*100)/10;
70 1 ge=value-qian*1000-bai*100-shi*10;
71 1 if(value<=1000)
72 1 {
73 2 BEEP=0;
74 2 }
75 1 else
76 1 {
77 2 BEEP=1;
78 2 }
79 1 /*disbuf[0] = qian;
80 1 disbuf[1] = bai;
81 1 disbuf[2] = shi;
82 1 disbuf[3] = ge;*/
83 1 }
84 main()
85 {
86 1 //unsigned char i;
87 1 //unsigned int t;
88 1 Lcd_Init();
89 1 TMOD = 0x11;
90 1 TH0 = 0;
91 1 TL0 = 0;
92 1 TH1 = 0;
93 1 TL1 = 0;
94 1 P0 = 0xff;
95 1 P1 = 0xff;
96 1 P2 = 0xff;
97 1 P3 = 0xff;
98 1 //EX0 = 1; //允许外部中断0
99 1 ET1 = 1; //允许定时器1中断
100 1 EA = 1;
101 1 TR1 = 1;
102 1 while(1)
103 1 {
104 2 //display();
105 2 if(flag)
106 2 {
107 3 EA = 0;
108 3 work();
109 3 //EA = 0;
110 3 display();
111 3 //delay_50ms(100);
112 3 //for(i=5;i>0;i--)
113 3 //for(t=6245;t>0;t--);
114 3 flag = 0;
115 3 ET0 = 0; //禁止定时器0中断
116 3 TH0 = 0;
117 3 TL0 = 0;
C51 COMPILER V7.50 MAIN 12/16/2007 21:25:43 PAGE 3
118 3 ET1 = 1;
119 3 TR1 = 1;
120 3 EA = 1;
121 3 }
122 2 }
123 1 }
124
125 void INTT1() interrupt 3
126 {
127 1 unsigned char i;
128 1 EA = 0;
129 1 TR1 = 0;
130 1 EX0 = 0; //禁止外部中断
131 1 TH0 = 0;
132 1 TL0 = 0;
133 1 TH1 = 0;
134 1 TL1 = 0;
135 1 EA = 1;
136 1 TR0 = 1;
137 1 for(i=0;i<4;i++)
138 1 {
139 2 vout = ~vout;
140 2 _nop_();
141 2 _nop_();
142 2 _nop_();
143 2 _nop_();
144 2 _nop_();
145 2 _nop_();
146 2 _nop_();
147 2 _nop_();
148 2 }
149 1 delay_50us(40);
150 1 EX0 = 1; //开启外部中断
151 1 //ET0 = 1; //允许定时器0中断
152 1 /*if(j==600)
153 1 {
154 1 j=j+200;
155 1 TR0 = 1;
156 1 EX0 = 1; //开启外部中断
157 1 delay_50us(j);
158 1 INT=0;
159 1 }
160 1 else
161 1 {
162 1 j=j-200;
163 1 TR0 = 1;
164 1 EX0 = 1; //开启外部中断
165 1 delay_50us(j);
166 1 INT=0;
167 1 }*/
168 1
169 1 }
170
171 void PINT0() interrupt 0
172 {
173 1 //_nop_();
174 1 TR0 = 0; //关闭定时器0
175 1 EX0 = 0;
176 1 EA = 0;
177 1 low = TL0;
178 1 high = TH0;
179 1 flag = 1;
C51 COMPILER V7.50 MAIN 12/16/2007 21:25:43 PAGE 4
180 1 while(P3_2==0)
181 1 {
182 2 //TR0 = 0; //关闭定时器0
183 2 //EX0 = 0;
184 2 //EA = 0;
185 2 //low = TL0;
186 2 //high = TH0;
187 2 //low = 0x50;
188 2 //high = 0xc3;
189 2 //TH0 = 0;
190 2 //TL0 = 0;
191 2 //INT=1;
192 2 //flag = 1;
193 2 //Write_Comm(0x01); //清显示屏
194 2 //Write_Comm(0x8f);
195 2 //Write_Data('k');
196 2 //delay_50ms(10);
197 2 }
198 1 }
199
200
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 763 ----
CONSTANT SIZE = 11 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 12 4
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 + -