📄 ad_fpga.lst
字号:
C51 COMPILER V8.02 AD_FPGA 08/26/2002 21:45:30 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE AD_FPGA
OBJECT MODULE PLACED IN ad_fpga.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ad_fpga.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 #include"includes.h"
2
3
4 extern unsigned char xdata res1[256];
5 extern unsigned char xdata resmem[256]; //存储数组
6 extern unsigned char memshow_flag; //显示存储波形标志位
7 extern unsigned int L_num,R_num; //左右移偏移量
8 extern unsigned char cnv_flag;
9 extern bit zero_flag;
10 extern unsigned int show_num; //显示累计
11
12 void mydelay(unsigned int j) //延时
13 {
14 1 unsigned int i;
15 1 for(i=0;i<j;i++);
16 1
17 1 }
18
19 void delay_1us(void) //延时1us子程序
20 {
21 1 _nop_();
22 1 _nop_();
23 1 _nop_();
24 1 _nop_();
25 1 _nop_();
26 1 _nop_();
27 1 _nop_();
28 1
29 1 }
30
31 /*******************************************************************************/
32 /*读取FPGA中ADS931z转换结果程序 */
33 /* */
34 /* */
35 /* */
36 /*******************************************************************************/
37 void fpag_clr() // 读取fpga前清零
38 {
39 1 clr=0;
40 1 clr=1;
41 1 clr=0;
42 1
43 1 }
44
45 unsigned char read_data( ) //从fpga中读出一次AD转换结果
46 {
47 1 unsigned int i;
48 1 unsigned char ad_result;
49 1 ad_result=0;
50 1 read=0;
51 1 read=1;
52 1 clk=0;
53 1 clk=1;
54 1 clk=0;
55 1 clk=1;
C51 COMPILER V8.02 AD_FPGA 08/26/2002 21:45:30 PAGE 2
56 1 clk=0;
57 1 read=0;
58 1 for(i=0;i<8;i++)
59 1 {
60 2 clk=0;
61 2 clk=1;
62 2 clk=0;
63 2 da=1;
64 2 if(da)
65 2 {
66 3 ad_result|=(0x01<<i);
67 3 }
68 2 }
69 1 return ad_result;
70 1
71 1 }
72
73 void read_result(unsigned char *da/*波形值储存数组*/) //读出fpga中RAM中储存的数据
74 {
75 1 unsigned int i;
76 1
77 1 for(i=0;i<256;i++)
78 1 {
79 2 *da=read_data();
80 2 da++;
81 2 }
82 1
83 1
84 1 }
85
86 void read_ready() //读fpga准备,ads931转换结果
87 {
88 1 write=0;
89 1 read=0;
90 1 clk=0;
91 1 clr=0;
92 1 fpag_clr();
93 1 write=0;
94 1 write=1;
95 1 write=0;
96 1 }
97
98
99 void cov_over() interrupt 17 using 0 //中断判断fpga控制AD转换结束
100 {
101 1 EA=0;
102 1 PRT1IF&=0xdf;
103 1 cnv_flag=1;
104 1
105 1 EA=1;
106 1 //下一次采样准备
107 1 //读取采样结果
108 1
109 1 // if(memshow_flag==1) //输出存储波形
110 1 // {
111 1 // if(L_num>=0)
112 1
113 1 // else if(R_num>0)
114 1 // show_wavright(resmem);
115 1 // }
116 1 // else if(memshow_flag==0) //输出当前波形
117 1 // {
C51 COMPILER V8.02 AD_FPGA 08/26/2002 21:45:30 PAGE 3
118 1 // if(L_num>=0)
119 1 // show_wavleft(res1,L_num);
120 1 // else if(R_num>0)
121 1 // show_wavright(res1,R_num);
122 1 // }
123 1
124 1
125 1 }
126
127
128
129
130
131
132 /*******************************************************************************/
133 /*双路AD输出程序 */
134 /* */
135 /* */
136 /* */
137 /*******************************************************************************/
138
139
140 void set_dac0(unsigned char da) //向dac0赋值
141 {
142 1 DAC0L=0x00;
143 1 DAC0H=da;
144 1 }
145
146 void set_dac1(unsigned int da) //向dac1赋值
147 {
148 1 DAC1L=da&0xff;
149 1 DAC1H = (da>>8)&0x0f;
150 1
151 1 }
152
153 void show_wavright(unsigned char *da/*波形储存数组*/) //向右移动输出波形 ,unsigned int num/*显示数组
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -