📄 square_wave_generator.lst
字号:
C51 COMPILER V7.06 SQUARE_WAVE_GENERATOR 03/02/2006 23:49:41 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE SQUARE_WAVE_GENERATOR
OBJECT MODULE PLACED IN square_wave_generator.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE square_wave_generator.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /******************************************************************
2 本程序只供学习使用,未经作者许可,不得用于其它任何用途
3 我的邮箱:computer-lov@tom.com
4 欢迎访问我的blog: http://computer00.21ic.org
5
6 square_wave_generator.c文件 频率测量
7
8 Created by Computer-lov
9 Date: 2004.11.13
10
11 Edit date:2006.3.2
12
13 Version V1.1
14 Copyright(C) Computer-lov 2004-2014
15 All rigths reserved
16 *******************************************************************/
17
18 #include "square_wave_generator.h"
19 #include "hardware.h"
20 #include "main.h"
21 #include "LCD1602.H"
22 #include "isr.h"
23
24 unsigned char code wave_table[][2]=
25 {
26 0x3C,0xB6, //20Hz
27 0x7D,0xD0, //30Hz
28 0x9E,0x5E, //40Hz
29 0xB1,0xE6, //50Hz
30 0xBE,0xEB, //60Hz
31 0xC8,0x3A, //70Hz
32 0xCF,0x32, //80Hz
33 0xD4,0x9E, //90Hz
34 0xD8,0xF6, //100Hz
35 0xEC,0x7E, //200Hz
36 0xF3,0x00, //300Hz
37 0xF6,0x42, //400Hz
38 0xF8,0x36, //500Hz
39 0xF9,0x83, //600Hz
40 0xFA,0x71, //700Hz
41 0xFB,0x24, //800Hz
42 0xFB,0xAE, //900Hz
43 0xFC,0x1E, //1KHz
44 0xFE,0x12, //2KHz
45 0xFE,0xB8, //3KHz
46 0xFF,0x0C, //4KHz
47 0xFF,0x3E, //5KHz
48 0xFF,0x5F, //6KHz
49 0xFF,0x77, //7KHz
50 0xFF,0x89, //8KHz
51 0xFF,0x96, //9KHz
52 0xFF,0xA2, //10KHz
53 0xFF,0xAB, //11KHz
54 0xFF,0xB2, //12KHz
55 0xFF,0xB9, //13KHz
C51 COMPILER V7.06 SQUARE_WAVE_GENERATOR 03/02/2006 23:49:41 PAGE 2
56 0xFF,0xBE, //14KHz
57 0xFF,0xC3, //15KHz
58 0xFF,0xC7, //16KHz
59 0xFF,0xCB, //17KHz
60 0xFF,0xCE, //18KHz
61 0xFF,0xD1, //19KHz
62 0xFF,0xD4, //20KHz
63 };
64 unsigned char th1,tl1;
65 unsigned char wave_value;
66
67 void display_wave_frequency(void)
68 {
69 1 LCD_set_position(40);
70 1 switch(wave_value)
71 1 {
72 2 case 1: LCD_prints(" 20Hz ");break;
73 2 case 2: LCD_prints(" 30Hz ");break;
74 2 case 3: LCD_prints(" 40Hz ");break;
75 2 case 4: LCD_prints(" 50Hz ");break;
76 2 case 5: LCD_prints(" 60Hz ");break;
77 2 case 6: LCD_prints(" 70Hz ");break;
78 2 case 7: LCD_prints(" 80Hz ");break;
79 2 case 8: LCD_prints(" 90Hz ");break;
80 2 case 9: LCD_prints(" 100Hz ");break;
81 2 case 10:LCD_prints(" 200Hz ");break;
82 2 case 11:LCD_prints(" 300Hz ");break;
83 2 case 12:LCD_prints(" 400Hz ");break;
84 2 case 13:LCD_prints(" 500Hz ");break;
85 2 case 14:LCD_prints(" 600Hz ");break;
86 2 case 15:LCD_prints(" 700Hz ");break;
87 2 case 16:LCD_prints(" 800Hz ");break;
88 2 case 17:LCD_prints(" 900Hz ");break;
89 2 case 18:LCD_prints(" 1KHz ");break;
90 2 case 19:LCD_prints(" 2KHz ");break;
91 2 case 20:LCD_prints(" 3KHz ");break;
92 2 case 21:LCD_prints(" 4KHz ");break;
93 2 case 22:LCD_prints(" 5KHz ");break;
94 2 case 23:LCD_prints(" 6KHz ");break;
95 2 case 24:LCD_prints(" 7KHz ");break;
96 2 case 25:LCD_prints(" 8KHz ");break;
97 2 case 26:LCD_prints(" 9KHz ");break;
98 2 case 27:LCD_prints(" 10KHz ");break;
99 2 case 28:LCD_prints(" 11KHz ");break;
100 2 case 29:LCD_prints(" 12KHz ");break;
101 2 case 30:LCD_prints(" 13KHz ");break;
102 2 case 31:LCD_prints(" 14KHz ");break;
103 2 case 32:LCD_prints(" 15KHz ");break;
104 2 case 33:LCD_prints(" 16KHz ");break;
105 2 case 34:LCD_prints(" 17KHz ");break;
106 2 case 35:LCD_prints(" 18KHz ");break;
107 2 case 36:LCD_prints(" 19KHz ");break;
108 2 case 37:LCD_prints(" 20KHz ");break;
109 2 default: wave_value=18;Write_a_EEPROM_data(EEPROM_Addr,0x04,wave_value);LCD_prints(" 1KHz ");
-break;
110 2 }
111 1 }
112
113 void Square_wave_generator(void)
114 {
115 1 LCD_cls();
116 1 LCD_prints("SQUARE WAVE:");
C51 COMPILER V7.06 SQUARE_WAVE_GENERATOR 03/02/2006 23:49:41 PAGE 3
117 1 display_wave_frequency();
118 1 th1=wave_table[wave_value-1][0];
119 1 tl1=wave_table[wave_value-1][1];
120 1 TR1=1;
121 1 ET1=1;
122 1 while(status==SQUARE_WAVE_GENERATOR)
123 1 {
124 2 while(!key);
125 2 if(key==KEY_MENU){TR1=0;ET1=0;status=MAIN_MENU;Write_a_EEPROM_data(EEPROM_Addr,0x01,status);key=0;break
-;}
126 2 if(key==KEY_ENTER)Write_a_EEPROM_data(EEPROM_Addr,0x04,wave_value);
127 2 if(key==KEY_UP)
128 2 {
129 3 if(wave_value<37)
130 3 {
131 4 TR1=0;
132 4 wave_value++;
133 4 display_wave_frequency();
134 4 th1=wave_table[wave_value-1][0];
135 4 tl1=wave_table[wave_value-1][1];
136 4 TH1=th1;
137 4 TL1=tl1;
138 4 TR1=1;
139 4 }
140 3 }
141 2 if(key==KEY_DOWN)
142 2 {
143 3 if(wave_value>1)
144 3 {
145 4 TR1=0;
146 4 wave_value--;
147 4 display_wave_frequency();
148 4 th1=wave_table[wave_value-1][0];
149 4 tl1=wave_table[wave_value-1][1];
150 4 TH1=th1;
151 4 TL1=tl1;
152 4 TR1=1;
153 4 }
154 3 }
155 2 key=0;
156 2 }
157 1 }
158
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 718 ----
CONSTANT SIZE = 716 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 ----
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 + -