📄 max3100.lst
字号:
C51 COMPILER V6.12 MAX3100 01/24/2006 09:00:58 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE MAX3100
OBJECT MODULE PLACED IN MAX3100.OBJ
COMPILER INVOKED BY: C:\Manley\c51\BIN\C51.EXE MAX3100.c DB OE SMALL ROM(LARGE)
stmt level source
1 #include <main.h>
2 #include <max3100.h>
3 #include <timer.h>
4 sbit dout = P1^1; //mcu输出端,spi输入
5 sbit din = P1^2; //mcu输入端,spi输出
6 sbit max3100_sclk = P1^3;
7 sbit max3100_cs = P1^4;
8
9 //sfr16 DPTR = 0x82;
10
11 byte max3100_byt8(byte t_data)
12 {
13 1 byte r_data = 0x00;
14 1 bit c;
15 1 byte i;
16 1 din = 1; //确定din是输入
17 1 max3100_sclk = 0; //清时钟
18 1 for(i=0;i<8;i++)
19 1 {
20 2 r_data <<= 1;
21 2 if((t_data & 0x80) == 0x80)
22 2 {
23 3 dout = 1;
24 3 } //将tx最高位送到mcu发送端
25 2 else if((t_data & 0x80) == 0x00)
26 2 {
27 3 dout = 0;
28 3 }
29 2 max3100_sclk = 1; //确定时钟高
30 2 c = din; //时钟变高读数据
31 2 if(c)
32 2 {
33 3 r_data |= 0x01;
34 3 }
35 2 else
36 2 {
37 3 r_data &= 0xfe;
38 3 }
39 2 t_data <<= 1;
40 2 max3100_sclk = 0; //清时钟
41 2 }
42 1 return(r_data);
43 1 }
44
45
46 word max3100_input(byte tx1,byte tx2)
47 {
48 1 word rx_data;
49 1 byte rx1,rx2;
50 1
51 1 //if(max3100_cs == 0x01)
52 1 //{
53 1 max3100_cs = 0;
54 1 //max3100_cs2 = 1;
55 1 //}
C51 COMPILER V6.12 MAX3100 01/24/2006 09:00:58 PAGE 2
56 1 /*else if(max3100_cs == 0x02)
57 1 {
58 1 max3100_cs1 = 1;
59 1 max3100_cs2 = 0;
60 1 }*/
61 1 rx1 = max3100_byt8(tx1);
62 1 rx2 = max3100_byt8(tx2);
63 1
64 1 max3100_cs = 1;
65 1
66 1 DPH = rx1;
67 1 DPL = rx2;
68 1 rx_data = DPTR;
69 1 return(rx_data);
70 1 }
71
72
73 void init_max3100(void)
74 {
75 1 word rd_data;
76 1 max3100_sclk = 0; //清时钟
77 1 EX1 = 0;
78 1 //rd_data = max3100_input(0xc4,0x0b); //3.6864write configuration fifo使能 接收中断允许 1位停止位 8位数据
-位 无奇偶校验 9600dps
79 1 // rd_data = max3100_input(0xc4,0x0c,MAX3100_LED_CS); //3.6864write configuration fifo使能 接收中断允许 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -