📄 datlv5618.lst
字号:
C51 COMPILER V7.50 DATLV5618 07/20/2008 12:43:09 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE DATLV5618
OBJECT MODULE PLACED IN .\output\DATLV5618.obj
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE src\DATLV5618.C BROWSE DEFINE(__DATLV5618_DEBUG__) DEBUG OBJECTEXTEND PRINT
-(.\output\DATLV5618.lst) OBJECT(.\output\DATLV5618.obj)
line level source
1 /*********************************************
2 1.功能: 本程序针对74165驱动芯片键盘驱动程序
3 2.I/O脚使用
4 3个
5 3.调试环境:12M晶振(51系列12时钟模式)
6
7
8 3.程序大小(ROM估计):
9
10 4.数据大小(RAM估计):
11
12 5.运行时间(与调用函数有关):
13 ***********************************************/
14 //
15 //#define __DATLV5618_DEBUG__
16 #ifdef __DATLV5618_DEBUG__
17
18 #include<wywcomm.h>
19
20 #include<REGX52.H>
21
22
23
24 sbit io_DAdin = P2^6; // 串行数据,单向通信(输入)
25 sbit io_DAsclk = P2^5; // 串行通信时钟,下降沿有效
26 sbit io_DAcs = P2^7; // AD片选信号,低电平有效
27
28 //此模块调用其它模块的外部变量和函数的声明(此程序无)
29
30 // #include "E:\diansai2006\ts128647921chuank\src\ts128647921chuank.h"
31 // #include "E:\diansai2006\ADTLC2543\src\ADTLC2543.h"
32
33
34 #define DELAY1US_M _nop_()
35
36 #include "E:\diansai2006\chengxu\delaycomm\src\delaycomm.h"
37 #else
#include "system.h" //所有的项目用相同的系统头文件,但存放的路径不同,各自存放在对应的项目文件夹。
#endif
43
44
45 //此模块的宏定义(常数等)
46
47
48 //此模块必要的库函数包含(include)
49
50 #include<intrins.h>
51
52
53 //全局变量(静态或一般)的定义
54
C51 COMPILER V7.50 DATLV5618 07/20/2008 12:43:09 PAGE 2
55
56
57
58 //以下为函数定义
59
60
61
62 void v_DATLV5618A_f(uint8 x,uint16 shu)
63 //功能:进行DA转换并输出模拟信号
64 //说明:输入: x 表示:选择DA输出的通道,输入范围:1xx0、0xx0、0xx1、x1xx、x0xx、xx0x、xx1x(二进制)
65 // 0xx0(0)表示:写锁存器B 和 缓冲器(B), DAC B 单独输出。
66 // 1xx0(8)表示:写锁存器A 和 缓冲器(B)写锁存器B, DAC A 输出(B同时更新)。
67 // 0xx1(1)表示:缓冲器(B), DAC A 与 DAC B 都不输出。
68 // xx0x表示:正常操作
69 // xx1x表示:断电方式
70 // x0xx表示:快速模式
71 // x1xx表示:慢速模式
72 // 输入:shu 表示:一个无符号16位DA输出数。输入范围:0~4095。
73 //
74 //备注:1、当要使DAC A、DAC B同时有输出,则必须先将DAC B的数据写到缓冲器(B),
75 // 之后写锁存器A 和 缓冲器(B)写锁存器B,
76 // 即需要写两次:v_DATLV5618A_f(0xx1,DAC B)、v_DATLV5618A_f(1xx0,DAC A)。
77 // 2、1xx1表示:保留
78 //--------------------------------------------------------
79
80 {
81 1 uint8 i;
82 1 io_DAcs=0;
83 1 x<<=4; shu<<=4;
84 1
85 1 for(i=0;i<16;i++)
86 1 {
87 2
88 2 io_DAsclk = 1;
89 2 DELAY1US_M;
90 2
91 2 if(i < 4) {x <<= 1;io_DAdin = CY;}
92 2
93 2 else {shu <<= 1; io_DAdin=CY; }
94 2
95 2 DELAY1US_M;
96 2
97 2 io_DAsclk = 0;
98 2
99 2 DELAY1US_M;
100 2 DELAY1US_M;
101 2 }
102 1
103 1 io_DAsclk = 1;
104 1 io_DAcs=1;
105 1
106 1 v_DelayX10us_f(3);
107 1 }
108
109
110
111
112
113
114
115
116 #ifdef __DATLV5618_DEBUG__
C51 COMPILER V7.50 DATLV5618 07/20/2008 12:43:09 PAGE 3
117
118 void main(void)
119 {
120 1 uint16 i;
121 1
122 1 // const uint8 code xianshi[][16]={"DA/AD 程序测试:","基准电压为 2.77v","选择模拟通道: ","转换电压
- "};
123 1
124 1
125 1
126 1 // v_LcdWriteCharIni_f();
127 1 // v_LcdWriteCharScreen_f(xianshi);
128 1
129 1
130 1 // v_LcdWriteChar_f(0x27,"10");
131 1
132 1 do{
133 2
134 2
135 2
136 2 for(i=0;i<2048;i++) {v_DATLV5618A_f(1,i);
137 3 v_DATLV5618A_f(8,i);
138 3 // v_LcdWriteNumber_f(0x37,3,u16_ReadADTLC2543_f(10));
139 3 v_DelayX10ms_f(10);}
140 2
141 2 for(i=2048;i>=1;i--) {v_DATLV5618A_f(1,i);
142 3 v_DATLV5618A_f(8,i);
143 3 // v_LcdWriteNumber_f(0x37,3,u16_ReadADTLC2543_f(10));
144 3 v_DelayX10ms_f(10);}
145 2
146 2 }while(1);
147 1 }
148
149
150 #endif
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 156 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 2
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 + -