本帖最后由 tianxj01 于 2018-6-22 16:10 编辑
没问题啊。看下面程序
- #include "N76E003.h"
- #include "SFR_Macro.h"
- #include "Function_define.h"
- #include "Common.h"
- #include "Delay.h"
- #define SPI_CLOCK 1
- //-----------------------------------------------------------------------------------------------------------
- void SPI_Initial(void)
- {
- #if SPI_CLOCK == 0
- clr_SPR1;
- clr_SPR0;
- #elif SPI_CLOCK == 1
- clr_SPR1;
- set_SPR0;
- #elif SPI_CLOCK == 2
- set_SPR1;
- clr_SPR0;
- #elif SPI_CLOCK == 3
- set_SPR1;
- set_SPR0;
- #endif
- /* /SS General purpose I/O ( No Mode Fault ) */
- set_DISMODF;
- clr_SSOE;
- /* SPI in Master mode */
- set_MSTR;
- /* MSB first */
- clr_LSBFE;
- clr_CPOL;
- clr_CPHA;
- /* Enable SPI function */
- set_SPIEN;
- }
- //-----------------------------------------------------------------------------------------------------------
- void SPI_W_D(char DATA)
- {
- SPDR = DATA;
- while((SPSR&0x80)==0x00);
- clr_SPIF;
- }
- //-----------------------------------------------------------------------------------------------------------
- void main(void)
- {
- /* Note
- MCU power on system clock is HIRC (22.1184MHz), so Fsys = 22.1184MHz
- */
-
- Set_All_GPIO_Quasi_Mode;
- SPI_Initial();
- while(1){ SPI_W_D(0x55);}
- }
- //-----------------------------------------------------------------------------------------------------------
时钟4MHz,重复间隔大概2us多点。
|