📄 22.c
字号:
#include <reg52.h> // 引用标准库的头文件
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit RS = P2^1;
sbit RW = P2^4;
sbit E = P2^5;
char bdata temp_ramaddr;
sbit BF = temp_ramaddr^7;
int keycode,picture_data;
void KeyDisplay(void);
void LCD_write_picture(void);
int i,j;
int peak_data,peak_data,frequency_data,trace;
char *ip1,*ip2,*ip3,*ip4;
uchar numbit;
char idata peak_digit[5][16]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}};
char idata frequency_digit[5][16]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}};
char code picture1[256] = {
0x00,0x00,0x00,0x40,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x7F,0xFE,0xF8,0x20,0x10,0x40,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x0B,0xFE,0x10,0x40,0x00,0x00,0x18,0x30,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x08,0x00,0x07,0xFE,0x00,0x00,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x78,0x40,0x84,0x44,0x00,0x00,0x40,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x48,0x48,0x54,0x40,0x00,0x00,0x40,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
0x10,0x80,0x40,0x8C,0x54,0x40,0x00,0x00,0x80,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
0x10,0xFC,0x41,0x78,0x17,0xF8,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
0x10,0x80,0xFB,0xD0,0x25,0x08,0x00,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,
0x10,0x80,0x48,0x20,0x24,0x90,0x30,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,
0x10,0x80,0x08,0x40,0xE4,0x90,0x30,0x00,0x00,0x00,0x20,0x02,0x00,0x00,0x00,0x00,
0x10,0x80,0x08,0x88,0x24,0x60,0x00,0x00,0x00,0x00,0x20,0x02,0x00,0x00,0x00,0x00,
0x10,0x80,0x09,0x04,0x28,0x60,0x30,0x00,0x00,0x00,0x10,0x04,0x00,0x00,0x00,0x00,
0xFF,0xFE,0x4B,0xFE,0x28,0x98,0x30,0x00,0x00,0x00,0x0C,0x18,0x00,0x00,0x00,0x00,
0x00,0x00,0x29,0x04,0x31,0x0E,0x00,0x00,0x00,0x00,0x03,0xE0,0x00,0x00,0x00,0x00,
0x00,0x00,0x10,0x00,0x26,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; //正 弦 波
char code picture2[256]={
0x00,0x00,0x04,0x00,0x20,0x40,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x07,0xF8,0x10,0x40,0x00,0x00,0x02,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
0x7F,0xFC,0x04,0x10,0x10,0x40,0x00,0x00,0x04,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x08,0x20,0x07,0xFE,0x00,0x00,0x08,0x10,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x1F,0xFC,0x84,0x44,0x00,0x00,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x30,0x84,0x54,0x40,0x00,0x00,0x20,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x50,0x84,0x54,0x40,0x00,0x00,0x40,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
0x3F,0xF8,0x1F,0xFC,0x17,0xF8,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x10,0x84,0x25,0x08,0x00,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x10,0x84,0x24,0x90,0x30,0x00,0x00,0x00,0x40,0x02,0x00,0x00,0x00,0x00,
0x00,0x00,0x1F,0xFC,0xE4,0x90,0x30,0x00,0x00,0x00,0x20,0x04,0x00,0x00,0x00,0x00,
0x00,0x00,0x10,0x84,0x24,0x60,0x00,0x00,0x00,0x00,0x10,0x08,0x00,0x00,0x00,0x00,
0x00,0x00,0x10,0x84,0x28,0x60,0x30,0x00,0x00,0x00,0x08,0x10,0x00,0x00,0x00,0x00,
0x7F,0xFE,0x20,0x84,0x28,0x98,0x30,0x00,0x00,0x00,0x04,0x20,0x00,0x00,0x00,0x00,
0x00,0x00,0x20,0x94,0x31,0x0E,0x00,0x00,0x00,0x00,0x02,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x40,0x88,0x26,0x04,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00}; //三 角 波
char code picture3[256]={
0x02,0x00,0x00,0x00,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x10,0x40,0x00,0x00,0x7F,0x81,0xFE,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x00,0x00,0x10,0x40,0x00,0x00,0x40,0x81,0x02,0x00,0x00,0x00,0x00,0x00,
0xFF,0xFE,0x00,0x00,0x07,0xFE,0x00,0x00,0x40,0x81,0x02,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x84,0x44,0x00,0x00,0x40,0x81,0x02,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x54,0x40,0x00,0x00,0x40,0x81,0x02,0x00,0x00,0x00,0x00,0x00,
0x03,0xF0,0x00,0x00,0x54,0x40,0x00,0x00,0x40,0x81,0x02,0x00,0x00,0x00,0x00,0x00,
0x02,0x10,0x00,0x00,0x17,0xF8,0x00,0x00,0x40,0x81,0x02,0x00,0x00,0x00,0x00,0x00,
0x04,0x10,0x00,0x00,0x25,0x08,0x00,0x00,0x40,0x81,0x02,0x00,0x00,0x00,0x00,0x00,
0x04,0x10,0x00,0x00,0x24,0x90,0x30,0x00,0x40,0x81,0x02,0x00,0x00,0x00,0x00,0x00,
0x08,0x10,0x00,0x00,0xE4,0x90,0x30,0x00,0x40,0x81,0x02,0x00,0x00,0x00,0x00,0x00,
0x08,0x10,0x00,0x00,0x24,0x60,0x00,0x00,0x40,0x81,0x02,0x00,0x00,0x00,0x00,0x00,
0x10,0x10,0x00,0x00,0x28,0x60,0x30,0x00,0x40,0x81,0x02,0x00,0x00,0x00,0x00,0x00,
0x20,0x90,0x00,0x00,0x28,0x98,0x30,0x00,0x40,0x81,0x02,0x00,0x00,0x00,0x00,0x00,
0xC0,0x60,0x00,0x00,0x31,0x0E,0x00,0x00,0x40,0xFF,0x03,0xFC,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x26,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; //方 波
char code peak[128]={
0x20,0x80,0x20,0x80,0x10,0x40,0x00,0x00,
0x20,0xFC,0x20,0xFC,0x18,0x60,0x00,0x00,
0x20,0x88,0x20,0x88,0x17,0xFC,0x00,0x00,
0xA9,0x88,0xA9,0x88,0x10,0x40,0x00,0x00,
0xAA,0x50,0xAA,0x50,0x20,0x80,0x00,0x00,
0xAC,0x20,0xAC,0x20,0x33,0xF8,0x00,0x00,
0xA8,0xDC,0xA8,0xDC,0x62,0x08,0x00,0x00,
0xAB,0x48,0xAB,0x48,0xA3,0xF8,0x00,0x00,
0xA8,0x40,0xA8,0x40,0x22,0x08,0x00,0x00,
0xAB,0xFC,0xAB,0xFC,0x23,0xF8,0x30,0x00,
0xB8,0x40,0xB8,0x40,0x22,0x08,0x30,0x00,
0xEB,0xFC,0xEB,0xFC,0x23,0xF8,0x00,0x00,
0x80,0x40,0x80,0x40,0x22,0x08,0x30,0x00,
0x07,0xFE,0x07,0xFE,0x22,0x08,0x30,0x00,
0x00,0x40,0x00,0x40,0x2F,0xFE,0x00,0x00,
0x00,0x40,0x00,0x40,0x20,0x00,0x00,0x00}; //峰峰值
char code frequency[128]={
0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
0x08,0xFE,0x00,0x00,0x01,0x00,0x00,0x00,
0x4E,0x20,0x00,0x00,0x7F,0xFE,0x00,0x00,
0x48,0x40,0x00,0x00,0x41,0x00,0x00,0x00,
0x48,0xFC,0x00,0x00,0x22,0x28,0x00,0x00,
0xFE,0x84,0x00,0x00,0x17,0xD0,0x00,0x00,
0x00,0xA4,0x00,0x00,0x04,0x80,0x00,0x00,
0x08,0xA4,0x00,0x00,0x11,0x10,0x00,0x00,
0x4A,0xA4,0x00,0x00,0x22,0x48,0x00,0x00,
0x4A,0xA4,0x00,0x00,0x47,0xC4,0x30,0x00,
0x84,0xA4,0x00,0x00,0x01,0x20,0x30,0x00,
0x08,0x50,0x00,0x00,0xFF,0xFE,0x00,0x00,
0x10,0x48,0x00,0x00,0x01,0x00,0x30,0x00,
0x20,0x86,0x00,0x00,0x01,0x00,0x30,0x00,
0xC3,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00}; //频率
//数字及小数点
char code number[11][16]={
{0x00,0x00,0x00,0x10,0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00},/*"1",0*/
{0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x04,0x04,0x08,0x10,0x20,0x42,0x7E,0x00,0x00},/*"2",1*/
{0x00,0x00,0x00,0x3C,0x42,0x42,0x04,0x18,0x04,0x02,0x02,0x42,0x44,0x38,0x00,0x00},/*"3",2*/
{0x00,0x00,0x00,0x04,0x0C,0x14,0x24,0x24,0x44,0x44,0x7E,0x04,0x04,0x1E,0x00,0x00},/*"4",3*/
{0x00,0x00,0x00,0x7E,0x40,0x40,0x40,0x58,0x64,0x02,0x02,0x42,0x44,0x38,0x00,0x00},/*"5",4*/
{0x00,0x00,0x00,0x1C,0x24,0x40,0x40,0x58,0x64,0x42,0x42,0x42,0x24,0x18,0x00,0x00},/*"6",5*/
{0x00,0x00,0x00,0x7E,0x44,0x44,0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00},/*"7",6*/
{0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x24,0x18,0x24,0x42,0x42,0x42,0x3C,0x00,0x00},/*"8",7*/
{0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x26,0x1A,0x02,0x02,0x24,0x38,0x00,0x00},/*"9",8*/
{0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00},/*"0",9*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00}/*".",10*/ };
//单位
char code unit1[16]={0x00,0x00,0x00,0xC0,0x40,0x40,0x40,0x4E,0x48,0x50,0x68,0x48,0x44,0xEE,0x00,0x00};/*"k",0*/
char code unit2[16]={0x00,0x00,0x00,0xE7,0x42,0x42,0x42,0x42,0x7E,0x42,0x42,0x42,0x42,0xE7,0x00,0x00};/*"H",1*/
char code unit3[16]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x44,0x08,0x10,0x10,0x22,0x7E,0x00,0x00};/*"z",2*/
char code unit4[16]={0x00,0x00,0x00,0xEE,0x6C,0x6C,0x6C,0x6C,0x54,0x54,0x54,0x54,0x54,0xD6,0x00,0x00};/*"M",3*/
char code unit5[16]={0x00,0x00,0x00,0xE7,0x42,0x42,0x44,0x24,0x24,0x28,0x28,0x18,0x10,0x10,0x00,0x00};/*"V",4*/
char code unit6[16]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x49,0x49,0x49,0x49,0x49,0xED,0x00,0x00};/*"m",5*/
char code blank[16]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//空字符
//**** 延时155us ****
void delay_155us()
{
int i;
for(i=0;i<10;i++){}
}
//**** 延时8ms的整数倍 ****
void delay_8ms(int delay_8ms_time)
{
int i,j;
for(i=0;i<delay_8ms_time;i++)
{
for(j=0;j<100;j++){}
}
}
//**** 延时0.5s的整数倍 ****
void delay_half_1s(int delay_half_1s_time)
{
int i,j,k;
for(i=0;i<delay_half_1s_time;i++)
{
for(j=0;j<255;j++)
{
for(k=0;k<255;k++){}
}
}
}
//*********** 写数据子程序 *****
void LCD_write_data(char data_data)
{
BF = 1;
RS = 0;
RW = 1;
while(BF)
{
P1 = 0xFF;
E = 1;
temp_ramaddr = P1;
E = 0;
}
RS = 1;
RW = 0;
P1 = data_data;
E = 1;
E = 0;
}
//*********** 写指令子程序 *****
void LCD_write_instruction(char data_instruction)
{
BF = 1;
RS = 0;
RW = 1;
while(BF)
{
P1 = 0xFF;
E = 1;
temp_ramaddr = P1;
E = 0;
}
RW = 0;
P1 = data_instruction;
E = 1;
E = 0;
}
//************ LCD初始化 ********
void LCD_initial()
{
delay_half_1s(1);
LCD_write_instruction(0x01);
delay_155us();
LCD_write_instruction(0x30);
delay_155us();
LCD_write_instruction(0x0E);
delay_155us();
LCD_write_instruction(0x01);
delay_8ms(5);
LCD_write_instruction(0x06);
delay_155us();
}
/* 延时t毫秒 */
void delay(uint t)
{
uint i;
while(t--)
{
/* 对于12M时钟,约延时1ms */
for (i=0;i<125;i++)
{}
}
}
void keyscan(void) //键盘扫描子程序
{
uchar scancode, rowcode;
P3=0xf0; //向行扫描输出口发全0,查询列信号
if((P3&0xf0)!=0xf0)//若有键按下
{
delay(50); //延时消抖
if((P3&0xf0)!=0xf0)
{
scancode=0xfe;
while((scancode&0x10)!=0) //逐行扫描
{
P3=scancode; //输出行扫描码
if((P3&0xf0)!=0xf0) //若本行有键按下
{
rowcode=(P3&0xf0)|0x0f;
keycode=((~scancode)+(~rowcode));
KeyDisplay();
}
else
{ scancode=(scancode<<1)|0x01;}
}
}
}
}
uchar getkey(uchar keycode) //获取键值子程序
{
int kb;
switch(keycode)
{
case 0x11:kb=4;break;
case 0x21:kb=3;break;
case 0x41:kb=2;break;
case 0x81:kb=1;break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -