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

📄 demo.h

📁 可以从计算机向WINBOND516直接下载程序的源码
💻 H
字号:
typedef unsigned char  BYTE;
typedef unsigned short WORD;
#define uint unsigned int
#define CXA3106
#define CXA3500
#define CXA2111
#define MAX7219

sfr P4=0xD8;
 
sbit ACC_7=ACC^7;
sbit ACC_0=ACC^0;

sbit P00 = P0 ^ 0;
sbit P01 = P0 ^ 1;
sbit P02 = P0 ^ 2;
sbit P03 = P0 ^ 3;
sbit P04 = P0 ^ 4;
sbit P05 = P0 ^ 5;
sbit P06 = P0 ^ 6;
sbit P07 = P0 ^ 7;

sbit P10 = P1 ^ 0;
sbit P11 = P1 ^ 1;
sbit P12 = P1 ^ 2;
sbit P13 = P1 ^ 3;
sbit P14 = P1 ^ 4;
sbit P15 = P1 ^ 5;
sbit P16 = P1 ^ 6;
sbit P17 = P1 ^ 7;

sbit P20 = P2 ^ 0;
sbit P21 = P2 ^ 1;
sbit P22 = P2 ^ 2;
sbit P23 = P2 ^ 3;
sbit P24 = P2 ^ 4;
sbit P25 = P2 ^ 5;
sbit P26 = P2 ^ 6;
sbit P27 = P2 ^ 7;

sbit P30 = P3 ^ 0;
sbit P31 = P3 ^ 1;
sbit P32 = P3 ^ 2;
sbit P33 = P3 ^ 3;
sbit P34 = P3 ^ 4;
sbit P35 = P3 ^ 5;
sbit P36 = P3 ^ 6;
sbit P37 = P3 ^ 7;
sbit P40 = P4^0;
sbit P41=P4^1;
#ifdef CXA3106
#define SENABLE_3106    P10
#define SCLK_3106       P11
#define SDATA_3106      P12
#endif

#ifdef CXA3500
#define SCTR_3500       P15
#define SCLK_3500       P14
#define SDATA_3500      P13
#endif

#ifdef CXA2111
#define SCL_2111        P16
#define SDA_2111        P17
#endif

#define  I2C_SCL        P16
#define  I2C_SDA        P17

#ifdef MAX7219
#define DIN             P25
#define CS              P26
#define CLK             P27
#endif



#define VER0            P20
#define VER1            P21
#define VER2            P22
#define LINE0           P23
#define LINE1           P24


#define X0 0x00
#define X1 0x01
#define X2 0x02
#define X3 0x03
#define X4 0x04
#define X5 0x05
#define X6 0x06
#define X7 0x07
#define X8 0x08
#define X9 0x09
#define XA 0x0A
#define XB 0x0B
#define XC 0x0C
#define XD 0x0D
#define XE 0x0E
#define XF 0x0F

#define BIT0    0x01
#define BIT1    0x02
#define BIT2    0x04
#define BIT3    0x08
#define BIT4    0x10
#define BIT5    0x20
#define BIT6    0x40
#define BIT7    0x80
#define BIT01   0x03
#define BIT10   0x03
#define BIT17   0xfe
#define BIT20   0x07
#define BIT27   0xfc
#define BIT30   0x0F
#define BIT21   0x06
#define BIT23   0x0c
#define BIT31   0x0E
#define BIT32   0x0C
#define BIT34   0x18
#define BIT37   0xf8
#define BIT40   0x1F
#define BIT41   0x1E
#define BIT42   0x1C
#define BIT43   0x18
#define BIT45   0x30
#define BIT50   0x3F
#define BIT54   0x30
#define BIT53   0x38
#define BIT64   0x70
#define BIT65   0x60
#define BIT70   0xFF
#define BIT74   0xF0
#define BIT76   0xC0
#define BIT75   0xE0
#define BITALL  0xFF
#define RECORDHEADER    'A'
#define WRITE2111  0x76
#define ScreenEnable P37

#define EEPROMWRITEID   0xA0
#define EEPROMREADID    0xA1
#define LASTBYTE        0

struct _Userdate {
  	union {
    	struct {
      	BYTE ampRgain;//0
		BYTE ampGgain;//1
		BYTE ampBgain;//2
		BYTE ampRbias;//3
		BYTE ampGbias;//4
		BYTE ampBbias;//5
		BYTE gamR_whp;//6
		BYTE gamG_whp;//7
		BYTE gamB_whp;//8
		BYTE gamR_b1p;//9
		BYTE gamG_b1p;//10
		BYTE gamB_b1p;//11
		BYTE gamR_b2p;//12
		BYTE gamG_b2p;//13
		BYTE gamB_b2p;//14
		BYTE gamR_whg;//15
		BYTE gamG_whg;//16
		BYTE gamB_whg;//17
		BYTE gamR_b1g;//18
		BYTE gamG_b1g;//19
		BYTE gamB_b1g;//20
		BYTE gamR_b2g; //21
		BYTE gamG_b2g;//22
		BYTE gamB_b2g;//23
		BYTE dly_cnt; //24
                BYTE a1;//25
                BYTE a2;//26
                BYTE a3;//27
                BYTE a4; //28
                BYTE a5; //29
                BYTE a6; //30
                BYTE a7; //31
    	} items;
    	BYTE bytes[1];
  	} value0;

	union{
		struct{
		BYTE  gamoff;
		BYTE  datest;
		BYTE  pos_cnt2;
		BYTE  pos_cnt1;
		BYTE  dir_cnt;
		BYTE  inv_cnt;
        BYTE  b6;
        BYTE  b7;
		} items;
		BYTE bytes[1];
	}value1;

	union{
		struct{
		BYTE   mirror;
		BYTE   flip;
        BYTE   minute;
        WORD   hour;
               
        BYTE   c5;
        BYTE   c6;
        BYTE   c7;
		} items;
		BYTE bytes[1];
	}value2;

	union{
		struct{
			BYTE m393_clplev;
            BYTE m393_gain;
			BYTE m393_bias;
			BYTE m393_prglev;
			BYTE m393_sidlev;
			BYTE   m393_dlcyr;
            BYTE   m393_dlcyg;
            BYTE   m393_dlcyb;
		}items;
		BYTE bytes[1];
	}value3;
union{
		struct{
			BYTE mode;
            BYTE moveRightorLeft;
			BYTE moveUporDown;
            BYTE m_address9;
    		BYTE m_ttlpolreg;
      		BYTE m_select_rgb;
      		BYTE m_pow;  
 		    BYTE reserved;
		}items;
		BYTE bytes[1];
	}value4;	
union{
		struct{
		    BYTE name0; //0
			BYTE name1; //0
            BYTE name2; //1
			BYTE name3;  //2
            BYTE year; //3
    		BYTE mouth;  //4
      		BYTE date;  //5
      		WORD number;//6,7  
 
	  }items;
		BYTE bytes[1];
	}boardinfo;
};

extern struct _Userdate Userdate;
extern BYTE UILevel,LEDdate,Flag_rs232,recbyte[3];
extern WORD InterruptCount ;        // every 1 ms increase 1

void ShortDelay(BYTE);
void showOnLED(BYTE,BYTE);
void scanButton(void);
void ButtonEnterDown(void);
void ButtonEnterUp(void);
void ButtonPlus(void);
void ButtonMns(void);
void ButtonSave(void);

void I2C_SendStart(void);
void I2C_SendStop(void);
void I2C_ReleaseBus(void);
bit  I2C_SendByte(BYTE);
bit  I2C_SendByteWithStart(BYTE);
 bit I2C_GetACK(void);
  BYTE I2C_GetLastByte(void);

void I2C_SendStart2111(void);
bit I2C_SendByte2111(BYTE);
void I2C_SendStop2111(void);
void I2C_ReleaseBus2111(void);
BYTE I2C_GetByteWithAddr(BYTE);
bit  I2C_SendByteWithAddr(BYTE,BYTE);

BYTE getchecksum0(void);
BYTE getchecksum1(void);
BYTE getchecksum2(void);
BYTE getchecksum3(void);
void write3500AddrByte(BYTE,BYTE);
void LoadEEPROM0(void);
void setMAXICdate(BYTE,BYTE);
void setMAXICmode(BYTE,BYTE);
void DefaultOnLED(void);


void sendparamtopc(void);//new add
void write3106Byte(BYTE temp,BYTE k);      
void mywrite3106(void);
//void changeRGB(BYTE selectRGB); //no use
void AdjustPow(BYTE m_pow);
//////////////////////////////
#define WRITE_M62393 0x90
sbit REST_M62393=P3^4;
bit Set_M62393(BYTE addr,BYTE val);
void init_M62393();

sfr CHPENR=0xF6;
sfr CHPCON=0xBF; 
sfr SFRAL=0xC4;
sfr SFRAH=0xC5; 
sfr SFRFD=0xC6;
sfr SFRCN=0xC7;
void seutity(void);
void reset_CPU(void);
BYTE checkButtonReset(void);
void write2111(void);
void write3500(void);
void write3106(void);
BYTE I2C_GetLastByte(void);
BYTE read24c16(BYTE address);
void write24c16(BYTE address,BYTE value);
 void setlock(void);
  void readlock(void);
void setboardinfo(void);
void readboardinfo(void);
   ////////////////////////////////
   void do_F04KBOOT();
void Erase_4k(); 
bit blank_check();
void set_rs232();   //set rs232 and send 's' to pc
void program_4k();
void read_4k();
void Isp_64K_4K(void);        

//////////////////



⌨️ 快捷键说明

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