📄 vend_ax.lst
字号:
C51 COMPILER V7.06 VEND_AX 05/05/2003 10:33:16 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE VEND_AX
OBJECT MODULE PLACED IN VEND_AX.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE VEND_AX.C OPTIMIZE(6,SPEED) DEFINE(NO_RENUM) DEBUG OBJECTEXTEND
stmt level source
1 #pragma NOIV // Do not generate interrupt vectors
2 //-----------------------------------------------------------------------------
3 // File: periph.c
4 // Contents: Hooks required to implement USB peripheral function.
5 //
6 // Copyright (c) 1997 AnchorChips, Inc. All rights reserved
7 //-----------------------------------------------------------------------------
8 #include "ezusb.h"
9 #include "ezregs.h"
10 #include <absacc.h>
11 #include <stdlib.h>
12 extern BOOL GotSUD; // Received setup data flag
13 extern BOOL Sleep;
14 extern BOOL Rwuen;
15 extern BOOL Selfpwr;
16
17 BYTE Configuration; // Current configuration
18 BYTE AlternateSetting; // Alternate settings
19 BYTE lyk;
20 //-----------------------------------------------------------------------------
21 // Constants
22 //-----------------------------------------------------------------------------
23 #define VR_UPLOAD 0xc0
24 #define VR_DOWNLOAD 0x40
25
26 #define VR_ANCHOR_DLD 0xa0 // handled by core
27 #define VR_EEPROM 0xa2 // loads (uploads) EEPROM
28 #define VR_RAM 0xa3 // loads (uploads) external ram
29 #define VR_SETI2CADDR 0xa4
30 #define VR_GETI2C_TYPE 0xa5 // 8 or 16 byte address
31 #define VR_GET_CHIP_REV 0xa6 // Rev A, B = 0, Rev C = 2 // NOTE: New TNG Rev
32 #define VR_TEST_MEM 0xa7 // runs mem test and returns result
33 #define VR_RENUM 0xa8 // renum
34 #define VR_DB_FX 0xa9 // Force use of double byte address EEPROM (for FX)
35
36 #define SERIAL_ADDR 0x50
37 #define EP0BUFF_SIZE 0x40
38 //////////////////////////////////////////
39 #define FULL1 (PINSC&0X04) //SRAM1 FULL SIGNAL
40 #define FULL2 (PINSC&0X08) //SRAM2 FULL SIGNAL
41 #define WR_RD ((PINSB&0X10)!=0)
42
43 #define SEL_0 OUTA=00
44 #define SEL_1 OUTA=0X41
45 #define SEL_2 OUTA=0X82
46 #define SEL_3 OUTA=0XFF
47
48 #define QA_PRE_L XBYTE[0xFFF0] //READ SRAM1 PRE_TRIG OVER ADDRESS LOW 8 BITS
49 #define QA_PRE_H XBYTE[0xFFF1] //READ SRAM1 PRE_TRIG OVER ADDRESS HIGH 8 BITS
50 #define QA_L XBYTE[0xFFF2] //READ SRAM1 DATA LOW 8 BITS
51 #define QA_H XBYTE[0xFFF3] //READ SRAM1 DATA HIGH 8 BITS
52 #define QB_PRE_L XBYTE[0xFFF4] //READ SRAM2 PRE_TRIG OVER ADDRESS LOW 8 BITS
53 #define QB_PRE_H XBYTE[0xFFF5] //READ SRAM2 PRE_TRIG OVER ADDRESS HIGH 8 BITS
54 #define QB_L XBYTE[0xFFF6] //READ SRAM2 DATA LOW 8 BITS
55 #define QB_H XBYTE[0xFFF7] //READ SRAM2 DATA HIGH 8 BITS
C51 COMPILER V7.06 VEND_AX 05/05/2003 10:33:16 PAGE 2
56 #define QA_AL XBYTE[0xFFF8] //READ SRAM1 ADDRESS LOW 8 BITS
57 #define QA_AH XBYTE[0xFFF9] //READ SRAM2 ADDRESS HIGH 8 BITS
58 #define QB_AL XBYTE[0xFFFA] //READ SRAM1 ADDRESS LOW 8 BITS
59 #define QB_AH XBYTE[0xFFFB] //READ SRAM2 ADDRESS HIGH 8 BITS
60
61
62 #define hct574 XBYTE[0xFFFc] //hct574在CPLD中的控制地址
63 #define con_freq XBYTE[0xFFFd] //分频控制在CPLD中的地址
64 #define ad8400 XBYTE[0xFFF9] //AD8400在cpld中的控制地址
65 //AD8400的三根控制线状态
66 #define ad8400_cs_1 OUTC=PINSC|0X20
67 #define ad8400_cs_0 OUTC=PINSC&0XDF
68 #define ad8400_clk_1 OUTC=PINSC|0X02
69 #define ad8400_clk_0 OUTC=PINSC&0XFD
70 #define ad8400_sdi_1 OUTC=PINSC|0X01
71 #define ad8400_sdi_0 OUTC=PINSC&0XFE
72 //LTC14464个控制字的地址
73 #define ltc1446_1H XBYTE[0xFFF8]
74 #define ltc1446_1L XBYTE[0xFFFB]
75 #define ltc1446_2H XBYTE[0xFFFE]
76 #define ltc1446_2L XBYTE[0xFFFF]
77
78
79 #define ac0_b 0x00
80 #define dc0_b 0x80
81 #define ac20mv_b 0x10
82 #define dc20mv_b 0x90
83 #define ac50mv_b 0x20
84 #define dc50mv_b 0xa0
85 #define ac100mv_b 0x30
86 #define dc100mv_b 0xb0
87 #define ac200mv_b 0x40
88 #define dc200mv_b 0xc0
89 #define ac500mv_b 0x50
90 #define dc500mv_b 0xd0
91 #define ac1v_b 0x60
92 #define dc1v_b 0xe0
93
94 #define ac0_a 0x00
95 #define dc0_a 0x08
96 #define ac20mv_a 0x01
97 #define dc20mv_a 0x09
98 #define ac50mv_a 0x02
99 #define dc50mv_a 0x0a
100 #define ac100mv_a 0x03
101 #define dc100mv_a 0x0b
102 #define ac200mv_a 0x04
103 #define dc200mv_a 0x0c
104 #define ac500mv_a 0x05
105 #define dc500mv_a 0x0d
106 #define ac1v_a 0x06
107 #define dc1v_a 0x0e
108 //-----------------------------------------------------------------------------
109 // Global Variables
110 //-----------------------------------------------------------------------------
111 BYTE DB_Addr; //TPM Dual Byte Address stat
112 BYTE I2C_Addr; //TPM I2C address
113 //////////// globe variable /////////////////////////////////////////
114 unsigned char freq_set[17]={0xf9, 0x63, 0x39, 0x18, 0x09, 0x04, 0x01, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
-0xff, 0xff, 0xff,0xff};
115 //各个时基下对应的频率控制值,具体值的含义见CPLD程序中的分频逻辑
116 //////////////////////////// 48k 97k ,195k, 390k, 780k, 1.5m, 3.1m, 6.25m,12.5m,25mhz,50mhz,100mhz,100mh
C51 COMPILER V7.06 VEND_AX 05/05/2003 10:33:16 PAGE 3
-z,1000mhz,100mhz,100mhz,100mhz,100mhz,100mhz///
117 ///////////////////////////, 5ms, 2ms, 1ms, 500us,200us,100us 50us, 20us, 10us, 5us, 2us, 1us, 500
-ns, 200ns, 100ns, 50ns, 20ns, 10ns///
118 idata unsigned int set_zero_a[15] = {464, 405, 507, 610, 186, 331, 479, 464, 464, 160, 312, 630, 184, 33
-0, 479};
119 idata unsigned int set_zero_b[15] = {464, 470, 557, 649, 192, 337, 484, 464, 464, 160, 312, 630, 187, 33
-5, 482};
120 //各个量程下的零点校验值
121 idata unsigned char channal_set[15] = {0x00,0x1a,0x2a,0x0a,0x1c,0x2c,0x0c,0x00,0x01,0x1b,0x2b,0x0b,0x1d,0x
-2d,0x0d};
122 //各个量程下的继电器网络的控制值
123 ///////////////////////////////////////0 20 50 100 200 500 1v , null, 0 20 50 100 200 5
-00 1v
124 /////////////////////////////////|------------ac--------------------------||||---------------dc-----------
------|
125 idata unsigned char trig;
126 idata unsigned char irq_yes_no;
127 //-----------------------------------------------------------------------------
128 // Prototypes
129 //-----------------------------------------------------------------------------
130 void EEPROMWrite(WORD addr, BYTE length, BYTE xdata *buf); //TPM EEPROM Write
131 void EEPROMRead(WORD addr, BYTE length, BYTE xdata *buf); //TPM EEPROM Read
132 void ltc1446_control(unsigned int A1,unsigned int A2); // 写ltc1446控制字函数,A1为第一路输出电压大小值
133 //A2为第二路控制字
134 void hct574_control(unsigned char A1,unsigned char A2); //对外部两个HCT574进行控制的函数,A1为第一路的控
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -