?? main.lst
字號(hào):
C51 COMPILER V8.08 MAIN 03/03/2009 13:30:12 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #include<LCD12864.h>
3 #include<wave.h>
4
5 #define uchar unsigned char
6 #define uint unsigned int
7
8 #define WAVE1 1
9 #define WAVE2 2
10 #define WAVE3 3
11 #define WAVE4 4
12
13 sbit k1=P1^0;
14 sbit k2=P1^1;
15 sbit k3=P1^2;
16 sbit k4=P1^3;
17 sbit k5=P1^4;
18 sbit k6=P1^5;
19 sbit k7=P1^6;
20 sbit k8=P1^7;
21
22
23 uchar add=0;
24 uint DLY;
25
26 uchar ValueHZ[4]={0,0,0,0};
27
28 void IntKey()interrupt 0 using 1 //外部中斷服務(wù)程序
29 {
30 1 EA=0;
31 1 if(k1==0)WaveSelect=WAVE1;
32 1 if(k2==0)WaveSelect=WAVE2;
33 1 if(k3==0)WaveSelect=WAVE3;
34 1 if(k4==0)WaveSelect=WAVE4;
35 1 if(k5==0){
36 2 if(ValueHZ[add]==0)ValueHZ[add]=0;
37 2 else ValueHZ[add]--;
38 2 SetHZ=!SetHZ;
39 2 }
40 1 if(k6==0)StartOut=!StartOut;
41 1 if(k7==0){
42 2 if(ValueHZ[add]==9)ValueHZ[add]=9;
43 2 else ValueHZ[add]++;
44 2 SetHZ=!SetHZ;
45 2 }
46 1 if(k8==0){
47 2 if(add!=3)add++;
48 2 else add=0;
49 2 }
50 1 EA=1;
51 1 }
52
53 void HZ_to_DLY(void){ //計(jì)算延時(shí)常量函數(shù)
54 1 float value;
55 1 if((ValueHZ[0]!=0)||(ValueHZ[1]!=0)||(ValueHZ[2]!=0)){
C51 COMPILER V8.08 MAIN 03/03/2009 13:30:12 PAGE 2
56 2 value=ValueHZ[0]*100+ValueHZ[1]*10+ValueHZ[2]*1;
57 2 value=1000000/value;
58 2 value/=3;
59 2 if(WaveSelect==WAVE1)DLY=(unsigned int)value/2;
60 2 if(WaveSelect==WAVE2)DLY=(unsigned int)value/250;
61 2 if(WaveSelect==WAVE3)DLY=(unsigned int)value/500;
62 2 if(WaveSelect==WAVE4)DLY=(unsigned int)value/170;
63 2 }
64 1 else DLY=0;
65 1 }
66
67 main(){
68 1 uint i;
69 1
70 1 EA=1;
71 1 EX0=1;
72 1 IT0=1; //開(kāi)中斷
73 1
74 1 Init_12864();
75 1 for(i=500;i>0;i--){
76 2 delay2us(100);
77 2 }
78 1
79 1 DisControl();
80 1
81 1 while(1){
82 2 if(WaveSelect==WAVE1)Wave1();
83 2 if(WaveSelect==WAVE2)Wave2();
84 2 if(WaveSelect==WAVE3)Wave3();
85 2 if(WaveSelect==WAVE4)Wave4();
86 2
87 2 maths(ValueHZ[0],5,0x04);
88 2 maths(ValueHZ[1],13,0x04);
89 2 maths(ValueHZ[2],21,0x04);
90 2 Pagefirst(0x05);
91 2 Linefirst(29);
92 2 Wdata(0x04);
93 2 maths(ValueHZ[3],31,0x04);
94 2
95 2 old_WaveSelect=WaveSelect;
96 2 old_SetHZ=SetHZ;
97 2
98 2 HZ_to_DLY(); //得到延時(shí)常量
99 2
100 2 while(1){
101 3 if(old_WaveSelect!=WaveSelect){
102 4 StartOut=0;
103 4 Direction=0;
104 4 break;
105 4 }
106 3
107 3 if(old_SetHZ!=SetHZ)break;
108 3
109 3 if(StartOut==1){
110 4 if(WaveSelect==WAVE1)WaveOut1(DLY); //0HZ-1MHZ
111 4 if(WaveSelect==WAVE2)WaveOut2(DLY); //0HZ-1MHZ
112 4 if(WaveSelect==WAVE3)WaveOut3(DLY); //0HZ-666HZ
113 4 if(WaveSelect==WAVE4)WaveOut4(DLY); //0HZ-588HZ
114 4 }
115 3 }
116 2 }
117 1 }
C51 COMPILER V8.08 MAIN 03/03/2009 13:30:12 PAGE 3
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2235 ----
CONSTANT SIZE = 1346 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 18 12
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -