📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 02/07/2006 13:40:44 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\ProgramFiles\Keil\C51\BIN\c51.exe main.c DB OE
stmt level source
1 //main.c
2 #include <E:\ProgramFiles\SiLabs\MCU\IDEfiles\C51\Inc\c8051F310.h>
3 #include <intrins.h>
4 #define NOPP _nop_();_nop_();_nop_();_nop_()
5 #define NOP NOPP;NOPP;NOPP
6
7
8 //------------------数据定义--------------------------------------------
9 //显示码
10 #include "led_code.c"
11 //char code led[10] = {0x14,0xD7,0x4C,0x45,0x87,0x25,0x24,0x57,0x04,0x05};
12 //显示缓冲区
13 char data num[3][4]= {
14 {'0'-32,'1'-32,'2'-32,'3'-32},
15 {'3'-32,'4'-32,'5'-32,'6'-32},
16 {'6'-32,'7'-32,'8'-32,'9'-32}
17 };
18 //通信缓冲区
19 char data numBuff[3][4] = {0};
20 //74HC373使能信号
21 sbit cs373 = P3^4;
22 //数码管片选信号
23 char data select;
24 //***************
25
26
27 //------------------函数定义---------------------------------------------
28 //初始化函数
29 void init()
30 {
31 1
32 1 XBR0 = 0x02;
33 1 SPI0CFG = 0x00;
34 1 SPIEN = 1;
35 1
36 1 ////////////////
37 1 ESPI0 = 1;
38 1 EA = 1;
39 1 EA = 1;
40 1 NOP;
41 1 NOP;
42 1 XBR1 = 0x40;
43 1 cs373 = 0;
44 1 }
45
46 //SPI中断函数
47 void spi_int() interrupt 6
48 {
49 1 static unsigned char BuffRowCount = 0;
50 1 static unsigned char BuffLineCount = 0;
51 1 char ct;
52 1 if(_testbit_(SPIF))
53 1 {
54 2 ct = SPI0DAT;
55 2 if(ct == '\0')
C51 COMPILER V7.06 MAIN 02/07/2006 13:40:44 PAGE 2
56 2 {
57 3 for(BuffRowCount=0;BuffRowCount<3;BuffRowCount++)
58 3 for(BuffLineCount=0;BuffLineCount<4;BuffLineCount++)
59 3 num[BuffRowCount][BuffLineCount] =
60 3 numBuff[BuffRowCount][BuffLineCount]-32;
61 3 BuffRowCount=0;
62 3 BuffLineCount=0;
63 3 return;
64 3 }
65 2 numBuff[BuffRowCount][BuffLineCount] = ct;
66 2 if(BuffLineCount==3)
67 2 {
68 3 BuffLineCount=0;
69 3 if(BuffRowCount==2)
70 3 BuffRowCount=0;
71 3 else BuffRowCount++;
72 3 }
73 2 else BuffLineCount++;
74 2
75 2 }
76 1
77 1 }
78
79 //延时函数
80 void delay(unsigned int delayor)
81 {
82 1 unsigned int i;
83 1 unsigned char j;
84 1 for(j=0;j<235;j++)
85 1 {
86 2 _nop_();_nop_();
87 2 _nop_();_nop_();
88 2 }
89 1 _nop_();
90 1 _nop_();
91 1 _nop_();
92 1 delayor--;
93 1 for(i=0;i<delayor;i++)
94 1 {
95 2 _nop_();
96 2 for(j=0;j<235;j++)
97 2 {
98 3 _nop_();_nop_();
99 3 _nop_();_nop_();
100 3 _nop_();_nop_();
101 3 _nop_();_nop_();
102 3 }
103 2 }
104 1 }
105
106
107 //主函数
108 main()
109 {
110 1 unsigned char i;
111 1 init();
112 1 select = 0xDD;
113 1 while(1)
114 1 {
115 2 for(i=0;i<4;i++)
116 2 {
117 3 P2 = char_code[num[0][i]];
C51 COMPILER V7.06 MAIN 02/07/2006 13:40:44 PAGE 3
118 3 cs373 = 1;
119 3 NOP;
120 3 cs373 = 0;
121 3 P2 = char_code[num[1][i]];
122 3 P1 = char_code[num[2][i]];
123 3 delay(5);
124 3 P0 = select;
125 3 select = _crol_(select,1);
126 3 }
127 2 }
128 1 }
129
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 346 ----
CONSTANT SIZE = 59 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 27 ----
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 + -