?? da.lst
字號:
C51 COMPILER V8.02 DA 11/08/2007 15:17:12 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE DA
OBJECT MODULE PLACED IN da.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE da.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #include<stdio.h>
3 #define uchar unsigned char
4 #define uint unsigned int
5 code unsigned char Sintab[128]={64,67,70,73,76,79,82,85,88,91,94,96,99,102,104,106,
6 109,111,113,115,117,118,120,121,123,124,125,126,126,
7 127,127,127,127,127,127,127,126,126,125,124,123,121,
8 120,118,117,115,113,111,109,106,104,102,99,96,94,91,
9 88,85,82,79,76,73,70,67,64,60,57,54,51,48,45,42,39,
10 36,33,31,28,25,23,21,18,16,14,12,10,9,7,6,4,3,2,1,
11 1,0,0,0,0,0,0,0,1,1,2,3,4,6,7,9,10,12,14,16,18,21,23,
12 25,28,31,33,36,39,42,45,48,51,54,57,60};
13 char counter_10,k,m=1; //置標(biāo)志和常數(shù)、變量
14 void timer0int() //定時器\計數(shù)器設(shè)置
15 {TMOD=0X51;
16 1 TH0=0XB0;
17 1 TL0=0X3C;
18 1 TH1=0xff;
19 1 TL1=0xff;
20 1 ET1=1;
21 1 TR1=1;
22 1 ET0=1;
23 1 TR0=1;
24 1 EA=1;
25 1 }
26 void timer0() interrupt 1 using 1 //定時器溢出中斷服務(wù)程序
27 { TH0=0XB0;
28 1 TL0=0X3C;
29 1 counter_10++;
30 1 if(counter_10==20)counter_10=0;
31 1 }
32 void timer1() interrupt 3 using 0 //計數(shù)器1溢出中斷服務(wù)程序
33 {TH1=0xff;
34 1 TL1=0xff;
35 1 TR1=1;
36 1 EA=1;
37 1 k++;
38 1 if(k==4)k=0;
39 1 }
40 void int0() interrupt 2 using 0
41 {
42 1 m++;
43 1 if(m==10)m=0;
44 1 }
45 void fang(void) //方波
46 {uchar i;
47 1 while(k==2)
48 1 {if(i<=120/m)
49 2 P1=0;
50 2 else P1=128/m;
51 2 i++;
52 2 if(i==240/m)i=0;
53 2 }
54 1 }
55 void juchi(void) //鋸齒波
C51 COMPILER V8.02 DA 11/08/2007 15:17:12 PAGE 2
56 {uchar i=0;
57 1 while(k==1)
58 1 {P1=i;
59 2 i++;
60 2 if(i==248/m)i=0;
61 2 }
62 1 }
63 void sanjiao(void) //三角波
64 {uchar i,n;
65 1 while(k==3)
66 1 { P1=i;
67 2 if(n==1)i--;
68 2 else i++;
69 2 if(i==128/m)n=1;
70 2 if(i==0)n=0;
71 2 }
72 1 }
73 void sin(void) //正弦波
74 {uchar i;
75 1 while(k==0)
76 1 {i++;
77 2 if(i==128)i=0;
78 2 P1=Sintab[i];
79 2 }
80 1 }
81 void main() //主程序
82 {timer0int();
83 1 while(1)
84 1 {
85 2 if(k==0)sin();
86 2 if(k==1)juchi();
87 2 if(k==2)fang();
88 2 if(k==3)sanjiao();
89 2 }
90 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 323 ----
CONSTANT SIZE = 128 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 2
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -