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

📄 mvp.h

📁 msc1201 编程4
💻 H
字号:
//#define kRCAP2 65530		//9600
//#define kRCAP2 65535		//57600
//#define kUSEC  (2-1)
//#define kMSEC  (1843-1)
//#define kACLK  (2-1)

//#define kRCAP2 65500		//9600
//#define kRCAP2 65530		//57600
//#define kUSEC  (11-1)
//#define kMSEC  (11059-1)
//#define kACLK  (11-1-3)

//#define kRCAP2 65458	//9600
#define kRCAP2 65523	//57600
#define kUSEC  (24-1)
#define kMSEC  (24000-1)
#define kACLK  (24-1-16)

// Slave and Aux CPU Timing Scaling
#define SCALE	1	// Set PSEN to SysClk for CPUA & CPUS
//#define SCALE	4		// Set PSEN to SysClk/4 for CPUA & CPUS
#define cUSEC	(((kUSEC+1)/SCALE)-1)
#define cMSEC	(((kMSEC+1)/SCALE)-1)

// Firmware version
#define FWVer	0x11
#define START	0x10 // Flash sfr init starting address
#define END		0x30 // Flash sfr init ending address
// Parallel Flash Programming Commands
#define FRD	(0)  // flash read command
#define FWR (1)  // flash write command
#define FME (2)  // flash mass erase command
#define FPE (3)  // flash page erase command
#define SRD (6)  // sfr read command
#define SWR (7)  // sfr write command
#define CPUA 		0x80
#define CPUS 		0x40
#define CPUBOTH 	0xc0
#define P0IDLE		0x0000
#define P0OUT		0x0000
#define P1OUT		0x0000
// Parallel CPU Interface
sbit ALE 	= P2^0;
sbit REQA 	= P2^1;
sbit ACKA 	= P2^2;
sbit CP 		= P2^3;
sbit REQS 	= P2^4;
sbit ACKS 	= P2^5;
sbit VDDEN 	= P2^6;
sbit MRST 	= P2^7;
sbit PASSS 	= P3^2;
sbit TONE	= P3^3;
sbit PASSA 	= P3^4;
sbit CMD0 	= P3^5;
sbit CMD1  	= P3^6;
sbit CMD2 	= P3^7;
sfr  id		= 0x80;
sfr  al		= 0x90;
sfr  ah		= 0x90;

#define sP0      0x80  //
#define sSP      0x81  //
#define sDPL     0x82  //
#define sDPH     0x83  //
#define sDPL0    0x82  //
#define sDPH0    0x83  //
#define sDPL1    0x84  //
#define sDPH1    0x85  //
#define sDPS     0x86  //
#define sPCON    0x87  //
#define sTCON    0x88  //
#define sTMOD    0x89  //
#define sTL0     0x8A  //
#define sTL1     0x8B  //
#define sTH0     0x8C  //
#define sTH1     0x8D  //
#define sCKCON   0x8E  //
#define sMWS     0x8F  //
#define sP1      0x90  //
#define sEXIF    0x91  //
#define sMPAGE   0x92  //
#define sCADDR   0x93  //
#define sCDATA   0x94  //
#define sMCON    0x95  //
#define sSCON    0x98  //
#define sSCON0   0x98  //
#define sSBUF       0x99  //
#define sSBUF0      0x99  //
#define sSPICON     0x9A  //
#define sSPIDATA    0x9B  //
#define sSPIRCON    0x9C  //
#define sSPITCON    0x9D  //
#define sSPISTRT    0x9E  //
#define sSPIEND     0x9F  //
#define sP2       0xA0  //
#define sPWMCON   0xA1  //
#define sPWMLOW   0xA2  //
#define sPWMHI    0xA3  //
#define sPAI      0xA5  //
#define sAIE      0xA6  //
#define sAISTAT   0xA7  //
#define sIE       0xA8  //
#define sBPCON    0xA9  //
#define sBPL      0xAA  //
#define sBPH      0xAB  //
#define sP0DDRL   0xAC  //
#define sP0DDRH   0xAD  //
#define sP1DDRL   0xAE  //
#define sP1DDRH   0xAF  //
#define sP3       0xB0  //
#define sP2DDRL   0xB1  //
#define sP2DDRH   0xB2  //
#define sP3DDRL   0xB3  //
#define sP3DDRH   0xB4  //
#define sLDCON     0xB5  //
#define sDACCON0   0xB5  //
#define sDACCON1   0xB6  //
#define sDACSEL   0xB7  //
#define sIP       0xB8  //
#define sSCON1    0xC0  //
#define sSBUF1    0xC1  //
#define sEWU      0xC6  //
#define sT2CON    0xC8  //
#define sRCAP2L   0xCA  //
#define sRCAP2H   0xCB  //
#define sTL2      0xCC  //
#define sTH2      0xCD  //
#define sPSW      0xD0  //
#define sOCL      0xD1  //
#define sOCM      0xD2  //
#define sOCH      0xD3  //
#define sGCL      0xD4  //
#define sGCM      0xD5  //
#define sGCH      0xD6  //
#define sADMUX    0xD7  //
#define sEICON    0xD8  //
#define sADRESL   0xD9  //
#define sADRESM   0xDA  //
#define sADRESH   0xDB  //
#define sADCON0   0xDC  //
#define sADCON1   0xDD  //
#define sADCON2   0xDE  //
#define sADCON3   0xDF  //
#define sACC      0xE0  //
#define sSSCON    0xE1  //
#define sSUMR0    0xE2  //
#define sSUMR1    0xE3  //
#define sSUMR2    0xE4  //
#define sSUMR3    0xE5  //
#define sODAC     0xE6  //
#define sLVDCON   0xE7  //
#define sEIE      0xE8  //
#define sHWPC0    0xE9  //
#define sHWPC1    0xEA  //
#define sHWID     0xEB  //
#define sFMCON    0xEE  //
#define sFTCON    0xEF  //
#define sB        0xF0  //
#define sPDCON    0xF1  //
#define sPASEL    0xF2  //
#define sACLK     0xF6  //
#define sSRST     0xF7  //
#define sEIP      0xF8  //
#define sSECINT   0xF9  //
#define sMSINT    0xFA  //
#define sUSEC     0xFB  //
#define sMSECL    0xFC  //
#define sMSECH    0xFD  //
#define sHMSEC    0xFE  //
#define sWDTCON   0xFF  //

extern unsigned int t0,t1,t2;
extern char rx_byte_echo(void);
extern void tx_byte(char);
extern void tx_hex(char);
extern void putprompt(void);
extern void putcr(void);
extern void putok(char);
extern void putspace1(void);
extern void putspace2(void);
extern void putspace3(void);
extern void putspace4(void);
extern void putstr(char code * data msg);
extern unsigned char rx_hex_echo(void);
extern unsigned int rx_hex_word_echo(void);
extern unsigned int rx_hex_double_echo(void);
extern char read_and_write_intel_hex(unsigned char);
extern char faddr_data_read(char);
extern unsigned char fpm(unsigned char cmd, unsigned int a,  unsigned char pd);
extern unsigned char afpm(unsigned char cmd, unsigned int a,  unsigned char pd);
extern unsigned char sfpm(unsigned char cmd, unsigned int a,  unsigned char pd);
extern unsigned char util(unsigned char cpu, unsigned char k);
extern char sfr_rd(char);
extern void sfr_wr(char,char);
//bake
extern void modeswitch(void);
#define FDM	1
#define FPM 0
extern char write_flash_chk (int faddr, char fdata, char fdm);
extern char page_erase (int faddr, char fdata, char fdm);
// Console
#define RED	'R'		// Red LED
#define GREEN 'G'		// Green LED
sbit tone = P3^3;
extern void led(unsigned char color, unsigned char onoff);
extern void beep (unsigned int, unsigned int);
extern unsigned char high(unsigned char k);
extern void display(unsigned char cpu, unsigned char c, unsigned int i);
extern void nokey(void);
// ADC
extern unsigned char k1,k2,k3,vdds;
// Serial 0 
#define RX_BEG	((unsigned char xdata*)0)
#define RX_END ((unsigned char xdata*)16)
#define TX_BEG ((unsigned char xdata*)16)
#define TX_END ((unsigned char xdata*)32)
extern unsigned char xdata *rx_hdptr;
extern unsigned char xdata * rx_tailptr;
extern unsigned char xdata * tx_hdptr;
extern unsigned char xdata * tx_tailptr;
extern bit txmt, rxmt, txfull, rxfull;
// Device info
enum PART {MSC1210, MSC1211, MSC1212};

typedef struct {
	char exist;
	unsigned char HWPC1;
	unsigned char HWPC0;
	unsigned char HWID;
	unsigned char kbyte;
	enum PART part;
	unsigned char y,secure;
} SLAVE;
extern SLAVE target;
extern unsigned char blackout(unsigned int i);
enum OnOff {On, Off};
enum Dest {None, Master, Target, Both};
enum YesNo {Yes, No};
//Bake
#define ONE		0xaa
#define ZERO	0x55
enum Mode {Bake, Program};
//NV Variables
typedef struct {
	unsigned char cpu;
	enum YesNo valid;	// 0xaa is valid
	enum Dest hexdlto;
	enum OnOff speaker;
	enum Dest mem;
	unsigned char memaddrh;
	unsigned char memaddrl;
	enum Dest forcesecure;	
	enum Mode mode;			
} NV;
extern void nvnew(void);
extern NV ping, pong;
extern NV xdata * data nvcp; //NV Variable current pointer
extern NV xdata * data nvnp; //NV Variable next pointer
#define SET 	1
#define CLEAR 	0
#define ON	'1'
#define OFF '0'
// General
#define SPACE ' '
//PASEL values
#define PSEN_PSEN	1
#define PSEN_CLK	2
#define PSEN_MODCLK 3
#define PSEN_LOW	4
#define PSEN_HIGH 5
#define ALE_ALE 	6
#define ALE_LOW	7
#define ALE_HIGH	8

⌨️ 快捷键说明

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