📄 10.3.lst
字号:
C51 COMPILER V6.20c 10_3 09/02/2001 15:03:44 PAGE 1
C51 COMPILER V6.20c, COMPILATION OF MODULE 10_3
OBJECT MODULE PLACED IN 10.3.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 10.3.c DEBUG OBJECTEXTEND
stmt level source
1 #include<absacc.h> //绝对地址访问函数
2 #include<math.h> //各种不同类型的数学函数
3 #include<reg51.h>
4 #define uchar unsigned char
5
6 sbit P1_0=P1^0;
7 sbit P1_1=P1^1;
8 sbit P1_2=P1^2;
9 sbit P1_3=P1^3;
10 sbit P1_4=P1^4;
11 sbit P1_5=P1^5;
12 sbit P1_6=P1^6;
13 sbit P1_7=P1^7;
14
15 /*MAX525完成两路DAC模拟电压输出,待转换的12位二进制数据分别存放在变量dacdac1,dacdac2中*/
16 void dac(unsigned long dacdata1,dacdata2)
17 {
18 1 uchar a=0;
19 1 unsigned long xdata dacdatrfer=0;
20 1 P1_6=0;
21 1 P1=P1&0xdf; //片选CS端置低电平
22 1 for(a=0;a<4;a++)
23 1 {
24 2 P1_6=0;
25 2 P1=P1&0xef;
26 2 dacdatrfer=dacdata1;
27 2 dacdatrfer=((dacdatrfer>>(3-a))&0x01)<<3;
28 2 P1=P1|dacdatrfer;
29 2 P1_6=1;
30 2 }
31 1 P1_6=0;
32 1 for(a=0;a<12;a++)
33 1 {
34 2 P1_6=0;
35 2 P1=P1&0xef;
36 2 dacdatrfer=dacdata2;
37 2 dacdatrfer=((dacdatrfer>>(11-a))&0x01)<<3;
38 2 P1=P1|dacdatrfer;
39 2 P1_6=1;
40 2 }
41 1 P1_6=0;
42 1 P1=P1|0x20;
43 1 }
44
45 /*MAX1247的A/D转换,其中P1_1为片选端,P1_0为时钟输入端,P1_2为数据输入端,P1_3为数据输出*/
46 unsigned int j,i;
47 void adc()
48 {
49 1 uchar adcadres;
50 1 uchar adcadrestrfer;
51 1 uchar strdata;
52 1 uchar ldata[12];
53 1 P1_1=0;
54 1 P1_0=0;
55 1 adcadres=0x9e; //送控制命令字节
C51 COMPILER V6.20c 10_3 09/02/2001 15:03:44 PAGE 2
56 1 for(i=0;i<8;i++)
57 1 {
58 2 adcadrestrfer=adcadres;
59 2 adcadrestrfer=(adcadrestrfer>>(7-i))&0x01;
60 2 P1_3= adcadrestrfer; //右移一次,送到P1_2口
61 2 P1_0=0; //此处为送时钟信号
62 2 for(j=0;j<2;j++); //空操作,延时
63 2 P1_0=1;
64 2 for(j=0;j<2;j++); //空操作,延时
65 2 P1_0=0; //时钟信号周期等于执行4条指令的时间
66 2 }
67 1 P1_1=0;
68 1 for(j=0;j<2;j++); //空操作,延时
69 1 P1_1=0;
70 1 strdata=0;
71 1 P1_0=1;
72 1 for(j=0;j<12;j++)
73 1 {
74 2 P1_0=0;
75 2 P1_0=1;
76 2 strdata=P1_2; //读出12位串行数据
77 2 strdata= strdata<<(11-j);
78 2 ldata[j]=ldata[j]|strdata;
79 2 }
80 1 strdata=ldata[j];
81 1 for(j=0;j<4;j++)
82 1 {
83 2 P1_0=0;
84 2 P1_0=1;
85 2 }
86 1 P1_1=1;
87 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 421 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- 4
PDATA SIZE = ---- ----
DATA SIZE = 4 19
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 + -