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

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

?? 7455.c

?? GY-29-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一区二区三区免费野_久草精品视频
成人福利视频网站| 久久综合网色—综合色88| 日韩中文字幕麻豆| 亚洲男人天堂一区| 久久久久国产精品免费免费搜索| 欧美一级黄色片| 欧美日韩国产在线观看| 日本丶国产丶欧美色综合| 91视频com| 欧美综合久久久| 欧美日韩国产一二三| 国产精品视频一二三区| 中文字幕制服丝袜成人av| 亚洲国产成人一区二区三区| 一区在线观看视频| 亚洲午夜电影在线观看| 婷婷一区二区三区| 国产一区二区三区久久久| 国产一区91精品张津瑜| 91精品在线麻豆| 亚洲国产精品ⅴa在线观看| 国内精品自线一区二区三区视频| 懂色av一区二区三区免费看| av电影在线观看一区| 欧美日产在线观看| 天堂一区二区在线免费观看| 欧美日韩电影在线播放| 婷婷中文字幕综合| 欧美一区二区久久久| 国产精品久久久久久久久动漫| 国产酒店精品激情| 欧美日韩中字一区| 国产视频911| 亚洲国产精品一区二区www| 欧洲一区在线电影| 亚洲一二三四区不卡| 懂色一区二区三区免费观看| 国产精品全国免费观看高清| 91亚洲大成网污www| 成人美女在线视频| 国产欧美精品在线观看| 国产精品一级黄| 99久久婷婷国产综合精品电影| 欧美三片在线视频观看 | 欧美日韩久久一区二区| 一区二区三区在线免费播放| 久久福利资源站| 北条麻妃一区二区三区| 亚洲欧美日韩国产另类专区| 欧美亚洲尤物久久| 一区视频在线播放| 欧美探花视频资源| 久久9热精品视频| 欧美极品美女视频| 在线亚洲一区二区| 美日韩一级片在线观看| 欧美视频中文字幕| 麻豆精品一二三| 国产免费久久精品| 在线一区二区视频| 精彩视频一区二区| 欧美白人最猛性xxxxx69交| 亚洲国产一区二区视频| 日韩久久精品一区| 久久国产精品色| 国产精品国产三级国产aⅴ入口| 在线观看av不卡| 国产精品一二三区在线| 亚洲国产视频一区二区| 国产女人水真多18毛片18精品视频| 色综合一个色综合亚洲| 国产精品国产自产拍高清av| 欧美日韩一区二区在线观看| 国产乱色国产精品免费视频| 一区二区三区欧美在线观看| 精品国产亚洲在线| 国产精品一卡二| 性做久久久久久免费观看| 欧美日韩免费高清一区色橹橹 | 欧美日韩一卡二卡三卡| 国产真实乱偷精品视频免| 一区2区3区在线看| 国产精品丝袜一区| 精品国产一区二区三区av性色| 色天使久久综合网天天| 亚洲va天堂va国产va久| 国产精品三级久久久久三级| 日韩精品一区二区三区老鸭窝| 色哦色哦哦色天天综合| 成人午夜免费视频| 蜜桃久久精品一区二区| 亚洲va欧美va人人爽| 亚洲日本韩国一区| 欧美精品视频www在线观看| 青青草精品视频| 欧美精品一区二区精品网| 欧美午夜精品一区| 99re热视频这里只精品| 国产成人免费视频一区| 夜色激情一区二区| 亚洲欧美日韩综合aⅴ视频| 国产无人区一区二区三区| 日韩免费一区二区| 91精品国产色综合久久久蜜香臀| 在线精品亚洲一区二区不卡| av资源网一区| 91色婷婷久久久久合中文| 成人av集中营| 成人av第一页| 色婷婷综合视频在线观看| 91浏览器入口在线观看| 91在线云播放| 在线观看免费成人| 欧美中文字幕不卡| 欧美日本在线看| 91麻豆精品国产91久久久久久久久| 欧美视频一区二区三区四区 | bt7086福利一区国产| jiyouzz国产精品久久| av中文字幕不卡| 色噜噜久久综合| 欧美日韩美女一区二区| 制服丝袜一区二区三区| 精品国产精品网麻豆系列| 久久先锋资源网| 国产精品福利一区二区三区| 亚洲老司机在线| 欧美极品美女视频| 亚洲女同ⅹxx女同tv| 亚洲图片欧美一区| 久久99精品视频| 成人深夜视频在线观看| 日本精品免费观看高清观看| 欧美日本在线看| 久久久久久久久岛国免费| 一区在线播放视频| 日韩中文字幕av电影| 国产成a人无v码亚洲福利| 在线观看免费成人| 久久综合九色欧美综合狠狠| 中文字幕在线不卡视频| 午夜av一区二区三区| 国产精品123| 欧美视频一区二区三区在线观看 | 亚洲精品一卡二卡| 日韩av一级片| 美国十次了思思久久精品导航| 国产主播一区二区| 欧洲精品在线观看| 久久久亚洲综合| 午夜精品成人在线视频| 国产毛片精品一区| 欧美老年两性高潮| 中文字幕av一区二区三区| 午夜日韩在线电影| 99久久精品国产导航| 精品少妇一区二区三区| 亚洲精品国产a| 国产91精品一区二区麻豆网站| 91福利在线观看| 国产精品乱人伦| 久久精品久久99精品久久| 91小视频免费看| 久久久国产一区二区三区四区小说| 亚洲一区成人在线| 成人永久aaa| 26uuuu精品一区二区| 丝袜亚洲另类欧美| 色94色欧美sute亚洲线路一ni| 精品国产一区二区三区不卡| 亚洲亚洲精品在线观看| 99re8在线精品视频免费播放| 日韩一区二区三区精品视频| 亚洲黄一区二区三区| 成人免费看视频| 精品对白一区国产伦| 日韩va亚洲va欧美va久久| 色婷婷国产精品综合在线观看| 国产日韩三级在线| 国产精品亚洲专一区二区三区 | 国产精品77777| 日韩精品一区二区在线观看| 天堂va蜜桃一区二区三区漫画版| 91毛片在线观看| 成人免费在线观看入口| 成人精品亚洲人成在线| 久久久久久久国产精品影院| 精品一区二区三区香蕉蜜桃| 欧美一区二区三区在线观看视频 | 亚洲精品成人少妇| 91亚洲精品久久久蜜桃网站| 国产精品短视频| 972aa.com艺术欧美| 中文字幕在线观看一区| 成人免费视频国产在线观看| 国产色产综合色产在线视频| 国产99久久久久久免费看农村| 国产视频一区二区在线观看| 国产成人精品午夜视频免费| 国产精品视频一二|