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

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

?? 7455.c

?? MMA7455發送資料
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*********************************************/
/*程序功能:飛思卡爾加速度傳感器MMA7455娛樂儀*/
/*程序模塊:1、LED陣列顯示模塊               */
/*          2、1602顯示模塊                  */
/*          3、I2C通信模塊                   */
/*          4、按鍵控制模塊                  */
/*程序最后修改日期:2010年11月8日星期一      */
/*作者:山西太原瑞生嵌入式                   */
/*聯系方式:QQ:   253057617                  */
/*          旺旺:qq253057617                */
/*          E-mail:richgood@163.com          */
/*********************************************/

#include <reg52.h>
#include <intrins.h>	//要用到_nop_();函數

#define uchar unsigned char
#define uint  unsigned int
/***************************************************************************/
/***********               單片機引腳定義                       ************/
/***************************************************************************/
sbit set_key =P3^2;         //設置按鈕
sbit jia_key =P1^7;			//加按鈕
sbit jian_key=P1^6;			//減按鈕
sbit sda=P2^3;              //I2C 數據傳送位
sbit scl=P2^4;              //I2C 時鐘傳送位
sbit rs=P2^5;				//1602RS控制位
sbit rw=P2^6;				//1602RW控制位
sbit e =P2^7;				//1602E 控制位

/******************************************************************************/
/**********                     數據部分                            ***********/
/******************************************************************************/
#define IIC_READ  0x1D      //定義讀指令
#define IIC_WRITE 0x1D      //定義寫指令

uchar set_key_sign;			//是否在設置狀態標志
uchar delaysign;			//視覺停留標志

uchar xposivalue;			//x正方向滿格顯示g值
uchar xnegavalue;			//x反方向滿格顯示g值
uchar yposivalue;			//y正方向滿格顯示g值
uchar ynegavalue;			//y反方向滿格顯示g值
//11111111 11111110 11111100 --- 10000000 00000000	led_ma[i]:i為亮燈數量
uchar led_ma[9]={0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};	
uchar xposiupstate;			//x正方向上8個LED顯示狀態
uchar xposidownstate;		//x正方向下8個LED顯示狀態
uchar xnegaupstate;			//x反方向上8個LED顯示狀態
uchar xnegadownstate;		//x反方向下8個LED顯示狀態
uchar yupstate;				//y方向上8個LED顯示狀態
uchar ydownstate;			//y方向下8個LED顯示狀態
uchar xposilightnum;		//x正方向亮燈數量(1——16)
uchar xnegalightnum;		//x反方向亮燈數量(1——16)
uchar yposilightnum;		//y正方向亮燈數量(1——8)
uchar ynegalightnum;		//x正方向亮燈數量(1——8)

uchar  ack_sign;			//I2C 應答標志
uchar table1[16]=" hello!  X= 0.00";		//1602顯示數據
uchar table2[16]=" Y= 0.00 Z= 0.00";
uchar table3[16]="No acceleration!";
uchar table4[10]="0123456789";
uchar table5[8] ="Warning!";
uchar table7[16]="value:   X=0.50 ";

/**************************************************************************/
/************                  各延時程序                    **************/
/**************************************************************************/
void iic_delay()        //5us延時
{
	_nop_();
	_nop_();
	_nop_();
	_nop_();
}

void delay()			//消除按鍵抖動
{
	 unsigned int i;
	 for(i=0;i<20000;i++);
}
void delay_50us(uint t)
{
    uchar j;
	for(;t>0;t--)
	for(j=19;j>0;j--);
}
void delay_50ms(uchar t)
{
    uint j;
	for(;t>0;t--)
	for(j=6245;j>0;j--);
}
/************************************************************************/
/**************                  1602顯示部分           *****************/
/************************************************************************/ 
void  write_com(uchar com)	   //函數功能:寫指令
{
    e=0;
	rs=0;
	rw=0;
	P0=com;
	delay_50us(10);
	e=1;
	delay_50us(20);
	e=0;
}
void write_date(uchar dat)	   //函數功能:寫數據
{
    e=0;
	rs=1;
	rw=0;
	P0=dat;
	delay_50us(10);
	e=1;
	delay_50us(20);
	e=0;
}

void init1602(void)			   //函數功能:初始化1602
{
    delay_50us(300);
	write_com(0x38);
	delay_50us(100);
	write_com(0x38);
	delay_50us(100);
	write_com(0x38);
	write_com(0x38);
	write_com(0x01);
	write_com(0x01);
	write_com(0x06);
	write_com(0x0c);
}
/*********************************************************************/
/**************               I2C通信部分              ***************/
/*********************************************************************/
void iic_start()               //函數功能:I2C通信開始
{
	sda=1;
    iic_delay();
	scl=1;
    iic_delay();
	sda=0;
	iic_delay();
	
}

void iic_stop()                //函數功能:I2C通信停止
{
	sda=0;
	iic_delay();
	scl=1;
	iic_delay();
	sda=1;
	iic_delay();
	
}

void iic_ack()                 //函數功能:I2C通信查應答位
{	
    sda=1;
	scl=1;
	iic_delay();
	ack_sign=sda;
	scl=0;	   
}

void iic_write_byte(uchar wdata)//函數功能:向I2C從機寫入一個字節
{
     uchar i,temp,temp1;

	 temp1=wdata;
     for(i=0;i<8;i++)
	{
	            scl = 0;
				iic_delay();
				temp=temp1;
				temp=temp&0x80;
				if(temp==0x80)
					sda=1;				
				else
					sda=0;
					iic_delay();
					scl=1;
					iic_delay();
					scl=0;
					iic_delay();
					temp1=temp1<<1;
			
	}

}
char iic_read_byte(void)			 //函數功能:從I2C從機中讀出一個字節
{
     uchar x;
	 char data_data;
     for(x=0;x<8;x++)
	{	
	    data_data=data_data<<1;
		sda=1;
		iic_delay();
		scl=0;
		iic_delay();
		scl=1;
		iic_delay();
		if(sda==1)
		   data_data|=0x01; 
		//else  
		//   data_data&=0xfe;
	}
	return data_data;
}
void iic_write(uchar byte_add,uchar wdata)//函數功能:按地址寫入一字節數據
{
     uchar t;
	 t=(IIC_WRITE<<1);
	 iic_start();
	 iic_write_byte(t);
	 iic_ack();
	 iic_write_byte(byte_add);
	 iic_ack();
	 iic_write_byte(wdata);
	 iic_ack();
	 iic_stop();
}
char iic_read(uchar byte_add)	           //函數功能:按地址讀出一字節數據
{
     uchar t;
	 char x;
	 t=(IIC_WRITE<<1);
	 iic_start();
	 iic_write_byte(t);
	 iic_ack();
	 iic_write_byte(byte_add);
	 iic_ack();
	 t=((IIC_READ<<1)|0x01);
	 iic_start();
	 iic_write_byte(t);
	 iic_ack();
	 x=iic_read_byte();
	 iic_ack();
	 iic_stop();
	 return x;
}
/************************************************************************/
/*************               LED顯示陣列部分               **************/
/************************************************************************/
void led_send(unsigned char t)	     //函數功能:8051單片機串行通信發送	   
{
    SBUF=t;
	while(!TI);
	TI=0;
}

void led_show()						 //函數功能:LED面板顯示輸出
{
	led_send(xnegaupstate);
	led_send(xnegadownstate);
	led_send(xposiupstate);
	led_send(xposidownstate);
	led_send(yupstate );
	led_send(ydownstate);
			
}
void led_init()						 //函數功能:初始化LED面板
{
	SCON=0x00;
	xposiupstate  =led_ma[0];
	xposidownstate=led_ma[1];
	xnegaupstate  =led_ma[0];
	xnegadownstate=led_ma[1];
	yupstate      =led_ma[1];
	ydownstate    =led_ma[0];
	led_show();
		
}
									  
void led_xposizhi()					  //函數功能:獲取x正方向顯示數據
{
	if(xposilightnum<8)
	{
		if(xposilightnum==0)xposilightnum=1;
		xposiupstate  =led_ma[0];
		xposidownstate=led_ma[xposilightnum];
	}
	else 
	{
	 	if(xposilightnum>16)xposilightnum=16;
		xposiupstate  =led_ma[xposilightnum-8];
		xposidownstate=led_ma[8];
	}
}
void led_xnegazhi()					  //函數功能:獲取x負方向顯示數據
{
	if(xnegalightnum<8)
	{
		if(xnegalightnum==0)xnegalightnum=1;
		xnegaupstate  =led_ma[0];
		xnegadownstate=led_ma[xnegalightnum];
	}
	else 
	{
	 	if(xnegalightnum>16)xnegalightnum=16;
		xnegaupstate  =led_ma[xnegalightnum-8];
		xnegadownstate=led_ma[8];
	}
}
void led_yposizhi()					   //函數功能:獲取y正方向顯示數據
{
	if(yposilightnum<8)
	{
		if(yposilightnum==0)yposilightnum=1;
		yupstate  =led_ma[yposilightnum];
	}
	else yupstate=led_ma[8];

}
void led_ynegazhi()						//函數功能:獲取y反方向顯示數據
{
	switch(ynegalightnum)
	{
		case 0:ydownstate=0xff;break;
		case 1:ydownstate=0x7f;break;
		case 2:ydownstate=0x3f;break;
		case 3:ydownstate=0x1f;break;
		case 4:ydownstate=0x0f;break;
		case 5:ydownstate=0x07;break;
		case 6:ydownstate=0x03;break;
		case 7:ydownstate=0x01;break;
		case 8:ydownstate=0x00;break;
		default:ydownstate=0x00;break;
	}
}


void self_test7455()					 //函數功能:檢測7455有沒有插好
{										 //          如果沒有插好,1602將會顯示
	uchar j;							 //			 “No acceleration!"
	char t;

	delay_50us(10);
	iic_write(0x16,0x05);
	delay_50us(20);
	t=iic_read(0x16);

	if(t!=0x05)
	{
		write_com(0x80);
		for(j=0;j<16;j++)
		{
		    write_date(table3[j]);
			delay_50us(10);
		}
		while(1);
	}
	else
	{
		write_com(0x80);
		for(j=0;j<16;j++)
		{
		    write_date(table1[j]);
			delay_50us(10);
		}
		write_com(0x80+0x40);
		for(j=0;j<16;j++)
		{
		    write_date(table2[j]);
			delay_50us(10);
		}
	}
		
}
void change_topvalue(uchar x)		//函數功能:修改LED面板顯示對應的最大g值
{
	uchar x1,x2,x3;

	x1=(x/100);
	x2=(x%100)/10;
	x3=(x%100)%10;

	write_com(0xcb);
	write_date(table4[x1]);
	delay_50us(10);
	write_com(0xcd);
	write_date(table4[x2]);
	delay_50us(10);
	write_date(table4[x3]);
	delay_50us(10);
}

void sendx()						//函數功能:向1602發送x軸測量數據
{
	uchar x1,x2,x3,xsign;
	char x;

	x=iic_read(0x06);
	if((x&0x80)==0x00)
	{
		xsign=0x2b;        //+
		if(x>64)
		{
			x=(((int)(x*200)/127)-100);	 //轉變為加速度值
			x1=(x/100);
			x2=(x%100)/10;
			x3=(x%100)%10;
			delaysign=1;
			xposilightnum=x/(xposivalue/16);
		}
		else 
		{
		 	x1=0;x2=0;x3=0;
			delaysign=0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本免费在线视频不卡一不卡二| 日韩av网站在线观看| 日韩经典一区二区| 成人综合日日夜夜| 欧美一级一区二区| 亚洲免费在线播放| 国产精品 日产精品 欧美精品| 91视频免费观看| 国产三级精品三级| 久久99蜜桃精品| 欧美日韩日日骚| 亚洲日本在线天堂| 懂色av一区二区夜夜嗨| 日韩亚洲国产中文字幕欧美| 一二三四社区欧美黄| 成人免费观看男女羞羞视频| 精品久久久网站| 丝瓜av网站精品一区二区| 色诱亚洲精品久久久久久| 久久久国产精品午夜一区ai换脸| 日韩高清中文字幕一区| 欧美视频一区二区三区在线观看| 国产精品电影一区二区| 国产成人啪免费观看软件| 欧美成人精品3d动漫h| 免费视频一区二区| 日韩一级片网站| 日韩中文字幕麻豆| 欧美日韩不卡一区| 亚洲一区二区三区视频在线| 91免费看片在线观看| 国产精品色眯眯| 成人国产精品免费观看| 国产精品久久久久久久久果冻传媒 | 久久久久国产精品人| 极品少妇xxxx精品少妇| 欧美成人一区二区三区片免费| 天天爽夜夜爽夜夜爽精品视频| 欧美日韩亚洲不卡| 全部av―极品视觉盛宴亚洲| 777久久久精品| 日韩中文字幕区一区有砖一区| 制服丝袜亚洲色图| 久久国产三级精品| 国产亚洲欧美一级| 成人激情av网| 一区二区三区四区在线播放| 在线视频观看一区| 奇米888四色在线精品| 欧美成人精品福利| 国产aⅴ综合色| 亚洲免费观看视频| 欧美精品精品一区| 九一九一国产精品| 国产精品视频免费看| 91福利视频在线| 日日夜夜一区二区| 久久久久久久久久电影| 成人av先锋影音| 亚洲国产欧美另类丝袜| 欧洲精品在线观看| 日韩高清电影一区| 欧美高清在线精品一区| 91久久久免费一区二区| 男女男精品网站| 亚洲国产高清不卡| 欧美精选一区二区| 国产精品456| 亚洲成a人在线观看| 欧美精品一区二区三区很污很色的| 高清不卡在线观看| 婷婷开心激情综合| 国产欧美综合在线观看第十页| 在线视频观看一区| 国产宾馆实践打屁股91| 亚洲午夜视频在线观看| 国产午夜精品在线观看| 欧美视频一区在线| 国产精品性做久久久久久| 亚洲一区成人在线| 国产亚洲短视频| 欧美欧美欧美欧美| 99久久婷婷国产| 看国产成人h片视频| 亚洲另类在线一区| 亚洲国产精华液网站w| 欧美一卡2卡3卡4卡| 91色|porny| 国产成人午夜精品影院观看视频| 午夜精品福利久久久| 国产精品久久看| 久久中文娱乐网| 欧美日本视频在线| 色婷婷综合久久久| 国产成人久久精品77777最新版本| 亚洲一区免费观看| 亚洲精品国产精品乱码不99| 久久精品人人做人人综合| 欧美日本精品一区二区三区| 成人免费高清在线| 国产精品888| 久久精品国产秦先生| 日韩精品一卡二卡三卡四卡无卡 | 欧美一区二区三区视频免费播放| 99在线热播精品免费| 国产成人av电影在线| 久久超碰97中文字幕| 日韩电影在线看| 亚洲chinese男男1069| 亚洲图片欧美色图| 亚洲黄一区二区三区| 亚洲精品国久久99热| 樱花草国产18久久久久| 亚洲欧美另类图片小说| 亚洲天堂2016| 一区二区三区欧美久久| 亚洲精品福利视频网站| 强制捆绑调教一区二区| 日本va欧美va精品| 久久机这里只有精品| 久久99精品国产.久久久久久| 麻豆成人av在线| 另类人妖一区二区av| 韩国精品在线观看| 国产乱码精品一区二区三| 夫妻av一区二区| 99久久精品国产精品久久| 色狠狠综合天天综合综合| 精品视频全国免费看| 欧美日韩中文字幕一区二区| 在线91免费看| 日韩精品综合一本久道在线视频| 日韩欧美一级二级| 久久欧美一区二区| 国产精品美女久久久久久久久久久| 欧美激情自拍偷拍| 亚洲日穴在线视频| 五月婷婷久久丁香| 国产一区二区三区四区五区美女| 韩国av一区二区三区在线观看| 国产精品一线二线三线| 成人成人成人在线视频| 精品视频在线免费看| 久久亚洲精品国产精品紫薇| 亚洲欧洲国产日韩| 亚洲r级在线视频| 国产精品99精品久久免费| 色欧美片视频在线观看| 678五月天丁香亚洲综合网| 欧美精品一区二区三区视频| 亚洲欧洲国产专区| 免费在线观看视频一区| 成人免费精品视频| 欧美高清激情brazzers| 久久免费午夜影院| 自拍偷在线精品自拍偷无码专区| 亚洲黄色在线视频| 久久超碰97人人做人人爱| 色欧美乱欧美15图片| 精品国产一区二区三区久久久蜜月| 日本一区二区三区免费乱视频| 亚洲一区在线观看视频| 国产精品一区二区久久不卡 | 日本中文字幕一区| 国产成人99久久亚洲综合精品| 欧美日韩三级视频| 国产欧美日韩综合| 日韩精品亚洲专区| 99视频国产精品| 日韩欧美三级在线| 亚洲一区二区偷拍精品| 国产sm精品调教视频网站| 日韩一二三区不卡| 亚洲愉拍自拍另类高清精品| 国产成人三级在线观看| 精品国一区二区三区| 亚洲成a人v欧美综合天堂| 91免费国产在线| 欧美激情在线一区二区| 美女在线视频一区| 91精品国产乱码久久蜜臀| 亚洲老妇xxxxxx| 成人教育av在线| 精品理论电影在线观看| 三级一区在线视频先锋| 在线亚洲人成电影网站色www| 国产网站一区二区| 国内精品嫩模私拍在线| 制服.丝袜.亚洲.另类.中文| 亚洲欧美欧美一区二区三区| 国产经典欧美精品| 久久久另类综合| 国产一区二区三区在线观看精品| 欧美电影免费观看高清完整版在 | 丰满亚洲少妇av| 精品日产卡一卡二卡麻豆| 美女国产一区二区三区| 日韩欧美电影一区| 美女免费视频一区| 精品裸体舞一区二区三区|