📄 dac.lst
字号:
C51 COMPILER V8.02 DAC 07/26/2008 19:16:14 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE DAC
OBJECT MODULE PLACED IN dac.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe dac.c DB OE BR
line level source
1 /************************************************************
2 * Copyright (C) 2006, 华中科技大学电气与电子科技创新中心 *
3 * All Rights Reserved. *
4 * *
5 * 文件名: dac.c *
6 * 文件描述: 用于简易逻辑分析仪的波形显示函数 *
7 * *
8 * 当前版本: 1.0 *
9 * 作者: 王璠(wang.fan@smail.hust.edu.cn) *
10 * 完成日期: 2008年7月22日 *
11 ************************************************************/
12 //#include"dac.h"
13 #include"main.h"
14
15 unsigned char xdata fifowindow[8][20]; //FIFO寄存器
16 unsigned int keyW; //存储键值
17 unsigned char time_flag = 9; //时间标志线
18
19
20
21
22
23
24 void DisplayLogicWave(unsigned int delaytime)
25 {
26 1 unsigned int i,j,n=0,trig,k,time,time1,tflag;
27 1
28 1
29 1 unsigned char idata bias0[2][8] = {{0,32,64,96,128,160,192,224},{20,52,84,116,148,180,212,244}}; /
-/8通道偏置电平,第一行为低,第二行为高
30 1 unsigned char idata bias1[2][8] = {{224,192,160,128,96,64,32,0},{244,212,180,148,116,84,52,20}};
31 1 unsigned int idata wire0[2][8] = {{0,32,64,96,128,160,192,224},{60,92,124,156,188,220,242,255}}; /
-/触发位置标志线
32 1 unsigned int idata wire1[2][8] = {{224,192,160,128,96,64,32,0},{255,242,220,188,156,124,92,60}};
33 1
34 1 unsigned int xdata timewire0[2][8] = {{0,32,64,96,128,160,192,224},{0,12,44,76,108,140,172,204}};
-//时间标志线
35 1 unsigned int xdata timewire1[2][8] = {{224,192,160,128,96,64,32,0},{204,172,140,108,76,44,12,0}};
36 1
37 1
38 1 unsigned char xdata temp[320];
39 1
40 1
41 1 //将fifo中的数据按扫描顺序存入temp中
42 1 ///////////////////////////////////////////////
43 1 for(i=0;i<8;i++)
44 1 {
45 2 for(j=0;j<20;j++)
46 2 {
47 3 temp[n] = bias0[fifowindow[i][j]][i];
48 3 n++;
49 3 }
50 2 }
51 1 for(i=0;i<8;i++)
52 1 { k = 7-i;
C51 COMPILER V8.02 DAC 07/26/2008 19:16:14 PAGE 2
53 2 for(j=0;j<20;j++)
54 2 {
55 3 temp[n] = bias1[fifowindow[k][j]][i];
56 3 n++;
57 3 }
58 2 }
59 1 ///////////////////////////////////////////////
60 1
61 1 trig = trig_delay*5+3; //将触发延迟转化为触发标志线的位置
62 1
63 1 tflag = time_flag*5+3;
64 1 //if(trig_delay>19)
65 1 //
66 1 //
67 1 //
68 1 //
69 1
70 1 for(time=0;time<delaytime;time++)
71 1 for(time1=0;time1<1000;time1++)
72 1
73 1 // while(1)
74 1 {
75 2 n = 0;
76 2 //从CH0扫到CH7
77 2 //////////////////////////////////////////
78 2 for(i=0;i<8;i++)
79 2 {
80 3 for(j=0;j<100;j++)
81 3 {
82 4 SFRPAGE = DAC0_PAGE;
83 4 DAC0H = j;
84 4 if(j%5==0)
85 4 {
86 5 SFRPAGE = DAC1_PAGE;
87 5 DAC1H = temp[n];
88 5 n++;
89 5 }
90 4 if(j==trig)
91 4 {
92 5 SFRPAGE = DAC1_PAGE;
93 5 DAC1H = wire0[1][i];
94 5 DAC1H = wire0[0][i];
95 5 }
96 4 if(j==tflag)
97 4 {
98 5 SFRPAGE = DAC1_PAGE;
99 5 DAC1H = timewire0[1][i];
100 5 DAC1H = timewire0[0][i];
101 5 }
102 4 }
103 3 }
104 2
105 2
106 2 //从CH7扫到CH0,先正向扫描后反向扫描防止波形过冲
107 2 ///////////////////////////////////////////////////
108 2 for(i=0;i<8;i++)
109 2 {
110 3 for(j=0;j<100;j++)
111 3 {
112 4 SFRPAGE = DAC0_PAGE;
113 4 DAC0H = j;
114 4 if(j%5==0)
C51 COMPILER V8.02 DAC 07/26/2008 19:16:14 PAGE 3
115 4 {
116 5 SFRPAGE = DAC1_PAGE;
117 5 DAC1H = temp[n];
118 5 n++;
119 5 }
120 4 if(j==trig)
121 4 {
122 5 SFRPAGE = DAC1_PAGE;
123 5 DAC1H = wire1[1][i];
124 5 DAC1H = wire1[0][i];
125 5 }
126 4 if(j==tflag)
127 4 {
128 5 SFRPAGE = DAC1_PAGE;
129 5 DAC1H = timewire1[1][i];
130 5 DAC1H = timewire1[0][i];
131 5 }
132 4 }
133 3 }
134 2
135 2
136 2
137 2 }
138 1 }
139
140
141
142
143
144
145
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 737 ----
CONSTANT SIZE = 160 ----
XDATA SIZE = 160 384
PDATA SIZE = ---- ----
DATA SIZE = 3 16
IDATA SIZE = ---- 96
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 + -