📄 slave.lst
字号:
C51 COMPILER V8.05a SLAVE 09/20/2009 10:01:54 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE SLAVE
OBJECT MODULE PLACED IN slave.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE slave.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2
3 sbit key0=P1^0;
4 sbit key1=P1^1;
5 sbit key2=P1^2;
6 sbit key3=P1^3;
7
8 unsigned char keyscan() //键盘扫描函数
9 {
10 1 unsigned char keyscan_num,temp;
11 1
12 1 P1=0xff;
13 1 temp=P1;
14 1 if(~(temp&0xff))
15 1 {
16 2 if(key0==0)
17 2 {
18 3 keyscan_num=0;
19 3 }
20 2 else if(key1==0)
21 2 {
22 3 keyscan_num=1;
23 3 }
24 2 else if(key2==0)
25 2 {
26 3 keyscan_num=2;
27 3 }
28 2 else if(key3==0)
29 2 {
30 3 keyscan_num=3;
31 3 }
32 2 else
33 2 {
34 3 keyscan_num=1;
35 3 }
36 2
37 2 return keyscan_num;
38 2 }
39 1 }
40
41 void spi_init1200()//波特率1200
42 {
43 1 SCON=0x50;//8位异步收发,波特率可变,运行接收数据
44 1 PCON=0x80;//波特率加倍
45 1 TI=0;//软件清零,表示未发送完成
46 1 EA=1;//开总中断
47 1 ET1=1;//开T1
48 1 TMOD=0x20;//8位自动装载模式
49 1 TH1=0xe8;
50 1 TL1=0xe8;
51 1 TR1=1;//开启T1
52 1 }
53
54 void spi_init2400()//波特率2400
55 {
C51 COMPILER V8.05a SLAVE 09/20/2009 10:01:54 PAGE 2
56 1 SCON=0x50;//8位异步收发,波特率可变,运行接收数据
57 1 PCON=0x80;//波特率加倍
58 1 TI=0;//软件清零,表示未发送完成
59 1 EA=1;//开总中断
60 1 ET1=1;//开T1
61 1 TMOD=0x20;//8位自动装载模式
62 1 TH1=0xf4;
63 1 TL1=0xf4;
64 1 TR1=1;//开启T1
65 1 }
66
67 void spi_init4800()//波特率4800
68 {
69 1 SCON=0x50;//8位异步收发,波特率可变,运行接收数据
70 1 PCON=0x80;//波特率加倍
71 1 TI=0;//软件清零,表示未发送完成
72 1 EA=1;//开总中断
73 1 ET1=1;//开T1
74 1 TMOD=0x20;//8位自动装载模式
75 1 TH1=0xfa;
76 1 TL1=0xfa;
77 1 TR1=1;//开启T1
78 1 }
79
80 void spi_init9600()//波特率9600
81 {
82 1 SCON=0x50;//8位异步收发,波特率可变,运行接收数据
83 1 PCON=0x80;//波特率加倍
84 1 TI=0;//软件清零,表示未发送完成
85 1 EA=1;//开总中断
86 1 ET1=1;//开T1
87 1 TMOD=0x20;//8位自动装载模式
88 1 TH1=0xfd;
89 1 TL1=0xfd;
90 1 TR1=1;//开启T1
91 1 }
92
93 void main()
94 {
95 1 unsigned char key_press;
96 1
97 1 while(1)
98 1 {
99 2 key_press=keyscan();
100 2 switch(key_press)
101 2 {
102 3 case 0:
103 3 spi_init1200();
104 3 break;
105 3 case 1:
106 3 spi_init2400();
107 3 break;
108 3 case 2:
109 3 spi_init4800();
110 3 break;
111 3 case 3:
112 3 spi_init9600();
113 3 break;
114 3 default:
115 3 break;
116 3 }
117 2 while(RI==0);
C51 COMPILER V8.05a SLAVE 09/20/2009 10:01:54 PAGE 3
118 2 }
119 1 }
120
121 void receive() interrupt 4
122 {
123 1 RI=0;
124 1 P2=SBUF;
125 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 182 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -