亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 93lc46.c

?? EEPROM 9346驅動程序 read and write and so on
?? C
字號:

/************************************************************	
 *	Processer : Microchip PIC12C508								*
 *	Compiler : Hi-TECH PICC 8.00 PL2							*
 *	Writer : Jason Kuo											*
 *	Description : It can read/write 93LC46 (64 x 16-bit organization)	*
 *************************************************************/	
	
static volatile unsigned char	RTCC	@ 0x01;
static volatile unsigned char	TMR0	@ 0x01;
static volatile unsigned char	PCL	@ 0x02;
static volatile unsigned char	STATUS	@ 0x03;
static          unsigned char	FSR	@ 0x04;
static volatile unsigned char	OSCCAL	@ 0x05;
static volatile unsigned char	GPIO	@ 0x06;

static          unsigned char control	OPTION	@ 0x00;
static volatile	unsigned char control	TRIS	@ 0x06;

/*	STATUS bits	*/
static bit 	GPWUF	@ (unsigned)&STATUS*8+7;
static bit	PA0	@ (unsigned)&STATUS*8+5;
static bit 	TO	@ (unsigned)&STATUS*8+4;
static bit 	PD	@ (unsigned)&STATUS*8+3;
static bit 	ZERO	@ (unsigned)&STATUS*8+2;
static bit	DC	@ (unsigned)&STATUS*8+1;
static bit	CARRY	@ (unsigned)&STATUS*8+0;

/*	OPTION bits	*/
#define		GPWU	(1<<7)
#define		GPPU	(1<<6)
#define		T0CS	(1<<5)
#define		T0SE	(1<<4)
#define		PSA	(1<<3)
#define		PS2	(1<<2)
#define		PS1	(1<<1)
#define		PS0	(1<<0)

/*      OSCCAL bits     */
static volatile bit     CAL3    @ (unsigned)&OSCCAL*8+7;
static volatile bit     CAL2    @ (unsigned)&OSCCAL*8+6;
static volatile bit     CAL1    @ (unsigned)&OSCCAL*8+5;
static volatile bit     CAL0    @ (unsigned)&OSCCAL*8+4;

static volatile bit	GP5	@ (unsigned)&GPIO*8+5;
static volatile bit	GP4	@ (unsigned)&GPIO*8+4;
static volatile bit	GP3	@ (unsigned)&GPIO*8+3;
static volatile bit	GP2	@ (unsigned)&GPIO*8+2;
static volatile bit	GP1	@ (unsigned)&GPIO*8+1;
static volatile bit	GP0	@ (unsigned)&GPIO*8+0;

#define CONFIG_ADDR	0xFFF

/* code protection */
#define MCLREN		0xFFFF	// memory clear enable
#define MCLRDIS		0xFFEF	// memory clear disable

/*watchdog*/
#define WDTEN		0xFFFF	// watchdog timer enable
#define WDTDIS		0xFFFB	// watchdog timer disable

/* code protection */
#define PROTECT		0xFFF7	// protect the program code
#define UNPROTECT	0xFFFF	// do not protect the program code

/*osc configurations*/
#define EXTRC   	0xFFFF	// external resistor/capacitor
#define INTRC		0xFFFE	// internal
#define XT		0xFFFD	// crystal/resonator
#define LP		0xFFFC	// low power crystal/resonator

/* 93LC46 I/O pin define */
#define CS 	GP0		//Chip Select
#define CLK	GP1		//Serial Data Clock
#define DI	GP2		//Serial Data Input
#define DO	GP4		//Serial Data Output

void Delay(unsigned int counter);
void Pulse(void);
void StartBit(void);
void EWEN(void);
void EWDS(void);
extern void Write93LC46(unsigned char Offset_Addr, unsigned int tx_data);  
extern unsigned int Read93LC46(unsigned char Offset_Addr);
void	InitPIC(void);

#define	CLRWDT()	asm(" clrwdt")
#define	SLEEP()		asm(" sleep")

#define	___mkstr1(x)	#x
#define	___mkstr(x)	___mkstr1(x)
#define	__CONFIG(x)	asm("\tpsect config,class=CONFIG,delta=2");\
			asm("\tglobal\tconfig_word"); \
			asm("config_word"); \
			asm("\tdw "___mkstr(x))

#define __IDLOC(w)       asm("\tpsect idloc,class=IDLOC,delta=2");\
			 asm("\tglobal\tidloc_word"); \
			 asm("idloc_word"); \
			 asm("\tirpc\t__arg," ___mkstr(w)); \
			 asm("\tdw 0&__arg&h"); \
			 asm("\tendm")


__CONFIG(MCLRDIS & WDTDIS & EXTRC & PROTECT);


/*---------------------------------------------------- 
 Function : Delay 										
 Input : unsigned int (counter)								
 Output : None											
 Description : Delay routine								
 if counter=1  delay 35us , if counter=10 delay 134us, 
 if counter=100 delay 1.12ms,
 These delay is base on internal 4MHz 					
------------------------------------------------------*/      
void Delay(unsigned int counter)
{
   while(counter>0) counter--;  
}                                     


/*---------------------------------------------------- 
 Function : Pulse 										
 Input : None								
 Output : None											
 Description : Send a pulse (10) to Serial Data Clock(CLK)								
------------------------------------------------------*/      
void Pulse(void)
{
    CLK = 1;
    Delay(25);
    CLK = 0;
}

/*---------------------------------------------------- 
 Function : StartBit 										
 Input : None								
 Output : None											
 Description : 		
 1. Set Chip Select(CS) = 1 (high)
 2. Set a Start Bit(1) to Serial Data Input(DI)
------------------------------------------------------*/      
void StartBit(void)
{
    CS = 1;
    DI = 1;
    Pulse();
}

/*---------------------------------------------------- 
 Function : EWEN 										
 Input : None								
 Output : None											
 Description : 	ERASE/WRITE Enable
 ------------------------------------------------------*/      
void EWEN(void)
{
    unsigned char i,temp;

    StartBit();                  /* 1 */

    temp = 0x80;                        /* 0011xxxx ,(opcode:00, Address:11xxxx) */
    for(i=0; i<8; i++) {
        if(0x30 & temp)
            DI = 1;
        else
            DI = 0;
        Pulse();
        temp >>= 1;
    }

    CS = 0;
}

/*---------------------------------------------------- 
 Function : EWDS 										
 Input : None								
 Output : None											
 Description : 	ERASE/WRITE Disable
 ------------------------------------------------------*/      
void EWDS(void)
{
    unsigned char i;

    StartBit();                  /* 1 */

    DI = 0;                       /* 0000xxxx, (opcode:00, Address:00xxxx) */
    for(i=0; i<8; i++)
        Pulse();

    CS = 0;
}

/*---------------------------------------------------- 
 Function : Write93LC46 										
 Input : unsigned char Offset Address, unsigned int tx_data								
 Output : None											
 Description : 	Write 16bits data in to 93LC46 Offset Address
 ------------------------------------------------------*/      
void Write93LC46(unsigned char Offset_Addr, unsigned int tx_data)
{
    unsigned char Addr, i;
    unsigned int temp;

    EWEN();

    StartBit();                  /* 1 */
    Offset_Addr=Offset_Addr&0x3F; /* 6bits address */
    Addr = Offset_Addr + 0x40;          /* 01AAAAAA ,(opcode:01, address:AAAAAA) */
    temp = 0x0080;
    for(i=0; i<8; i++) {
        if(Addr & temp)
            DI = 1;
        else
            DI = 0;
        Pulse();
        temp >>= 1;
    }

    temp = 0x8000;                      /* DDDDDDDDDDDDDDDD(16bits data)*/
    for(i=0; i<16; i++) {
        if(tx_data & temp)
            DI = 1;
        else
            DI = 0;
        Pulse();
        temp >>= 1;
    }
    CS = 0;

    EWDS();
}

/*---------------------------------------------------- 
 Function : Read93LC46 										
 Input : unsigned char Offset Address
 Output : unsigned int											
 Description : 	Read 16bits data from 93LC46 offset address
 ------------------------------------------------------*/      
unsigned int Read93LC46(unsigned char Offset_Addr)
{
    unsigned char Addr, i, temp;
    unsigned int  rx_data;

    StartBit();                   /* 1 */
    Offset_Addr = Offset_Addr&0x3F; /* 6bits address */
    Addr = Offset_Addr + 0x80;           /* 10AAAAAA ,(opcode:10, address:AAAAAA) */
    temp = 0x80;
    for(i=0; i<8; i++) {
        if(Addr & temp)
            DI = 1;
        else
            DI = 0;
        Pulse();
        temp >>= 1;
    }

    rx_data = 0x0000;                    /* DDDDDDDDDDDDDDDD(16bits data)*/
    for(i=0; i<16; i++) {
        Pulse();
        if(DO)
            rx_data |= 0x0001;
        if(i < 15)
            rx_data <<= 1;
    }
    CS = 0;

    return(rx_data);
}

void	InitPIC(void)
{
    OPTION = (GPWU | GPPU | PS2 | PS1 | PS0);
    TRIS = 0x10;   	
    CS = 0;
    CLK = 0;
    DI = 0;    
}

/* Main routine */
void main(void)
{
	unsigned char addr;
	unsigned int rx_buf;
	
	InitPIC();
	/* Read a word then +1 and write back to 93LC46 */
	for (addr = 0; addr < 10; addr++)
	{
		rx_buf = Read93LC46(addr);
		rx_buf = rx_buf+1;
		Write93LC46(addr, rx_buf);
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产美女在线精品| 中文字幕中文乱码欧美一区二区| 成人av网站免费观看| 美国毛片一区二区三区| 日韩影院在线观看| 男男gaygay亚洲| 国产一区二区剧情av在线| 国产精品综合在线视频| 国产成人在线观看免费网站| 成人中文字幕合集| 色悠久久久久综合欧美99| 色呦呦日韩精品| 欧美浪妇xxxx高跟鞋交| 51精品视频一区二区三区| 欧美成人一区二区| 欧美高清在线视频| 亚洲欧美日韩系列| 亚洲成a人v欧美综合天堂下载 | 91在线观看高清| 色婷婷综合五月| 欧美精品视频www在线观看| 日韩三级电影网址| 久久精品欧美日韩精品| 亚洲欧美国产77777| 亚洲成av人片观看| 国产精品1区二区.| 欧美影片第一页| 欧美r级在线观看| 中文字幕一区二区在线播放| 亚洲影视资源网| 激情成人综合网| 色呦呦日韩精品| 国产精品嫩草影院com| 国产传媒欧美日韩成人| 国产精品三级视频| 亚洲成在人线免费| 亚洲日本一区二区三区| 免费精品视频在线| 精品理论电影在线观看| 久久99精品久久久久久动态图 | 在线观看av不卡| 欧美日韩国产一区二区三区地区| 国产精品沙发午睡系列990531| 中文字幕在线视频一区| 欧美日韩精品欧美日韩精品一| 懂色av一区二区三区免费看| 日韩欧美一区二区不卡| 美腿丝袜亚洲一区| 精品国产91九色蝌蚪| 国产曰批免费观看久久久| 日韩精品一区二区三区在线| 91精品国产综合久久香蕉麻豆| 制服丝袜在线91| 亚洲精品乱码久久久久久日本蜜臀| 欧美一区二区在线观看| 欧美大肚乱孕交hd孕妇| 日韩美女精品在线| 美女视频免费一区| 国产成人av一区二区三区在线 | 久久久久久久久伊人| 精品国产91乱码一区二区三区| 中文字幕一区二区视频| 欧美日韩日日夜夜| 国产一二精品视频| 日韩精品一区二区三区四区 | 久久久综合精品| 国产精品国产三级国产aⅴ原创| 亚洲国产激情av| 久久精品99国产精品| 亚洲一区二三区| 国产精品77777| 色呦呦网站一区| 日韩三级中文字幕| 在线一区二区三区四区五区| 色综合久久久久综合体| 欧美色中文字幕| 国产女人18毛片水真多成人如厕| 91丝袜高跟美女视频| 成人激情免费网站| 亚洲国产精品影院| 欧美午夜片在线看| 一区二区三区在线观看动漫| 56国语精品自产拍在线观看| 亚洲欧洲中文日韩久久av乱码| 亚洲激情第一区| 欧美日韩国产一区二区三区地区| 日韩影视精彩在线| 日韩一区二区精品在线观看| 亚洲成人1区2区| 欧美精品日韩一区| 一区二区成人在线视频| 国产自产高清不卡| 91精品国产高清一区二区三区蜜臀 | 福利视频网站一区二区三区| 亚洲日本一区二区| 国产成人综合精品三级| 加勒比av一区二区| 亚洲一区欧美一区| 欧美性视频一区二区三区| 久久一夜天堂av一区二区三区| 欧美性一二三区| 91麻豆123| 蜜桃视频免费观看一区| 国产日产欧美精品一区二区三区| a级高清视频欧美日韩| 亚洲欧美激情插| 精品久久免费看| 国产精品一级片在线观看| 国产精品国产三级国产aⅴ中文 | 精品国产伦理网| 在线精品视频小说1| 在线免费不卡电影| 国产精品一区在线观看乱码| 一区在线中文字幕| 91精品国产一区二区三区蜜臀| 久久精品久久99精品久久| 国产精品美女一区二区三区| 日韩区在线观看| 欧美色涩在线第一页| 丁香一区二区三区| 国产精品一级片| 日韩vs国产vs欧美| 亚洲视频一区二区免费在线观看| 欧美亚一区二区| 日韩你懂的在线播放| 成人一级视频在线观看| 亚洲三级小视频| 在线观看成人小视频| 麻豆91精品视频| 午夜视频在线观看一区二区三区| 欧美精品一区二区三区很污很色的| 中文字幕中文字幕在线一区 | 欧美一卡二卡三卡| 亚洲精品一区二区三区影院| 国产精品黄色在线观看| 亚洲欧洲色图综合| 大桥未久av一区二区三区中文| 国产一区91精品张津瑜| 激情文学综合网| 色综合天天综合网国产成人综合天| 日韩欧美亚洲另类制服综合在线| 久久久久国产精品麻豆ai换脸| 欧美v国产在线一区二区三区| 2022国产精品视频| 久久久国产精华| 亚洲美女在线一区| 性做久久久久久免费观看 | 国产一区二区不卡| 久久久久久黄色| 国产91在线观看| 一区二区欧美精品| 免费成人美女在线观看| 懂色av一区二区三区免费观看| 色偷偷久久人人79超碰人人澡 | 国产精品一区免费在线观看| 不卡的av网站| 日韩精品一区二区三区在线播放| 中文字幕精品一区二区三区精品| 亚洲不卡在线观看| 成人高清免费在线播放| 欧美一二三在线| 亚洲四区在线观看| 日韩电影在线观看网站| 99精品在线免费| 欧美大白屁股肥臀xxxxxx| 亚洲欧美另类小说| 国内精品伊人久久久久av一坑| 在线视频中文字幕一区二区| 久久婷婷国产综合国色天香| 视频一区在线播放| jlzzjlzz欧美大全| 久久久综合网站| 欧美a级一区二区| 在线观看亚洲精品| 国产精品免费视频观看| 精品一二线国产| 欧美性色黄大片| 亚洲美女屁股眼交3| 成人精品在线视频观看| 日韩色在线观看| 无吗不卡中文字幕| 欧美性大战久久| 亚洲视频中文字幕| 国产91精品露脸国语对白| 欧美一级理论性理论a| 亚洲图片一区二区| 色欧美日韩亚洲| 国产精品久久久爽爽爽麻豆色哟哟| 精品亚洲porn| 日韩一二三区视频| 日本欧美一区二区三区| 欧美老人xxxx18| 一区二区理论电影在线观看| 99国产精品视频免费观看| 久久久精品国产免费观看同学| 韩国欧美国产1区| 精品精品国产高清一毛片一天堂| 日本特黄久久久高潮| 欧美久久久久久久久中文字幕| 亚洲一区二区在线免费看|