⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 square_wave_generator.c

📁 基于51的单片机设计的电容计的完整源代码
💻 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 + -