📄 从机.lst
字号:
C51 COMPILER V8.05a 从籣 04/29/2009 14:33:20 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE 从籣
OBJECT MODULE PLACED IN 从机.OBJ
COMPILER INVOKED BY: D:\新建文件夹\keil\C51\BIN\C51.EXE 从机.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #include<intrins.h>
3 #define uchar unsigned char
4 #define uint unsigned char
5 uchar shou;
6
7 sbit mi=P1^0; //从机接收主机发送接口
8 sbit mo=P1^1; //从机发送主机接收接口
9 sbit sclk=P1^2; //主从机时钟同步时钟信号
10 sbit ss=P1^3; //从机选择控制位
11
12
13
14 /**********简单的延时函数***************/
15 void delay(uchar z)
16 {
17 1 uchar a;
18 1 for(;z>0;z--)
19 1 for(a=5;a>0;a--);
20 1
21 1 }
22
23 /**********从机接收数据并发送数据函数************/
24 void shoufa(uchar date)
25 {
26 1
27 1 uchar a,b;
28 1 while(ss==0) //检测是否有数据的传输
29 1 {
30 2 /*确认主机要发送数据后进行接收****/
31 2 while(sclk==1); //检测同步时钟信号
32 2 //确定时钟信号置低
33 2 for(a=0;a<8;a++)
34 2 {
35 3 while(sclk==0) //时钟置低,准备发数据
36 3 {
37 4
38 4 delay(0); //等待数据的稳定
39 4 b=mi;
40 4 P2=b;
41 4 if(b==1)
42 4 shou|=0x01;
43 4 while(sclk==0); //数据接收完成一位之后等待发送数据
44 4 }
45 3
46 3 if(a<7)
47 3 {
48 4 shou<<=1;
49 4 }
50 3
51 3 while(sclk==1)
52 3 {
53 4 date<<=1;
54 4 mo=CY; //输出数据的高位
55 4 while(sclk==1);
C51 COMPILER V8.05a 从籣 04/29/2009 14:33:20 PAGE 2
56 4 }
57 3 }
58 2 }
59 1 }
60 /***********主程序**************/
61 void main()
62 {
63 1
64 1 P1=0xff;
65 1 while(1)
66 1 {
67 2 shoufa(0xff);
68 2 P3=shou;
69 2 }
70 1
71 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 99 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
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 + -