📄 main.lst
字号:
C51 COMPILER V8.02 MAIN 08/26/2002 21:45:30 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 #include"includes.h"
2
3
4 unsigned char code ce[]={0x08,0x31,0x86,0x60,0x00,0xFE,0x02,0xF2,0x02,0xFE,0x00,0xF8,0x00,0x00,0xFF,0x00,
5 0x04,0xFC,0x03,0x00,0x80,0x47,0x30,0x0F,0x10,0x67,0x00,0x07,0x40,0x80,0x7F,0x00}
-;//测
6
7 unsigned char code liang[]={0x40,0x40,0x40,0xDF,0x55,0x55,0x55,0xD5,0x55,0x55,0x55,0xDF,0x40,0x40,0x40,0x
-00,
8 0x40,0x40,0x40,0x57,0x55,0x55,0x55,0x7F,0x55,0x55,0x55,0x57,0x50,0x40,0x40,0x
-00};//量
9
10 unsigned char code pin[]={0x20,0x3C,0x20,0x20,0xBF,0x24,0x24,0x00,0xF2,0x1A,0xD6,0x12,0x12,0xF2,0x02,0x00
-,
11 0x44,0x43,0x20,0x10,0x0B,0x04,0x43,0x40,0x27,0x18,0x07,0x08,0x10,0x27,0x60,0x00
-};//频
12
13 unsigned char code lv[]={0x00,0x0C,0x14,0xA4,0x04,0x64,0x35,0xAE,0x64,0x24,0x14,0xA4,0x14,0x04,0x04,0x00,
14 0x08,0x0A,0x09,0x08,0x08,0x0A,0x0B,0xFE,0x0A,0x0B,0x0C,0x08,0x09,0x0A,0x08,0x00}
-;//率
15
16
17 unsigned char code mao[]={0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00}
-;//:
18
19 unsigned char code one[]={0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00}
-;
20
21 unsigned char code two[]={0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00}
-;
22
23 unsigned char code three[]={0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x0
-0};
24
25 unsigned char code four[]={0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00
-};
26
27 unsigned char code five[]={0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00
-};
28
29 unsigned char code six[]={0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00}
-;
30
31 unsigned char code seven[]={0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x0
-0};
32
33 unsigned char code eight[]={0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x0
-0};
34
35 unsigned char code nine[]={0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00
-};
36
37 unsigned char code zero[]={0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00
-};
38
C51 COMPILER V8.02 MAIN 08/26/2002 21:45:30 PAGE 2
39 unsigned char code point[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x0
-0};//.
40
41 unsigned char code k[]={0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00};/
-/k
42
43 unsigned char code H[]={0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20};/
-/H
44
45 unsigned char code z[]={0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00};/
-/z
46
47 unsigned char xdata res1[256];
48 unsigned char xdata resmem[256]; //存储数组
49 unsigned char memshow_flag; //显示存储波形标志位
50 unsigned char CTL_WORD[5];
51 unsigned int L_num,R_num; //左右移偏移量
52
53 unsigned long freq_L,freq_H; //读取的高低32位数值
54 //unsigned char det_freq; //分频系数
55 double freq; //测定的实际频率
56 double setfreq; //设定的采样频率
57 double T; //测定的时间
58 bit zero_flag; //输出直流标志
59 unsigned char freq_flag;
60 unsigned char Sh_0,Sh_1,Sh_2,Sh_3,Sh_4,Sh_5,Sh_6,Sh_7,Sh_8,Sh_9;
61 unsigned long Sh_re;
62 unsigned int tim_num; //测量时间宽度
63 unsigned long freq_plus; //判断测量时间档位
64 unsigned char cnv_flag; //转换结束标志位
65 unsigned int show_num; //显示累计
66
67
68 void main()
69 {
70 1
71 1 SYSCLK_Init();
72 1 PORT_Init();
73 1 DAC0_Init();
74 1 DAC1_Init(); //系统初始化
75 1 T2_Init();
76 1
77 1 lcd_init();
78 1 mydelay(10);
79 1 lcd_clr();
80 1 set_clr();
81 1 fpag_clr(); //lcd初始化,fpga清零
82 1
83 1 ad9851_init();
84 1
85 1
86 1 clr=0;
87 1 recont=0;
88 1 tim=0;
89 1 Sh_0=Sh_1=Sh_2=Sh_3=Sh_4=Sh_5=Sh_6=Sh_7=Sh_8=Sh_9=0;
90 1 tim_num=50; //测量时间宽度大约为50ms,数值初始化为零
91 1 memshow_flag=0;
92 1 freq_flag=1;
93 1 setfreq=0.1;
94 1 L_num=R_num=0;
95 1 memshow_flag=1;
96 1 cnv_flag=0;
C51 COMPILER V8.02 MAIN 08/26/2002 21:45:30 PAGE 3
97 1
98 1
99 1 EA=0;
100 1 EIE2|=0x08; //外部中断5允许
101 1 ET2=1; //定时器2中断允许
102 1
103 1 PT2=1; //定时中断2设定为高优先级
104 1 EIP2&=0xf7; //外部中断5设定为低优先级
105 1
106 1
107 1 lcd_drawhanzimo(0,0,ce);
108 1 lcd_drawhanzimo(16,0,liang);
109 1 lcd_drawhanzimo(32,0,pin);
110 1 lcd_drawhanzimo(48,0,lv);
111 1 lcd_drawnumber(64,0,mao); //第一行显示:测量频率:
112 1
113 1
114 1 lcd_drawnumber(0,2,zero);
115 1 lcd_drawnumber(8,2,zero);
116 1 lcd_drawnumber(16,2,zero);
117 1 lcd_drawnumber(24,2,zero);
118 1 lcd_drawnumber(32,2,zero);
119 1 lcd_drawnumber(40,2,point);
120 1 lcd_drawnumber(48,2,zero);
121 1 lcd_drawnumber(56,2,zero);
122 1 lcd_drawnumber(64,2,zero);
123 1 lcd_drawnumber(72,2,zero);
124 1 lcd_drawnumber(80,2,zero);
125 1 lcd_drawnumber(86,2,k);
126 1 lcd_drawnumber(94,2,H);
127 1 lcd_drawnumber(102,2,z); //第二行显示:00000.000KHz
128 1
129 1
130 1 RCAP2H=0xff;
131 1 RCAP2L=0xe0;
132 1 TR2=1; //定时器2允许
133 1 // ad9851_calfreq(0.2,0,CTL_WORD); //计算9851数值
134 1 // ad9851_send(CTL_WORD); //向9851发送指令
135 1 // EA=1;
136 1 while(1)
137 1 {
138 2
139 2 EA=0;
140 2 set_clr(); //测频清零
141 2 set_tim(); //设定测频时间
142 2 read_fpg(); //读取fpga测频数值
143 2
144 2 // count_freq(); //计算测频值
145 2 show_lcd(); //显示测频值
146 2
147 2 freq_set(); //计算频率
148 2 ad9851_calfreq(setfreq,0,CTL_WORD); //计算9851数值
149 2
150 2 ad9851_send(CTL_WORD); //向9851发送指令
151 2 // if(keyin) //判断按键命令 */
152 2 EA=1;
153 2 // key16();
154 2 // delay_nms(1000);
155 2 read_ready(); //读取ad采样准备
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -