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

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

?? drive_functions.h

?? 液晶屏顯示花樣proteus仿真 液晶屏顯示花樣proteus仿真
?? H
字號:
/*這個是12864圖形液晶驅動程序,包括畫點,劃直線,畫幾何圖形,寫點陣漢字等
  您可以把它復制到您的工程中,用#include'drive_function' 直接調用它
  如果您感覺自己程序寫的比較好了,我建議你試著去移植操作系統如uc/os,uclinux
  而不要自己發太多時間去寫操作界面。這樣效果更好!
*/
#define uchar unsigned char
#define uint unsigned int

uchar chip_select=1;
uchar color=0x00;

bit black_flag=0;  			  //黑屏顯示標志位

sbit DI=P2^7;
sbit RW=P2^6;
sbit E=P2^5;
sbit CS1=P2^4;
sbit CS2=P2^3;
sbit RST=P2^2;

bit busy_bit=1;
bit menu=0;
uchar line=0;
uchar select=0;

#define LCD P0
#include<math.h>
#define Graphic_Clear 0x01   //檫除點
#define Graphic_Not 0x02     //反相點
#define Graphic_Draw 0x03	 //畫點

void delay_ns(uchar ns)
{
	while(ns--);
}

void delay_ms(uint ms)
{
	uchar i;
	while(ms--)
		for(i=0;i<120;i++);
}


/************************* if 0 read command,else read data ****************/

uchar read(bit flag)
{
	uchar stat;

	LCD=0xFF;
	RW=1;
	DI=flag;
	E=1;
	E=0;
	E=1;        			//E的下降沿,然后E持續拉高讀才有效
	stat=LCD;
	E=0;

	return(stat);
    } 

/*************************** check busy ************************/

bit CheckBusy(void)
{
	uchar state=0;

	state=read(0);
	busy_bit=(bit)(state>>7);
	
	return(busy_bit);
	}

/************************* if 0 write command,else write data ****************/ 

void write(bit flag,uchar dat)
{
	while(CheckBusy());
	LCD=0xFF;
	RW=0;
	DI=flag;
	LCD=dat;
	E=1;
	E=0;
    }

/************************* set display page ****************/ 

void SetPage(uchar page)
{	
	CS1=1;
	CS2=0;
	write(0,page+0xb8);

	CS1=0;
	CS2=1;
	write(0,page+0xb8);

	}

/************************ set display column *****************/

void SetColumn(uchar column)
{
	CS1=1;
	CS2=0;
	write(0,column+0x40);

	CS1=0;
	CS2=1;
	write(0,column+0x40);
	}


/***************************** write data ************************/

void WriteData(uchar dsp_data)
{
	if(chip_select==1)
	{
		CS1=1;
		CS2=0;
		}
	 else{
			CS1=0;
			CS2=1;
			}
	write(1,dsp_data);
	}

/**************************** read data ***********************/

uchar ReadData(void)
{
	uchar dsp_data;

	while(CheckBusy());
	if(chip_select==1)
	{
		CS2=0;
		CS1=1;
		}
	 else{
	 		CS2=1;
			CS1=0;
			}
	dsp_data=read(1);
	return(dsp_data);
	}

/******************** clear LCD *******************************/

void ClearLCD(void)
{
	uchar page,column;
if(black_flag==1)color=0xFF;   			//設置清屏顏色
else color=0x00;
	for(page=0;page<8;page++)
	{
	  SetPage(page);
	  SetColumn(0);
	  for(column=0;column<64;column++)
	  {	 
		chip_select=1;   
		WriteData(color);               //clear chip1
		chip_select=2;                  
		WriteData(color);               //clear chip2
		}
	   }
	  }

 /***********************在LCD上任意坐標畫點********************************/

void DrawPoint(uchar X,uchar Y,uchar Type) 
{ 							 //X,Y化點的坐標Type畫點的類型:反相點,檫除點,畫點
                                                    
   uchar DX = Y/8;           //計算出屬于哪個字節 
   uchar BX = Y%8;           //計算出屬于字節哪一位 
   uchar TempData = 0; 
    
    
   if (X > 63) 
   { 
    chip_select=2;
      X -= 64; 
   } 
   else 
   { 
      chip_select=1; 
   } 

   SetPage(DX);             //設行地址
   SetColumn(X); 			//設列地址
    
   TempData = ReadData();   //讀出所畫點所在字節的內容
    
   switch (Type)            //對該字節進行相應操作
   { 
      case Graphic_Clear:
          					TempData &= ~(1<<BX); 
         					break; 
      case Graphic_Not:
         					TempData ^= (1 << BX); 
          					break; 
      case Graphic_Draw: 
          					TempData |= (1 << BX);  
							break;
	  default:				break;
   } 
    
   SetPage(DX);             //設置行地址
   SetColumn(X);  			//設置列地址
   WriteData(TempData); 	//把修改后的字節送回LCD,達到畫點目的
} 

/***********************在LCD上任意坐標寫字********************************/
void DisWord(uchar add_y,uchar add_x,uchar k,uchar *p)	 //k=1,ascal;k=2,漢字。
{
 uchar i,j,w;
 j=add_x*2+0xb8;
 w=(add_y<8/k?add_y:add_y-8/k)*8*k+0x40; 
 CS1=(add_y<8/k);
 CS2=!(add_y<8/k);
  write(0,j);
  write(0,w);
 for(i=0;i<16*k;i++)
 {
  if(i==8*k)
  {
   write(0,j+1);
   write(0,w);
   }
  write(1,*p++);
  }
}

/*****************任意兩點間劃直線**********************************/
DrawLine(uchar x1,uchar y1,uchar x2,uchar y2,uchar type)
{
 uchar dx,dy,temp;
 uint kkk;
    if(x1>127) x1=127;
	if(y1>63) y1=63;
	if(x2>127) x2=127;
	if(y2>63) y2=63;

    if(x1==x2&&y1<y2) 
	{
	 for(dy=y1;dy<=y2;dy++) DrawPoint(x1,dy,type);
	 }

	if(x1<x2&&y1==y2) 
	{
	 for(dx=x1;dx<=x2;dx++) DrawPoint(dx,y1,type);
	 }

    if(x1>x2&&y1==y2)
    {
	 temp=x1;x1=x2;x2=temp;
	 for(dx=x1;dx<=x2;dx++) DrawPoint(dx,y1,type);
	 }

    if(x1==x2&&y1>y2)
    {
	 temp=y1;y1=y2;y2=temp;
	 for(dy=y1;dy<=y2;dy++) DrawPoint(x1,dy,type);
	 }

    if(x1<x2&&y1<y2)
    for(dx=x1;dx<=x2;dx++)
     {
      kkk=(dx-x1)*(y2-y1);
      dy=y1+kkk/(x2-x1);DrawPoint(dx,dy,type);
      }

	if(x1>x2&&y1>y2)								   //此向量尚有問題
    for(dx=x2;dx<=x1;dx++)
     {
      kkk=(dx-x2)*(y1-y2);
      dy=y2+kkk/(x1-x2);DrawPoint(dx,dy,type); 
      }
 
	if(x1<x2&&y1>y2)
    for(dx=x1;dx<=x2;dx++)
     {
      kkk=(dx-x1)*(y1-y2);
      dy=y1-kkk/(x2-x1);DrawPoint(dx,dy,type);
      }

	if(x1>x2&&y1<y2)
    for(dy=y1;dy<=y2;dy++)
     {
      kkk=(dy-y1)*(x1-x2);
      dx=x1-kkk/(y2-y1);DrawPoint(dx,dy,type);
      }	
}

/***********************************************************************/
void DrawSineWave(void)
{
	uchar xn=0;
	uchar yn=30;
	uchar i;
	uchar xi,yi;
for(i=0;i<128;i++)
	{
		xi=i;
		yi=(sin(i*0.1)*30)+30;

		DrawLine(xn,yn,xi,yi,Graphic_Draw);           //在一系列零散的點上,兩點兩點之間連線,從而得到一條曲線
		
		xn=i;
		yn=yi;
		
	}  
}

void DrawCircle(void)
{
uchar xn,yn,xi,yi;
unsigned int j;

xn=cos(0)*30+96;
yn=sin(0)*30+32;
//xn=cos(0)*15+96;
////yn=sin(0)*15+32;
for(j=0;j<629;j++)
//for(j=0;j<324;j++)
	{
		xi=(cos(j*0.01)*30)+96;
		yi=(sin(j*0.01)*30)+32;

		DrawLine(xn,yn,xi,yi,Graphic_Draw);          //在一系列零散的點上,兩點兩點之間連線,從而得到一條曲線
		
		xn=xi;
		yn=yi;
	}
}

void initlcd(void)
{
	CS1=1;
	CS2=1;
 	RST=0;																 q	
	delay_ms(100);
	RST=1;
	delay_ms(100);
	write(0,0x3e);
	write(0,0xc0);
	write(0,0x3f);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91小视频在线观看| 亚洲免费视频中文字幕| 亚洲丝袜精品丝袜在线| 免费久久99精品国产| 欧美午夜精品久久久久久孕妇| 久久久精品中文字幕麻豆发布| 琪琪一区二区三区| 欧美性生交片4| 亚洲免费观看视频| 成人一区二区三区视频在线观看 | 91麻豆自制传媒国产之光| 欧美成人video| 天堂在线一区二区| 欧美亚洲一区二区三区四区| 亚洲视频一区二区在线观看| 国产成人在线看| 久久九九久久九九| 精品无人区卡一卡二卡三乱码免费卡| 欧美日韩国产成人在线免费| 一区二区在线观看免费视频播放| www.日韩av| 最新中文字幕一区二区三区 | 欧美午夜精品久久久久久孕妇| 综合婷婷亚洲小说| 波多野结衣的一区二区三区| 亚洲国产高清在线观看视频| 国产成人在线视频播放| 国产欧美日韩亚州综合| 成人午夜电影网站| 综合av第一页| 色94色欧美sute亚洲线路二 | 中文字幕av资源一区| 成人av电影免费观看| 亚洲色欲色欲www| voyeur盗摄精品| 亚洲乱码中文字幕综合| 欧美色区777第一页| 青娱乐精品视频在线| 精品成人一区二区三区| 国产成人综合在线播放| 18成人在线观看| 欧美日韩激情一区二区| 麻豆精品在线看| 欧美激情综合在线| 日本韩国一区二区| 日韩vs国产vs欧美| 国产调教视频一区| 一道本成人在线| 免费观看一级欧美片| 国产色91在线| 欧美视频一区二| 九九热在线视频观看这里只有精品| 久久久久久久久97黄色工厂| 91麻豆国产福利在线观看| 亚洲成av人片一区二区| 久久久99精品免费观看不卡| youjizz久久| 免费在线视频一区| 午夜视频在线观看一区二区三区| 欧美狂野另类xxxxoooo| 国产精品中文字幕一区二区三区| 亚洲三级电影网站| 91麻豆精品国产91久久久更新时间| 日本欧美加勒比视频| 中文字幕精品一区二区三区精品 | 久久综合五月天婷婷伊人| 国产成人午夜电影网| 一级女性全黄久久生活片免费| 日韩小视频在线观看专区| aaa亚洲精品一二三区| 丝袜美腿亚洲综合| 久久精品人人做人人综合| 一本大道久久a久久综合| 久国产精品韩国三级视频| 亚洲精品一二三区| 久久久综合网站| 91精品在线免费观看| 91麻豆国产福利精品| 国产一区在线精品| 偷拍一区二区三区| 亚洲美女视频一区| 国产精品日产欧美久久久久| 欧美一级理论片| 欧美视频第二页| 99视频超级精品| 大白屁股一区二区视频| 奇米影视在线99精品| 亚洲午夜久久久| 中文字幕日韩精品一区| 久久亚洲影视婷婷| 欧美一区二区三区免费观看视频| 91日韩一区二区三区| 成人一区二区视频| 国产精品自在欧美一区| 久久国产精品72免费观看| 婷婷久久综合九色综合绿巨人| 亚洲激情自拍视频| 综合电影一区二区三区 | 26uuu亚洲综合色欧美| 欧美日韩精品欧美日韩精品一综合| 99视频一区二区| 99国内精品久久| www.亚洲精品| 99久久亚洲一区二区三区青草| 国产高清在线精品| 国产丶欧美丶日本不卡视频| 韩国v欧美v日本v亚洲v| 激情文学综合插| 韩国女主播一区二区三区| 国产毛片精品一区| 国产成人精品午夜视频免费 | 奇米综合一区二区三区精品视频| 亚洲第一成年网| 无码av免费一区二区三区试看| 性感美女久久精品| 日韩高清一区二区| 免费成人av在线| 麻豆久久久久久| 狠狠v欧美v日韩v亚洲ⅴ| 国产精品夜夜嗨| 成人一区二区三区视频在线观看 | 99精品国产99久久久久久白柏| kk眼镜猥琐国模调教系列一区二区 | 日本在线不卡一区| 麻豆久久久久久| 国产精品一二三四五| av一区二区三区四区| 一本大道久久a久久精品综合| 欧美午夜精品免费| 日韩欧美一二三| 中文字幕精品—区二区四季| 亚洲免费观看高清完整版在线| 亚洲久草在线视频| 天天射综合影视| 国模少妇一区二区三区| 懂色av一区二区三区蜜臀| 91网站最新网址| 欧美丰满高潮xxxx喷水动漫| 精品国产免费久久| 自拍偷拍亚洲激情| 日本午夜一本久久久综合| 国产99精品国产| 欧美视频精品在线| 久久久久久亚洲综合| 亚洲免费观看高清完整版在线观看 | 久久成人麻豆午夜电影| 成人av中文字幕| 欧美精品久久99久久在免费线 | 成人一级片网址| 欧美人狂配大交3d怪物一区| 久久―日本道色综合久久| 亚洲精品ww久久久久久p站| 久久精品国产77777蜜臀| 波多野洁衣一区| 精品欧美一区二区久久| 亚洲激情欧美激情| 国产成人鲁色资源国产91色综| 欧美日韩在线综合| 国产精品久久久久一区二区三区共| 亚洲超丰满肉感bbw| proumb性欧美在线观看| 日韩欧美123| 亚洲午夜久久久久久久久电影院| 国产精品18久久久久| 欧美日韩一区中文字幕| 国产精品第13页| 久久99精品久久久久久动态图 | 国产精品久久久久久久久快鸭 | 色婷婷av一区二区| 国产日韩欧美综合在线| 全部av―极品视觉盛宴亚洲| 色哟哟在线观看一区二区三区| xnxx国产精品| 日本欧美一区二区在线观看| 欧美优质美女网站| 成人免费在线播放视频| 高清国产一区二区三区| 精品少妇一区二区三区免费观看 | 亚洲一区二区三区精品在线| 粉嫩嫩av羞羞动漫久久久| 久久免费国产精品| 麻豆精品视频在线| 日韩免费看网站| 裸体健美xxxx欧美裸体表演| 欧美日韩国产片| 午夜视频在线观看一区二区三区| 在线影院国内精品| 亚洲免费资源在线播放| 91在线观看地址| 亚洲六月丁香色婷婷综合久久 | 中文字幕免费不卡| 国产精品一区在线| 国产欧美日韩视频在线观看| 国产福利精品一区二区| 国产视频视频一区| 成人污视频在线观看| 国产精品日韩精品欧美在线| 成人久久久精品乱码一区二区三区| 久久只精品国产| 国产成人精品午夜视频免费|