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

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

?? main.c

?? 自己做的單片機Proteus仿真實例
?? C
字號:
/********http://hi.baidu.com/echoas*******
程序:LCD12864顯示圖形 
內容:在12864上顯示正弦曲線——按鍵可調頻率和幅度 
學習板:HOT-51
軟件:keil uVision3
液晶:QY12864HZ1 
作者:大海橡樹
整理日期:2010-12-08
修改:無 


備注:有什么錯誤的地方,歡迎網友們到空間留言

					O(∩_∩)O~


********http://hi.baidu.com/echoas********/
#include<AT89X52.h>
#include<math.h>
#include"ZB.h"
#define uchar unsigned char
#define uint  unsigned int

#define LCD_databus P0 //LCD數據總線連接P0口 

sbit RS=P2^5;
sbit RW=P2^6;
sbit EN=P2^7;//LCD12864三個控制位 

sbit DQ=P2^3;//DS18B20數據線 
sbit KEY1=P3^2;
sbit KEY2=P3^3;
sbit KEY3=P3^4;
uchar key_value;

uchar HZ1[]="周期";
uchar HZ2[]="幅度";
void delay(uint i)	//延時函數 
{
	while(--i);
}
void Read_busy()	//LCD12864忙檢測 
{
	RS=0;
	RW=1;
	EN=1;
	LCD_databus=0xFF;
	while(LCD_databus & 0x80);	//判斷最高位,1---busy,0---Nobusy 
	EN=0;
}

void write_LCD_command(uchar value)//寫指令 
{
	RS=0;
	RW=0;
	EN=1;
	LCD_databus=value;
	delay(7);
	EN=0;
}

void write_LCD_data(uchar value)//寫數據 
{
	RS=1;
	RW=0;
	EN=1;
	LCD_databus=value;
	delay(7);
	EN=0;
}

void init_LCD()		//初始化LCD 
{
	write_LCD_command(0x30);	//8位數,基本指令 
	delay(100);
	write_LCD_command(0x30);
	delay(37);
	write_LCD_command(0x0C);	//開顯示,不顯示光標,光標不閃爍 
	delay(100);
	write_LCD_command(0x01);	//清屏指令 
	delay(100);
	write_LCD_command(0x06);	//沒寫入數據,地址指針加1 
}

void Clear_GDRAM()		//清楚GDRAM 
{
	uchar x,y;
	for(y=0;y<64;y++)
	{
		for(x=0;x<16;x++)
		{
			write_LCD_command(0x34);
			write_LCD_command(y+0x80);	//先送垂直地址 
			write_LCD_command(x+0x80);	//后送水平地址 
			write_LCD_command(0x30);	//基本指令 
			write_LCD_data(0x00);		//寫入數據0 
			write_LCD_data(0x00);
		}
	}
}

uchar ReadByte()	//讀LCD 
{
	uchar Read_value;
	Read_busy();
	RS=1;
	RW=1;
	EN=0;
	EN=1;
	Read_value=LCD_databus;	
	EN=0;
	
	return Read_value;
}

void display_BMP(uchar *address)//顯示圖片 
{
	uchar i,j;
	for(i=16;i<32;i++)
	{
		write_LCD_command(0x80+i);	//先送垂直地址 
		write_LCD_command(0x80);	//再送水平地址 
		for(j=0;j<16;j++)
		{
			write_LCD_data(*address);//寫入數據 
			address++;
		}
	}
	
	for(i=0;i<32;i++)
	{
		write_LCD_command(0x80+i);//先送垂直地址 
		write_LCD_command(0x88);	//再送水平地址
		for(j=0;j<16;j++)
		{
			write_LCD_data(*address);
			address++;
		}
	}
	
}

