📄 第一方案for.lst
字号:
C51 COMPILER V8.02 第_环桨窮OR 09/01/2007 04:22:21 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 第_环桨窮OR
OBJECT MODULE PLACED IN 第一方案for.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 第一方案for.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #include<intrins.h>
3 #define uint unsigned int
4 #define uchar unsigned char
5
6 sbit dula=P2^7;
7 sbit wela=P2^6; //数码管段,位定义
8 sbit send=P1^0; //发送端定义
9
10
11 uchar code table[]={
12 0x3f,0x06,0x5b,0x4f,
13 0x66,0x6d,0x7d,0x07,
14 0x7f,0x6f,0x77,0x7c,
15 0x39,0x5e,0x79,0x71}; //段码数组
16
17
18 uchar a1,a2,a3; //显示数组;
19 uint count,b;
20
21
22
23 void delay(uint a) //延时;
24 {
25 1 uint m;
26 1 for(m=0;m<a;m++);
27 1 }
28
29 void tx() //从P1.0发出40KHz的脉冲
30 {
31 1 uchar n,p;
32 1 for(n=0;n<40;n++)
33 1 {
34 2 send=1;
35 2 for(p=0;p<3;p++);
36 2 send=0;
37 2 for(p=0;p<2;p++);
38 2 send=0;
39 2 }
40 1 }
41
42 void display(uchar bai,uchar shi,uchar ge) //显示子函数
43 {
44 1 for(;;)
45 1 {
46 2 dula=1;
47 2 P0=table[bai];
48 2 dula=0;
49 2 wela=1;
50 2 P0=0x0d;
51 2 wela=0;
52 2 delay(10);
53 2
54 2 dula=1;
55 2 P0=table[shi];
C51 COMPILER V8.02 第_环桨窮OR 09/01/2007 04:22:21 PAGE 2
56 2 dula=0;
57 2 wela=1;
58 2 P0=0x0b;
59 2 wela=0;
60 2 delay(10);
61 2
62 2 dula=1;
63 2 P0=table[ge];
64 2 dula=0;
65 2 wela=1;
66 2 P0=0x07;
67 2 wela=0;
68 2 delay(10);
69 2 }
70 1 }
71
72
73 void rx() interrupt 0 //外部中断0,接收信号并处理
74 {
75 1 TR0=0;
76 1 count=TH0*256+TL0;
77 1 if(count<55);
78 1 if(count>=55)
79 1 {
80 2 b=(17*count)/1000;
81 2 a1=b/100;
82 2 a2=b%100/10;
83 2 a3=b%100%10;
84 2 display(a1,a2,a3);
85 2 }
86 1 }
87
88 void over()interrupt 1 //T0溢出为无效测量,中断显示FFF;
89 {
90 1 a1=table[15];
91 1 a2=table[15];
92 1 a3=table[15];
93 1 display(a1,a2,a3);
94 1 }
95
96 void main()
97 {
98 1 send=0;
99 1 delay(8600); //发射延时 8.6ms?
100 1 TH0=0;
101 1 TL0=0;
102 1 TMOD=0x01; //对定时器0设初值,模式1的16位计数
103 1 TR0=1; //开启定时器0
104 1 EA=1;
105 1 ET0=1;
106 1 PT0=1; //开启定时器0中断并设为高优先级
107 1 tx(); //调用发射子函数
108 1 IT0=1; // 外部中断0用低电平触发方式
109 1 IE=0x83; //设置中断控制,其中开启外部中断0
110 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 372 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
C51 COMPILER V8.02 第_环桨窮OR 09/01/2007 04:22:21 PAGE 3
DATA SIZE = 7 ----
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 + -