📄 ht1380.lst
字号:
C51 COMPILER V8.02 HT1380 04/18/2009 18:48:44 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE HT1380
OBJECT MODULE PLACED IN HT1380.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE HT1380.c BROWSE DEBUG OBJECTEXTEND
line level source
1 //**********************************************
2 //本程序来自《51单片机及其C语言程序开发实例》
3 //**********************************************
4 #include <reg51.h>
5 #include "HT1380.h"
6
7
8 //极短延时函数:nNop()
9 void nNop(uchar x)
10 {
11 1 for(;x>0;x--);
12 1 }
13
14 //向SPI写一字节数据函数:SPI_WriteByte()
15 void SPI_WriteByte(uint x)
16 {
17 1 uchar i;
18 1 uint temp = 0x01;
19 1 SetPinDIO(0);
20 1 for(i=0;i<8;i++)
21 1 {
22 2 PinDIO = x & temp;
23 2 SetSCLK(1);
24 2 temp = temp << 1;
25 2 SetSCLK(0);
26 2 }
27 1 }
28
29 //向SPI读一字节数据函数:SPI_ReadByte()
30 uint SPI_ReadByte(void)
31 {
32 1 uchar i;
33 1 uint temp = 0x00;
34 1 SetPinDIO(1);
35 1 for(i=0;i<8;i++)
36 1 {
37 2 SetSCLK(1);
38 2 temp = (temp >> 1) | PinDIO;
39 2 SetSCLK(0);
40 2 }
41 1 return(temp);
42 1 }
43
44 //写命令加写数据函数:WriteByte()
45 void WriteByte(uint x, uint y)
46 {
47 1 uchar i,j;
48 1 SetPinDIO(0);
49 1 for(i=0;i<8;i++)
50 1 {
51 2 PinDIO = x & 0x01;
52 2 SetSCLK(1);
53 2 x >>= 1;
54 2 SetSCLK(0);
55 2 }
C51 COMPILER V8.02 HT1380 04/18/2009 18:48:44 PAGE 2
56 1 for(j=0;j<8;j++)
57 1 {
58 2 PinDIO = y & 0x01;
59 2 SetSCLK(1);
60 2 y >>= 1;
61 2 SetSCLK(0);
62 2 }
63 1 }
64
65 //写命令加读数据函数:ReadByte()
66 uint ReadByte(uint x)
67 {
68 1 uchar i,j;
69 1 uint temp = 0x00;
70 1 uint temp1;
71 1 SetPinDIO(0);
72 1 for(i=0;i<8;i++)
73 1 {
74 2 PinDIO = x & 0x01;
75 2 SetSCLK(1);
76 2 x >>= 1;
77 2 SetSCLK(0);
78 2 }
79 1 SetPinDIO(1);
80 1 for(j=0;j<8;j++)
81 1 {
82 2 SetSCLK(1);
83 2 temp1 = PinDIO;
84 2 temp1 <<= j;
85 2 temp = temp | temp1;
86 2 SetSCLK(0);
87 2 }
88 1 return(temp);
89 1 }
90
91
92 //使能(启动)时钟函数:StartClock()
93 void StartClock(void)
94 {
95 1 SetREST(0);
96 1 nNop(1);
97 1 SetREST(1);
98 1 WriteByte(0x8e,0x00); //置WP = 0
99 1 SetREST(0);
100 1 nNop(1);
101 1 SetREST(1);
102 1 WriteByte(0x80,0x00); //置CH = 0
103 1 SetREST(0);
104 1 }
105
106 //单字节模式对HT1380写数据函数:HT1380_Single_Write()
107 void HT1380_Single_Write(uint RegNum, uint Data)
108 {
109 1 uint Cmd;
110 1 Cmd = 0x80 | (RegNum << 1);
111 1 //StartClock();
112 1 SetREST(1);
113 1 WriteByte(Cmd,Data);
114 1 SetREST(0);
115 1 //nNop(10);
116 1 }
117
C51 COMPILER V8.02 HT1380 04/18/2009 18:48:44 PAGE 3
118 //单字节模式对HT1380读数据函数:HT1380_Single_Read()
119 uint HT1380_Single_Read(uint RegNum)
120 {
121 1 uint Data;
122 1 uint Cmd;
123 1 Cmd = 0x81 | (RegNum << 1);
124 1 SetREST(1);
125 1 Data = ReadByte(Cmd);
126 1 SetREST(0);
127 1 return(Data);
128 1 }
129
130 //多字节模式对HT1380写数据函数:HT1380_Burst_Write()
131 void HT1380_Burst_Write(uint Data_Array[])
132 {
133 1 uint i,j,k;
134 1 uint Cmd = 0xbe;
135 1 uint temp;
136 1 SetPinDIO(0);
137 1 SetREST(1);
138 1 for(i=0;i<8;i++)
139 1 {
140 2 PinDIO = Cmd & 0x01;
141 2 SetSCLK(1);
142 2 Cmd >>= 1;
143 2 SetSCLK(0);
144 2 }
145 1 for(j=0;j<8;j++)
146 1 {
147 2 temp = Data_Array[j];
148 2 for(k=0;k<8;k++)
149 2 {
150 3 PinDIO = temp & 0x01;
151 3 SetSCLK(1);
152 3 temp >>= 1;
153 3 SetSCLK(0);
154 3 }
155 2 }
156 1 SetREST(0);
157 1 }
158
159
160 //多字节模式对HT1380读数据函数:HT1380_Burst_Read()
161 void HT1380_Burst_Read(uint Data_Array[])
162 {
163 1 uint i,j,k;
164 1 uint Cmd = 0xbf;
165 1 uint temp;
166 1 SetPinDIO(0);
167 1 SetREST(1);
168 1 for(i=0;i<8;i++)
169 1 {
170 2 PinDIO = Cmd & 0x01;
171 2 SetSCLK(1);
172 2 Cmd >>= 1;
173 2 SetSCLK(0);
174 2 }
175 1 SetPinDIO(1);
176 1 for(j=0;j<8;j++)
177 1 {
178 2 for(k=0;k<8;k++)
179 2 {
C51 COMPILER V8.02 HT1380 04/18/2009 18:48:44 PAGE 4
180 3 SetSCLK(1);
181 3 temp = PinDIO;
182 3 temp >>= k;
183 3 Data_Array[j] |= temp;
184 3 SetSCLK(0);
185 3 }
186 2 }
187 1 SetREST(0);
188 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 543 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 16
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 + -