📄 cd4094.lst
字号:
C51 COMPILER V4.01, CD4094 20/08/04 10:59:13 PAGE 1
DOS C51 COMPILER V4.01, COMPILATION OF MODULE CD4094
OBJECT MODULE PLACED IN D:\YANTEST\NEWREAD\CH451S\CD4094.OBJ
COMPILER INVOKED BY: D:\WAVE6000\COMP51\C51.EXE D:\YANTEST\NEWREAD\CH451S\CD4094.C DB SB OE
stmt level source
1 /*
2 *****************************
3 **filename:CD4094.C
4 *****************************
5 */
6 #include "CD4094.h"
7 #include "hardware.h"
8
9
10 static unsigned char Value1_4094=0xff;
11 static unsigned char Value2_4094=0xff;
12
13 void Set1BitMask4094(unsigned char BitMask);
14 void Clear1BitMask4094(unsigned char BitMask);
15
16 void Set2BitMask4094(unsigned char BitMask);
17 void Clear2BitMask4094(unsigned char BitMask);
18
19 /////////////////////////////////
20 //4094_SPI WRITE
21 void Write4094(unsigned char ch)
22 {
23 1 unsigned char xdata i;
24 1
25 1 WatchDog();
26 1
27 1 NOP;NOP;NOP;
28 1 NOP;NOP;NOP;
29 1 for(i=0;i<8;i++)
30 1 {
31 2 WatchDog();
32 2
33 2 if(ch&0x80)Set573Bit(SI_4094); //SI_4094=1;
34 2 else Clear573Bit(SI_4094);//SI_4094=0;
35 2 NOP;NOP;NOP;
36 2 NOP;NOP;NOP;
37 2 Clear573Bit(SCK_4094); //SCK_4094=0;
38 2 NOP;NOP;NOP;
39 2 NOP;NOP;NOP;
40 2 Set573Bit(SCK_4094); //SCK_4094=1;
41 2 ch = (ch<<1);
42 2 NOP;NOP;NOP;
43 2 NOP;NOP;NOP;
44 2 }
45 1 NOP;NOP;NOP;
46 1 NOP;NOP;NOP;
47 1 }
48
49
50 void Set1BitMask4094(unsigned char BitMask)
51 {
52 1 WatchDog();
53 1
54 1 HC138_YN=0;
55 1
56 1 Value1_4094|=BitMask;
57 1 Write4094(Value1_4094);
58 1
59 1 STB1_CD4094=1;
C51 COMPILER V4.01, CD4094 20/08/04 10:59:13 PAGE 2
60 1 NOP;NOP;
61 1 }
62
63 void Clear1BitMask4094(unsigned char BitMask)
64 {
65 1 WatchDog();
66 1
67 1 HC138_YN=0;
68 1
69 1 Value1_4094&=(~BitMask);
70 1 Write4094(Value1_4094);
71 1
72 1 STB1_CD4094=1;
73 1 NOP;NOP;
74 1 }
75
76 void Set2BitMask4094(unsigned char BitMask)
77 {
78 1 WatchDog();
79 1
80 1 HC138_YN=0;
81 1
82 1 Value2_4094|=BitMask;
83 1 Write4094(Value2_4094);
84 1
85 1 STB2_CD4094=1;
86 1 NOP;NOP;
87 1 }
88
89 void Clear2BitMask4094(unsigned char BitMask)
90 {
91 1 WatchDog();
92 1
93 1 HC138_YN=0;
94 1
95 1 Value2_4094&=(~BitMask);
96 1 Write4094(Value2_4094);
97 1
98 1 STB2_CD4094=1;
99 1 NOP;NOP;
100 1 }
101
102
103 void SelectPlayAddr(unsigned char addr)
104 {
105 1 WatchDog();
106 1
107 1 HC138_YN=0;
108 1
109 1 Write4094(addr|0X01);
110 1
111 1 STB2_CD4094=1;
112 1 NOP;NOP;
113 1 }
114
115
116 void SelectChip(unsigned char ch)
117 {
118 1 WatchDog();
119 1
120 1 switch(ch)
121 1 {
122 2 case SEL_X5045 :
123 2 Set573Bit(AT45LIB_CS|AT45REC_CS);
124 2 Set1BitMask4094(CH451_CS);
125 2 Clear1BitMask4094(DS1302_CS);
C51 COMPILER V4.01, CD4094 20/08/04 10:59:13 PAGE 3
126 2 X5045_CS=0;
127 2 break;
128 2 case SEL_AT45LIB:
129 2 X5045_CS=1;
130 2 Set573Bit(AT45REC_CS);
131 2 Set1BitMask4094(CH451_CS);
132 2 Clear1BitMask4094(DS1302_CS);
133 2 Clear573Bit(AT45LIB_CS);
134 2 break;
135 2 case SEL_AT45REC:
136 2 X5045_CS=1;
137 2 Set573Bit(AT45LIB_CS);
138 2 Set1BitMask4094(CH451_CS);
139 2 Clear1BitMask4094(DS1302_CS);
140 2 Clear573Bit(AT45REC_CS);
141 2 break;
142 2 case SEL_CH451:
143 2 X5045_CS=1;
144 2 Set573Bit(AT45LIB_CS|AT45REC_CS);
145 2 Clear1BitMask4094(CH451_CS|DS1302_CS);
146 2 break;
147 2 case SEL_DS1302:
148 2 X5045_CS=1;
149 2 Set573Bit(AT45LIB_CS|AT45REC_CS);
150 2 Set1BitMask4094(CH451_CS);
151 2 Set1BitMask4094(DS1302_CS);
152 2 break;
153 2 case SEL_NULL:
154 2 X5045_CS=1;
155 2 Set573Bit(AT45LIB_CS|AT45REC_CS);
156 2 Set1BitMask4094(CH451_CS);
157 2 Clear1BitMask4094(DS1302_CS);
158 2 break;
159 2 default:
160 2 X5045_CS=1;
161 2 Set573Bit(AT45LIB_CS|AT45REC_CS);
162 2 Set1BitMask4094(CH451_CS);
163 2 Clear1BitMask4094(DS1302_CS);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -