📄 epm240.lst
字号:
C51 COMPILER V7.50 EPM240 08/22/2008 20:40:15 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE EPM240
OBJECT MODULE PLACED IN epm240.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE epm240.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 //万能板模块子函数
2 //使用时确保万能板模块上的EPM240T100已经通过JTAG口下入POF格式的文件
3 //否则可能导致其他模块不能工作,原因为单片机的数据总线不能为高阻
4 //QQ:19089667 胡玉贵
5 #include "epm240.h"
6 #include "LCD.h"
7 unsigned char tmp=0;
8 unsigned char bdata adc1; //定义adc变量在位寻址数据区域
9 sbit adclow1=adc1^0;
10 /*************************************************
11
12 Function: void TLC549_CS(unsigned char d);
13
14 Description: 设置CS管脚电平
15
16 Calls: // 被本函数调用的函数清单
17
18 Called By: // 调用本函数的函数清单
19
20 Table Accessed: // 被访问的表(此项仅对于牵扯到数据库操作的程序)
21
22 Table Updated: // 被修改的表(此项仅对于牵扯到数据库操作的程序)
23
24 Input: d=1时,CS输出为1
25
26 // 用、取值说明及参数间关系。
27
28 Output: // 对输出参数的说明。
29
30 Return: //无
31
32 Others: // 其它说明
33
34 *************************************************/
35 void TLC549_CS(unsigned char d)
36 {
37 1 if(d==0)
38 1 AD_OUT=tmp&( ~(1<<0) );
39 1 else
40 1 AD_OUT=tmp|(1<<0);
41 1 }
42
43 void TLC549_SCLK(unsigned char d)
44 {
45 1 if(d==0)
46 1 AD_OUT=tmp&(~(1<<1));
47 1 else
48 1 AD_OUT=tmp|(1<<1);
49 1 }
50
51 unsigned char TLC549_DOUT(void)
52 {
53 1 if(AD_IN&8)
54 1 return 1;
55 1 else
C51 COMPILER V7.50 EPM240 08/22/2008 20:40:15 PAGE 2
56 1 return 0;
57 1 }
58
59 void DA_SDATA(unsigned char d)
60 {
61 1 if(d==0)
62 1 AD_OUT=tmp&(~(1<<4));
63 1 else
64 1 AD_OUT=tmp|(1<<4);
65 1 //Delay(10);
66 1 }
67
68
69
70 void DA_CLK(unsigned char d)
71 {
72 1 if(d==0)
73 1 AD_OUT=tmp&(~(1<<5));
74 1 else
75 1 AD_OUT=tmp|(1<<5);
76 1 //Delay(10);
77 1 }
78
79 void DA_LOAD(unsigned char d)
80 {
81 1 if(d==0)
82 1 AD_OUT=tmp&(~(1<<6));
83 1 else
84 1 AD_OUT=tmp|(1<<6);
85 1 //Delay(10);
86 1 }
87
88 void DA_LDAC(unsigned char d)
89 {
90 1 if(d==0)
91 1 AD_OUT=tmp&(~(1<<7));
92 1 else
93 1 AD_OUT=tmp|(1<<7);
94 1 }
95
96 /*************************************************
97
98 Function: unsigned char adconvert(void);
99
100 Description: TCL549的采样函数,程序返回采样到的电压值范围是:(0~255)
101
102 Calls: // 被本函数调用的函数清单
103
104 Called By: // 调用本函数的函数清单
105
106 Table Accessed: // 被访问的表(此项仅对于牵扯到数据库操作的程序)
107
108 Table Updated: // 被修改的表(此项仅对于牵扯到数据库操作的程序)
109
110 Input: 无// 输入参数说明,包括每个参数的作
111
112 // 用、取值说明及参数间关系。
113
114 Output: // 对输出参数的说明。
115
116 Return: 返回电压值,范围是:(0~255)
117
C51 COMPILER V7.50 EPM240 08/22/2008 20:40:15 PAGE 3
118 Others: // 其它说明
119
120 *************************************************/
121 unsigned char EPM240_AdConvert(void)
122 { unsigned char i;
123 1 TLC549_CS(1);
124 1 TLC549_CS(0);
125 1 //adcs=1;
126 1 //adcs=0;
127 1 TLC549_SCLK(0);
128 1 //adclk=0;
129 1 for(i=0;i<8;i++)
130 1 {
131 2 TLC549_SCLK(1);
132 2 //adclk=1;
133 2 adclow1=TLC549_DOUT();
134 2 //adclk=0;
135 2 TLC549_SCLK(0);
136 2 if(i<7) adc1=adc1<<1;
137 2 }
138 1 TLC549_SCLK(0);
139 1 //adclk=0;
140 1 TLC549_CS(1);
141 1 //adcs=1;
142 1 return(adc1);
143 1 }
144
145
146 void dac_tlc5620(unsigned char send_char)
147 {
148 1 unsigned char i;
149 1 DA_LDAC(0);
150 1 DA_LOAD(1);//load=1;
151 1 DA_CLK(1);DA_SDATA(1);DA_CLK(0);//sclk=1;sdata=1;sclk=0;
152 1 DA_CLK(1);DA_SDATA(1);DA_CLK(0);//sclk=1;sdata=1;sclk=0;
153 1 DA_CLK(1);DA_SDATA(1);DA_CLK(0);//sclk=1;sdata=1;sclk=0;
154 1 for(i=0;i<8;i++)
155 1 {
156 2 DA_CLK(1);//sclk=1;
157 2 if(send_char&0x80)
158 2 DA_SDATA(1);//sdata=1;
159 2 else
160 2 DA_SDATA(0);//sdata=0;
161 2 DA_CLK(0);//sclk=0;
162 2 send_char=send_char<<1;
163 2 }
164 1 DA_LOAD(0);//load=0;
165 1 DA_LOAD(1);//load=1;
166 1
167 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 257 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 1 ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
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 + -