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

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

?? drive_functions.h

?? 液晶屏顯示花樣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一区二区三区免费野_久草精品视频
国产精品免费视频观看| 日本成人在线电影网| 亚洲国产视频a| 国产曰批免费观看久久久| 色呦呦国产精品| 久久久久9999亚洲精品| 日韩精品一区第一页| 972aa.com艺术欧美| 久久久精品日韩欧美| 日韩激情在线观看| 欧美三级电影在线观看| 国产精品家庭影院| 丁香啪啪综合成人亚洲小说| 日韩视频国产视频| 午夜精品一区二区三区三上悠亚| 成人av片在线观看| 中文字幕精品三区| 懂色av中文字幕一区二区三区| 欧美xxxx老人做受| 麻豆精品一区二区三区| 欧美人xxxx| 亚洲无线码一区二区三区| 99九九99九九九视频精品| 国产精品―色哟哟| 成人毛片视频在线观看| 国产日韩欧美精品一区| 韩国午夜理伦三级不卡影院| 精品日韩99亚洲| 久久不见久久见中文字幕免费| 欧美一区二区三区四区高清| 日韩电影免费在线看| 欧美精品亚洲二区| 日本免费在线视频不卡一不卡二| 在线播放91灌醉迷j高跟美女 | 精品一区二区综合| 欧美美女视频在线观看| 日本成人中文字幕在线视频| 制服丝袜亚洲网站| 日本va欧美va瓶| 精品捆绑美女sm三区| 激情综合色综合久久| 精品国产一区二区三区不卡| 经典三级一区二区| 国产亚洲精品超碰| 99久久精品国产导航| 亚洲综合久久久| 51精品久久久久久久蜜臀| 美女尤物国产一区| 国产欧美一区视频| 日本高清免费不卡视频| 亚洲成人先锋电影| 2021中文字幕一区亚洲| 丁香天五香天堂综合| 一区二区国产视频| 欧美一区永久视频免费观看| 国产一区二区h| 亚洲欧美日韩国产中文在线| 在线播放一区二区三区| gogo大胆日本视频一区| 亚洲黄色性网站| 日韩一级视频免费观看在线| 国产91精品在线观看| 一区二区视频免费在线观看| 日韩视频免费观看高清完整版| 成人妖精视频yjsp地址| 亚洲亚洲精品在线观看| 久久午夜国产精品| 欧美性色aⅴ视频一区日韩精品| 美女视频网站久久| 亚洲视频一区在线观看| 欧美一区二区网站| www.亚洲人| 看国产成人h片视频| 亚洲精品老司机| 久久综合999| 欧美精品色综合| hitomi一区二区三区精品| 日韩成人午夜精品| 日韩码欧中文字| 精品va天堂亚洲国产| 欧美午夜精品久久久| 国产成人av一区二区三区在线| 亚洲二区在线观看| 中文字幕日韩一区| 久久精品一区四区| 日韩欧美国产1| 在线观看不卡一区| 99久久夜色精品国产网站| 精品一区在线看| 偷拍一区二区三区四区| 亚洲欧洲精品一区二区精品久久久| 88在线观看91蜜桃国自产| 99视频一区二区| 国产一区欧美一区| 日本不卡视频在线| 日韩精品一卡二卡三卡四卡无卡| 亚洲日韩欧美一区二区在线| 中文字幕av在线一区二区三区| 精品国产乱码久久久久久蜜臀| 精品国产乱码久久久久久免费 | 亚洲特黄一级片| 久久精品一区二区三区不卡| 精品国产乱码久久| 欧美成人精品高清在线播放| 777亚洲妇女| 欧美日韩高清一区| 欧美日韩成人一区| 欧美男男青年gay1069videost| 在线一区二区观看| 色av综合在线| 91国偷自产一区二区开放时间| 91麻豆.com| 91国产丝袜在线播放| 色婷婷激情久久| 欧美网站大全在线观看| 欧美视频在线一区| 欧美日韩国产123区| 欧美剧情片在线观看| 777a∨成人精品桃花网| 51精品视频一区二区三区| 日韩视频一区二区在线观看| 日韩欧美一级二级三级久久久| 欧美一区二区三区白人| 日韩免费高清av| 日韩精品在线一区二区| 精品国产污网站| 国产精品色婷婷久久58| 亚洲黄色小说网站| 日本网站在线观看一区二区三区| 奇米综合一区二区三区精品视频| 韩国理伦片一区二区三区在线播放| 国产精品中文字幕欧美| 高清国产午夜精品久久久久久| 成人av电影免费观看| 欧美色偷偷大香| 欧美大肚乱孕交hd孕妇| 中文字幕精品三区| 亚洲成年人网站在线观看| 久久99久国产精品黄毛片色诱| 国产成人免费视频精品含羞草妖精 | 一区二区三区鲁丝不卡| 亚洲一区二区三区不卡国产欧美| 视频在线观看91| 国产91精品免费| 欧美性猛交xxxx乱大交退制版| 日韩精品一区二区在线| 国产精品欧美一区二区三区| 午夜精品久久久久久久蜜桃app| 蜜臀av性久久久久av蜜臀妖精| 国产成人在线视频网址| 欧美在线看片a免费观看| 精品免费国产二区三区| 亚洲欧美国产高清| 美女视频黄 久久| 色av一区二区| 久久精品亚洲一区二区三区浴池| 亚洲精品亚洲人成人网| 国产在线麻豆精品观看| 欧美亚洲图片小说| 久久久三级国产网站| 亚洲一区二区三区四区不卡| 国产福利不卡视频| 欧美日韩成人综合在线一区二区| 中文字幕乱码亚洲精品一区| 蜜臀久久99精品久久久久久9| 91在线观看一区二区| 日韩一级黄色大片| 一区二区三区欧美日| 成人理论电影网| 26uuu国产在线精品一区二区| 亚洲一区二区三区自拍| 国产精品一二三区在线| 日韩限制级电影在线观看| 一区二区三区在线播| 丁香另类激情小说| 欧美精品一区二区精品网| 亚洲国产va精品久久久不卡综合| 不卡区在线中文字幕| 久久久久久久久久久久电影 | 99久久伊人精品| 久久九九影视网| 激情图片小说一区| 欧美tickling网站挠脚心| 丝袜美腿一区二区三区| 在线观看区一区二| 亚洲欧美一区二区三区久本道91| 国产成人aaa| 国产欧美日韩三级| 国产一区二区美女| 久久综合网色—综合色88| 久久99久久精品| 精品美女被调教视频大全网站| 麻豆久久久久久| 精品国产百合女同互慰| 看片的网站亚洲| 久久综合99re88久久爱| 国产乱对白刺激视频不卡| 欧美精品一区二区在线播放| 久久精品国产99| 国产午夜亚洲精品羞羞网站|