久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

單片機驅動六向重力傳感器

作者:佚名   來源:本站原創(chuàng)   點擊數:  更新時間:2013年12月07日   【字體:



/*********************************************************************************************
程序名:    單片機驅動六向重力傳感器例程
編寫人:    杜洋 
編寫時間:  2010年3月23日
硬件支持:  STC12C4052AD 內部RC振蕩(4MHz)
接口說明:  一位數碼管(用于顯示),傳感器接口 
修改日志:  
/*********************************************************************************************
說明:
數碼管顯示數字即表示傳感器方位狀態(tài)。
0:無傳感器連接,1:上,2:下,3:左,4:右,5:前,6:后

# 6個方向的開關量關系如下:

朝上:全開
朝下:全關
朝前:K3、K4開
朝后:K1、K2開
朝左:K1、K3開
朝右:K2、K4開
/*********************************************************************************************/

#include <STC12C2052AD.H> //STC12C5A60S2系列單片機頭文件

/**********************************************************************************************/
sbitDY_LED1_L1=P1 ^ 2; //a:數碼管段碼定義
sbitDY_LED1_L2=P1 ^ 3; //b
sbitDY_LED1_L3=P3 ^ 4; //c
sbitDY_LED1_L4=P3 ^ 3; //d
sbitDY_LED1_L5=P3 ^ 2; //e
sbitDY_LED1_L6=P1 ^ 1; //f
sbitDY_LED1_L7=P1 ^ 0; //g
sbitDY_LED1_L8=P3 ^ 5; //DP點

sbitD1=P1 ^ 7; //六向傳感器接口
sbitD2=P1 ^ 6; //
sbitD3=P1 ^ 5; //
sbitD4=P1 ^ 4; //

unsigned char code disdata[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //無小數點數碼管段碼表(0~9)

/*********************************************************************************************/
void delay1ms (unsigned int a){ // 1ms延時程序
unsigned int i;
while( --a != 0){
for(i = 0; i < 900; i++);
}    
}
/*********************************************************************************************/
void dis_off (void){ //關所有顯示P1 = 0xff;
P3 = 0xff;
}
/*********************************************************************************************/
void display (unsigned char d){ //顯示驅動程序
unsigned char i;
i = d & 0x01;
if(i == 0x01){
DY_LED1_L1 = 0;}
i = d & 0x02;
if(i == 0x02){
DY_LED1_L2 = 0;}
i = d & 0x04;
if(i == 0x04){
DY_LED1_L3 = 0;}
i = d & 0x08;
if(i == 0x08){
DY_LED1_L4 = 0;}
i = d & 0x10;
if(i == 0x10){
DY_LED1_L5 = 0;}
i = d & 0x20;
if(i == 0x20){
DY_LED1_L6 = 0;}
i = d & 0x40;
if(i == 0x40){
DY_LED1_L7 = 0;}
i = d & 0x80;
if(i == 0x80){
DY_LED1_L8 = 0;}dis_off();
}
/*********************************************************************************************
函數名:六向方位傳感器驅動程序
調  用:S_6D();
參  數:無
返回值:0:無傳感器連接,1:上,2:下,3:左,4:右,5:前,6:后
結  果:輸出傳感器當前方位數值
備  注:
/**********************************************************************************************/
unsigned char S_6D (void){ //6向方位傳感器(6D)驅動程序
unsigned char a;
a =0; //
if(D1 == 0 && D2 == 0 && D3 == 0 && D4 == 0){
a = 1;
}
if(D1 == 1 && D2 == 1 && D3 == 1 && D4 == 1){
a = 2;
}
if(D1 == 0 && D2 == 0 && D3 == 1 && D4 == 1){
a = 3;
}
if(D1 == 1 && D2 == 1 && D3 == 0 && D4 == 0){
a = 4;
}
if(D1 == 0 && D2 == 1 && D3 == 0 && D4 == 1){
a = 5;
}
if(D1 == 1 && D2 == 0 && D3 == 1 && D4 == 0){
a = 6;
}
return a; //返回值
}
/**********************************************************************************************/
/*********************************************************************************************/
void main (void){ //主程序(僅用與傳感器測試)
unsigned char c;
dis_off();
c = 0;
while (1){
c = S_6D();//讀取傳感器狀態(tài)
if(c != 0){//不為0時顯示數值
display(disdata[c]);//調用數碼管顯示
}
}
}
/*************************************************************

 

關閉窗口

相關文章

主站蜘蛛池模板: 欧美日韩在线一区二区 | 盗摄精品av一区二区三区 | 久久久久久久久国产成人免费 | 欧美日韩精品久久久免费观看 | www.一级片 | 91精品国产99久久 | 国产高清久久久 | 国产小u女发育末成年 | 久久久久久免费毛片精品 | 国产精品免费福利 | 免费在线一区二区三区 | 蜜桃一区二区三区 | 成人精品一区二区三区中文字幕 | 久久久亚洲成人 | 国产精品无码专区在线观看 | 日韩欧美一区二区三区免费看 | 亚洲精品国产a久久久久久 中文字幕一区二区三区四区五区 | 手机在线不卡av | 色伊人| 欧美一二三四成人免费视频 | 欧美一区二 | 免费福利视频一区二区三区 | 欧美久久一区二区三区 | 99这里只有精品视频 | 久久精品国产一区二区电影 | 久久成人一区 | 美女黄视频网站 | 成年人在线观看 | 男人的天堂在线视频 | 精品视频一区二区三区在线观看 | 免费在线国产视频 | 久久久久9999 | 日本成人中文字幕在线观看 | 日韩毛片 | 成人免费网站视频 | 日韩福利在线观看 | a视频在线观看 | av一级久久 | 久久国产精品一区二区 | 欧美国产91 | 国产91精品久久久久久久网曝门 |