📄 ml-330.lst
字号:
C51 COMPILER V7.50 ML_330 12/11/2007 10:19:45 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE ML_330
OBJECT MODULE PLACED IN ML-330.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE ML-330.C BROWSE DEBUG OBJECTEXTEND
line level source
1
2 #include "c8051f330.h"
3 #include "uart.h"
4 //#include "ml-330.h"
5
6
7 char ch,rxch;
8
9 unsigned Count1,Count2;
10 char Bufferdata[50];
11
12 void DelayMs(unsigned int n)//延时(n)MS
13 {
14 1 unsigned int i;
15 1 for(;n>0;n--)
16 1 {
17 2 for(i=2211;i>0;i--);
18 2 }
19 1 }
20
21 void SysClkInit(void)//配置系统时钟
22 {
23 1 OSCICN |= 0x83;
24 1 OSCICL = 0x00;//设置片内振荡器为22.1184MHZ
25 1 }
26
27 void WatchDogInit(void)//系统配置
28 {
29 1 PCA0MD&=~0x40;//禁止看门狗定时器
30 1 EA=0;
31 1 }
32 //SPIO增强型串行外设
33 void Spio(void)
34 {
35 1 //从配置
36 1
37 1 SPI0CFG = 0x10;
38 1 SPIEN = 0x01;//Enable the SPIO
39 1 NSSMD0 = 0x00;
40 1 NSSMD1 = 0x00; // 选择4线主方式
41 1
42 1 //主配置
43 1 /* SPI0CFG = 0x70;
44 1 SPIEN = 0x01;//Enable the SPIO
45 1 NSSMD0 = 0x01;
46 1 NSSMD1 = 0x01; // 选择传输方式为3线主方式
47 1 // SPI0CFG &=~ 0x20;
48 1 SPI0CKR = 0x31;//Fck = SYSCL*/
49 1
50 1 }
51
52 void PortInit(void)//端口配置
53 {
54 1
55 1 //P0MDIN = 0x05;//配置输出方式
C51 COMPILER V7.50 ML_330 12/11/2007 10:19:45 PAGE 2
56 1 //P0 = 0xFF;
57 1 P0MDOUT= 0xFA;
58 1 //P0SKIP = 0x00;
59 1
60 1 XBR0 = 0x03;//设置交叉开关 打开spio和uart0端口引脚
61 1 XBR1 = 0x40;
62 1
63 1
64 1 }
65
66
67
68 void SystemInit(void)
69 {
70 1
71 1
72 1 WatchDogInit();//系统配置
73 1 SysClkInit();//配置系统时钟
74 1 PortInit();//端口配置
75 1 Uart0_Init(115200);//串口配置
76 1 Spio();
77 1
78 1
79 1 } //Count1 = 0;
80 void main ()
81 {
82 1 unsigned char BufLen;
83 1 unsigned char buf[20];
84 1 SystemInit();
85 1 IE = 0xD0; //打开中断uart和spi0中断
86 1 while(1)
87 1 {
88 2 /*if(0)
89 2 {
90 2 DelayMs(2);
91 2 SPI0DAT = 0x05;
92 2 SPIEN = 0x00;
93 2 SPIEN = 0x01;
94 2 } */
95 2
96 2 BufLen = UART_Read(0,buf);
97 2 if (BufLen > 0)
98 2 {
99 3 UART_Send(0,buf,BufLen);
100 3 }
101 2 }
102 1 }
103
104 void SPI0_ISR (void) interrupt 6 using 1
105 {
106 1 if(SPIF == 0x01) // 数据传输完毕
107 1 {
108 2 SPIF =0x00;
109 2 rxch = SPI0DAT;
110 2 SPI0DAT = 0x00;
111 2 if (Count1 == 50)
112 2 {
113 3 Count1 = 0;
114 3 }
115 2 Bufferdata[Count1] = rxch;
116 2 Count1 ++;
117 2 // SPI0DAT = 0x05;
C51 COMPILER V7.50 ML_330 12/11/2007 10:19:45 PAGE 3
118 2 }
119 1 if(WCOL == 0x01) //数据传输期间执行写操作 将被忽略
120 1 {
121 2 //SPIEN = 0x00;
122 2 WCOL =0x00;
123 2 //SPIEN = 0x00;
124 2 }
125 1 if(MODF == 0x01)//方式错误标志
126 1 {
127 2 MODF = 0x00;
128 2 //SPI0CFG |= 0x40;//MSTEN = 0x00;
129 2 //SPIEN = 0X00;
130 2 }
131 1 if(RXOVRN == 0x01) //接受溢出标志
132 1 {
133 2 RXOVRN = 0x00;
134 2
135 2 }
136 1
137 1 }
138
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 193 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 56 21
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 + -