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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sed1330.h

?? C51下uc/osii的一個完整的LCD項目源碼
?? H
?? 第 1 頁 / 共 2 頁
字號:
//以下程序用于SED1330控制的液晶顯示模塊,顯示點(diǎn)陣為320X240
#include "stdarg.h"

#define CR        39                                   /*定義顯示窗口的長度,以字符為單位*/
#define TCR       45                                   /*定義LCD的時間常數(shù).這個時間常數(shù)應(yīng)該盡量小(場頻就大),防止轉(zhuǎn)換時出現(xiàn)閃爍*/
#define LF        239                                  /*定義LCD的行數(shù)*/
#define APL       40                                   /*定義LCD一行所占緩沖區(qū)的字節(jié)數(shù),低8位*/
#define APH       0                                    /*定義LCD一行所占緩沖區(qū)的字節(jié)數(shù),高8位*/

#define SAD1      0X0000                               /*定義顯示一區(qū)首址*/
#define SAD1L     0X00                                 /*定義顯示一區(qū)首址低8位*/
#define SAD1H     0X00                                 /*定義顯示一區(qū)首址高8位*/
#define SL1       239                                  /*定義顯示一區(qū)所占顯示屏幕的行數(shù)*/

#define SAD2      0X2800                               /*定義顯示二區(qū)首址*/
#define SAD2L     0X00                                 /*定義顯示二區(qū)首址低8位*/
#define SAD2H     0X28                                 /*定義顯示二區(qū)首址高8位*/
#define SL2       239                                  /*定義顯示二區(qū)所占顯示屏幕的行數(shù)*/

#define SAD3      0X5000                               /*定義顯示三區(qū)首址*/
#define SAD3L     0X00                                 /*定義顯示三區(qū)首址低8位*/
#define SAD3H     0X50                                 /*定義顯示三區(qū)首址高8位*/

#define SAD4      0X2800                               /*定義顯示四區(qū)首址*/
#define SAD4L     0X00                                 /*定義顯示四區(qū)首址低8位*/
#define SAD4H     0X28                                 /*定義顯示四區(qū)首址高8位*/

#define TA_LEFT		0									//左對齊方式
#define TA_CENTER	1									//中心對齊方式
///////////////////////
void wrstr(unsigned int sad,unsigned int hnum,unsigned char vnum,unsigned char* str);
void wrdot(unsigned int sad,unsigned int hnum,unsigned char vnum);
void initlcd();
void rectangle(unsigned int sad,unsigned int strhnum,unsigned char strvnum,unsigned int endhnum,unsigned char endvnum,unsigned char fill);
void wrchat(unsigned int sad,unsigned int hnum,unsigned char vnum,unsigned char chatnum);
void liney(unsigned int sad,unsigned int x,unsigned char y1,unsigned char y2);
void linex(unsigned int sad,unsigned char y,unsigned int x1,unsigned int x2);
//////////////////////
/*設(shè)定三個顯示區(qū)域為:第一顯示區(qū)   0000H----27FFH  (10K容量)
                     第二顯示區(qū)   2800H----4FFFH  (10K容量)
                     第三顯示區(qū)   5000H----77FFH  (10K容量)*/
const unsigned char  LCDSYSINIT[8]={0X30,0X87,0X07,CR,TCR,LF,APL,APH};                          /*主LCD0的SYS設(shè)置參數(shù)*/
const unsigned char  LCDSCRINIT[10]={SAD1L,SAD1H,SL1,SAD2L,SAD2H,SL2,SAD3L,SAD3H,SAD4L,SAD4H};  /*主LCD0的SCR設(shè)置參數(shù)*/


/***********************************************************
*   程序名稱: INITLCD                                     *
*   程序用途: 將SED1330 初始化成3層圖形方式               *
*   輸入?yún)?shù): 無                                          *
*														  *
*                                                         *
***********************************************************/
void initlcd()           
{
	xdata unsigned char counter;
	
	LCDORDER=0X40;							/*送入SYS命令*/
	for(counter=0;counter<=7;counter++)
	{LCDDATA=LCDSYSINIT[counter];}			/*送入8個SYSTERM數(shù)據(jù)*/
	
	LCDORDER=0X44;							/*送入SCROLL命令*/
	for(counter=0;counter<=9;counter++)
	{LCDDATA=LCDSCRINIT[counter];}			/*送入十個SCROLL數(shù)據(jù)*/
	
	LCDORDER=0X5A;							/*送入HDOTSCR命令*/
	LCDDATA=0X00;							/*送入HDOTSCR數(shù)據(jù)*/
	
	LCDORDER=0X4F;
	
	LCDORDER=0X5B;							/*送入OVLAY命令*/
	LCDDATA=0X1D;							/*送入OVLAY數(shù)據(jù),顯示方式==(L1*L2)+L3 */
	
	LCDORDER=0X59;							/*開關(guān)顯示*/
	LCDDATA=0X40;							/*開啟一.二四.三, 關(guān)閉光標(biāo)*/
	//LCDDATA=0X04|0x10|0x40;							/*開啟一.二四.三, 關(guān)閉光標(biāo)*/
	
	
	LCDORDER=0X5D;							/*設(shè)置光標(biāo)*/
	LCDDATA=0X07;							/*水平點(diǎn)數(shù)為7*/
	LCDDATA=0X87;							/*垂直點(diǎn)數(shù)為7,陰影顯示*/	
}
/***********************************************************
*   程序名稱: WRDOT()                                     *
*   程序用途: 在指定層的指定位置寫點(diǎn).                     *
*   輸入?yún)?shù): sad    指定層的內(nèi)存地址                     *
*             hnum   點(diǎn)橫坐標(biāo)                             *
*             vnum   點(diǎn)縱坐標(biāo)                             *
*                                                         *
***********************************************************/
void wrdot(unsigned int sad,unsigned int hnum,unsigned char vnum)
{
	unsigned char flag;
    union {unsigned int add;
	struct {unsigned char addhi;unsigned char addlo;}addhalf;
	}curadd;
    curadd.add=vnum*(APL)+hnum/8+sad;
    flag=hnum-(hnum/8)*8;
    flag=(0x80)>>flag;
	
    LCDORDER=0X46;                       /*設(shè)置光標(biāo)地址*/
    LCDDATA=curadd.addhalf.addlo;
    LCDDATA=curadd.addhalf.addhi;
	
    LCDORDER=0X43;                       /*取出該點(diǎn)所在地址的數(shù)據(jù)*/ 
    flag=flag|(LCDORDER);
	
    LCDORDER=0X46;
    LCDDATA=curadd.addhalf.addlo;
    LCDDATA=curadd.addhalf.addhi;
	
    LCDORDER=0X42;
    LCDDATA=flag;	
}                    
/***********************************************************
*   程序名稱: WRDOT()                                     *
*   程序用途: 在指定層的指定位置清點(diǎn).                     *
*   輸入?yún)?shù): sad    指定層的內(nèi)存地址                     *
*             hnum   點(diǎn)橫坐標(biāo)                             *
*             vnum   點(diǎn)縱坐標(biāo)                             *
*                                                         *
***********************************************************/
/*void clsdot(unsigned int sad,unsigned int hnum,unsigned char vnum)
{
	xdata unsigned char flag;
    xdata union {unsigned int add;
	struct {unsigned char addhi;unsigned char addlo;}addhalf;
	}curadd;
    curadd.add=vnum*(APL)+hnum/8+sad;
    flag=hnum-(hnum/8)*8;
    flag=(0x80)>>flag;
	flag=~flag;
	
    LCDORDER=0X46;                       //設(shè)置光標(biāo)地址
    LCDDATA=curadd.addhalf.addlo;
    LCDDATA=curadd.addhalf.addhi;
	
    LCDORDER=0X43;                       //取出該點(diǎn)所在地址的數(shù)據(jù)
    flag=flag&(LCDORDER);
	
    LCDORDER=0X46;
    LCDDATA=curadd.addhalf.addlo;
    LCDDATA=curadd.addhalf.addhi;
	
    LCDORDER=0X42;
    LCDDATA=flag;	
}           */
/***********************************************************
*   程序名稱: CLSSED()                                     *
*   程序用途: 清空顯示器			                       *
*   輸入?yún)?shù): 無										   *
*								                           *
*								                           *
*                                                          *
************************************************************/
void clssed(unsigned int sad)
{
	xdata union {unsigned int add;
	struct {unsigned char addhi;unsigned char addlo;}addhalf;
	}curadd;
    curadd.add=sad;
    LCDORDER=0X46;                       /*設(shè)置光標(biāo)地址*/
    LCDDATA=curadd.addhalf.addlo;
    LCDDATA=curadd.addhalf.addhi;
	LCDORDER=0X4C;
	LCDORDER=0X42;
	sad=0;
	while(sad<9600)
	{
		LCDDATA=0X00;
		sad++;
	}
}           

/***********************************************************
*   程序名稱: LINEX()                                      *
*   程序用途: 作水平線  			                       *
*   輸入?yún)?shù): sad    指定層的內(nèi)存地址                      *
*			  y位置										   *
*			  x1起點(diǎn)									   * 
*			  x2終點(diǎn)			                           *
*								                           *
*                                                          *
************************************************************/
void linex(unsigned int sad,unsigned char y,unsigned int x1,unsigned int x2)
{
	do{
		wrdot(sad,x1,y);
		x1++;
	}while(x1<=x2);
}    

/***********************************************************
*   程序名稱: LINEY()                                      *
*   程序用途: 作垂直線  			                       *
*   輸入?yún)?shù): sad    指定層的內(nèi)存地址                      *
*			  x位置										   *
*			  y1起點(diǎn)									   * 
*			  y2終點(diǎn)			                           *
*								                           *
*                                                          *
************************************************************/
void liney(unsigned int sad,unsigned int x,unsigned char y1,unsigned char y2)
{
	do{
		wrdot(sad,x,y1);
		y1++;
	}while(y1<=y2);
}    
/***********************************************************
*   程序名稱: LINE()                                       *
*   程序用途: 作垂直線  			                       *
*   輸入?yún)?shù): sad    指定層的內(nèi)存地址                      *
*			  x1起點(diǎn)									   *
*			  x2終點(diǎn)									   *
*			  y1起點(diǎn)									   * 
*			  y2終點(diǎn)			                           *
*								                           *
*                                                          *
************************************************************/
/*void line(unsigned int sad,unsigned int x1,unsigned int x2,unsigned char y1,unsigned char y2)
{
	unsigned char tem,tem1;
	if(y2>y1)
	{
		tem=y2-y1;
		for(tem1=0;tem1<=tem/2;tem1++)
		{
			wrdot(sad,x1,y1+tem1);
			wrdot(sad,x2,y1+tem/2+tem1+1);
		}
	}
	else
	{
		tem=y1-y2;
		for(tem1=0;tem1<=tem/2;tem1++)
			wrdot(sad,x1,y1-tem1);
		for(tem1=1;tem1<=tem/2;tem1++)
			wrdot(sad,x2,y1-tem/2-tem1);
	}
}    */

/***********************************************************
*   程序名稱: WRCHAT()                                    *
*   程序用途: 在指定層的指定位置寫ASCII字符               *
*   輸入?yún)?shù): sad    指定層的內(nèi)存地址                     *
*             hnum   點(diǎn)橫坐標(biāo)                             *
*             vnum   點(diǎn)縱坐標(biāo)                             *
*             chatnum字符的序號值                         *
***********************************************************/
void wrchatasc(unsigned int sad,unsigned int hnum,unsigned char vnum,unsigned char chatnum)
{
	unsigned char buff[16];                   /*緩存,用于讀寫ASCII字符的16*16點(diǎn)陣*/
	unsigned char counter;
	unsigned char flag1;
	unsigned char flag2;
	unsigned char offset;
	union {unsigned int add;
	struct {unsigned char addhi;unsigned char addlo;}addhalf;
	}curadd;
	curadd.add=vnum*(APL)+hnum/8+sad;      /*計算出首址*/
	offset=hnum-(hnum/8)*8;               /*計算出字符內(nèi)的偏移量*/
	
	LCDORDER=0X46;                         /*確定光標(biāo)地址*/
	LCDDATA=curadd.addhalf.addlo;
	LCDDATA=curadd.addhalf.addhi;
	
	
	/*以下寫字符的左部*/
	LCDORDER=0X4F;                         /*確定光標(biāo)移動方向為向下*/
	
	flag1=(0XFF)<<(8-offset);
	flag2=~flag1;
	
		
	LCDORDER=0X43;                         /*由光標(biāo)處開始,向下讀入16個數(shù)據(jù)*/                                        
	for(counter=0;counter<16;counter++)
    {  /*由于LCDORDER的操作是一次寫,一次讀,C51可能在讀操作時優(yōu)化成直接使用寫的數(shù)據(jù),
		而不進(jìn)行讀操作,所以加一個無用指令*/
		buff[counter]=(LCDORDER&flag1)|(ASC_MSK[chatnum][counter]>>offset);
    }
	
	LCDORDER=0X46;                         /*再次確定光標(biāo)地址*/
	LCDDATA=curadd.addhalf.addlo;
	LCDDATA=curadd.addhalf.addhi;
	
	LCDORDER=0X42;
	for(counter=0;counter<16;counter++)
    {
		(LCDDATA)=buff[counter];
	}
	

	curadd.add=curadd.add+1;         /*地址加1,移到右部*/
	
	LCDORDER=0X4F;                   /*確定光標(biāo)移動方向為向下*/
	
	LCDORDER=0X46;                   /*確定光標(biāo)地址*/
	LCDDATA=curadd.addhalf.addlo;
	LCDDATA=curadd.addhalf.addhi;
	
	flag1=(0XFF)>>offset;
	flag2=~flag1;
	flag1=0XFF>>offset;
				
	LCDORDER=0X43;                   /*由光標(biāo)處開始,向下讀入16個數(shù)據(jù)*/
	for(counter=0;counter<16;counter++)
	{
		buff[counter]=(LCDORDER&flag1)|(ASC_MSK[chatnum][counter]<<(8-offset));
	}
	
	LCDORDER=0X46;                   /*再次確定光標(biāo)地址*/
	LCDDATA=curadd.addhalf.addlo;
	LCDDATA=curadd.addhalf.addhi;
	
	LCDORDER=0X42;
	for(counter=0;counter<16;counter++)
	{
		(LCDDATA)=buff[counter];
	}
}
/***********************************************************
*   程序名稱: WRCHAT()                                    *
*   程序用途: 在指定層的指定位置寫漢字字符                    *
*   輸入?yún)?shù): sad    指定層的內(nèi)存地址                     *
*             hnum   點(diǎn)橫坐標(biāo)                             *
*             vnum   點(diǎn)縱坐標(biāo)                             *
*             chatnum字符的序號值                         *
***********************************************************/
void wrchat(unsigned int sad,unsigned int hnum,unsigned char vnum,unsigned char chatnum)
{
	unsigned char buff[16];                   /*緩存,用于讀寫ASCII字符的16*16點(diǎn)陣*/
	unsigned char counter;
	unsigned char flag1;
	unsigned char flag2;
	unsigned char offset;
	union {unsigned int add;
	struct {unsigned char addhi;unsigned char addlo;}addhalf;
	}curadd;
	curadd.add=vnum*(APL)+hnum/8+sad;      /*計算出首址*/
	offset=hnum-(hnum/8)*8;               /*計算出字符內(nèi)的偏移量*/
	
	LCDORDER=0X46;                         /*確定光標(biāo)地址*/
	LCDDATA=curadd.addhalf.addlo;
	LCDDATA=curadd.addhalf.addhi;
	
	
	/*以下寫字符的左部*/
	LCDORDER=0X4F;                         /*確定光標(biāo)移動方向為向下*/
	
	flag1=(0XFF)<<(8-offset);
	flag2=~flag1;
	
		
	LCDORDER=0X43;                         /*由光標(biāo)處開始,向下讀入16個數(shù)據(jù)*/                                        
	for(counter=0;counter<16;counter++)
    	buff[counter]=(LCDORDER&flag1)|(GB_16[chatnum].Msk[counter]>>offset);
    
	LCDORDER=0X46;                         /*再次確定光標(biāo)地址*/
	LCDDATA=curadd.addhalf.addlo;
	LCDDATA=curadd.addhalf.addhi;
	

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产综合一区二区三区| 欧美视频一区二区三区在线观看| 中文字幕在线免费不卡| 欧美午夜一区二区| 成人黄色a**站在线观看| 日本伊人色综合网| 亚洲人成精品久久久久久 | 色一情一乱一乱一91av| 日本欧美在线观看| 亚洲免费视频成人| 欧美国产日产图区| 日韩午夜激情视频| 欧美日韩免费电影| 一本大道av伊人久久综合| 国产mv日韩mv欧美| 精品在线免费视频| 亚洲成a天堂v人片| 亚洲激情男女视频| 成人免费视频在线观看| 久久嫩草精品久久久精品一| 制服丝袜亚洲精品中文字幕| 91论坛在线播放| av男人天堂一区| 国产成人av电影在线播放| 国产在线播放一区三区四| 日韩电影在线看| 午夜成人在线视频| 视频一区二区中文字幕| 午夜电影一区二区三区| 亚洲午夜羞羞片| 亚洲福利视频一区| 亚洲不卡在线观看| 亚洲成av人影院在线观看网| 亚洲第四色夜色| 亚洲成人三级小说| 日韩电影在线观看网站| 日本亚洲视频在线| 精品在线你懂的| 国产精品自在欧美一区| 国产精品一色哟哟哟| 国产乱码精品一区二区三区av| 久久精品国产免费看久久精品| 男男视频亚洲欧美| 老司机一区二区| 国产精品538一区二区在线| 国产综合一区二区| 成人性生交大合| 91免费视频观看| 欧美网站大全在线观看| 欧美精品v国产精品v日韩精品| 欧美日韩午夜在线视频| 欧美一区二区精美| www日韩大片| 中文字幕不卡在线观看| 亚洲免费观看在线视频| 亚洲综合成人网| 蜜桃视频一区二区| 成人一区二区三区中文字幕| 99久久精品国产一区| 欧洲亚洲国产日韩| 正在播放一区二区| 久久亚区不卡日本| 亚洲欧美日韩人成在线播放| 亚洲精品成人悠悠色影视| 午夜久久久久久久久| 国产综合久久久久久久久久久久| 国产成人免费视频精品含羞草妖精 | 欧美日韩免费电影| 精品国产a毛片| 国产精品免费av| 亚洲电影一区二区| 另类欧美日韩国产在线| 不卡av在线网| 91精品婷婷国产综合久久性色| 精品成人免费观看| 国产成人亚洲综合a∨婷婷| 日韩视频国产视频| 久久www免费人成看片高清| 日本aⅴ免费视频一区二区三区| 欧美一区二区三区视频免费| 久久日一线二线三线suv| 色综合天天视频在线观看| 欧美影院午夜播放| 久久人人超碰精品| 久久久www成人免费毛片麻豆| 亚洲午夜在线视频| 91九色02白丝porn| **欧美大码日韩| www.激情成人| 中文字幕第一区| 丁香六月久久综合狠狠色| 精品久久一区二区| 久久99久久99精品免视看婷婷| 91麻豆精品国产91| 天堂在线亚洲视频| 欧美三级乱人伦电影| 亚洲国产婷婷综合在线精品| 91麻豆福利精品推荐| 亚洲人妖av一区二区| av中文字幕不卡| 亚洲少妇最新在线视频| 99久久99久久久精品齐齐| 国产精品无码永久免费888| 高清shemale亚洲人妖| 欧美激情综合五月色丁香小说| 国产成a人亚洲| 亚洲欧洲日产国产综合网| eeuss鲁片一区二区三区在线看| 欧美高清在线视频| 99久久免费精品| 亚洲欧美日韩精品久久久久| 色系网站成人免费| 亚洲国产视频一区| 欧美裸体bbwbbwbbw| 日本亚洲天堂网| 久久久亚洲精品石原莉奈 | 欧美视频精品在线| 亚洲成在线观看| 欧美一区二区在线免费播放| 久久精品国产一区二区三 | 激情综合网av| 国产日韩影视精品| 一本大道久久a久久综合| 香港成人在线视频| 欧美α欧美αv大片| 国产激情视频一区二区三区欧美| 国产精品丝袜久久久久久app| 99re成人在线| 无码av免费一区二区三区试看| 日韩午夜在线影院| 成人综合婷婷国产精品久久免费| 亚洲欧美一区二区视频| 欧美三区免费完整视频在线观看| 日韩精品色哟哟| 国产亚洲欧美一区在线观看| 波多野结衣中文一区| 亚洲亚洲人成综合网络| 日韩精品自拍偷拍| 99精品欧美一区二区三区综合在线| 亚洲午夜羞羞片| 久久综合九色综合欧美亚洲| 99精品桃花视频在线观看| 丝袜美腿亚洲一区二区图片| 亚洲精品一线二线三线| 日本丶国产丶欧美色综合| 老汉av免费一区二区三区| 自拍av一区二区三区| 欧美一区二区三区视频免费播放| 国产99一区视频免费 | 一本到不卡免费一区二区| 日韩激情中文字幕| 国产精品久久久久久户外露出 | 欧美变态tickling挠脚心| 99国产精品视频免费观看| 午夜久久福利影院| 国产精品美女久久久久久久久久久 | 国产一区在线不卡| 洋洋成人永久网站入口| 精品国免费一区二区三区| 91福利国产精品| 国产凹凸在线观看一区二区| 日日摸夜夜添夜夜添亚洲女人| 中文字幕巨乱亚洲| 日韩视频123| 日本韩国精品一区二区在线观看| 国内外成人在线视频| 性感美女久久精品| 国产精品国产三级国产有无不卡 | 亚洲午夜视频在线观看| 亚洲国产精品激情在线观看| 91精品国产综合久久久久久久 | 在线观看视频一区二区欧美日韩| 国产一区二区三区在线观看免费视频 | 欧美一区二区三区免费视频| av在线一区二区| 国产一区二区不卡| 日韩经典中文字幕一区| 亚洲综合色网站| 国产精品久久久爽爽爽麻豆色哟哟| 欧美一级免费大片| 欧美性猛交xxxx乱大交退制版| 国产成人h网站| 国产一区二区在线观看视频| 日日欢夜夜爽一区| 一区二区三区影院| 中文字幕中文字幕一区| 久久―日本道色综合久久| 日韩欧美中文字幕公布| 欧美日韩国产一二三| 色婷婷久久一区二区三区麻豆| 成人深夜视频在线观看| 国产美女精品在线| 激情综合色丁香一区二区| 婷婷久久综合九色国产成人| 亚洲在线观看免费视频| 亚洲日本va在线观看| 日韩一区日韩二区| 亚洲视频一区二区在线观看| 国产精品久久久爽爽爽麻豆色哟哟| 国产清纯白嫩初高生在线观看91|