📄 ad9851.lst
字号:
C51 COMPILER V7.50 AD9851 07/29/2007 16:56:52 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE AD9851
OBJECT MODULE PLACED IN ad9851.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ad9851.C BROWSE DEBUG OBJECTEXTEND
line level source
1 /***************************************************
2 ad9851控制程序
3 key0:输出信号
4 key1:加法运算
5 key2:减法运算
6 key3:选择位数
7 总体思路:以1M信号频率对应的数字为基准,对应的在各位
8 进行加减
9 ***************************************************/
10
11
12 #define kinit_int0
13 #define kinit_t0
14 #define kinit_int1
15 #define kinit_t1
16
17 #include <init.H>
18 #include <dds9851.h>
19 #include "LCD1602.h"
20
21
22 unsigned char wbit=0;
23 unsigned char flash=0;
24 unsigned char num=0;
25 unsigned char time=0;
26 unsigned long dat=0;
27 unsigned char fdat[10]={48,48,44,48,48,48,44,48,48,48};
28
29 main()
30 {
31 1 init_int0();
32 1 init_int1();
33 1 init_t0();
34 1 init_t1();
35 1 TMOD=0x44,TL0=0x1f,TH0=0xff ,TR0=1;
36 1 TL1=0x1f,TH1=0xff ,TR1=1;
37 1 Delay1ms(100);//等LCD启动
38 1 LCD_Initial();
39 1 GotoXY(0,0);
40 1 Print("f= 00,000,000 Hz");
41 1 while(1)
42 1 {
43 2 if(flash==1)
44 2 {
45 3 GotoXY(wbit+2,0);
46 3 Print(" ");
47 3 Delay1ms(300);
48 3 }
49 2 GotoXY(3,0);
50 2 Printnum(fdat,10);
51 2 Delay1ms(300);
52 2 }
53 1 }
54
55
C51 COMPILER V7.50 AD9851 07/29/2007 16:56:52 PAGE 2
56 mode() interrupt 0
57 {
58 1 Delay1ms(200);
59 1 if(INT0==0)
60 1 {
61 2 wbit++;
62 2 if(wbit==11)
63 2 {
64 3 wbit=0;
65 3 flash=1;
66 3 writedds(dat);
67 3 }
68 2 if(wbit!=0)flash=1;
69 2 }
70 1 }
71
72 add() interrupt 1
73 {
74 1 TH0=0xff ,TL0=0x1f;
75 1 switch(wbit)
76 1 {
77 2 case 10:if(fdat[9]==57) break ;
78 2 dat=dat+29826150/1000000;
79 2 fdat[9]++; break ;
80 2 case 9: if(fdat[8]==57) break ;
81 2 dat=dat+29826150/100000;
82 2 fdat[8]++; break ;
83 2 case 8: if(fdat[7]==57) break ;
84 2 dat=dat+29826150/10000;
85 2 fdat[7]++; break ;
86 2 case 6: if(fdat[5]==57) break ;
87 2 dat=dat+29826150/1000;
88 2 fdat[5]++; break ;
89 2 case 5: if(fdat[4]==57) break ;
90 2 dat=dat+29826150/100;
91 2 fdat[4]++; break ;
92 2 case 4: if(fdat[3]==57) break ;
93 2 dat=dat+29826150/10;
94 2 fdat[3]++; break ;
95 2 case 2: if(fdat[1]==57) break ;
96 2 dat=dat+29826150;
97 2 fdat[1]++; break ;
98 2 case 1: if(fdat[0]==57) break ;
99 2 dat=dat+29826150*10;
100 2 fdat[0]++; break ;
101 2 default:;
102 2 }
103 1
104 1 }
105
106 decrease() interrupt 2
107 {
108 1 switch(wbit)
109 1 {
110 2 case 10:if(fdat[9]==48) break ;
111 2 dat=dat-29826150/1000000;
112 2 fdat[9]--; break ;
113 2 case 9: if(fdat[8]==48) break ;
114 2 dat=dat-29826150/100000;
115 2 fdat[8]--; break ;
116 2 case 8: if(fdat[7]==48) break ;
117 2 dat=dat-29826150/10000;
C51 COMPILER V7.50 AD9851 07/29/2007 16:56:52 PAGE 3
118 2 fdat[7]--; break ;
119 2 case 6: if(fdat[5]==48) break ;
120 2 dat=dat-29826150/1000;
121 2 fdat[5]--; break ;
122 2 case 5: if(fdat[4]==48) break ;
123 2 dat=dat-29826150/100;
124 2 fdat[4]--; break ;
125 2 case 4: if(fdat[3]==48) break ;
126 2 dat=dat-29826150/10;
127 2 fdat[3]--; break ;
128 2 case 2: if(fdat[1]==48) break ;
129 2 dat=dat-29826150;
130 2 fdat[1]--; break ;
131 2 case 1: if(fdat[0]==48) break ;
132 2 dat=dat-29826150*10;
133 2 fdat[0]--; break ;
134 2 default:;
135 2 }
136 1 }
137
138 out() interrupt 3
139 {
140 1 TH1=0xff ,TL1=0x1f;
141 1 wbit=0;
142 1 flash=1;
143 1 writedds(dat);
144 1 }
145
146
147
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1369 ----
CONSTANT SIZE = 19 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 20 17
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 + -