📄 spi_master.lst
字号:
C51 COMPILER V8.08 SPI_MASTER 02/28/2008 14:14:50 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE SPI_MASTER
OBJECT MODULE PLACED IN spi_master.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE spi_master.c DEBUG OBJECTEXTEND
line level source
1 /* Megawin "SPI process" demo code
2 * Edited by: Peter Lin
3 * Mail: peter@megawin.com.tw
4 * tel:03-5750050
5 */
6
7 /*include megawin header file */
8 #include "MG84FL54.h"
9
10
11 /**
12 * FUNCTION_PURPOSE: This file set up spi in master mode
13 * FUNCTION_INPUTS: P1.6(MISO) serial input
14 * FUNCTION_OUTPUTS: P1.5(MOSI) serial output
15 * FUNCTION_OUTPUTS: P1.4(/SS)=0 slave selected/=1 master selected
16 */
17 void init_spi(void)
18 {
19 1 // CKCON |= 0x28; /* If Crystal = 12Mhzs */
20 1 P2M0 = 0x00; /* Quasi-bidirection */
21 1 P2M1 = 0x00;
22 1 SPICTL = 0x00; /*clear SPI Control register */
23 1 SPICTL |= 0xC0; /*SSIG = 0 ,SPEN = 1,Slave Mode without SS Pin*/
24 1 P2_4=0; /* SS Pin pill low */
25 1 SPICTL |= 0x02; /* Fclk Periph/8 */
26 1 SPICTL &= ~0x08; /* CPOL=0; transmit mode example */
27 1 SPICTL |= 0x00; /* CPHA=1; transmit mode example */
28 1 AUXR |= 0x80; /* enable spi interrupt */
29 1 SPICTL |= 0x40; /* run spi */
30 1 AUXIE |= 0x01; /* Enable SPI Interrupt */
31 1 }
32
33
34
35 /**
36 * FUNCTION_PURPOSE:interrupt
37 * FUNCTION_INPUTS: void
38 * FUNCTION_OUTPUTS: transmit_complete is software transfert flag
39 */
40 void it_SPI(void) interrupt 8 /* interrupt address is 0x0043 */
41 {
42 1 switch ( SPISTAT & 0xC0) /* read and clear spi status register */
43 1 {
44 2 case 0x80:
45 2 /* TO DO */
46 2 SPISTAT = 0xC0; //clear spistat flag
47 2 break;
48 2
49 2 case 0x10:
50 2 /* put here for mode fault tasking */
51 2 break;
52 2
53 2 case 0x40:
54 2 /* put here for overrun tasking */
55 2 break;
C51 COMPILER V8.08 SPI_MASTER 02/28/2008 14:14:50 PAGE 2
56 2 }
57 1 SPISTAT |= 0xC0; // clear SPIF Flag
58 1 }
59
60
61
62 void main(void)
63 {
64 1 init_spi();
65 1
66 1 EA=1; /* enable interrupts */
67 1
68 1 while(1)
69 1 {
70 2
71 2
72 2
73 2 SPIDAT = 0xAA; /* echo data to master */
74 2
75 2
76 2
77 2 }
78 1 }
79
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 61 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -