📄 从机1.lst
字号:
C51 COMPILER V8.08 从籣1 07/27/2007 10:57:17 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE 从籣1
OBJECT MODULE PLACED IN 从机1.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE 从机1.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <AT89x52.h>
2 #include <intrins.h>
3
4 #define led_io P0
5 #define led_st P2
6 #define name_rd 0x11 //一号机读命令
7 #define name_wr 0x01 //一号机写命令
8
9
10 void led_disp(uchar *num);
11 void delay10ms(uchar t);
12
13 sbit key_1=P1^5; //换位
14 sbit key_2=P1^6; //加一
15 sbit key_3=P1^7; //减一
16
17 uchar code led_code[]={
18 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,
19 0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x76,0x73,0x40};
20
21 uchar name,len,i;
22 uchar led_buff[]={0xff,0xff,0xff};
23 void led_int() interrupt 4 using 0
24 {
25 1 if(RB8 & RI)
26 1 {
27 2 name=SBUF;
28 2 SM2=0;
29 2 }
30 1 else
31 1 {
32 2 if(name==name_wr) //串行接收
33 2 {
34 3 led_buff[len]=SBUF;
35 3 len++;
36 3 if (len==3)
37 3 {
38 4 len=0;
39 4 }
40 3 }
41 2 }
42 1 TI=0;
43 1 RI=0;
44 1 }
45 delay1ms(uchar t)
46 {
47 1 while (t--);
48 1 }
49 main()
50 {
51 1 TMOD=0x20;
52 1 TH1=0xFD;
53 1 TL1=0xFD;
54 1 TR1=1;
55 1 len=0;
C51 COMPILER V8.08 从籣1 07/27/2007 10:57:17 PAGE 2
56 1 key_1=0;
57 1 key_2=0;
58 1 key_3=0;
59 1 EA=1;
60 1 ES=1; //开串口中断
61 1 SCON=0xF0;
62 1 while (1)
63 1 {
64 2 if ( key_2 )
65 2 {
66 3 delay10ms(5);
67 3 if ( key_2 );
68 3
69 3 }
70 2 if ( key_3 )
71 2 {
72 3 delay10ms(5);
73 3 if ( key_3 );
74 3
75 3 }
76 2 if(name==name_rd) //串行发送
77 2 {
78 3 ES=0;
79 3 for(i=0;i<3;i++)
80 3 {
81 4 SBUF=led_buff[i];
82 4 while(!TI);
83 4 TI=0;
84 4 }
85 3 ES=1;
86 3 }
87 2 led_disp(led_buff);
88 2 }
89 1 }
90 void led_disp(uchar *num)
91 {
92 1 led_st=0x7f;
93 1 led_io=led_code[num[2]&0x0f]; //显示个位
94 1 delay1ms(200);
95 1 led_st=0xbf;
96 1 led_io=led_code[(num[2]&0xf0)>>4];
97 1 delay1ms(200);
98 1 led_st=0xdf;
99 1 led_io=led_code[num[1]&0x0f];
100 1 delay1ms(200);
101 1 led_st=0xef;
102 1 led_io=led_code[(num[1]&0xf0)>>4];
103 1 delay1ms(200);
104 1 led_st=0xf7;
105 1 led_io=led_code[num[0]&0x0f];
106 1 delay1ms(200);
107 1 led_st=0xfb;
108 1 led_io=led_code[(num[0]&0xf0)>>4];
109 1 delay1ms(200);
110 1 led_st=0xfd;
111 1 led_io=led_code[18];
112 1 delay1ms(200);
113 1 led_st=0xfe;
114 1 if(name==name_rd)
115 1 led_io=led_code[17]; //如果位读显示“P”
116 1 else
117 1 led_io=led_code[16]; //如果位写显示“H”
C51 COMPILER V8.08 从籣1 07/27/2007 10:57:17 PAGE 3
118 1 delay1ms(200);
119 1
120 1 }
121
122 void delay10ms ( uchar t ) //延时 10 MS
123 { uint i;
124 1 for (i=0;i<t;i++)
125 1 {
126 2 TMOD=0x01;
127 2 TH0=0x0D8;
128 2 TL0=0X0F0;
129 2 TR0=1;
130 2 while(TF0!=1);
131 2 TF0=0;
132 2 TR0=0;
133 2 }
134 1
135 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 294 ----
CONSTANT SIZE = 19 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 6 ----
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 + -