📄 spi_receive.lst
字号:
C51 COMPILER V8.05a SPI_RECEIVE 05/08/2009 16:18:34 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE SPI_RECEIVE
OBJECT MODULE PLACED IN SPI_Receive.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SPI_Receive.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "reg52.h"
2
3 #define uchar unsigned char
4 #define uint unsigned int
5
6 //-------------------------//
7 sbit SPISCLK =P1^0;
8 sbit MOSI =P1^1;
9 sbit MISO =P1^2;
10 sbit CS =P1^3;
11
12 sbit P20=P2^0; //选通数码管
13 sbit P21=P2^1;
14
15 //------------------------//
16
17 void Nop()
18 {
19 1 ;
20 1 }
21 void delay(uchar t)
22 {
23 1 while(t--){;}
24 1 }
25
26 uchar SPI_Receive(void)
27 {
28 1 uchar i,dat=0,temp;
29 1 bit flag;
30 1 SPISCLK=1;
31 1 MISO=1;
32 1 CS=0;//选中器件
33 1 Nop();
34 1 Nop();
35 1 for(i=0;i<8;i++)
36 1 {
37 2 SPISCLK=1;
38 2 Nop();
39 2 Nop();
40 2 Nop();
41 2 SPISCLK=0;
42 2
43 2 Nop();
44 2 Nop();
45 2
46 2 flag=MISO;
47 2 if(flag) temp=0x01;
48 2 else temp=0x00;
49 2 dat=(dat<<1);
50 2 dat=(dat|temp);
51 2 }
52 1
53 1 CS=1;
54 1 SPISCLK=1;
55 1 return dat;
C51 COMPILER V8.05a SPI_RECEIVE 05/08/2009 16:18:34 PAGE 2
56 1 }
57
58 void main()
59 {
60 1 uchar udat;
61 1 uchar i=0;
62 1 uchar code table[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
63 1 0x7F,0x6F};
64 1 // P20=0;
65 1 // P21=1;
66 1 while(1)
67 1 {
68 2 udat=SPI_Receive();
69 2 P2=0xfe;
70 2 P0=table[udat%10];
71 2 for(i=0;i<200;i++)
72 2 delay(500);
73 2
74 2 P2=0xfd;
75 2 P0=table[udat/10];
76 2 for(i=0;i<200;i++)
77 2 delay(500);
78 2 }
79 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 134 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -