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

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

?? lcd.c

?? 【液晶顯示器的C語言程序設計 Freescale 8位微控制器】一書的光盤
?? C
?? 第 1 頁 / 共 2 頁
字號:
//控制器:SED1335
//LCD:大連東顯EDM320240
//設計者:李晶皎
//MCU:MC68HC908GP32
//接口:PTC0-A0,PTC1-WR,PTC2-RD,PTB-DB

#include "gp32.h"
/*開中斷*/
#define cli() _asm("cli\n")
/*關中斷*/
#define sei() _asm("sei\n")
#define nop() _asm("nop\n")
typedef struct bits {
	unsigned char b0:1;
	unsigned char b1:1;
	unsigned char b2:1;
	unsigned char b3:1;
	unsigned char b4:1;
	unsigned char b5:1;
	unsigned char b6:1;
	unsigned char b7:1;
	} BITS;

typedef union bit_char {
	unsigned char byte;
	BITS b;
	} BIT_CHAR;

#define BSET(x, y)  ((x).b.b ## y = 1)
#define BCLR(x, y)  ((x).b.b ## y = 0)
#define CLRBYTE(x)  ((x).byte = 0)
@tiny volatile BIT_CHAR PTC @0x02;

unsigned char command,data;
unsigned int i,k;
const unsigned char KeyValue[4]={0xfe,0xfd,0xfb,0xf7};
const unsigned char KeyTable[16]={0xee,0xde,0xbe,0x7e,
  				0xed,0xdd,0xbd,0x7d,
  				0xeb,0xdb,0xbb,0x7b,
  				0xe7,0xd7,0xb7,0x77};

const unsigned char SysTab[8]={0x32,0x87,0x07,0x27,0x42,0xf0,0x28,0x00};
const unsigned char ScrTab[10]={0x00,0x00,0xf0,0x00,0x28,0xf0,0x00,0x50,0x00,0x00};
const char displaystring[19]={"WELCOME USE SED1335"};

const unsigned char EXPRT[44]={
	0x80,0x82,0x84,0x86,0x88,0x8a,0x8c,0x8e,0x90,0x92,0x94,0x96,0x98,0x9a,0x9c,0x9e,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,
	0x81,0x83,0x85,0x87,0x89,0x8b,0x8d,0x8f,0x91,0x93,0x95,0x97,0x99,0x9b,0x9d,0x9f,0xe1,0xe3,0xe5,0xe7,0xe9,0xeb,};
