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

📄 main.h

📁 PHILIP LPC935MCU UART用于与传真模块通信,SPI用于与SL811的USB模块通信.该软件把U盘存储的文件通过传真发到对方相同的设备接收到U盘
💻 H
字号:
#define byte unsigned char
#define word unsigned int
#define ulong unsigned long

#define true                   1
#define false                  0
#define On		               0
#define Off		               1

#define LCD_Addr 			0x9000//0xFFFF
#define HC573_Addr			0x8000//0xFFFE
//define  byte LED1_Addr	_at_   0xF000;
//xdata byte LED2_Addr	_at_   0xE000;
//xdata byte LED3_Addr	_at_   0xD000;
//xdata byte LED4_Addr	_at_   0xC000;
#define Buzzer_Addr		0xB000
#define LED1_On		XBYTE[0xF000]=0x01
#define LED1_Off	XBYTE[0xF000]=0x00
#define LED2_On		XBYTE[0xE000]=0x01
#define LED2_Off	XBYTE[0xE000]=0x00
#define LED3_On		XBYTE[0xD000]=0x01
#define LED3_Off	XBYTE[0xD000]=0x00
#define LED4_On		XBYTE[0xC000]=0x01
#define LED4_Off	XBYTE[0xC000]=0x00
#define Buzzer_On	XBYTE[0xB000]=0x01
#define Buzzer_Off      XBYTE[0xB000]=0x00


#define KB_DB_Out               P0
#define KB_DB_In                P1

//-------定义SPI--------------
#define SPI_READ_STAT            1
#define SPI_READ_DATA            2
#define SPI_WRITE_STAT           3
#define SPI_WRITE_DATA           4

#define SPI_IDLE_STATE    		0
#define SPI_READ_STATE    		1
#define SPI_READ_DATA_STATE    	2
#define SPI_WRITE_STATE   		3
#define SPI_WRITE_DATA_STATE   	4

#define Set_SPI_Master SPCTL=0x5C; SPCFG=0x00
#define Set_SPI_Slave  SPCTL=0xCC; SPCFG=0x00

//-------定义MODEM状态-------------------
#define MODEM_INIT_STATE			0
#define MODEM_IDLE_STATE			1
#define MODEM_RINGING_STATE			2
#define MODEM_DIALING_STATE			3
#define MODEM_CONNECTED_STATE		4
#define MODEM_DISCONNECTED_STATE	5

//--------定义MODNE EVENT MSG----------------
#define MODEM_OK					0
#define MODEM_RING					1
#define MODEM_BUSY					2
#define MODEM_NO_DIALTONE			3
#define MODEM_NO_CARRIER			4
#define MODEM_CONNECTED_2400		5
#define MODEM_CONNECTED_4800		6
#define MODEM_CONNECTED_9600		7
#define MODEM_CONNECTED_14400		8
#define MODEM_CONNECTED_19200		9
#define MODEM_CONNECTED_28800		10
#define MODEM_CONNECTED_38400		11
#define MODEM_CONNECTED_33600		12
#define MODEM_CONNECTED_56000		13
#define MODEM_CONNECTED_57600		14
#define MODEM_CONNECTED_112000		15

//------定义USB状态-----------------------
#define USB_UNREADY_STATE			0
#define USB_READY_STATE				1
#define USB_RUNNING_STATE			2

//--------定义系统状态---------------
#define SYS_IDLE_STATE				0
#define SYS_MENU_STATE				1
#define SYS_MENU_FILE_LIST_STATE	2
#define SYS_MENU_SETUP_STATE		3
#define SYS_MENU_DIAL_STATE			4
#define SYS_MENU_ONHOOK_STATE		5
#define SYS_DIALING_STATE			6
#define SYS_READY_STATE				7
#define SYS_READY_RECIEVE_STATE		8
#define SYS_RECIEVEING_STATE		9
#define SYS_RECIEVE_FINISHED_STATE	10
#define SYS_READY_SEND_STATE        11
#define SYS_SENDING_STATE           12
#define SYS_SEND_FINISHED_STATE     13
#define SYS_ERROR_STATE             14
#define SYS_RINGING_STATE           15
#define SYS_ANSWER_STATE            16
#define SYS_TX_RX_STATE             17

//------ 时间常量 ---------------
#define _100us      1
#define _1Ms		1
#define _2Ms		2
#define _10MS       10
#define _20MS       20
#define _30MS       30
#define _100MS      100
#define _200MS		200
#define _300MS      300
#define _500MS		500
#define _800MS		800
#define _1S			1000
#define _2S			2000
#define _5S			5000
#define _8S         8000
#define _10S        10000
#define _20S        19620//196200
#define _60S        60000
#define _90S        90000
#define _120S       120000
#define _300S       300000
#define _500S       500000
#define _900S       900000 

//------- 系统命令-----------------------
#define LIST_FILE               0X00
#define OPEN_FILE               0X01
#define READ_FILE               0X02
#define FILE_SEEK               0X03
#define CREATE_FILE             0X04
#define WRITE_FILE              0X05
#define DEL_FILE                0X06
#define GET_FREE_SPACE          0x07
#define CKECK_U_DISK            0x08
#define CREATE_DIR              0x09
#define CD_DIR                  0x0A
#define BACK_DIR                0x0B
#define BACK_ROOT               0x0C
#define USB_RESET				0x0D
#define FILE_EOF				0x0F


//-------- 定义定时器常量----------------
//#define TH0_DATA    0xFF             //4MHz 100us  ff62
//#define TL0_DATA    0x62

//#define TH0_DATA    0xFE             //6MHz 100us  FED4
//#define TL0_DATA    0xD4

#define TH0_DATA    0xF8             //24MHz 1ms  FF5F
#define TL0_DATA    0x58

//#define TH0_DATA    0xFE             //24MHz 100us  FF5F
//#define TL0_DATA    0xA8

//#define TH0_DATA    0xFB             //24MHz 100us  FF50
//#define TL0_DATA    0x50

//----定义缓冲区长度------
#define Recv_Buf_Len 2048
#define UARTBUT_LEN 37
#define KB_Buf_Len  64
#define Msg_Buf_Len 64

//-----------定义键盘-----------------
#define KB_Scan_Time    200     //10ms  10ms/50us
#define KB_0			0x25
#define KB_1			0x32	
#define KB_2			0x22	
#define KB_3			0x12	
#define KB_4			0x33
#define KB_5			0x23
#define KB_6			0x13
#define KB_7			0x34
#define KB_8			0x24
#define KB_9			0x14	
#define KB_STAR			0x35	
#define KB_JIN			0x15
#define KB_UP			0x31
#define KB_DOWN			0x21
#define KB_CLEAR		0x43	
#define KB_ENTER		0x11
#define KB_MENU			0x42
#define KB_SEND			0x44
#define KB_EXIT			0x41
#define KB_RECIEVE		0x45	




//------LPC935引脚定义-----------
/*
sbit CS=P1^6;
sbit KEY_Test=P0^7;
sbit KEY_Set =P1^5;
sbit LED=P1^7;
sbit TX_PTT=P1^6;
*/
sbit SPI_SS=P1^4;

//------- 变量定义 ---------- 
typedef struct _EVENT_DEF{
    byte Active;
    byte Byte_data;
} EVENT;

EVENT           Key_Down;
EVENT           Sys_Ring;
EVENT           Sys_Conn;
EVENT           Clear_Msg;
//EVENT           Send_CMD;
EVENT           Send_Data;
EVENT           Recv_Finished;
EVENT           Send_Finished;
//EVENT           I2C_Recieve_Msg;
//EVENT           I2C_Buf_Full;
//EVENT           Com_Buf_Full;
ulong           Cnt_Long_1ms=0;
word            Buzzer_time=0;
ulong           File_Size=0;
ulong           File_Point=0;
word            Delay_Cnt=0;
byte    xdata   Com_Recv_Buf[Recv_Buf_Len];
byte    xdata   SPI_Recv_Buf[Recv_Buf_Len];
byte    xdata   File_Name[12];
byte    xdata   File_Info[33];
byte    xdata   KB_Recv_Buf[KB_Buf_Len+1];
byte    xdata   UARTBUF[UARTBUT_LEN];//发送缓冲;
byte    xdata   Msg_Buf[Msg_Buf_Len];
word    data    SPI_Write_Point=0;
word    data    SPI_Read_Point=0;
word    data    Com_Write_Point=0;
word    data    Com_Read_Point=0;
byte            Msg_Byte_Cnt=0;
byte            I_Cnt=0;
byte            Recv_To=0;
byte            KB_Point=0;
byte    data    LCD_Latch_DB=0;
byte            LED_Latch_DB=0;
byte            RollSpace=0;
byte 	data    SYS_Status=SYS_IDLE_STATE;
byte 	data    USB_Status=USB_UNREADY_STATE;
byte 	data    MODEM_Status=MODEM_DISCONNECTED_STATE;
byte            Com_Recv_Byte_Cnt=0;
byte            SPI_Recv_Byte_Cnt=0;
byte            KB_Cnt=0;
byte            Key_No=0;
byte            Ring_Cnt;
byte            Request;
byte            Response;
bit             Flag_KB_SCAN=false;
bit             Flag_KB_Enable=false;       //处于KB状态
bit             Key_Press=false;
bit             ack;	         	/*应答标志位*/
bit             Flag_1ms=false;
bit             temp_bit;
static bit 		SPI_TI=0;
static bit      COM_TI=0;
static bit 		Flag_Exit=0;
static bit 		Flag_Buzzer=0;
static  bit     mspibusy=0; //  SPI not busy
int             Rec_Cnt=0;
code    byte    KB_TABLE[40]=
	{KB_0,0x30,KB_1,0x31,KB_2,0x32,KB_3,0x33,KB_4,0x34,KB_5,0x35,KB_6,0x36,KB_7,0x37,KB_8,0x38,
	 KB_9,0x39,KB_STAR,0x15,KB_JIN,0x43,KB_UP,0x16,KB_DOWN,0x17,KB_CLEAR,0x11,KB_ENTER,0x0D,
	KB_MENU,0x81,KB_SEND,0x82,KB_EXIT,0x83,KB_RECIEVE,0x88};

code    byte    SYS_WORD[65][2]=
	{"广","州","市","普","天","众","智","实","业","有","限","公","司","主","菜","单","设","置",
	"进","入","退","出","确","定","取","消","发","送","接","收","选","择","键","盘","编","码",
	"红","外","按","向","上","下","左","右","文","件","目","录","读","写","数","据","加","密",
	"传","真","机","列","表","挂","拨","号","开","发","中"};
	
code    byte    SYS_BYTE[91]=
	{'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l',
	'm','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I',
	'J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','+','-','*','/',',','.',
	':',';',0x27,'"','[',']','{','}','?','/',0x5C,'(',')',0x20,'#','@','$','%','&','=','<','>','|'};

code	byte * MODEM_MSG[16]=
	{"OK","RING","BUSY","NO DIALTONE","NO CARRIER","CONNECT 2400","CONNECT 4800","CONNECT 9600","CONNECT 14400",
	"CONNECT 19200","CONNECT 28800","CONNECT 33600","CONNECT 38400","CONNECT 56000",
	"CONNECT 57600","CONNECT 115200"};

⌨️ 快捷键说明

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