📄 1.lst
字号:
C51 COMPILER V7.00 1 04/27/2006 18:35:06 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE 1
OBJECT MODULE PLACED IN 1.OBJ
COMPILER INVOKED BY: C:\安装程序\keil\C51\BIN\C51.EXE 1.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<reg51.h>
2 #include<intrins.h>
3 sbit SCK=P1^0;//将p1口摸仪时钟输出
4 sbit MOSI=P1^1;//将P1.1口模拟主机输出
5 sbit MISO=P1^2;//将p1.2口模拟主机输入
6 sbit CS1=P1^3;//将P1.3模拟片选
7 #define delayNOP();{_nop_();_nop_();_nop_();_nop_();};
8 //---------------------------------------------------------
9 //函数名称:SPISENDBYTE
10 //入口参数:CH
11 //函数功能:发送一个字符
12 //-----------------------------------------------------------
13 void SPISendByte(unsigned char ch)
14 {unsigned char idata n=8;//向SDA上发送一位数据字节,共8位
15 1 SCK=1;//时钟置高
16 1 CS1=0;//选择从机
17 1 while(n--)
18 1 {delayNOP();
19 2 SCK=0;//时钟置低
20 2 if((ch&0x80)==0x80)//若发送的数据等于1,则发送位1
21 2 {MOSI=1;//传送位1
22 3 }
23 2 else
24 2 {MOSI=0;//否则传送0
25 3 }
26 2 delayNOP();
27 2 ch=ch<<1;//数据左移一位
28 2 SCK=1;//时钟置高
29 2 }
30 1 }
31 //-------------------------------------------------------------------
32 //函数名称SPIreceiveByte
33 //返回接收的数据
34 //函数功能:接受1BYTE子程序
35 //--------------------------------------------------------------------
36 unsigned char SPIreceiveByte()
37 {
38 1 unsigned char idata n=8;//从MISO线上读取上一字节,共8位
39 1 unsigned char tdata;
40 1 SCK=1;//时钟为高
41 1 CS1=0;//选择从机
42 1 while(n--)
43 1 { delayNOP();
44 2 SCK=0;//时钟为低
45 2 delayNOP();
46 2 tdata=tdata<<1;//左移一位,或_crol_(temp,1)
47 2 if(MISO==1)
48 2 tdata=tdata|0x01;//若接收到的位为1,则数据的最后的一位置1
49 2 else
50 2 tdata=tdata&0xfe;//否则数据的最后一位置0
51 2 SCK=1;
52 2 }
53 1 return(tdata);
54 1 }
55 //---------------------------------------------------------------------------
C51 COMPILER V7.00 1 04/27/2006 18:35:06 PAGE 2
56 //函数名称:SPIsend-receiveByte
57 //入口参数:CH
58 //返回接收的数据
59 //函数功能:串行输入/输出子程序
60 //----------------------------------------------------------------------------
61 //unsigned char SPIsendByte(unsigned char ch)
62 //{
63 // unsigned char idata n=8;//从MISO线上读取上一数据字节,共8位
64 // unsigned char tdata;
65 //SCK=1;//时钟为高
66 //CS1=0;//选择从机
67 // while(n--)
68 // {delayNOP();
69 // SCK=0;//时钟为低
70 // delayNOP();
71 // tdata=tdata<<1;//左移一位
72 // if(MISO==1)
73 // tdata=tdata|0x01;//若接收到的位为1,则数据的最后一位置1
74 //else
75 // tdata=tdata&0xfe;//否则数据的最后一位置0
76 //if((ch&0x80)==0x80)
77 //{ MOSI=1;//传送位1
78 //}
79 // else
80 // {MOSI=0;//否则传送位0
81 // }
82 // ch=ch<<1;//数据左移1位
83 // SCK=1;
84 // }
85 //return(tdata);
86 //}
87
88
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 87 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- 2
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 + -