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

📄 hpi.h

📁 这个是录音琴的程序,用光电感应器来检测琴键的动作.并且将他记录下来,可以回放.
💻 H
字号:
/*******************************Copyright (c)***************************************

      人机介面说明

************************************************************************************/

#ifndef		_HPI_H_
#define		_HPI_H_

/*******************************键盘命令********************************************/

#define		KEY_ENT				(0x0F)			//回车键
#define		KEY_ENT_ON			(KEY_ENT|0x80)		//回车键__长按
#define		KEY_UP				(0x17)			//上移键
#define		KEY_UP_ON			(KEY_UP|0x80)		//上移键__长按
#define		KEY_DOWN			(0x1D)			//下移键
#define		KEY_DOWN_ON			(KEY_DOWN|0x80)		//下移键__长按
#define		KEY_LEFT			(0x1E)			//左移键
#define		KEY_LEFT_ON			(KEY_LEFT|0x80)		//左移键__长按
#define		KEY_RIGHT			(0x1B)			//右移键
#define		KEY_RIGHT_ON		        (KEY_RIGHT|0x80)	//右移键__长按

/*******************************系统工作状态****************************************/

#define		SYS_WORK_IDLE			0x00		//待机空闲状态
#define		SYS_WORK_MENU_REC		0x01		//录音菜单状态
#define		SYS_WORK_MENU_SAVE		0x02		//存储菜单状态
#define		SYS_WORK_MENU_PLAY		0x03		//放音菜单状态
#define		SYS_WORK_MENU_SET		0x04		//设定菜单状态
#define		SYS_WORK_RUN_REC		0x05		//录音工作状态
#define		SYS_WORK_RUN_SAVE		0x06		//存储工作状态
#define		SYS_WORK_RUN_PLAY		0x07		//放音工作状态

#define		SYS_WORK_SET_MENU_0		0x08		//参数设定菜单1
#define		SYS_WORK_SET_MENU_1		0x09		//参数设定菜单2
#define		SYS_WORK_SET_MENU_2		0x0A		//参数设定菜单3
#define		SYS_WORK_SET_MENU_3		0x0B		//参数设定菜单4

#define		SYS_WORK_REC_PLAY		0x0C		//录音重放状态
#define		SYS_WORK_SAVE_ENT		0x0D		//存储确认状态

#define		SYS_WORK_SEL_RAM_PLAY	        0x0E		//放音选择RAM状态
#define		SYS_WORK_SEL_USB_PLAY	        0x0F		//放音选择USB状态
#define		SYS_WORK_SEL_EXT_PLAY	        0x10		//放音选择退出状态
#define		SYS_WORK_USB_PLAY		0x11		//USB放音状态


/*---------------------------------------------------------------------------------*/

#define		SYSTEM_FOSC			24000000	//系统时钟
#define		BAUD_RATE			31250		//串口波特
#define		RAM_SIZE			30582		//缓冲区长度
#define		REC_SIZE			(RAM_SIZE-8)	//录音区长度

#define		TH0_RELOAD			((65536-10000)/256)
#define		TL0_RELOAD			((65536-10000)%256)

#define		TXD_BUFFER_SIZE		        64
#define		TXD_BUFFER_MASK		        (TXD_BUFFER_SIZE-1)

#define		RXD_BUFFER_SIZE		        64
#define		RXD_BUFFER_MASK		        (RXD_BUFFER_SIZE-1)

/*---------------------------------------------------------------------------------*/

struct Rtc
{
	UBYTE	Millis;
	UBYTE	Second;
	UBYTE	Minute;
};

/*---------------------------------------------------------------------------------*/

extern	bit	FlagRecRun;			//录音器标记
extern  bit	FlagRecEnd;			//录音完成标记
extern  bit	FlagPlayRun;			//播放器标记
extern	bit	FlagTimer;			//定时器标记
extern	bit	FlagTempo;			//节拍器标记

extern	bit	FlagInput;			//输入端标记
extern	bit	FlagOutput;			//输出端标记

extern  bit	FlagSaveSel;			//存储选择标记

extern	UBYTE	 data	ParamaTempo;		//节拍器设定
extern  UBYTE	 data	ParamaVolume;		//音量设定
extern	UBYTE	 data	SysWorkStatus;		//系统状态

extern	UBYTE	idata   InputNameLen;		//输入名称长度
extern	UBYTE	idata   InputFileName[];	//输入文件名称
extern	UBYTE	idata   InputTableRow;		//输入名称纵坐标
extern	UBYTE	idata   InputTableCol;		//输入名称横坐标

extern  UHWORD	idata	FileIndex;		//录音数据指针
extern	UWORD	idata	DeltaTick;		//放音事件时间
extern	UWORD	idata	RecEvtTick;		//录音事件时间

extern	UBYTE 	idata 	RxdHead;		//接收缓存指针头
extern	UBYTE 	idata 	RxdTail;		//接收缓存指针尾
extern	UBYTE 	xdata 	RxdBuf[RXD_BUFFER_SIZE];//接收缓存区

extern	UBYTE	xdata	DBUF[];			//公共缓存
extern	UBYTE	xdata	InOutBuf[];		//进出缓存

/*---------------------------------------------------------------------------------*/

void	SetSystemTimer0(void);                  //设定系统定时器0.
void 	SetSystemUart(void);                    //设定串行端口.
void 	UartSendData(UBYTE Value);              //串口数据传送.
UBYTE 	GetKeyBoard(void);                      //获取键盘数据.
UHWORD 	HexToBcd(UBYTE Hex);                    //HEX转换BCD.
void 	SystemRtcTask(void);                    //系统时钟任务.
void 	ResetSystemRtc(void);                   //系统时钟复位.
UHWORD 	GetSystemRtc(void);                     //获取系统时钟.
void 	RamAreaSelect(UBYTE Select);            //RAM区域选择.
void 	MidiPortSelect(void);                   //Midi端口选择.
void 	MidiOutChange(UBYTE Chane);             //Midi输出通道切换.
void 	PianoSensorModify(void);                //钢琴传感器调整.
/*---------------------------------------------------------------------------------*/
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -