📄 square_wave_generator.c
字号:
/******************************************************************
本程序只供学习使用,未经作者许可,不得用于其它任何用途
我的邮箱:computer-lov@tom.com
欢迎访问我的blog: http://computer00.21ic.org
square_wave_generator.c文件 频率测量
Created by Computer-lov
Date: 2004.11.13
Edit date:2006.3.2
Version V1.1
Copyright(C) Computer-lov 2004-2014
All rigths reserved
*******************************************************************/
#include "square_wave_generator.h"
#include "hardware.h"
#include "main.h"
#include "LCD1602.H"
#include "isr.h"
unsigned char code wave_table[][2]=
{
0x3C,0xB6, //20Hz
0x7D,0xD0, //30Hz
0x9E,0x5E, //40Hz
0xB1,0xE6, //50Hz
0xBE,0xEB, //60Hz
0xC8,0x3A, //70Hz
0xCF,0x32, //80Hz
0xD4,0x9E, //90Hz
0xD8,0xF6, //100Hz
0xEC,0x7E, //200Hz
0xF3,0x00, //300Hz
0xF6,0x42, //400Hz
0xF8,0x36, //500Hz
0xF9,0x83, //600Hz
0xFA,0x71, //700Hz
0xFB,0x24, //800Hz
0xFB,0xAE, //900Hz
0xFC,0x1E, //1KHz
0xFE,0x12, //2KHz
0xFE,0xB8, //3KHz
0xFF,0x0C, //4KHz
0xFF,0x3E, //5KHz
0xFF,0x5F, //6KHz
0xFF,0x77, //7KHz
0xFF,0x89, //8KHz
0xFF,0x96, //9KHz
0xFF,0xA2, //10KHz
0xFF,0xAB, //11KHz
0xFF,0xB2, //12KHz
0xFF,0xB9, //13KHz
0xFF,0xBE, //14KHz
0xFF,0xC3, //15KHz
0xFF,0xC7, //16KHz
0xFF,0xCB, //17KHz
0xFF,0xCE, //18KHz
0xFF,0xD1, //19KHz
0xFF,0xD4, //20KHz
};
unsigned char th1,tl1;
unsigned char wave_value;
void display_wave_frequency(void)
{
LCD_set_position(40);
switch(wave_value)
{
case 1: LCD_prints(" 20Hz ");break;
case 2: LCD_prints(" 30Hz ");break;
case 3: LCD_prints(" 40Hz ");break;
case 4: LCD_prints(" 50Hz ");break;
case 5: LCD_prints(" 60Hz ");break;
case 6: LCD_prints(" 70Hz ");break;
case 7: LCD_prints(" 80Hz ");break;
case 8: LCD_prints(" 90Hz ");break;
case 9: LCD_prints(" 100Hz ");break;
case 10:LCD_prints(" 200Hz ");break;
case 11:LCD_prints(" 300Hz ");break;
case 12:LCD_prints(" 400Hz ");break;
case 13:LCD_prints(" 500Hz ");break;
case 14:LCD_prints(" 600Hz ");break;
case 15:LCD_prints(" 700Hz ");break;
case 16:LCD_prints(" 800Hz ");break;
case 17:LCD_prints(" 900Hz ");break;
case 18:LCD_prints(" 1KHz ");break;
case 19:LCD_prints(" 2KHz ");break;
case 20:LCD_prints(" 3KHz ");break;
case 21:LCD_prints(" 4KHz ");break;
case 22:LCD_prints(" 5KHz ");break;
case 23:LCD_prints(" 6KHz ");break;
case 24:LCD_prints(" 7KHz ");break;
case 25:LCD_prints(" 8KHz ");break;
case 26:LCD_prints(" 9KHz ");break;
case 27:LCD_prints(" 10KHz ");break;
case 28:LCD_prints(" 11KHz ");break;
case 29:LCD_prints(" 12KHz ");break;
case 30:LCD_prints(" 13KHz ");break;
case 31:LCD_prints(" 14KHz ");break;
case 32:LCD_prints(" 15KHz ");break;
case 33:LCD_prints(" 16KHz ");break;
case 34:LCD_prints(" 17KHz ");break;
case 35:LCD_prints(" 18KHz ");break;
case 36:LCD_prints(" 19KHz ");break;
case 37:LCD_prints(" 20KHz ");break;
default: wave_value=18;Write_a_EEPROM_data(EEPROM_Addr,0x04,wave_value);LCD_prints(" 1KHz ");break;
}
}
void Square_wave_generator(void)
{
LCD_cls();
LCD_prints("SQUARE WAVE:");
display_wave_frequency();
th1=wave_table[wave_value-1][0];
tl1=wave_table[wave_value-1][1];
TR1=1;
ET1=1;
while(status==SQUARE_WAVE_GENERATOR)
{
while(!key);
if(key==KEY_MENU){TR1=0;ET1=0;status=MAIN_MENU;Write_a_EEPROM_data(EEPROM_Addr,0x01,status);key=0;break;}
if(key==KEY_ENTER)Write_a_EEPROM_data(EEPROM_Addr,0x04,wave_value);
if(key==KEY_UP)
{
if(wave_value<37)
{
TR1=0;
wave_value++;
display_wave_frequency();
th1=wave_table[wave_value-1][0];
tl1=wave_table[wave_value-1][1];
TH1=th1;
TL1=tl1;
TR1=1;
}
}
if(key==KEY_DOWN)
{
if(wave_value>1)
{
TR1=0;
wave_value--;
display_wave_frequency();
th1=wave_table[wave_value-1][0];
tl1=wave_table[wave_value-1][1];
TH1=th1;
TL1=tl1;
TR1=1;
}
}
key=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -