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

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

?? lcd.js

?? basics of graphics lcd how to program
?? JS
字號:
var DDRAM_L = new Array(8);
var DDRAM_R = new Array(8);

var offset = 3

var AC_L = 0;
var AC_R = 0;
var page_L = 0;
var page_R = 0;
var side = 3

//Display on/off control:
var D_L = 0;   //  Display off
var D_R = 0;   //  Display off

function reset(){
	DDRAM_L = new Array(8);
	DDRAM_R = new Array(8);
	AC_L = 0;
	AC_R = 0;
	page_L = 0;
	page_R = 0;
	side = 3
	for(var i = 0; i < document.images.length; i++){
		if(document.images[i].src.indexOf('0.gif') != -1){
			offset = i
			break;
		}
	}
	document.ctrl.lcdpinsHex.value = 0;
	document.ctrl.lcdpinsDec.value = 0;
	//scriptBoxHelp = document.ctrl.scriptBox.value;

	for(var q=0;q<8;q++){
		DDRAM_L[q]= new Array(64);
		DDRAM_R[q]= new Array(64);
		for(var i=0; i<64; i++){
			DDRAM_L[q][i]= 0;
			DDRAM_R[q][i]= 0;
		}	
	}
	
	document.ctrl.D_L.value = 'OFF';
	document.ctrl.D_R.value = 'OFF';
	document.ctrl.page_L.value = 0;
	document.ctrl.page_R.value = 0;
	document.ctrl.csaState.value = 'NO';
	document.ctrl.csbState.value = 'NO';	
	document.ctrl.csaState.value = 'NO';
	document.ctrl.csbState.value = 'NO';
	document.ctrl.AC_L.value = 0;
	document.ctrl.AC_R.value = 0;


	// alert('reset done !')
}



function lcd(data,eGoLow,rwState,rsState){	
	if(side == 3){
		clearMsgs();
		addMsg('No controller is selected. \n If either CSA or CSB is not active data and control pins are ignored.');
		return;
	}
	if(eGoLow == 1){ // E goes LOW, this is when instructions are evaluated, chars written 
		if(rsState == 0 & rwState == 0){
			//alert('write to IR, \n evaluate instruction')
			evalInstr(data);
		}
		if(rsState == 1 & rwState == 0){
			//alert('write to DR, \n print character')
			writeData(data);		
			instrpeek(baseConv(document.ctrl.lcdpinsHex.value,16));
		}
		return;
	}
	
	if(eGoLow != 1 & rwState == 1){ // E is 1. Data or address reads are done 
		if(rsState == 0 & rwState == 1){
			alert('Read BF & address, \n Reads are not implemented! \n         Yet !');
			if(side == 2){
				alert('Ooops !!! Trying to read while both controllers are enabled ?\n If you do this with a real LCD, data from both controllers may clash\n and your LCD take a trip to heaven.')
			}
		}
		if(rsState == 1 & rwState == 1){
			alert('Read Data Register, \n Reads are not implemented! \n         Yet !');
			if(side == 2){
				alert('Ooops !!! Trying to read while both controllers are enabled ?\n If you do this with a real LCD, data from both controllers may clash\n and your LCD take a trip to heaven.')
			}
		}
		return;
	}
}

function evalInstr(instr){
	clearMsgs();
	addMsg('On E going LOW, executed instruction was:');
	
	if((instr & maskDispOnOff) == instrDispOnOff){
		addMsg('\n Display ON/OFF control: ');
		if(instr & displayOn){
			addMsg('display ON, ');
			if(side == 0){
				addMsg(' left controller');
				D_L = 1;
				document.ctrl.D_L.value = 'ON';
				//alert(document.ctrl.D_L.value)
			}	

			if(side == 1){
				addMsg(' right controller');
				D_R = 1;
				document.ctrl.D_R.value = 'ON';
			}

			if(side == 2){
				addMsg(' both controllers');
				D_R = 1;
				D_L = 1;
				document.ctrl.D_R.value = 'ON';
				document.ctrl.D_L.value = 'ON';
			}
			
			restoreDisp();

			
		}
		else{
			addMsg('display OFF, ');
			if(side == 0){
				addMsg(' left controller');
				D_L = 0;
				document.ctrl.D_L.value = 'OFF';
			}	

			if(side == 1){
				addMsg(' right controller');
				D_R = 0;
				document.ctrl.D_R.value = 'OFF';

			}

			if(side == 2){
				addMsg(' both controllers');
				D_R = 0;
				D_L = 0;
				document.ctrl.D_L.value = 'OFF';
				document.ctrl.D_R.value = 'OFF';
			}
			
			blankDisp();
			
		}
		return;
	}
	
	if((instr & maskSetAdrs) == instrSetAdrs){
		addMsg('\n Set Y address to ' + (instr & 0x3f));
		if(side == 0){
			AC_L = instr & 0x3f
			addMsg(' for left controller');	
			document.ctrl.AC_L.value = AC_L;
		}	

		if(side == 1){
			AC_R = instr & 0x3f
			addMsg(' for right controller');
			document.ctrl.AC_R.value = AC_R;
		}

		if(side == 2){
			AC_L = instr & 0x3f
			AC_R = instr & 0x3f
			addMsg(' for both controllers');
			document.ctrl.AC_L.value = AC_L;
			document.ctrl.AC_R.value = AC_R;
		}	
		return;
	}
	
	if((instr & maskSetPage) == instrSetPage){
		addMsg('\n Set page to ' + (instr & 0x7));
		if(side == 0){
			page_L = instr & 0x7
			addMsg(' for left controller');	
			document.ctrl.page_L.value = page_L;
		}	

		if(side == 1){
			page_R = instr & 0x7
			addMsg(' for right controller');
			document.ctrl.page_R.value = page_R;
		}

		if(side == 2){
			page_L = instr & 0x7
			page_R = instr & 0x7
			addMsg(' for both controllers');
			document.ctrl.page_L.value = page_L;
			document.ctrl.page_R.value = page_R;
		}
		return;
	}

	if((instr & maskDispStrtLn) == instrDispStrtLn){
		addMsg('\n Set display start line to ' + (instr & 0x3f));
		addMsg('\n This instruction is not supported and was not executed. It is used to scroll the display. Scrolling about 2000 images with JavaScript takes a long time...')

		return;
	}

	addMsg('\nInvalid instruction !');
	return;
}

var byts = 0;
var dts = ''
function writeData(data){
	if(side > 2){
		return;
	}
	if(side == 0){
		if(D_L == 1 && DDRAM_L[page_L][AC_L] != data){
			document.images[offset + page_L*256+ AC_L ].src = parseInt(data & 0xf) + xtnsn
			document.images[offset + page_L*256 + AC_L + 128].src = parseInt((data & 0xf0) >> 4) + xtnsn
			dts += 'DDR > ' + DDRAM_L[page_L][AC_L] + ', data > '+ data
			byts++
		}
		DDRAM_L[page_L][AC_L] = data;
		increaseAC(side)
	}
	
	if(side == 1){
		if(D_R == 1 && DDRAM_R[page_R][AC_R] != data){
			document.images[offset + page_R*256+ AC_R + 64].src = parseInt(data & 0xf) + xtnsn
			document.images[offset + page_R*256 + AC_R + 192].src = parseInt((data & 0xf0) >> 4) + xtnsn
		}
		DDRAM_R[page_R][AC_R] = data;
		increaseAC(side)
	}

	if(side == 2){
		if(D_R == 1 && DDRAM_R[page_R][AC_R] != data){
			document.images[offset + page_R*256+ AC_R + 64].src = parseInt(data & 0xf) + xtnsn
			document.images[offset + page_R*256 + AC_R + 192].src = parseInt((data & 0xf0) >> 4) + xtnsn
		}
		if(D_L == 1 && DDRAM_L[page_L][AC_L] != data){
			document.images[offset + page_L*256+ AC_L ].src = parseInt(data & 0xf) + xtnsn
			document.images[offset + page_L*256 + AC_L + 128].src = parseInt((data & 0xf0) >> 4) + xtnsn
		}
		DDRAM_R[page_R][AC_R] = data;
		DDRAM_L[page_L][AC_L] = data;
		increaseAC(side)
	}

}

function readBfAndAdr(){

}

function readDataReg(){

}


var dispBlanked_L = 0;
var dispBlanked_R = 0;
function blankDisp(){
	if(side == 0){
		for(var i=0; i< 8; i++){
			for(var j=0; j < 64; j++){
				if(DDRAM_L[i][j] != 0 ){
					document.images[offset + i*256 + j ].src='0' + xtnsn;
					document.images[offset + i*256 + j + 128].src='0' + xtnsn;
				}
			}
		}
		dispBlanked_L = 1;
	}
	
	if(side == 1){
		for(var i=0; i < 8; i++){
			for(var j=0; j < 64; j++){
				if(DDRAM_R[i][j] != 0 ){
					document.images[offset + i*256 + j + 64 ].src='0' + xtnsn;
					document.images[offset + i*256 + j + 192].src='0' + xtnsn;
				}
			}
		}
		dispBlanked_R = 1;
	}	
	
	if(side == 2){
		for(var i=0; i< 8; i++){
			for(var j=0; j < 64; j++){
				if(DDRAM_L[i][j] != 0 ){
					document.images[offset + i*256 + j ].src='0' + xtnsn;
					document.images[offset + i*256 + j + 128].src='0' + xtnsn;
				}
			}
		}

		for(var i=0; i < 8; i++){
			for(var j=0; j < 64; j++){
				if(DDRAM_R[i][j] != 0 ){
					document.images[offset + i*256 + j + 64 ].src='0' + xtnsn;
					document.images[offset + i*256 + j + 192].src='0' + xtnsn;
				}
			}
		}
		dispBlanked_L = 1;
		dispBlanked_R = 1;
		
	}
}

function restoreDisp(){
	if(side == 0 && dispBlanked_L == 1){
		for(var i=0; i< 8; i++){
			for(var j=0; j < 64; j++){
				if(DDRAM_L[i][j] != 0 ){
					document.images[offset + i*256 + j ].src = parseInt(DDRAM_L[i][j] & 0xf) + xtnsn;
					document.images[offset + i*256 + j + 128].src = parseInt((DDRAM_L[i][j] & 0xf0) >> 4) + xtnsn;
				}
			}
		}
		dispBlanked_L = 0
	}
	
	if(side == 1 && dispBlanked_R == 1){
		for(var i=0; i < 8; i++){
			for(var j=0; j < 64; j++){
				if(DDRAM_R[i][j] != 0 ){
					document.images[offset + i*256 + j + 64].src = parseInt(DDRAM_R[i][j] & 0xf) + xtnsn
					document.images[offset + i*256 + j + 192].src = parseInt((DDRAM_R[i][j] & 0xf0) >> 4) + xtnsn
				}
			}
		}
		dispBlanked_R = 0
	}	
	
	if(side == 2){
		if(dispBlanked_L == 1){
			for(var i=0; i< 8; i++){
				for(var j=0; j < 64; j++){
					if(DDRAM_L[i][j] != 0 ){
						document.images[offset + i*256 + j ].src = parseInt(DDRAM_L[i][j] & 0xf) + xtnsn
						document.images[offset + i*256 + j + 128].src = parseInt((DDRAM_L[i][j] & 0xf0) >> 4) + xtnsn
					}
				}
			}
		}
		
		if(dispBlanked_R == 1){
			for(var i=0; i < 8; i++){
				for(var j=0; j < 64; j++){
					if(DDRAM_R[i][j] != 0 ){
						document.images[offset + i*256 + j +64].src = parseInt(DDRAM_R[i][j] & 0xf) + xtnsn
						document.images[offset + i*256 + j + 192].src = parseInt((DDRAM_R[i][j] & 0xf0) >> 4) + xtnsn
					}
				}
			}
		}
		
		dispBlanked_L = 0
		dispBlanked_R = 0

	}
}


function increaseAC(side){ // side == 1 >>> left controller, 1 reight controller, 2 both controllers
	if(side == 0){
		AC_L += 1
		if(AC_L > 63){AC_L = 0}
	}
	if(side == 1){
		AC_R += 1
		if(AC_R > 63){AC_R = 0}
	
	}
	 if(side == 2){
		AC_L += 1
		if(AC_L > 63){AC_L = 0}
		
		AC_R += 1
		if(AC_R > 63){AC_R = 0}
	}
	document.ctrl.AC_L.value = AC_L;
	document.ctrl.AC_R.value = AC_R;

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美mv日韩mv国产网站app| 日本韩国精品在线| 不卡的电影网站| 欧美日韩高清一区二区| 国产欧美1区2区3区| 日韩精品成人一区二区在线| 粉嫩蜜臀av国产精品网站| 欧美精品18+| 欧美一区2区视频在线观看| 国产精品久久久久久久久免费丝袜| 欧美日韩精品欧美日韩精品一| 一区二区三区国产豹纹内裤在线| 国产精品美女久久久久久久久| 2020国产精品久久精品美国| 亚洲国产色一区| 99久久婷婷国产综合精品电影| 国产suv精品一区二区三区| 成人综合在线视频| 日韩欧美视频一区| 日韩中文字幕麻豆| 奇米色一区二区三区四区| 在线区一区二视频| 91精品欧美综合在线观看最新| 国产成人精品1024| 91视频一区二区| 欧美丰满美乳xxx高潮www| 欧美成人官网二区| 亚洲综合自拍偷拍| 蜜桃传媒麻豆第一区在线观看| 国产在线视频不卡二| 99久久精品免费精品国产| 91高清视频在线| 91麻豆精品国产91久久久更新时间| 在线播放国产精品二区一二区四区| 日韩欧美综合一区| 另类小说一区二区三区| 波多野结衣欧美| 97se狠狠狠综合亚洲狠狠| 在线播放国产精品二区一二区四区 | 国产伦精品一区二区三区免费迷| 成人一区二区视频| 国产精品久线在线观看| 午夜精品久久一牛影视| 在线观看国产91| 亚洲高清免费一级二级三级| 欧美性猛交xxxxxx富婆| 五月婷婷综合网| 国产精品18久久久久久久久 | 白白色亚洲国产精品| 色综合色狠狠综合色| 亚洲日本在线观看| 欧美日韩在线精品一区二区三区激情| 欧美一区二区三区精品| 美女精品自拍一二三四| 久久伊99综合婷婷久久伊| 亚洲亚洲精品在线观看| 成人精品视频.| 制服丝袜激情欧洲亚洲| 狠狠色狠狠色综合日日91app| 久久精品国产一区二区三| www日韩大片| 午夜伦理一区二区| 久久精品网站免费观看| 精品一区二区三区在线观看 | 久久99精品国产| 欧美在线视频日韩| 老色鬼精品视频在线观看播放| 99国产精品国产精品久久| 亚洲成人免费视| 91黄色激情网站| 椎名由奈av一区二区三区| 国产剧情av麻豆香蕉精品| 亚洲视频资源在线| 欧美一区二区三区白人| 成人免费毛片app| 亚洲电影一级黄| 国产欧美日韩麻豆91| 在线电影欧美成精品| www.亚洲精品| 久久成人免费网| 亚洲高清免费在线| 中文在线资源观看网站视频免费不卡| 老司机免费视频一区二区| 91精品国产综合久久香蕉的特点| 精品国产91亚洲一区二区三区婷婷| 国产亚洲美州欧州综合国| 欧美午夜影院一区| 亚洲永久精品大片| 26uuu久久天堂性欧美| 欧美三级蜜桃2在线观看| 国产a区久久久| 毛片av一区二区三区| 欧美tickling挠脚心丨vk| 91国产成人在线| 婷婷国产v国产偷v亚洲高清| 欧美日本在线播放| 91免费视频网址| 亚洲福中文字幕伊人影院| 91精品国产综合久久久久久漫画 | 欧美日韩国产成人在线免费| 成人激情午夜影院| 久久se精品一区精品二区| 精品日韩一区二区三区| 欧美肥胖老妇做爰| 韩国一区二区三区| 国产精品三级视频| 欧美精品一区二区三区视频| 欧美精品三级日韩久久| 在线观看网站黄不卡| 日韩精品电影一区亚洲| 亚洲成人激情综合网| 一级中文字幕一区二区| 亚洲免费看黄网站| 亚洲欧美偷拍三级| 亚洲另类一区二区| 亚洲精品写真福利| 一区二区三区不卡在线观看| 欧美一卡二卡三卡四卡| 欧美一卡2卡3卡4卡| 欧美一区午夜视频在线观看| 国产麻豆精品一区二区| 国产精品一区久久久久| 国产精品1区2区3区| 亚洲风情在线资源站| 亚洲精品一区二区三区在线观看| 天天爽夜夜爽夜夜爽精品视频| 日韩精品一区二区在线| 精品国产自在久精品国产| 91在线免费视频观看| 91丨porny丨蝌蚪视频| 99视频在线精品| 欧美色综合网站| 日韩欧美你懂的| 久久综合久久久久88| 国产精品国产a| 26uuu国产一区二区三区| 国产婷婷色一区二区三区四区| 欧美伦理电影网| 99国产欧美另类久久久精品| 91香蕉国产在线观看软件| 日本韩国欧美在线| 成人av在线一区二区三区| 六月丁香综合在线视频| 国产精品一二三四| 美女一区二区在线观看| 亚洲综合图片区| 蓝色福利精品导航| 日韩va欧美va亚洲va久久| 亚洲一区在线观看网站| 日韩一区在线播放| 亚洲va欧美va人人爽午夜| 亚洲乱码中文字幕| 麻豆视频一区二区| 日韩中文字幕不卡| 丝袜a∨在线一区二区三区不卡| 最近中文字幕一区二区三区| 夜夜精品视频一区二区| 狠狠久久亚洲欧美| 色综合久久久久| 91尤物视频在线观看| 6080午夜不卡| 欧美日韩国产精品自在自线| 色综合久久六月婷婷中文字幕| 日本美女一区二区| 天使萌一区二区三区免费观看| 亚洲美女免费在线| 亚洲激情成人在线| 激情六月婷婷久久| 在线观看国产一区二区| 欧美日韩视频在线第一区| 欧美自拍偷拍一区| 日本一区二区视频在线| 日本美女一区二区三区视频| av一本久道久久综合久久鬼色| 亚洲mv在线观看| 成人在线综合网| www.激情成人| 91影院在线观看| 欧美日韩一级二级三级| 国产色一区二区| 亚洲私人黄色宅男| 亚洲国产综合视频在线观看| 婷婷亚洲久悠悠色悠在线播放| 国产日韩高清在线| 日韩码欧中文字| 东方欧美亚洲色图在线| 欧美日韩国产综合视频在线观看| 久久99国内精品| 欧美三级在线视频| 日韩欧美国产精品| 视频一区视频二区中文| 在线观看精品一区| 一区二区三区四区国产精品| 午夜精品久久久久久久99水蜜桃| 蜜桃av一区二区三区电影| 91麻豆蜜桃一区二区三区| 欧美精品一卡二卡| 亚洲成人午夜电影| 欧美男人的天堂一二区| 26uuu色噜噜精品一区二区|