void Draw_dots(uchar x,uchar y,uchar color)
{
	uchar ROW,xlabel,xlabel_bit;
	uchar Read_H,Read_L; 		//讀LCD中的數據
	write_LCD_command(0x34);	//擴充指令
	write_LCD_command(0x36);	//打開繪圖指令
	xlabel=x>>4;				//取16*16首地址
	xlabel_bit=x & 0x0F;		//計算該點在16位數據的第幾位	
	if(y<32)					//如果是上半屏,上下半屏y都是0--31
	{
		ROW=y;
	}
	else						//顯示的是下半屏
	{
		ROW=y-32;
		xlabel+=8;			   //規定顯示在下半屏
	}
	write_LCD_command(ROW+0x80); //送入垂直地址
	write_LCD_command(xlabel+0x80);//再送入水平地址
	ReadByte();	//讀取當前GDRAM數據前腰進行一次空讀,接下來就可以讀出數據了 
	Read_H=ReadByte(); //讀高8位
	Read_L=ReadByte(); //讀低8位
	
	write_LCD_command(ROW+0x80); 	//送入垂直地址
	write_LCD_command(xlabel+0x80);	//再送入水平地址
	
	if(xlabel_bit<8)
	{
		switch(color)
		{
			case 0:Read_H &= (~(0x01<<(7-xlabel_bit)));//若變白 
			break;
			case 1:Read_H |= (0x01<<(7-xlabel_bit));//若涂黑 
			break;
			case 2:Read_H ^= (0x01<<(7-xlabel_bit));//若反轉 
			break;	
			default:break;
		}
		write_LCD_data(Read_H);//將數據寫入GDRAM 
		write_LCD_data(Read_L);//先寫高位,再寫低位(地址指針順序) 
	}
	else
	{
		switch(color)//color設置 
		{
			case 0: Read_L &= (~(0x01<<(15-xlabel_bit)));//若變白 
			break;
			case 1: Read_L |= (0x01<<(15-xlabel_bit));//若涂黑 
			break;
			case 2: Read_L ^= (0x01<<(15-xlabel_bit));//若反轉 
			break;
			default:break;
		}
		write_LCD_data(Read_H);
		write_LCD_data(Read_L);//寫入數據 
	}
	
	write_LCD_command(0x30);//回到普通模式 
}

void main()
{
	uchar i,j;
	uchar num;
	uchar w=10,A=6;
	init_LCD();
	Clear_GDRAM();
	write_LCD_command(0x36);
	display_BMP(ZB);
	while(1)
	{
		write_LCD_command(0x30);
		write_LCD_command(0x80);
		write_LCD_data('T');
		write_LCD_data(':');
		write_LCD_data(2*w/100+0x30);
		write_LCD_data(2*w%100/10+0x30);
		write_LCD_data(2*w%10+0x30);

		write_LCD_command(0x83);
		write_LCD_data('A');
		write_LCD_data(':');
		write_LCD_data(A/10+0x30);
		write_LCD_data(A%10+0x30);
		write_LCD_command(0x36);
		for(i=13;i<128;i++)
		{
			j=35-A*sin((i-13)*3.14/w);
			Draw_dots(i,j,1);
			delay(400);
		}
/**********以下為按鍵掃描函數**************/
		if(KEY1==0)			//模式鍵按下 
		{
			delay(2000);
			if(KEY1==0)
			{
				while(!KEY1);
				key_value++;
				if(key_value>2)
					key_value=0;
			}
		}
		if(key_value==1)			 //若選擇的是周期模式
		{
			write_LCD_command(0x30);
			write_LCD_command(0x86);
			for(num=0;num<4;num++)
			{
				write_LCD_data(HZ1[num]); 	//顯示"周期"漢字 
			}
			if(KEY2==0)						//加鍵按下時 
			{
				delay(1500);
				if(KEY2==0)
				{
					while(!KEY2);
					w=w+5;					//w加 
					if(w==65)
						w=10;
					Clear_GDRAM();
					write_LCD_command(0x36);//重新顯示圖形 
					display_BMP(ZB);	
				}	   
			}
			if(KEY3==0)
			{
				delay(2000);
				if(KEY3==0)
				{
					while(!KEY3);
					if(w>=10)
						w=w-5;
					Clear_GDRAM();
					write_LCD_command(0x36);
					display_BMP(ZB);		//重新顯示圖形
				}
			}	
		}

		if(key_value==2)				//若選擇的是幅度模式
		{
			write_LCD_command(0x30);
			write_LCD_command(0x86);
			for(num=0;num<4;num++)
			{
				write_LCD_data(HZ2[num]);  
			}
			if(KEY2==0)
			{
				delay(1500);
				if(KEY2==0)
				{
					while(!KEY2);
					A=A+2;
					if(A==22)
						A=8;
					Clear_GDRAM();
					write_LCD_command(0x36);
					display_BMP(ZB);	
				}	   
			}
			if(KEY3==0)
			{
				delay(2000);
				if(KEY3==0)
				{
					while(!KEY3);
					if(A>=6)
						A=A-2;
					Clear_GDRAM();
					write_LCD_command(0x36);
					display_BMP(ZB);
				}
			}	
		}
	}	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
a级精品国产片在线观看| 粉嫩久久99精品久久久久久夜| 日韩和欧美一区二区三区| 免费成人在线观看视频| 粉嫩aⅴ一区二区三区四区| 欧美人体做爰大胆视频| 欧美激情中文不卡| 蜜桃视频在线一区| 色综合中文综合网| ...中文天堂在线一区| 蜜臀久久99精品久久久久久9| 色呦呦一区二区三区| 国产亚洲欧美日韩日本| 日韩电影在线免费看| 欧美性猛片aaaaaaa做受| 国产精品视频一区二区三区不卡| 美日韩一区二区三区| 欧美日韩和欧美的一区二区| 亚洲丝袜另类动漫二区| 国产a级毛片一区| 久久久精品免费免费| 久久精品国产**网站演员| 6080午夜不卡| 亚洲v中文字幕| 欧美日韩精品欧美日韩精品一综合| 专区另类欧美日韩| av爱爱亚洲一区| 日韩理论片一区二区| 99久久精品久久久久久清纯| 久久综合色婷婷| 国产乱一区二区| 26uuu亚洲综合色欧美| 狠狠网亚洲精品| www日韩大片| 国产乱码精品一区二区三区五月婷| 欧美mv日韩mv国产网站app| 蓝色福利精品导航| 精品久久人人做人人爽| 国内久久精品视频| 久久久久高清精品| 国产精品888| 中文字幕色av一区二区三区| 91麻豆国产香蕉久久精品| 亚洲婷婷综合久久一本伊一区| 91视频在线观看| 亚洲一区二区三区影院| 欧美日韩不卡在线| 久久国产麻豆精品| 久久久久综合网| 91免费观看视频| 午夜精品福利久久久| 欧美成人伊人久久综合网| 狠狠色丁香久久婷婷综| 国产精品高潮呻吟久久| 在线观看一区二区视频| 日本人妖一区二区| 国产欧美一区二区精品性色 | 免费在线视频一区| 精品国产成人系列| 国产精选一区二区三区| 亚洲视频香蕉人妖| 宅男在线国产精品| 国产精品一区二区男女羞羞无遮挡| 欧美高清在线一区二区| 欧美三级在线播放| 国产一区二区精品在线观看| 中文字幕在线不卡| 欧美一区二区视频免费观看| 国产91丝袜在线播放| 香蕉乱码成人久久天堂爱免费| 亚洲精品一区二区三区精华液 | 精品无人区卡一卡二卡三乱码免费卡 | 国产亚洲综合性久久久影院| 91蜜桃在线观看| 紧缚捆绑精品一区二区| 亚洲精品日韩一| 精品久久久久久久久久久久久久久 | 首页国产丝袜综合| 日本一区二区三区四区在线视频 | 成人国产精品免费| 日本一不卡视频| 亚洲欧美韩国综合色| 久久久久久久一区| 欧美高清性hdvideosex| 99久久免费视频.com| 日本大胆欧美人术艺术动态| 亚洲蜜臀av乱码久久精品| 26uuu国产一区二区三区| 欧美人与z0zoxxxx视频| 在线精品视频免费播放| 不卡av电影在线播放| 国内成+人亚洲+欧美+综合在线| 亚洲一区二区三区国产| 亚洲日本电影在线| 日本一区二区三区视频视频| 精品欧美一区二区在线观看| 欧美日韩大陆一区二区| 欧美性大战xxxxx久久久| a4yy欧美一区二区三区| 国产成人精品影视| 韩国一区二区三区| 精品一二三四区| 狠狠色狠狠色综合日日91app| 天堂av在线一区| 亚洲gay无套男同| 亚洲电影在线播放| 亚洲一区二区综合| 一区二区三区丝袜| 亚洲综合免费观看高清在线观看| 中文字幕一区二区三区精华液| 日本一区二区成人| 国产精品网站一区| 欧美国产一区视频在线观看| 国产婷婷色一区二区三区四区| 亚洲精品一区二区三区影院| 精品日韩一区二区三区| 久久久亚洲综合| 亚洲国产精品v| 中文字幕亚洲一区二区av在线| 亚洲色图视频网| 一区二区三区在线免费观看| 一区二区成人在线| 亚洲国产视频直播| 水蜜桃久久夜色精品一区的特点| 日韩国产精品大片| 久久精品国产99国产精品| 国产综合色产在线精品 | 婷婷国产在线综合| 奇米一区二区三区av| 麻豆国产精品一区二区三区| 激情六月婷婷久久| 成人妖精视频yjsp地址| 91丨国产丨九色丨pron| 91豆麻精品91久久久久久| 欧美人体做爰大胆视频| 久久综合久色欧美综合狠狠| 亚洲国产精品黑人久久久| 亚洲精品高清视频在线观看| 亚洲成人av在线电影| 国内精品国产三级国产a久久| av一本久道久久综合久久鬼色| 91在线高清观看| 欧美军同video69gay| 久久精品人人做人人综合| 亚洲欧美乱综合| 伦理电影国产精品| 99久久夜色精品国产网站| 555www色欧美视频| 国产视频911| 亚洲福利视频一区二区| 国产成人欧美日韩在线电影| 欧美性生活大片视频| 久久欧美一区二区| 性久久久久久久久| 成人黄色777网| 91精品国产入口在线| 中文字幕亚洲成人| 久久精品免费观看| 色偷偷成人一区二区三区91| 欧美tk丨vk视频| 亚洲乱码国产乱码精品精小说| 开心九九激情九九欧美日韩精美视频电影 | 91久久精品一区二区三区| 欧美不卡视频一区| 亚洲一区二区黄色| 成人一级片在线观看| 日韩免费观看高清完整版| 亚洲精品成人在线| 国产一区二区视频在线播放| 欧美综合一区二区| 国产精品久久久久影院老司| 黄网站免费久久| 制服丝袜中文字幕一区| 亚洲欧美日韩中文播放| 国产风韵犹存在线视精品| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲电影一区二区| 99精品一区二区三区| 欧美激情一区二区在线| 国产一区二区美女| 日韩精品一区二区三区四区| 亚洲国产精品人人做人人爽| av一二三不卡影片| 中文在线一区二区| 国产美女久久久久| 久久综合九色综合欧美就去吻| 日韩黄色免费网站| 欧美日韩久久久一区| 亚洲午夜一区二区| 在线观看亚洲精品| 亚洲色图在线看| 91欧美激情一区二区三区成人| 国产欧美精品一区aⅴ影院| 国产一区激情在线| 久久综合五月天婷婷伊人| 国产一区视频在线看| 国产亚洲欧美日韩在线一区| 国产69精品久久久久777| 国产视频不卡一区| av综合在线播放|