const CLength=352;			//11*32
const unsigned char CTable[]={	
	0x01,0x3F,0x24,0x3F,0x26,0x2D,0x34,0x25,0x2F,0x20,0x2F,0x20,0x5F,0x40,0x82,0x01,
	0x00,0xFE,0x20,0xFC,0x30,0x68,0xA6,0x20,0xF8,0x80,0xFC,0x80,0xFE,0x80,0x80,0x00,//摩
	0x20,0x20,0x23,0xF8,0x20,0x20,0x28,0x37,0xE0,0x20,0x20,0x20,0x20,0x20,0xA0,0x40,
	0x00,0x3C,0xC0,0x40,0x40,0x40,0x40,0xFE,0x40,0x40,0x40,0x40,0x42,0x42,0x3E,0x00,//托
	0x00,0x3F,0x22,0x22,0x22,0x3F,0x22,0x03,0x06,0x0C,0x12,0x61,0x00,0x03,0x0C,0xF0,
	0x00,0xFC,0x44,0x44,0x44,0xFC,0x00,0xFC,0x08,0x08,0x10,0x20,0xC0,0x00,0x00,0x00,//羅
	0x10,0x10,0x10,0x11,0xFC,0x10,0x15,0x18,0x30,0xD0,0x10,0x10,0x10,0x17,0x50,0x20,
	0x80,0x60,0x20,0xFE,0x00,0x08,0x0C,0x88,0x88,0x48,0x50,0x50,0x50,0xFE,0x00,0x00,//拉
	0x08,0x06,0x04,0x3F,0x21,0x3F,0x21,0x21,0x3F,0x21,0x01,0xFF,0x01,0x01,0x01,0x01,
	0x20,0x30,0x40,0xF8,0x08,0xF8,0x08,0x08,0xF8,0x08,0x00,0xFE,0x00,0x00,0x00,0x00,//單
	0x00,0x10,0x10,0x10,0x1F,0x10,0x10,0x10,0x1F,0x10,0x10,0x10,0x20,0x20,0x40,0x80,
	0x40,0x40,0x40,0x44,0xFE,0x00,0x00,0x00,0xF0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,//片
	0x10,0x10,0x10,0xFE,0x10,0x10,0x38,0x34,0x54,0x50,0x91,0x11,0x12,0x12,0x14,0x10,
	0x00,0xF8,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x08,0x0A,0x0A,0x0A,0x06,0x00,//機
	0x20,0x13,0x10,0x40,0x47,0x44,0x44,0x47,0x44,0x44,0x47,0x40,0x40,0x40,0x40,0x40,
	0x00,0xFC,0x04,0x04,0xE4,0x24,0x24,0xE4,0x24,0x24,0xE4,0x04,0x04,0x04,0x14,0x08,//間
	0x10,0x10,0x13,0xFD,0x10,0x17,0x14,0x18,0x30,0xDF,0x11,0x13,0x10,0x10,0x51,0x26,
	0x40,0x20,0xFC,0x08,0x90,0xFE,0x00,0x80,0x80,0xFE,0x10,0x10,0xE0,0x50,0x8C,0x04,//接
	0x10,0x10,0x10,0xFD,0x11,0x10,0x14,0x19,0x30,0xD1,0x10,0x10,0x10,0x10,0x53,0x20,
	0x00,0x20,0x10,0xFE,0x04,0x50,0x8C,0x04,0x00,0xFC,0x20,0x20,0x20,0x20,0xFE,0x00,//控
	0x24,0x34,0x24,0x3F,0x44,0x04,0x7F,0x04,0x3F,0x24,0x24,0x24,0x24,0x27,0x05,0x04,
	0x04,0x04,0x24,0xA4,0x24,0x24,0xA4,0x24,0xA4,0xA4,0xA4,0xA4,0x84,0x84,0x14,0x08,//制
};
const int cnt=8;
const int ptr[8]={10,15,20,25,30,35,40,45};
/*等待1s子程序*/
static void Wait1ms(void) {
  int cnt = 0;
  while (cnt <80) cnt++;
}
/*等待n ms子程序*/ 
void WaitNms(int n){
   int i;
   for(i=1;i<=n;i++) Wait1ms();
}
/* read state bit */
void BFRead(void){
	unsigned char temp;
		BSET(PTC,1); 			//WR=1
	while(1){
		DDRB=0x00;
		BCLR(PTC,0);			//A0=0
		BCLR(PTC,2);			//RD=0
		temp=PTB;		
		BSET(PTC,2);			//RD=1
		if ((temp&0x40)==0) break;  //BF為第6位,BF=0顯示存儲器空閑
	}
}

/*write Command */
void WRCommand(unsigned command){
	DDRB=0xff;
	BSET(PTC,2);				//RD=1
	PTB=command;
	BSET(PTC,0);				//A0=1
	BCLR(PTC,1);				//WR=0
	BSET(PTC,1);				//WR=1
}

/* write data */
void WRData(unsigned char data){
	DDRB=0xff;
	BSET(PTC,2);
	PTB=data;
	BCLR(PTC,0);				//A0=0
	BCLR(PTC,1);				//WR=0
	BSET(PTC,1);				//WR=1
}
/*讀參數和顯示數據*/
unsigned char RDData(void){
	unsigned char temp;
	DDRB=0x00;
	BSET(PTC,0);				//A0=1
	BCLR(PTC,2);				//RD=0
	temp=PTB;		
	BSET(PTC,2);				//RD=1
	return(temp);
	
}	
/* open dispaly */
void DisOn(void){
	WRCommand(0x59);  					
   	WRData(0x54);//畫面顯示但不閃爍 光標顯示關閉
}

/* Off dispaly */
void DisOff(void){
	WRCommand(0x58);
   	WRData(0x56);
}
/*清顯示RAM*/
void CLRDisplay(void){
	WRCommand(0x4c);				//光標右移   	 
   	
   	WRCommand(0x46);				//設置光標指針0x0000   	
   	WRData(0x00);
   	WRData(0x00);
   	
   	WRCommand(0x42);				//設置數據寫入
    for(i=0;i<65000;i++){
   		WRData(0x00);
   	}
}
/* Initialisation of the EPSON SED1335 LCD display.
SysTab[8]={0x30,0x87,0x07,0x27,0x31,0xf0,0x28,0x00};
ScrTab[10]={0x00,0x00,0xf0,0x00,0x28,0xf0,0x00,0x50,0x00,0x00};*/
void Init_LCD(void){ 
	
   	WRCommand(0x40);			//設置SYSTEM SET參數
   	for(i=0;i<8;i++){
   		WRData(SysTab[i]);
   	}
  
   	WRCommand(0x44);			//設置SYSTEM SET Scroll參數
   	for(i=0;i<10;i++){
   		WRData(ScrTab[i]);
   	}	
			
   	WRCommand(0x5b);  			//設置顯示合成方式
   	WRData(0x00);
   	
   	CLRDisplay();   	
   	DisOn(); 	      
}

/* 顯示西文字符*/
void DisplayChar(void){
   			
   	WRCommand(0x5d);   //CSRFORM代碼		
   	WRData(0x07);	//設置光標水平點為CSX=8
   	WRData(0x87);   //設置光標為塊狀形式,CSY=8	
		
   	WRCommand(0x5b);  		//設置顯示合成方式,OVLAY代碼
   	WRData(0x01);   	//顯示一、三區為文本方式
			
	WRCommand(0x59);		//設置顯示狀態開
				
   	WRData(0x54);   		//畫面顯示但不閃爍 光標顯示關閉
				
   	WRCommand(0x46);   		//設置光標指針0x0000-第一顯示區,CSRW代碼
   	WRData(0x0b);
   	WRData(0x00);  		
	
	WRCommand(0x4c);		//光標右移,CSRDIR代碼	
		
	WRCommand(0x42);		//設置數據寫入,MWRITE代碼	
	for (k=0;k<19;k++){
		WRData(displaystring[k]);
	}
}
/*文本方式下顯示漢字*/
/*建立CGRAM*/
void SetCGRAM(void){
//	unsigned int cursor;

	WRCommand(0x5c);				//設置CGRAM首地址
	WRData(0x00);					//首地址為0xc000
	WRData(0xc0);	
//	cursor=0xc000+0x80*8;	
	
	WRCommand(0x46);				//設置光標指針
	WRData(0x00);					//首地址為0xc000-代碼0x80
	WRData(0xc4);
		
	WRCommand(0x4c);				//光標右移		
	WRCommand(0x42);				//設置數據寫入
	
	for(i=0;i<CLength;i++){		
		WRData(CTable[i]);
	}	
}
/*文本方式下顯示漢字*/
void CCDisplay(unsigned char row,unsigned char col){//row(0~29),col(0~39)
	unsigned int cursor,tempaddress,addl,addh;
	SetCGRAM();
	WRCommand(0x4c);				//光標右移
	
	cursor=0x0000+row*40+col;		//第一顯示區
	tempaddress=cursor;
	addl=tempaddress&0x00ff;
	addh=((cursor&0xff00)>>8);	
	WRCommand(0x46);				//設置光標指針
	WRData(addl);
	WRData(addh);
		
	WRCommand(0x42);	
	for (k=0;k<22;k++){		
		WRData(EXPRT[k]);		
	}
			
	row+=1;
	cursor=0x0000+row*40+col;
	tempaddress=cursor;
	addl=tempaddress&0x00ff;
	addh=((cursor&0xff00)>>8);
	WRCommand(0x46);				//設置光標指針
	WRData(addl);
	WRData(addh);
	
	WRCommand(0x42);	
	for (k=22;k<44;k++){
		WRData(EXPRT[k]);		
	}	
}

/*圖形方式下顯示漢字*/
void GCDisplay(unsigned int row,unsigned int col){	//row(0~319)col(0~29)
	unsigned int cursor,tempaddress;
	unsigned int temprow,tempcol;
	unsigned char addl,addh;
	
	WRCommand(0x4f);				//光標下移
	
	for(i=0;i<11;i++)				/*11個漢字*/
	{	
		tempcol=col+i*2;		
		for(k=0;k<16;k++)			
		{
		temprow=row+k;			
		cursor=0x2800+temprow*40+tempcol;//加上顯示二區的起始地址
		tempaddress=cursor;
		addl=tempaddress&0x00ff;
		addh=((cursor&0xff00)>>8);
				
		WRCommand(0x46);				//設置光標指針
		WRData(addl);
		WRData(addh);
		
		WRCommand(0x42);
		WRData(CTable[i*32+k]);					
		}
		
		for(k=0;k<16;k++)			
		{
		temprow=row+k;			
		cursor=0x2800+temprow*40+tempcol+1;//加上顯示二區的起始地址
		tempaddress=cursor;
		addl=tempaddress&0x00ff;
		addh=((cursor&0xff00)>>8);
				
		WRCommand(0x46);				//設置光標指針
		WRData(addl);
		WRData(addh);
		
		WRCommand(0x42);
		WRData(CTable[i*32+k+16]);							
		}
	}
}
/*滾動演示程序—————左右上下*/
/*第一顯示區向左滾動顯示子程序*/
void LeftScroll(void){
	unsigned char l=0;
	char addrl,addrh;
	char addr=0,tempaddr;
	CCDisplay(5,5);
	while(1){		
		while(l<8){
			WRCommand(0x5a);				//設置點位移
			WRData(l);
			l+=1;
			WaitNms(500);		
			}		
		
		addr+=1;
		tempaddr=addr;
		addrl=(tempaddr&0x00ff);
		addrh=((addr&0xff00)>>8);		
		WRCommand(0x44);					//設置顯示域		
		WRData(addrl);
		WRData(addrh);
		
		l=0;
		WRCommand(0x5a);					//設置點位移		
		WRData(l);		
	}	
}
/*第二顯示區向右滾動顯示子程序*/
void RightScroll(void){
	unsigned char l=7;
	unsigned char addrl,addrh;
	unsigned char addr=0x2800,tempaddr;
	GCDisplay(50,10);
	while(1){
		while(l>=0){
			WRCommand(0x5a);				//設置點位移
			WRData(l);
			l-=1;
			WaitNms(500);		
		}		
		
		addr-=1;
		tempaddr=addr;
		addrl=(tempaddr&0x00ff);
		addrh=((addr&0xff00)>>8);
		WRCommand(0x44);					//設置顯示域		
		WRData(addrl);
		WRData(addrh);
		
		l=7;	
		WRCommand(0x5a);					//恢復HDOT SET		
		WRData(l);
			
	}	
}
/*第一顯示區向下滾動顯示子程序
文本方式下上下滾動以字符為單位*/
void DownScroll(void){
	unsigned char addr,tempaddr;
	unsigned char addrl,addrh;
	unsigned char AP=0x0028;
	CCDisplay(5,5);
	while(1){
		addr=0x0000;
		while(addr<1200){
			addr+=AP;
			tempaddr=addr;
			addrl=(tempaddr&0x00ff);
			addrh=((addr&0xff00)>>8);
			
			WRCommand(0x44);		
			WRData(addrl);
			WRData(addrh);
			WaitNms(500);
		}
	}		
}
/*第二顯示區向上滾動顯示子程序*/
void UpScroll(void){
	unsigned char addr,tempaddr;
	unsigned char addrl,addrh;
	unsigned char AP=0x0028;
	GCDisplay(50,10);
	while(1){
		addr=0x2800;
		while(addr>320){
			addr-=320;
			tempaddr=addr;
			addrl=(tempaddr&0x00ff);
			addrh=((addr&0xff00)>>8);
			
			WRCommand(0x44);		
			WRData(addrl);
			WRData(addrh);
			WaitNms(500);
		}
	}		
}
/*在圖形方式下,繪點子程序*/
void DrawDot(int row,int col) 	/*行坐標以點為單位,列坐標以點為單位*/
{	
	int addr,tempaddr,addrl,addrh;
	int bitset=0x01;
	unsigned char data0;			
	/*設置顯示地址*/
	addr=0x2800+row*0x28+col/8;
	tempaddr=addr;
	addrl=tempaddr&0x00ff;
	addrh=((addr&0xff00)>>8);
	
	WRCommand(0x46);				//設置光標地址
	WRData(addrl);
	WRData(addrh);

	WRCommand(0x43);				//讀取該位置的原始數據
	data0=RDData();
	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人快播电影网| 国产精品一区二区x88av| 日日摸夜夜添夜夜添亚洲女人| 久久精品国产亚洲一区二区三区| 91久久线看在观草草青青| 日韩精品一区二区三区在线播放 | 国产精品911| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 欧美精品一区二区三区高清aⅴ| 一区在线播放视频| 国内久久婷婷综合| 欧美精品亚洲一区二区在线播放| 欧美激情一区二区三区在线| 日韩在线播放一区二区| 色综合激情五月| 国产欧美日本一区视频| 美女尤物国产一区| 欧美日韩免费电影| 亚洲精品乱码久久久久久| 国产成人高清在线| 亚洲精品一线二线三线| 日本不卡视频一二三区| 欧美亚洲高清一区| 亚洲欧美激情视频在线观看一区二区三区 | 欧美一区二区三区小说| 亚洲人xxxx| 青娱乐精品视频在线| 欧美色偷偷大香| 亚洲在线成人精品| 日本不卡高清视频| 欧美韩日一区二区三区| 欧美三级电影在线观看| 亚洲一区二区三区四区在线免费观看 | 97久久精品人人澡人人爽| 国产亚洲制服色| 久草中文综合在线| 日韩欧美一级在线播放| 日本欧美大码aⅴ在线播放| 欧美伦理视频网站| 亚洲h精品动漫在线观看| 欧美日韩色一区| 亚洲网友自拍偷拍| 亚洲精品大片www| 狠狠色丁香久久婷婷综合丁香| 国产精品美女www爽爽爽| 午夜视频一区在线观看| 91在线视频免费观看| 亚洲免费电影在线| 欧美亚洲综合久久| 日韩精品电影一区亚洲| 欧美一级日韩一级| 国产在线播放一区三区四| 国产午夜精品一区二区| av成人免费在线观看| 有码一区二区三区| 7777精品伊人久久久大香线蕉 | 日韩欧美中文字幕精品| 精品在线亚洲视频| 中文字幕va一区二区三区| 成人黄色综合网站| 亚洲一区二区三区四区在线免费观看 | 国产精品女主播在线观看| av中文字幕不卡| 亚洲成人1区2区| 精品国产免费久久| 91亚洲精品久久久蜜桃网站| 午夜影视日本亚洲欧洲精品| 精品国产91九色蝌蚪| 99国内精品久久| 美脚の诱脚舐め脚责91| 亚洲欧洲日韩综合一区二区| 欧美久久久久中文字幕| 国产麻豆精品在线| 亚洲成av人片观看| 一区二区三区中文在线| 在线播放中文一区| 丁香亚洲综合激情啪啪综合| 亚洲午夜免费视频| 国产午夜精品一区二区| 欧美区视频在线观看| 国产精品羞羞答答xxdd| 亚洲成人精品一区| 中文字幕欧美激情一区| 日韩欧美一区在线| 在线观看成人小视频| 国产精品一品二品| 日韩黄色一级片| 最新日韩av在线| 久久久久久久久蜜桃| 欧美三级日本三级少妇99| www.成人在线| 激情六月婷婷久久| 五月综合激情婷婷六月色窝| 中文字幕一区二区三区视频| 欧美xxx久久| 欧美精品乱人伦久久久久久| 99视频精品在线| 国产夫妻精品视频| 久久99久久精品| 婷婷亚洲久悠悠色悠在线播放| 综合久久久久久| 亚洲国产高清不卡| 国产人妖乱国产精品人妖| 欧美一级夜夜爽| 这里只有精品电影| 欧美午夜片在线观看| 色一情一伦一子一伦一区| 成人免费看的视频| 国产福利一区二区三区| 国模无码大尺度一区二区三区| 日韩和欧美的一区| 同产精品九九九| 亚洲成人一区在线| 亚洲国产人成综合网站| 一区二区三区电影在线播| 亚洲乱码国产乱码精品精小说 | 国产成人8x视频一区二区| 精品无人区卡一卡二卡三乱码免费卡| 天天av天天翘天天综合网色鬼国产 | 精品国产91亚洲一区二区三区婷婷 | 欧美a级理论片| 天堂一区二区在线免费观看| 亚洲va在线va天堂| 丝袜美腿亚洲色图| 日韩av成人高清| 精品亚洲免费视频| 国产一区999| 成人99免费视频| 波多野结衣在线一区| 91网站视频在线观看| 91丨porny丨蝌蚪视频| 在线观看日韩高清av| 欧美日本一道本| 日韩欧美激情在线| 久久夜色精品国产噜噜av| 亚洲国产高清在线观看视频| 亚洲天堂2016| 天天色 色综合| 欧美三级电影网| 欧美区在线观看| 久久午夜免费电影| 中文字幕一区二区三区不卡在线| 亚洲免费色视频| 美女免费视频一区二区| 国产不卡视频在线播放| 色婷婷精品大视频在线蜜桃视频 | 一区二区三区在线视频免费观看| 亚洲国产综合91精品麻豆| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产在线国偷精品产拍免费yy| 白白色 亚洲乱淫| 欧美日韩国产片| 国产色爱av资源综合区| 亚洲综合免费观看高清完整版在线 | 日韩高清不卡一区二区| 国产一区 二区 三区一级| 91成人在线精品| 精品国产一区二区精华| 亚洲青青青在线视频| 久久99国产精品免费网站| 色综合久久中文综合久久97| 欧美一级艳片视频免费观看| 国产精品国产三级国产| 日本vs亚洲vs韩国一区三区二区 | 91久久香蕉国产日韩欧美9色| 欧美电视剧免费观看| 亚洲免费在线视频| 国产精品亚洲综合一区在线观看| 欧美日韩一区二区三区四区 | 欧美高清精品3d| 国产精品麻豆视频| 成人动漫中文字幕| 精品免费视频一区二区| 一区二区欧美精品| 成人性生交大片免费| 日韩亚洲欧美一区| 亚洲自拍偷拍av| 丁香天五香天堂综合| 日韩欧美另类在线| 亚洲国产婷婷综合在线精品| 丁香啪啪综合成人亚洲小说| 精品国产免费一区二区三区香蕉| 亚洲第一福利视频在线| 91免费精品国自产拍在线不卡| 精品电影一区二区三区 | 中文字幕亚洲区| 丁香天五香天堂综合| 久久伊人蜜桃av一区二区| 麻豆91在线看| 欧美人动与zoxxxx乱| 一区二区三区久久| 色婷婷国产精品| 亚洲欧美日韩国产一区二区三区| 国产成人av在线影院| 久久久久久久久久电影| 蜜臀精品一区二区三区在线观看 | 精品99一区二区三区| 裸体一区二区三区| 欧美一区二区三区人| 视频在线观看91|