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

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

?? flash.c

?? 自己做的一個簡單的設備.使用Freescale HC908SR12單片機,使用KEYS,AD,PWM,FLASH,LCD等模塊.經使用運行穩定.
?? C
字號:
//文件名   FLASH.C
//目    的 FLASH處理
//Copyright (c) 2006-2007 東方久樂公司電子研究所
//編    寫 文洪奎 2007-01-15
//修    改 
//修改原因

#include "flash.h"
#include <start08.h>
#include "global.h"

unsigned char const ProgCrc @ 0x0EFFF = 152;

unsigned char const Memory1[10][128] @ 0x0C000 = {
			{53,0x0ff,250,1,1,50,20,0,84,0,84,44,64,54,64},		//System
		//	crc       st1      st2    sl1   sl2       I1            I2
            {168,0  ,0  ,0  ,0  ,0  ,0,30 ,0  ,30 ,0x02E,0x0E0,0x02E,0x0E0},//Record0
            {208,0  ,0  ,0  ,0  ,0  ,0,30 ,0  ,30 ,0x032,0x0C8,0x032,0x0C8},//Record1
            {32 ,0  ,0  ,0  ,0  ,0  ,0,30 ,0  ,30 ,0x03A,0x098,0x03A,0x098},//Record2
            {158,0  ,0  ,0  ,0  ,50 ,0,30 ,0  ,30 ,0x032,0x0C8,0x032,0x0C8},//Record3
            {108,0  ,0  ,0  ,0  ,100,0,30 ,0  ,30 ,0x032,0x0C8,0x032,0x0C8},//Record4
            {58 ,0  ,0  ,0  ,0  ,150,0,30 ,0  ,30 ,0x032,0x0C8,0x032,0x0C8},//Record5
            {8  ,0  ,0  ,0  ,0  ,200,0,30 ,0  ,30 ,0x032,0x0C8,0x032,0x0C8},//Record6
            {214,0  ,0  ,0  ,0  ,250,0,30 ,0  ,30 ,0x032,0x0C8,0x032,0x0C8},//Record7
            {192,0  ,0  ,0  ,1  ,45 ,0,30 ,0  ,30 ,0x032,0x0C8,0x032,0x0C8},//Record8
            };
            
//C000 - C07F  系統記錄
//C080 - C0FF  記錄零(默認)
//C100 - C17F  記錄一
//C180 - C1FF  記錄二
//C200 - C27F  記錄三
//C280 - C2FF  記錄四
//C300 - C37F  記錄五
//C380 - C3FF  記錄六
//C400 - C47F  記錄七
//C480 - C4FF  記錄八



/************說明*********************
程序分為非運行停電狀態和運行停電狀態和完成停電狀態
完成停電狀態

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

/// FLCR  0xFE08
///   7    6    5    4    3    2     1     0
///   X    X    X    X   HVEN MASS ERASE  PGM
///   0    0    0    0    0    0     0     0


volatile unsigned char d1;	//延時用
volatile CXSTR _SADD;		//flash程序的源地址
volatile CXSTR _TADD;		//flash程序的目標地址
volatile unsigned char nLength;		//程序長度


extern SYSTEMSTR mSystem;
extern RECORDSTR mRecord;

unsigned char PragRam[0x60] @ 0x0200;


void FlashProc(void) 		//FLASH操作主程序
{
 	_asm
 	{
//;***************************************************************
f_0001:
          bra     f_write
//;-----------------H:X = Erase Address--------A change-------------
f_erase:  
          lda      #$2           //;H:X = Erase Address
          sta      FLCR         //;1->Erase
          sta      ,x			// Write ony data to any FLASH address within the page address
f_eflash0:
		  lda 	   #3
          bsr      f_delay      //;等待10uS
          lda      #$0a
          sta      FLCR         //;1->HVEN 1->ERASE
          lda      #200			//1ms
          bsr      f_delay
          bra      f_end
//;--------------------------------------------------------------
f_write:
          lda      #$01         //;2
          sta      FLCR         //;3   1->pgm
          lda      FLBPR        //;3   read flash protect reg
          sta      ,x           //;2
          lda	   #3			//10us
          bsr      f_delay    	//;25
          
          lda      #$09         //;2
          sta      FLCR         //;3   1->hven
          lda	   #1			//5us 
          bsr      f_delay     //;13
          
f_1010:		//Write data to the FLASH address to be programmed
          ldhx     sAdd			//3
          lda      ,x			//2
          aix      #1			//2
          sthx	   sAdd			//4
          
          ldhx     tAdd			//3
          sta      ,x			//2
          aix      #1			//2
          sthx     tAdd			//4
   
		  lda 	   #9			//30us
		  bsr	   f_delay		//
          dbnz     nLength,f_1010
f_1020:
          
//;-----------------------------------------------------------------
f_end:   ;FLASH程序結束
          lda      #$08         //;2
          sta      FLCR         //;3  ;0->pgm 0->erase
          lda 	   #2
          bsr      f_delay      //;13;等待5us以上
          clra                  //;1
          sta      FLCR         //;3  ;0->hven
          brn	   f_end		//;3
          rts                   //;4      26
//;-----------A Change--------------flash program 2-----------------
//		          ;延時子程序
//				總線頻率8MHz
//			d2為輸入參數 5us單位
//           
f_delay:   mov      #8,d1        //;5
f_1410:    dbnz     d1,f_1410    //;5
		   dbnza    f_delay   	 //;5
		   rts                   //;4 		
 		
 	}
}

void InitFlash(void)	//上載FLASH程序到RAM空間
{
	unsigned char i;
	unsigned char *far t;
	unsigned char *far s;
	s = (unsigned char *far)FlashProc;
	t = (unsigned char *far)PragRam;
	for(i = 0; i < 0x60; i++)
	{
		*t = *s;
		t++;
		s++;
	}
}

void Erase(void)		//FLASH頁擦除程序
{
	FLBPR = 0x14;
	_asm
	{
		pshh
		pshx
		psha
		ldhx  tAdd
		sei
		jsr $202
		cli
		pula
		pulx
		pulh
	}
	FLBPR = 0x00;
}

void Program(void)		//FLASH頁寫入程序
{
	FLBPR = 0x14;
	_asm
	{
		pshh
		pshx
		psha
		ldhx  tAdd
		sei
		jsr $200
		cli
		pula
		pulx
		pulh
	}
	FLBPR = 0x00;
}

//擦除記錄
void EraseRecord(unsigned char nRecord)		
{
	tAdd = nRecord * 128 + 0x0C080;
	Erase();
}

//讀記錄到當前存
unsigned char ReadRecord(unsigned char nRecord)
{
	unsigned char i;
	unsigned char *far t;
	unsigned char *far s;
	unsigned char crc;
	
	s = (unsigned char *far) 0x0C080;
	for(i = 0; i < nRecord ; i++)
		s += 128;
		
	t = (unsigned char *far) &mRecord;

	
	crc = 0;	
	for(i = 0 ; i < sizeof(mRecord) ; i++)
	{
		*t = *s;
		crc += *t;
		t++;
		s++;
	}	
	
	if(crc)
	{
		mRecord.uCRC = 0;
		mRecord.Reserve = 0;
		mRecord.iCur0 = 13000; //2000.0 mA
		mRecord.iCur1 = 13000;	//3000.0 mA
		mRecord.sTime0 = 0;		//0.0 ms
		mRecord.sTime1 = 0;	//10.0ms
		mRecord.lTime0 = 30;	// 2.0ms
		mRecord.lTime1 = 30;	//3.0ms	
		mRecord.Res0Up = 4000;  //4.0ohm
		mRecord.Res0Down = 1000; //1.0ohm
		mRecord.Res1Up = 4000;  //4.0ohm
		mRecord.Res1Down = 1000; //1.0ohm
	}
	
	return crc;	
}

//寫內存記錄到FLASH
unsigned char WriteRecord(unsigned char nRecord)
{
	unsigned char crc;
	unsigned char i;
	unsigned char *far s;
	unsigned char *far t;
	
	tAdd = nRecord * 128 + 0x0C080;
	sAdd =(unsigned int) &mRecord;
	
	s = (unsigned char *far) &mRecord;
	
	crc = 0;
	for(i = 1; i < sizeof(mRecord) ; i++)
	{
		crc += *(s + i); 
	}
	
	*s = -crc;
	
	nLength = sizeof(mRecord);
	
	Program();
	
	s = (unsigned char *far) &mRecord;
	t = (unsigned char *far) 0x0C080;
	t = t + nRecord * 128;
	
	for(i = 0; i < sizeof(mRecord) ; i++)
	{
		if(*s != *t)
			return 1;
		s++;
		t++;
	}
	return 0;
}


unsigned char ReadSystem(void)
{
	unsigned char i;
	unsigned char *far t;
	unsigned char *far s;
	unsigned char crc;
	s = (unsigned char *far)0x0C000;
	t = (unsigned char *far)&mSystem;
	crc = 0;
	for(i = 0 ; i < sizeof(mSystem) ; i++)
	{
		*t = *s;
		crc += *t;
		t++;
		s++;
	}
	
	if(crc)
	{
		mSystem.uCRC = 83;
		mSystem.bLight = 0x0FF;	//背景燈開
		mSystem.ld = 250;	//亮度
		mSystem.TargetType = 1;	//低電平觸發
		mSystem.OutType = 1;	//
		mSystem.KeyDelay = 50;  //鍵盤延時 50
		mSystem.KeyRepeat = 20;	//鍵盤重復 20
		
		mSystem.I1_O = 0;
		mSystem.I1_S = 84;
		mSystem.I2_O = 0;
		mSystem.I2_S = 84;
		
		mSystem.R1_O = 44;
		mSystem.R1_S = 65;
		mSystem.R2_O = 54;
		mSystem.R2_S = 65;
		
		mSystem.C1_O = 0;
		mSystem.C1_S = 0;
		mSystem.C2_O = 0;
		mSystem.C2_S = 0;

	}
	
	return crc;
}


unsigned char WriteSystem(void)
{
	unsigned char crc;
	unsigned char i;
	unsigned char *far s;
	unsigned char *far t;
	
	tAdd = 0x0C000;
	sAdd = (unsigned int) &mSystem;
	
	s = (unsigned char *far) &mSystem;
	
	crc = 0;
	for(i = 1; i < sizeof(mSystem) ; i++)
	{
		crc += *(s + i); 
	}
	
	*s = -crc;
		
	nLength = sizeof(mSystem);
	Program();
	
	s = (unsigned char *far) &mSystem;
	t = (unsigned char *far) 0x0C000;
	
	for(i = 0; i < sizeof(mSystem) ; i++)
	{
		if(*s != *t)
			return 1;
		s++;
		t++;
	}
	return 0;	
}


void EraseSystem(void)
{
	tAdd = 0x0C000;
	Erase();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看91av| av电影在线观看不卡| 国产无人区一区二区三区| 国产成人综合网| 亚洲欧美综合色| 欧美高清视频www夜色资源网| 成人午夜在线免费| 日韩精品成人一区二区在线| 亚洲欧洲另类国产综合| 欧美人妇做爰xxxⅹ性高电影| 中文字幕制服丝袜一区二区三区 | 成人精品高清在线| 亚洲乱码一区二区三区在线观看| 91精品国产手机| 一区二区三区欧美日| 欧美一区二区人人喊爽| 99久久精品免费看国产| 亚洲乱码日产精品bd| 欧美精选午夜久久久乱码6080| 久久国产精品第一页| 国产蜜臀av在线一区二区三区| 在线播放日韩导航| 91精品国产入口| 成人不卡免费av| 日韩电影一二三区| 中文av一区二区| 91成人免费网站| 欧美色区777第一页| 不卡av在线网| 93久久精品日日躁夜夜躁欧美| 日韩成人伦理电影在线观看| 中文字幕制服丝袜一区二区三区| 久久欧美中文字幕| 在线播放日韩导航| 欧美美女喷水视频| 欧美一级二级三级蜜桃| 欧美欧美欧美欧美| 成人99免费视频| 麻豆成人综合网| 亚洲三级免费观看| 日韩美女在线视频| 日韩精品中午字幕| 日本电影欧美片| 欧美午夜电影在线播放| 99精品视频一区二区三区| 国产激情一区二区三区| 国产91精品露脸国语对白| 天天综合网天天综合色| 蜜桃av噜噜一区| 美女精品自拍一二三四| 中文字幕不卡三区| 欧美精品一区二区三区一线天视频| 色综合久久99| 岛国精品一区二区| 美女免费视频一区二区| 国产乱码精品一品二品| 一区二区三区高清| 精品亚洲成a人| 中文字幕一区不卡| 亚洲国产精品久久不卡毛片| 一区二区视频在线看| 亚洲桃色在线一区| 亚洲一级电影视频| 成人av电影在线网| 国产精品18久久久久久vr| 三级成人在线视频| 久久爱www久久做| 国产一区福利在线| 91小视频免费看| 成人免费观看av| 国产精品1024久久| 色8久久精品久久久久久蜜| 欧美视频精品在线观看| 极品少妇xxxx精品少妇| 日韩三区在线观看| 久久久国产午夜精品| 一区二区三区日韩欧美| 免费在线视频一区| 国产精品69毛片高清亚洲| 成人app在线| 色老汉av一区二区三区| 久久精品人人爽人人爽| 亚洲精品福利视频网站| 亚洲综合精品久久| 激情图片小说一区| 精品一区二区免费| 天堂一区二区在线免费观看| 亚洲综合色婷婷| 国产在线精品一区在线观看麻豆| 欧美日韩一区精品| 国产三级三级三级精品8ⅰ区| 国产日本亚洲高清| 亚洲动漫第一页| 久久不见久久见中文字幕免费| 亚洲成精国产精品女| 国产一区二区三区在线观看精品| 成人国产一区二区三区精品| 日韩一级免费观看| 欧美高清视频不卡网| 91麻豆精品国产91久久久| 日本一区中文字幕| 91精品国产综合久久精品麻豆| 中文字幕一区二区不卡 | 国产成人精品一区二区三区四区| 日韩美女视频在线| 另类中文字幕网| 精品精品国产高清a毛片牛牛 | 欧美私人免费视频| 一区二区三区中文字幕电影| 日本韩国欧美三级| 亚洲一区在线观看视频| 欧美亚洲动漫另类| 亚洲高清视频的网址| 91精品国产综合久久久久久| 奇米一区二区三区av| 精品少妇一区二区三区视频免付费| 麻豆免费看一区二区三区| 日韩精品中文字幕在线不卡尤物 | 99久久精品国产观看| 欧美一区二区在线观看| 国产精品久久久久久久久免费樱桃| 亚洲毛片av在线| 欧洲日韩一区二区三区| 欧美激情一区二区三区全黄| 久久99国产精品免费网站| 精品国产百合女同互慰| 亚洲另类在线视频| 美国十次了思思久久精品导航| 99精品在线免费| 91在线视频网址| 成人免费一区二区三区在线观看| 亚洲二区在线观看| 高清免费成人av| 久久婷婷久久一区二区三区| 91精品欧美综合在线观看最新| 免费人成网站在线观看欧美高清| 色悠悠久久综合| 一区二区三区四区激情| 三级久久三级久久久| 91老师国产黑色丝袜在线| 国产精品三级视频| 日韩在线播放一区二区| 欧美日韩免费高清一区色橹橹| 在线视频欧美区| 麻豆freexxxx性91精品| 欧美日韩视频在线第一区| 国产精品福利一区| 99久久99久久久精品齐齐| 一区二区三区在线视频免费| 91丨国产丨九色丨pron| 亚洲欧美在线视频| 成人性视频免费网站| 欧美一区二区久久| 国产91精品露脸国语对白| 欧美日韩亚洲综合在线| 日本不卡中文字幕| 91久久奴性调教| 国产片一区二区| 国内精品久久久久影院薰衣草| 波多野结衣中文字幕一区二区三区| 久久久久久综合| 欧美在线观看18| 综合电影一区二区三区| 欧美性生活大片视频| 一区二区三区四区五区视频在线观看| 欧美色偷偷大香| 国产一区二区美女| 国产精品另类一区| 欧美欧美欧美欧美| 国产精品高清亚洲| 欧美一区二视频| 日韩高清在线观看| 欧美一区永久视频免费观看| 国内精品国产三级国产a久久| 国产精品成人网| 成人性色生活片| 亚洲国产高清不卡| 日韩午夜精品视频| 美国欧美日韩国产在线播放 | 亚洲欧美激情在线| 成人综合日日夜夜| 一区二区三区日韩欧美精品 | 亚洲精品在线免费观看视频| 亚洲va韩国va欧美va精品| 欧美久久久一区| 欧美亚洲动漫精品| 精品亚洲成a人| 国产精品视频在线看| 91精品免费在线| 国产成人亚洲综合a∨婷婷图片| 欧美一区二区播放| 色噜噜狠狠色综合中国| 奇米四色…亚洲| 久久综合五月天婷婷伊人| 欧美日韩另类一区| 粗大黑人巨茎大战欧美成人| 日韩电影在线一区二区| 91福利精品第一导航| 成人影视亚洲图片在线| 青青草成人在线观看|