📄 spi.lst
字号:
C51 COMPILER V8.02 SPI 03/23/2009 10:26:45 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE SPI
OBJECT MODULE PLACED IN SPI.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe SPI.c DB OE
line level source
1 #include <c8051f020.h>
2 #include <stdio.h>
3 #include <intrins.h>
4
5 unsigned int Count1msInc;
6 unsigned int AT450XXPageAddr;
7
8 void SYSCLK_Init (void);
9 void PORT_Init (void);
10 void SPI0_Init (void);
11 void Timer0_Init (void);
12
13 #define SYSCLK 11059200
14 #define DF_RESET P4&=~0x10; P4|=0x10; // AT45DB081复位
15 #define DF_RDY_BUSY P4|=0x20; while(!(P4&0x20)); // 等待AT45DB081准备好
16 #define DF_CHIP_SELECT P4&=~0x4; // AT45DB081片选开
17 #define DF_CHIP_NOSELECT P4|=0x4; // AT45DB081片选关
18 #define RAM_CHIP_SELECT_BANK0 ES0=1;P4 = 0xF4;
19 #define RAM_CHIP_SELECT_BANK1 P4 = 0xF5;
20 #define BUFFER_1 0x00 // buffer 1
21 #define BUFFER_2 0x01 // buffer 2
22 #define BUFFER_1_WRITE 0x84 // buffer 1 write
23 #define BUFFER_2_WRITE 0x87 // buffer 2 write
24 #define BUFFER_1_READ 0x54 // buffer 1 read (change to 0xD4 for SPI mode 0,3)
25 #define BUFFER_2_READ 0x56 // buffer 2 read (change to 0xD6 for SPI mode 0,3)
26 #define B1_TO_PAGE_WITH_ERASE 0x83 // buffer 1 to main memory page program with built-in erase
27 #define B2_TO_PAGE_WITH_ERASE 0x86 // buffer 2 to main memory page program with built-in erase
28 #define B1_TO_PAGE_WITHOUT_ERASE 0x88 // buffer 1 to main memory page program without built-in erase
29 #define B2_TO_PAGE_WITHOUT_ERASE 0x89 // buffer 2 to main memory page program without built-in erase
30 #define PAGE_PROG_THROUGH_B1 0x82 // main memory page program through buffer 1
31 #define PAGE_PROG_THROUGH_B2 0x85 // main memory page program through buffer 2
32 #define AUTO_PAGE_REWRITE_THROUGH_B1 0x58 // auto page rewrite through buffer 1
33 #define AUTO_PAGE_REWRITE_THROUGH_B2 0x59 // auto page rewrite through buffer 2
34 #define PAGE_TO_B1_COMP 0x60 // main memory page compare to buffer 1
35 #define PAGE_TO_B2_COMP 0x61 // main memory page compare to buffer 2
36 #define PAGE_TO_B1_XFER 0x53 // main memory page to buffer 1 transfer
37 #define PAGE_TO_B2_XFER 0x55 // main memory page to buffer 2 transfer
38 #define STATUS_REGISTER 0x57
39 #define MAIN_MEMORY_PAGE_READ 0x52 // main memory page read (change to 0xD2 for SPI mode 0,3)
40
41 void SendSPIByte(unsigned char ch)
42 {
43 1 SPIF = 0;
44 1 SPI0DAT = ch;
45 1 while (SPIF == 0); // 等待写结束
46 1 }
47 unsigned char GetSPIByte(void)
48 {
49 1 SPIF = 0;
50 1 SPI0DAT = 0;
51 1 while (SPIF == 0);
52 1 return SPI0DAT; // 等待读结束
53 1 }
54 //启用缓存1读
55 void FlashBuffer1Read(unsigned int star_addr,unsigned int len, unsigned char *buffer) //从缓冲区1的指定位
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -