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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? 5.2.3-1.c

?? 學(xué)習(xí)51單片機(jī)的好材料
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
#include<reg51.h>
#include<math.h>
#include<INTRINS.H>
#define Uchar unsigned char
/*注:8031的晶振頻率為12MHz*/
/***********液晶顯示器接口引腳定義***************/
sbit	Elcm=P2^7;	
sbit	CSALCM=	P2^2;
sbit	CSBLCM=	P2^3;
sbit	Dilcm=P2^0;
sbit	Rwlcm=P2^1;
sfr 	Datalcm=0x80;				/*數(shù)據(jù)口*/
/***********常用操作命令和參數(shù)定義***************/
#define	 DISPON		0x3f		/*顯示on*/
#define	 DISPOFF		0x3e		/*顯示off	*/
#define	 DISPFIRST	0xc0		/*顯示起始行定義*/
#define	 SETX		0x40		/*X定位設(shè)定指令(頁(yè))*/
#define	 SETY		0xb8		/*Y定位設(shè)定指令(列)*/
#define	 Lcdbusy		0x80		/*LCM忙判斷位*/

/**************顯示分區(qū)邊界位置*****************/
#define	 MODL		0x00		/*左區(qū)*/
#define	 MODM		0x40		/*左區(qū)和中區(qū)分界*/
#define	 MODR		0x80		/*中區(qū)和右區(qū)分界*/
#define	LCMLIMIT	0xC0		/*顯示區(qū)的右邊界*/

/****************全局變量定義*******************/
Uchar col,row,cbyte;				/*列x,行(頁(yè))y,輸出數(shù)據(jù)*/
bit xy;						/*畫(huà)線方向標(biāo)志:1水平*/

/*****************函數(shù)列表**********************/
void Lcminit(void);				/*液晶模塊初始化*/
void Delay(Uchar);				/*延時(shí),入口數(shù)為Ms	*/
void lcdbusyL(void);				/*busy判斷、等待(左區(qū))*/
void lcdbusyM(void);				/*busy判斷、等待(中區(qū))*/
void lcdbusyR(void);				/*busy判斷、等待(右區(qū))*/
void Putedot(Uchar);				/*半角字符輸出*/
void Putcdot(Uchar);				/*全角(漢字)輸出*/
void Wrdata(Uchar);				/*數(shù)據(jù)輸出給LCM*/
void Lcmcls( void );				/*LCM全屏幕清零(填充0)	*/
void wtcom(void);				/*公用busy等待*/
void Locatexy(void);				/*光標(biāo)定位*/
void WrcmdL(Uchar);				/*左區(qū)命令輸出	*/
void WrcmdM(Uchar);				/*中區(qū)命令輸出	*/
void WrcmdR(Uchar);				/*右區(qū)命令輸出	*/
void Putstr(Uchar *puts,Uchar i);		/*中英文字符串輸出*/
void Rollscreen(Uchar x);			/*屏幕向上滾動(dòng)*/
void Rddata(void);				/*從液晶片上讀數(shù)據(jù)*/
void Linehv(Uchar length);			/*橫(豎)方向畫(huà)線*/
void point(void);					/*打點(diǎn)*/
void Linexy(Uchar endx,Uchar endy);

/******************數(shù)組列表*********************/
Uchar code Ezk[];				/*ASCII常規(guī)字符點(diǎn)陣碼表	*/
Uchar code Hzk[];				/*自用漢字點(diǎn)陣碼表*/
Uchar code STR1[];				/*自定義字符串*/
Uchar code STR2[];
Uchar code STR3[];
Uchar code STR4[];

/****************************************主程序*****************************************/
void main(void)
{
 	Uchar x;
	col=0;
	row=0;
	Delay(40);					/*延時(shí)大約40Ms,等待外設(shè)準(zhǔn)備好*/
	Lcminit();					/*液晶模塊初始化,包括全屏幕清屏*/
	Putstr(STR1,12);				/*第一行字符輸出,12字節(jié)*/
	col=0;
	row=2;
	Putstr(STR2,14);				/*第二行字符輸出,14字節(jié)*/
	col=0;
	row=4;
	Putstr(STR3,11);				/*第三行字符輸出,11字節(jié)*/
	col=0;
	row=6;
	Putstr(STR4,12);				/*第四行字符輸出,12字節(jié)*/
	x=0;
	col=0;
	row=0;
	xy = 1;					/*方向標(biāo)志。定為水平方向*/
	Linehv(192);				/*畫(huà)一條橫線(0,0)-(191,0)*/
	col=0;
	row=15;
	xy = 1;
	Linehv(192);				/*畫(huà)一條橫線(0,15)-(191,15)*/
	col=0;
	row=32;
	xy = 1;
	Linehv(192);				/*畫(huà)一條橫線(0,32)-(191,32)*/
	col=0;
	row=1;
	xy = 0;					/*方向標(biāo)志。定為垂直方向*/
	Linehv(31);				/*畫(huà)一條豎線(0,1)-(0,31)*/
	col=191;
	row=1;
	xy = 0;
	Linehv(31);				/*畫(huà)一條豎線(191,1)-(191,31)*/
	col=0;					/*設(shè)定斜線的起點(diǎn)坐標(biāo)*/
	row=63;
	Linexy(44,31);				/*畫(huà)一段斜線(0,63)-(44,31)	*/
	col=44;
	row=31;
	Linexy(190,62);				/*繼續(xù)畫(huà)斜線(44,31)-(191,63)*/
	while(1){
		Rollscreen(x);			/*定位新的顯示起始行*/
		x++;
		Delay(100);			/*延時(shí),控制滾動(dòng)速度*/
		};
}

/***********************畫(huà)線,任意方向的斜線,不支持垂直的或水平線***********************/
void Linexy(Uchar endx,Uchar endy)
{
	register Uchar t;
	int xerr=0,yerr=0,delta_x,delta_y,distance;
	Uchar incx,incy;
	delta_x=endx-col; 			/*計(jì)算兩個(gè)方向的距離*/
	delta_y=endy-row;
	if(delta_x>0) incx=1; 			/*計(jì)算增量方向,增量為0表示既不是垂直線也不是水平線*/
	else if( delta_x==0 ) incx=0;
		else incx=-1;
	if(delta_y>0) incy=1;
	else if( delta_y==0 ) incy=0;
		else incy=-1;
	delta_x = cabs( delta_x ); 		/* 判定哪個(gè)距離比較大*/
	delta_y = cabs( delta_y );
	if( delta_x > delta_y ) distance=delta_x;
	else distance=delta_y;
/*開(kāi)始畫(huà)線*/
	for( t=0;t <= distance+1; t++ ) {
		point();
 	   xerr += delta_x ;
		yerr += delta_y ;
		if( xerr > distance ) {
			xerr-=distance;
 		    col+=incx;
		}
		if( yerr > distance ) {
			yerr-=distance;
 		    row+=incy;
		}
	}
}

/***************************畫(huà)線,只提供X或Y方向的,不支持斜線*************************/
void Linehv(Uchar length)
	{
		Uchar xs,ys;
		if (xy){ys = col;
			for (xs=0;xs<length;xs++){
					col = ys + xs;
					point();}
				}
		else	{xs = row;
			for (ys=0;ys<length;ys++)
{
					row = xs + ys;
					point();}
				 }
}

/*****************************************畫(huà)點(diǎn)******************************************/
void point(void)
	{
		Uchar x1,y1,x,y;
		x1=col;
		y1=row;
		row=y1>>3;			/*取Y方向分頁(yè)地址*/
		Rddata();
		y=y1&0x07;			/*字節(jié)內(nèi)位置計(jì)算*/
		x=0x01;
		x=x<<y;				/*移入所畫(huà)點(diǎn)*/
		Wrdata(cbyte|x);			/*畫(huà)上屏幕*/
		col=x1;				/*恢復(fù)xy坐標(biāo)*/
		row=y1;
	}

/**************************************屏幕滾動(dòng)定位*************************************/
void Rollscreen(Uchar x)
	{
		cbyte = DISPFIRST|x;		/*定義顯示起始行為x?*/
		WrcmdL(cbyte);
		WrcmdM(cbyte);
		WrcmdR(cbyte);
	}

/**************************************一個(gè)字串的輸出***********************************/
void Putstr(Uchar *puts,Uchar i)
	{
		Uchar j,X;
		for (j=0;j<i;j++)
		{
		X = puts[j];
			if (X&0x80)
				{
					Putcdot(X&0x7f);/*只保留低7位*/
				}
			else Putedot(X-0x20);		/*ascii碼表從0x20開(kāi)始*/
		}
	}

/*********************************半角字符點(diǎn)陣碼數(shù)據(jù)輸出********************************/
void Putedot(Uchar Order)
	{
	Uchar i,bakerx,bakery;			/*共定義4個(gè)局部變量*/
	int x;						/*偏移量,字符量少的可以定義為UCHAR	*/
	bakerx = col;				/*暫存x,y坐標(biāo),已備下半個(gè)字符使用*/
	bakery = row;
	x=Order * 0x10;				/*半角字符,每個(gè)字符16字節(jié)*/
/*上半個(gè)字符輸出,8列*/
	for(i=0;i<8;i++)
		{
		cbyte = Ezk[x];			/*取點(diǎn)陣碼,rom數(shù)組*/
		Wrdata(cbyte);			/*寫(xiě)輸出一字節(jié)*/
		x++;
		col++;
		if (col==LCMLIMIT){col=0;row++;row++;};		/*下一列,如果列越界換行*/
			if (row>7) row=0;					/*如果行越界,返回首行*/
		}									/*上半個(gè)字符輸出結(jié)束*/
	col = bakerx;				/*列對(duì)齊*/
	row = bakery+1;				/*指向下半個(gè)字符行*/
/*下半個(gè)字符輸出,8列*/
	for(i=0;i<8;i++)
		{
		cbyte = Ezk[x];			/*取點(diǎn)陣碼*/
		Wrdata(cbyte);			/*寫(xiě)輸出一字節(jié)*/
		x++;
		col++;
		if (col==LCMLIMIT){col=0;row=row+2;};	/*下一列,如果列越界換行*/
			if (row>7) row=1;	/*如果行越界,返回首行*/
		}					/*下半個(gè)字符輸出結(jié)束*/
	row=bakery;
	}						/*整個(gè)字符輸出結(jié)束*/

/*********************************全角字符點(diǎn)陣碼數(shù)據(jù)輸出********************************/
void Putcdot(Uchar Order)
	{
	Uchar i,bakerx,bakery;			/*共定義3個(gè)局部變量*/
	int x;						/*偏移量,字符量少的可以定義為UCHAR	*/
	bakerx = col;				/*暫存x,y坐標(biāo),已備下半個(gè)字符使用*/
	bakery = row;
	x=Order * 0x20;				/*每個(gè)字符32字節(jié)*/
	/*上半個(gè)字符輸出,16列*/
	for(i=0;i<16;i++)
		{
		Wrdata(Hzk[x]);			/*寫(xiě)輸出一字節(jié)*/
		x++;
		col++;
		if (col==LCMLIMIT){ col=0;row++;row++;}	/*下一列,如果列越界換行*/
			if (row>6) row=0;	/*如果行越界,返回首行*/
		}					/*上半個(gè)字符輸出結(jié)束*/
	/*下半個(gè)字符輸出,16列	*/
	col = bakerx;
	row = bakery+1;
	for(i=0;i<16;i++)				/*下半部分*/
		{
		Wrdata(Hzk[x]);
		x++;
		col++;
		if (col==LCMLIMIT){col=0;row++;row++;}	/*下一列,如果列越界換行*/
			if (row>7) row=1;	/*如果行越界,返回首行*/
		}					/*下半個(gè)字符輸出結(jié)束*/
	row = bakery;
	}						/*整個(gè)字符輸出結(jié)束*/

/************************************清屏,全屏幕清零***********************************/
void Lcmcls( void )
	{
	for(row=0;row<8;row++)
   		for(col=0;col<LCMLIMIT;col++) Wrdata(0);
	}

/***************************從液晶片上讀數(shù)據(jù),保留在全局變量中***************************/
void Rddata(void)
	{
	     Locatexy();			/*坐標(biāo)定位,返回時(shí)保留分區(qū)狀態(tài)不變*/
		Datalcm=0xFF;
		Dilcm = 1;				/*數(shù)據(jù)*/
		Rwlcm = 1;			/*讀數(shù)據(jù)*/
		Elcm = 1;				/*讀入到LCM*/
		_nop_();
		cbyte = Datalcm;			/*虛讀一次*/
		Elcm = 0;
	     Locatexy();			/*坐標(biāo)定位,返回時(shí)保留分區(qū)狀態(tài)不變*/
		Datalcm=0xFF;
		_nop_();
		Dilcm = 1;				/*數(shù)據(jù)*/
		Rwlcm = 1;			/*讀數(shù)據(jù)*/
		Elcm = 1;				/*讀入到LCM*/
		_nop_();
		cbyte = Datalcm;			/*從數(shù)據(jù)口讀數(shù)據(jù),真讀*/
		Elcm = 0;
	}

/*************************************數(shù)據(jù)寫(xiě)輸出/**************************************/
void Wrdata(Uchar X)
	{
	     Locatexy();			/*坐標(biāo)定位,返回時(shí)保留分區(qū)狀態(tài)不變*/
		Dilcm = 1;				/*數(shù)據(jù)輸出*/
		Rwlcm = 0;			/*寫(xiě)輸出*/
		Datalcm = X;			/*數(shù)據(jù)輸出到數(shù)據(jù)口*/
		Elcm = 1;				/*讀入到LCM*/
		_nop_();
		Elcm = 0;
	}

/*********************************命令輸出到左區(qū)控制口*********************************/
void WrcmdL(Uchar X)
	{
		lcdbusyL();				/*確定分區(qū),返回時(shí)保留分區(qū)狀態(tài)不變*/
		Dilcm = 0;				/*命令操作*/
		Rwlcm = 0;			/*寫(xiě)輸出*/
		Datalcm = X;			/*數(shù)據(jù)輸出到數(shù)據(jù)口*/
		Elcm = 1;_nop_();Elcm = 0;	/*讀入到LCM*/
	}

/********************************命令輸出到中區(qū)控制口********************************/
void WrcmdM(Uchar X)
	{
		lcdbusyM();			/*確定分區(qū),返回時(shí)保留分區(qū)狀態(tài)不變*/
		Dilcm = 0;				/*命令操作*/
		Rwlcm = 0;			/*寫(xiě)輸出*/

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品欧美一区二区在线观看 | 日韩一区二区免费在线观看| 国产资源在线一区| 亚洲宅男天堂在线观看无病毒| 精品播放一区二区| 欧美视频日韩视频| 99国产精品国产精品久久| 精品一区二区三区免费视频| 亚洲午夜久久久久| 亚洲人被黑人高潮完整版| 国产午夜亚洲精品羞羞网站| 欧美日韩免费观看一区二区三区| 成人精品免费网站| 国产精品99久久久久久似苏梦涵| 日本欧美韩国一区三区| 亚洲国产一区在线观看| 日韩美女啊v在线免费观看| 国产网站一区二区| 精品福利一区二区三区免费视频| 欧美精品aⅴ在线视频| 色婷婷狠狠综合| 成人h动漫精品一区二区| 国产一区二三区好的| 日本va欧美va欧美va精品| 亚洲一区二区精品久久av| 亚洲三级免费电影| 国产精品久久久久影视| 日本一区二区三区国色天香| 日韩免费成人网| 欧美一区二区三区日韩| 正在播放一区二区| 7777精品伊人久久久大香线蕉的 | 一本色道久久加勒比精品| 成人综合日日夜夜| 国产成人无遮挡在线视频| 国产福利视频一区二区三区| 精一区二区三区| 久久国产福利国产秒拍| 国产一区激情在线| 国产精品性做久久久久久| 国产成人福利片| 成人免费av网站| 一本色道综合亚洲| 一本色道亚洲精品aⅴ| 在线免费精品视频| 欧美喷潮久久久xxxxx| 91精品国产91久久综合桃花| 欧美一区中文字幕| 日韩精品专区在线影院观看| 精品久久久久久亚洲综合网| 国产亚洲一区字幕| 国产精品你懂的| 亚洲永久免费视频| 日韩av二区在线播放| 精油按摩中文字幕久久| 国产成人av电影在线观看| 成人av资源站| 欧美色图免费看| 欧美电视剧在线看免费| 久久久久久久网| 亚洲人成影院在线观看| 亚洲成人先锋电影| 精品无码三级在线观看视频| 国产99久久久久| 91激情在线视频| 日韩丝袜美女视频| 国产农村妇女毛片精品久久麻豆| 综合av第一页| 午夜精品在线视频一区| 韩国精品在线观看| 99vv1com这只有精品| 欧美精品乱码久久久久久按摩| 欧美成人午夜电影| 亚洲欧洲av另类| 日韩精品一卡二卡三卡四卡无卡| 国产在线播放一区二区三区| 色综合中文字幕国产| 欧美日韩国产免费| 久久久久国产精品厨房| 伊人夜夜躁av伊人久久| 九九久久精品视频| 色哦色哦哦色天天综合| 日韩一区二区三区电影| 国产精品久久久久婷婷二区次| 视频在线观看91| 成人av高清在线| 欧美大胆一级视频| 国产精品美女久久久久aⅴ国产馆| 亚洲不卡在线观看| 成人一区在线看| 欧美狂野另类xxxxoooo| 国产精品久久久久四虎| 麻豆视频观看网址久久| 91搞黄在线观看| 国产日韩av一区| 日产国产高清一区二区三区| 91丨九色丨黑人外教| 26uuu国产一区二区三区| 夜夜揉揉日日人人青青一国产精品| 国产真实乱子伦精品视频| 欧美三级资源在线| 国产精品久久久久aaaa樱花 | 一本大道综合伊人精品热热 | 欧美日韩成人综合在线一区二区| 国产精品毛片大码女人| 麻豆国产欧美日韩综合精品二区| 91麻豆国产在线观看| 国产亚洲精久久久久久| 日本免费在线视频不卡一不卡二| 色偷偷一区二区三区| 国产精品免费视频一区| 国产成人在线网站| 欧美大片一区二区| 五月天国产精品| 在线观看av不卡| 亚洲三级在线免费观看| 国产成人一区在线| 久久久久一区二区三区四区| 免费的成人av| 欧美一区二区三区视频| 日韩精品欧美精品| 欧美日韩二区三区| 亚洲观看高清完整版在线观看| 91猫先生在线| 亚洲欧美aⅴ...| 91麻豆国产自产在线观看| 一区二区中文视频| 99久久精品国产精品久久| 亚洲欧美中日韩| 色综合久久久久久久久| 亚洲女同一区二区| 在线观看www91| 亚洲国产婷婷综合在线精品| 欧美伊人精品成人久久综合97| 一级女性全黄久久生活片免费| 91黄色免费网站| 亚洲国产色一区| 欧美日本乱大交xxxxx| 日日噜噜夜夜狠狠视频欧美人 | 精品久久一二三区| 精品一区二区在线免费观看| 欧美大片拔萝卜| 国产激情一区二区三区四区| 久久九九影视网| 成人黄动漫网站免费app| 国产精品国产自产拍高清av王其| 不卡的电影网站| 亚洲一区在线视频| 欧美精品欧美精品系列| 久久99国产乱子伦精品免费| 国产欧美一区二区在线| av中文字幕在线不卡| 亚洲欧美欧美一区二区三区| 91福利精品视频| 人人精品人人爱| 久久久青草青青国产亚洲免观| 成人一区二区三区视频在线观看| 亚洲免费观看高清完整版在线| 欧美精品在线一区二区| 国产在线播放一区二区三区| 国产精品久久毛片| 欧美精品高清视频| 国产精品一级黄| 亚洲制服丝袜在线| 精品欧美乱码久久久久久1区2区| 国产电影精品久久禁18| 亚洲自拍偷拍麻豆| 精品999在线播放| 色综合一个色综合| 另类专区欧美蜜桃臀第一页| 中文字幕一区视频| 91精品在线麻豆| 成人性生交大片免费看视频在线| 亚洲一二三区不卡| 精品国产乱码久久| 日本韩国欧美一区| 精品在线免费观看| 亚洲一区二区影院| 国产欧美日韩综合| 884aa四虎影成人精品一区| 国产a视频精品免费观看| 亚洲综合激情另类小说区| 亚洲精品在线三区| 欧美日韩亚洲综合在线| 国产一区二区三区电影在线观看 | 欧美一区二视频| av日韩在线网站| 麻豆国产精品777777在线| 亚洲九九爱视频| 国产清纯白嫩初高生在线观看91 | 一区二区三区 在线观看视频| 亚洲精品在线免费观看视频| 欧美视频一区二| 国产69精品久久久久777| 日本美女视频一区二区| 亚洲欧美日韩电影| 国产欧美1区2区3区| 欧美大片拔萝卜| 欧美狂野另类xxxxoooo| 91免费国产视频网站|