📄 d51_new.lst
字号:
C51 COMPILER V6.02 D51_NEW 04/03/2007 07:42:10 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE D51_NEW
OBJECT MODULE PLACED IN C:\Aedk\C51\sample_AD9850\D51_new.OBJ
COMPILER INVOKED BY: c:\Aedk\c51\bin\C51.EXE C:\Aedk\C51\sample_AD9850\D51_new.C SMALL DB OE CO OT(SIZE)
stmt level source
1 /*------------------------------------------------------------------------------
2 D51_new.C
3
4 Copyright 1995-1999 Keil Software, Inc.
5 ------------------------------------------------------------------------------*/
6 //#include <AT89S8252.H> /* define AT89C51 registers */
7 //#include <AT89X51.H> /* define AT89C51 registers */
8 #include <w77e58.H> /* define w77e58 registers */
9 #include "ABSACC.H"
10 #include "D51_new.h"
11
12
13
14
15 void keyboard_int() interrupt IE0_VECTOR{ /* Keyboard Interrup*/
16 1 uchar s,key;
17 1 s=STATUS8279;
18 1 if(s & 0x0f){
19 2 CTRL8279=0x40;
20 2 key=DATA8279;
21 2 s=((key & 0x18)>>1) | (key & 0x03);
22 2 keyChar=KeyTab[s];
23 2 keyNum=1;
24 2 }
25 1 }
26
27 void timer0_int() interrupt TF0_VECTOR {
28 1 EA=0;
29 1 THG0++;
30 1 LED_status=1;
31 1 EA=1;
32 1 }
33
34 /* Delay x ms MAX 255ms for 11.0592MHz 8051CPU */
35 void delay(uchar ms){
36 1 uchar i,j,k;
37 1 for(i=0;i<ms;i++){
38 2 for(j=0;j<4;j++){
39 3 for(k=0;k<115;k++){}
40 3 }
41 2 }
42 1 }
43 void timer1_int() interrupt TF1_VECTOR {
44 1 EA=0;
45 1 THG=THG0;
46 1 THGL=TH0*256+TL0;
47 1 THG0=0;
48 1 TH0=0;
49 1 TL0=0;
50 1 TH1=-NumberC/256;
51 1 TL1=-NumberC%256;
52 1 TSET=1;
53 1 EA=1;
54 1 }
55 void clearDispBuf(void) {
C51 COMPILER V6.02 D51_NEW 04/03/2007 07:42:10 PAGE 2
56 1 int i;
57 1 for(i=0;i<DISP_BUF_SIZE;i++){
58 2 DispBuf[i]=LedTab[22];
59 2 }
60 1 }
61 void Display(void)
62 {
63 1 int i;
64 1 for(i=0;i<8;i++){
65 2 CTRL8279=0x90+i;
66 2 DATA8279=DispBuf[i];
67 2 }
68 1 }
69 void DispHELLO(void) {
70 1 int i;
71 1 for(i=0;i<DISP_BUF_SIZE;i++){
72 2 DispBuf[i]=LedTab[HELLO[i]];
73 2 }
74 1 Display();
75 1 }
76 void loadDispBuf(uchar *p) {
77 1 int i;
78 1 for(i=0;i<DISP_BUF_SIZE;i++){
79 2 DispBuf[i]=LedTab[*(p+i)];
80 2 }
81 1 }
82 void DisplayChar(char c)
83 {
84 1 DATA8279=c;
85 1 }
86 void DisplayLED(void)
87 {
88 1 unsigned i;
89 1 i=LED_DATA;
90 1 i<<=8;
91 1 i|=LED_DATA;
92 1 i>>=7;
93 1 LED_DATA=(unsigned char)(i&0xff);
94 1 }
95 void encode(unsigned int adr) {
96 1 int i;
97 1 unsigned int adr1;
98 1 uchar c;
99 1 adr1=adr;
100 1 for(i=0;i<8;i++){
101 2 if(adr==0x8000){
102 3 DispBuf[i]=LedTab[OKLedChar[i]];
103 3 }
104 2 else{
105 3 c=adr1&0x0f;
106 3 adr1>>=4;
107 3 if(i>3)c=ERRT[7-i];
108 3 DispBuf[7-i]=LedTab[c];
109 3 }
110 2 }
111 1
112 1 }
113 void encode1(void) {//12345678
114 1 unsigned char i;
115 1 for(i=0;i<8;i++){
116 2 DispBuf[i]=LedTab[i+1];
117 2 }
C51 COMPILER V6.02 D51_NEW 04/03/2007 07:42:10 PAGE 3
118 1
119 1 }
120 void encode2(void) {//87654321
121 1 unsigned char i;
122 1 for(i=0;i<8;i++){
123 2 DispBuf[i]=LedTab[8-i];
124 2 }
125 1
126 1 }
127 void encode3(void) {//F3
128 1 clearDispBuf();
129 1 DispBuf[0]=LedTab[15];
130 1 DispBuf[1]=LedTab[3];
131 1 }
132 void encode4(void) {//F4
133 1 clearDispBuf();
134 1 DispBuf[0]=LedTab[15];
135 1 DispBuf[1]=LedTab[4];
136 1
137 1 }
138 void encode5(unsigned char c) {
139 1 unsigned char i;
140 1 for(i=0;i<7;i++){
141 2 DispBuf[i]=DispBuf[i+1];
142 2 }
143 1 DispBuf[7]=LedTab[c-0x30];
144 1
145 1 }
146 void encode6(unsigned long freq) {
147 1 unsigned char i,c[8],j;
148 1 unsigned long f;
149 1 f=freq>>10;//f=freq/1024
150 1
151 1 for(i=0;i<8;i++){
152 2 c[i]=0;
153 2 }
154 1 while(f>=1000000){
155 2 f-=1000000;
156 2 c[1]++;
157 2 }
158 1 while(f>=100000){
159 2 f-=100000;
160 2 c[2]++;
161 2 }
162 1 while(f>=10000){
163 2 f-=10000;
164 2 c[3]++;
165 2 }
166 1 while(f>=1000){
167 2 f-=1000;
168 2 c[4]++;
169 2 }
170 1 while(f>=100){
171 2 f-=100;
172 2 c[5]++;
173 2 }
174 1 while(f>=10){
175 2 f-=10;
176 2 c[6]++;
177 2 }
178 1 c[7]+=f;
179 1 j=0;
C51 COMPILER V6.02 D51_NEW 04/03/2007 07:42:10 PAGE 4
180 1 for(i=0;i<8;i++){
181 2 if((c[i]==0)&&(j==0))
182 2 DispBuf[i]=LedTab[22];
183 2 else{
184 3 j=1;
185 3 DispBuf[i]=LedTab[c[i]];
186 3 }
187 2 }
188 1
189 1 }
190 void clearDisplay(void) {
191 1 CTRL8279=0xd1; /* clear RAM */
192 1 while (STATUS8279 & 0x80) /* wait till RAM is clear */
193 1 {
194 2 }
195 1 }
196 void init8279(void) {
197 1 clearDisplay();
198 1 CTRL8279=0x20 | 20; /* 11.0592MHz/6/20=92.16kHz 8279 clock */
199 1 CTRL8279=(0x10<<3) | 0 ; /* 8x8字符显示, 右入; 编码扫描键盘,双键锁定 */
200 1 // InitDisplay();
201 1 keyNum=0;
202 1
203 1 }
204 //;******** RAM自检子程序*************
205 unsigned int chkram(void) { /* RAM Chack */
206 1 unsigned int adr;
207 1 uchar c,r;
208 1 for(adr=0;adr<0x8000;adr++){
209 2 c=0xaa;
210 2 XBYTE[adr]=c;
211 2 r=XBYTE[adr];
212 2 if(r!=c)return adr;
213 2 c=0x55;
214 2 XBYTE[adr]=c;
215 2 r=XBYTE[adr];
216 2 if(r!=c)return adr;
217 2 }
218 1 return adr;
219 1 }
220 void delay_dds(void)
221 {
222 1 uchar i,j;
223 1 for(i=0;i<1;i++){
224 2 j=i;
225 2 }
226 1 }
227 void init_dds(void)
228 {
229 1 uchar i;
230 1 WCLK_pin=0;
231 1 FQ_UD_pin=0;
232 1 delay_dds();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -