wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

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

HMC5883 51串口測試程序

作者:佚名   來源:本站原創   點擊數:  更新時間:2012年10月14日   【字體:

51單片機串口輸出


 


//***************************************
// HMC5883 51串口測試程序
// 使用單片機STC89C51 
// 晶振:11.0592M
// 顯示:PC串口
// 編譯環境 Keil uVision2
// 參考宏晶網站24c04通信程序
// 時間:2011年3月1日
//****************************************
#include  <REG51.H> 
#include  <math.h>    //Keil library  
#include  <stdio.h>   //Keil library 
#include  <INTRINS.H>
#define   uchar unsigned char
#define   uint  unsigned int 
//使用的端口,請按照以下接線
#define DataPort P0 //LCD1602數據端口
sbit SCL=P1^0;      //IIC時鐘引腳定義
sbit SDA=P1^1;      //IIC數據引腳定義

#define SlaveAddress   0x3C   //定義器件5883在IIC總線中的從地址
typedef unsigned char BYTE;
typedef unsigned short WORD;
BYTE BUF[8];                         //接收數據緩存區       
uchar ge,shi,bai,qian,wan;           //顯示變量
int  dis_data;                       //變量
//************
//************
void delay(unsigned int k);
void Init_HMC5883(void);            //初始化5883
void conversion(uint temp_data);
void  Single_Write_HMC5883(uchar REG_Address,uchar REG_data);   //單個寫入數據
//uchar Single_Read_HMC5883(uchar REG_Address);                   //單個讀取內部寄存器數據
void  Multiple_Read_HMC5883();                                  //連續的讀取內部寄存器數據
//以下是模擬iic使用函數-------------
void Delay5us();
void Delay5ms();
void HMC5883_Start();
void HMC5883_Stop();
void HMC5883_SendACK(bit ack);
bit  HMC5883_RecvACK();
void HMC5883_SendByte(BYTE dat);
BYTE HMC5883_RecvByte();
void HMC5883_ReadPage();
void HMC5883_WritePage();
//-----------------------------------
//*********************************************
//串口初始化
//9600 bps @ 11.059 MHz 
void init_uart()
{
 TMOD=0x21;    
 TH1=0xfd;    
 TL1=0xfd;    
 SCON=0x50;
 PS=1;      //串口中斷設為高優先級別
 TR0=1;    //啟動定時器   
 TR1=1;
 ET0=1;     //打開定時器0中斷   
 ES=1; 
}
//*********串口數據發送******************
void  SeriPushSend(uchar send_data)
{
    SBUF=send_data;  
 while(!TI);TI=0;   
}
//*********************************************************
void conversion(uint temp_data)  
{  
    wan=temp_data/10000+0x30 ;
    temp_data=temp_data%10000;   //取余運算
 qian=temp_data/1000+0x30 ;
    temp_data=temp_data%1000;    //取余運算
    bai=temp_data/100+0x30   ;
    temp_data=temp_data%100;     //取余運算
    shi=temp_data/10+0x30    ;
    temp_data=temp_data%10;      //取余運算
    ge=temp_data+0x30;  
}
/*******************************/
void delay(unsigned int k) 
{      
unsigned int i,j;    
for(i=0;i<k;i++)
{   
for(j=0;j<121;j++)   
{;}}      
}
 
/**************************************
延時5微秒(STC90C52RC@12M)
不同的工作環境,需要調整此函數,注意時鐘過快時需要修改
當改用1T的MCU時,請調整此延時函數
**************************************/
void Delay5us()
{
    _nop_();_nop_();_nop_();_nop_();
    _nop_();_nop_();_nop_();_nop_();
 _nop_();_nop_();_nop_();_nop_();
 _nop_();_nop_();_nop_();_nop_();
    _nop_();_nop_();_nop_();_nop_();
}
/**************************************
延時5毫秒(STC90C52RC@12M)
不同的工作環境,需要調整此函數
當改用1T的MCU時,請調整此延時函數
**************************************/
void Delay5ms()
{
    WORD n = 560;
    while (n--);
}
/**************************************
起始信號
**************************************/
void HMC5883_Start()
{
    SDA = 1;                    //拉高數據線
    SCL = 1;                    //拉高時鐘線
    Delay5us();                 //延時
    SDA = 0;                    //產生下降沿
    Delay5us();                 //延時
    SCL = 0;                    //拉低時鐘線
}
/**************************************
停止信號
**************************************/
void HMC5883_Stop()
{
    SDA = 0;                    //拉低數據線
    SCL = 1;                    //拉高時鐘線
    Delay5us();                 //延時
    SDA = 1;                    //產生上升沿
    Delay5us();                 //延時
}
/**************************************
發送應答信號
入口參數:ack (0:ACK 1:NAK)
**************************************/
void HMC5883_SendACK(bit ack)
{
    SDA = ack;                  //寫應答信號
    SCL = 1;                    //拉高時鐘線
    Delay5us();                 //延時
    SCL = 0;                    //拉低時鐘線
    Delay5us();                 //延時
}
/**************************************
接收應答信號
**************************************/
bit HMC5883_RecvACK()
{
    SCL = 1;                    //拉高時鐘線
    Delay5us();                 //延時
    CY = SDA;                   //讀應答信號
    SCL = 0;                    //拉低時鐘線
    Delay5us();                 //延時
    return CY;
}
/**************************************
向IIC總線發送一個字節數據
**************************************/
void HMC5883_SendByte(BYTE dat)
{
    BYTE i;
    for (i=0; i<8; i++)         //8位計數器
    {
        dat <<= 1;              //移出數據的最高位
        SDA = CY;               //送數據口
        SCL = 1;                //拉高時鐘線
        Delay5us();             //延時
        SCL = 0;                //拉低時鐘線
        Delay5us();             //延時
    }
    HMC5883_RecvACK();
}
/**************************************
從IIC總線接收一個字節數據
**************************************/
BYTE HMC5883_RecvByte()
{
    BYTE i;
    BYTE dat = 0;
    SDA = 1;                    //使能內部上拉,準備讀取數據,
    for (i=0; i<8; i++)         //8位計數器
    {
        dat <<= 1;
        SCL = 1;                //拉高時鐘線
        Delay5us();             //延時
        dat |= SDA;             //讀數據               
        SCL = 0;                //拉低時鐘線
        Delay5us();             //延時
    }
    return dat;
}
//***************************************************
void Single_Write_HMC5883(uchar REG_Address,uchar REG_data)
{
    HMC5883_Start();                  //起始信號
    HMC5883_SendByte(SlaveAddress);   //發送設備地址+寫信號
    HMC5883_SendByte(REG_Address);    //內部寄存器地址,請參考中文pdf 
    HMC5883_SendByte(REG_data);       //內部寄存器數據,請參考中文pdf
    HMC5883_Stop();                   //發送停止信號
}
 /*
//********單字節讀取內部寄存器*************************
uchar Single_Read_HMC5883(uchar REG_Address)
{  uchar REG_data;
    HMC5883_Start();                          //起始信號
    HMC5883_SendByte(SlaveAddress);           //發送設備地址+寫信號
    HMC5883_SendByte(REG_Address);                   //發送存儲單元地址,從0開始 
    HMC5883_Start();                          //起始信號
    HMC5883_SendByte(SlaveAddress+1);         //發送設備地址+讀信號
    REG_data=HMC5883_RecvByte();              //讀出寄存器數據
 HMC5883_SendACK(1);   
 HMC5883_Stop();                           //停止信號
    return REG_data; 
}
*/
//******************************************************
//
//連續讀出HMC5883內部角度數據,地址范圍0x3~0x5
//
//******************************************************
void Multiple_read_HMC5883(void)
{   uchar i;
    HMC5883_Start();                          //起始信號
    HMC5883_SendByte(SlaveAddress);           //發送設備地址+寫信號
    HMC5883_SendByte(0x03);                   //發送存儲單元地址,從0x3開始 
    HMC5883_Start();                          //起始信號
    HMC5883_SendByte(SlaveAddress+1);         //發送設備地址+讀信號
  for (i=0; i<7; i++)                      //連續讀取6個地址數據,存儲中BUF
    {
        BUF[i] = HMC5883_RecvByte();          //BUF[0]存儲0x32地址中的數據
        if (i == 6)
        {
           HMC5883_SendACK(1);                //最后一個數據需要回NOACK
        }
        else
        {
          HMC5883_SendACK(0);                //回應ACK
       }
   }
    HMC5883_Stop();                          //停止信號
    Delay5ms();
}
//初始化HMC5883,根據需要請參考pdf進行修改****
void Init_HMC5883()
{
     Single_Write_HMC5883(0x02,0x00);  //
  Single_Write_HMC5883(0x01,0xE0);  //
}
//*********************************************************
//主程序********
//*********************************************************
void main()
{ // bit sign_bit;
   unsigned int i;
   int x,y,z;
   double angle;

   delay(100);   
   init_uart();
   Init_HMC5883();
  while(1)            //循環
  { 
    Multiple_Read_HMC5883();      //連續讀出數據,存儲在BUF中
 x = BUF[0] << 8 | BUF[1]; 
    y = BUF[4] << 8 | BUF[5]; 
 z = BUF[2] << 8 | BUF[3]; 
    angle= atan2((double)y,(double)x) * (180 / 3.14159265) + 180; // angle in degrees
    conversion(angle);       //計算數據和顯示
    SeriPushSend(bai);
    SeriPushSend(shi);
 SeriPushSend(ge);
 SeriPushSend(0x0d);
 SeriPushSend(0x0a);
    for (i=0;i<10000;i++);   //延時                   
  }
} 
關閉窗口

相關文章

日韩免费视频| 国产成人+综合亚洲+天堂| 欧美在线色视频| 激情成人在线视频| 午夜视频在线观看一区二区| 亚洲视频中文字幕| 亚洲人成电影网站色mp4| 国产精品视频免费看| 中文一区一区三区高中清不卡| 国产午夜精品理论片a级大结局| 97精品久久久久中文字幕| 91丨porny丨户外露出| 91丝袜呻吟高潮美腿白嫩在线观看| 99精品黄色片免费大全| 久久综合色8888| 国产精品麻豆视频| 亚洲国产综合91精品麻豆| 午夜欧美视频在线观看| 91久久精品网| 日韩欧美中文字幕一区| 亚洲第一区第一页| 一区二区三区国产视频| 超在线视频97| 国产成人精品一区二区| 99影视tv| 涩涩涩999| 精品久久久久久无码中文野结衣| 日韩人妻无码精品久久久不卡| 精品欧美一区免费观看α√| 我要看一级黄色大片| 色黄视频免费看| 97超碰在线免费观看| 免费国产羞羞网站美图| 天天爽夜夜爽人人爽| 国产片高清在线观看| 美女福利视频一区二区| 在线观看免费电影| 午夜视频99| 成人a在线视频免费观看| 偷拍精品一区二区三区| 国产又黄又爽又猛免费app| 黄色片免费大全| 玖草视频在线| 久久免费电影| 日韩高清一区| 99欧美视频| 极品少妇xxxx精品少妇偷拍| 久久伊人中文字幕| 午夜精品一区二区三区三上悠亚| 欧美一卡2卡3卡4卡| 日韩视频精品在线| 成人激情视频在线| 黄色www在线观看| 三区视频在线观看| 日韩激情综合网| 午夜免费福利视频| 比比资源先锋| eeuss影院在线观看| 欧美日韩尤物久久| 伊人成综合网yiren22| 亚洲尤物影院| 国产精品天美传媒| 69堂国产成人免费视频| 久久在线观看视频| 97久草视频| 免费在线观看视频a| 在线精品一区二区三区| 久久亚洲天堂网| 亚洲天堂一区| 97影院在线观看| 蜜桃视频在线观看播放| 精品久久不卡| 国产精品一级片| 欧美日韩黄色大片| 色悠悠久久久久| 亚洲free嫩bbb| 两根大肉大捧一进一出好爽视频| 香蕉网在线播放| 一区二区三区亚洲视频| 看成年女人免费午夜视频| 在线播放日本| 久久97精品| 精品一二线国产| 亚洲国产精品麻豆| 夜夜嗨av一区二区三区免费区 | 久久久久久免费毛片精品| 性欧美疯狂xxxxbbbb| 国产一区二区三区视频免费| 91九色视频在线| 国产xxxxx在线观看| 亚洲欧美卡通动漫| 天天综合永久入口| 在线欧美成人| 亚洲日韩中文字幕一区| 国产欧美一区二区色老头| 中文一区在线播放| 亚洲黄色在线看| 7777精品伊久久久大香线蕉语言| 成人三级视频在线播放| 国产午夜视频在线播放| 91网站最新地址| 国产精品刘玥久久一区| 成人在线免费观看91| 久久久亚洲精品石原莉奈| 日韩欧美电影在线| 成人激情免费在线| 美女在线视频一区二区 | a'aaa级片在线观看| 99久久99热这里只有精品| 久久嫩草精品久久久久| 日韩精品极品视频免费观看| 超碰97人人人人人蜜桃| 热久久久久久久久| 国产又粗又猛又爽| 中文字幕123| 一区二区日韩| 成人免费不卡视频| 亚洲国产精品va在线观看黑人| 成人免费网站在线观看| 激情黄色小视频| 亚洲视频在线免费播放| 美臀av在线| 日本成人7777| 久久综合九色综合97婷婷| 日韩精品欧美国产精品忘忧草| 国产精品免费一区二区三区| 97精品人妻一区二区三区蜜桃| 丰满熟妇人妻中文字幕| av网站免费大全| 久久久久久77777| 欧美久久亚洲| 成人国产精品视频| 亚洲天堂一区二区三区| 欧美在线播放一区| 91导航在线观看| 99t1这里只有精品| 在线免费日韩片| 激情五月婷婷综合网| 日韩免费在线观看| 欧美日韩综合精品| 秋霞欧美一区二区三区视频免费| 国产寡妇色xxⅹ交肉视频| 都市激情亚洲综合| 国产一区二区不卡| 国产婷婷色综合av蜜臀av| 亚洲国产成人不卡| 精品少妇一二三区| 97国产视频| 妖精视频一区二区三区| 自拍偷自拍亚洲精品播放| 欧美黄色片免费观看| 麻豆av免费在线| www.黄色片| 97caopron在线视频| 亚洲一区日韩在线| 日韩精品一区二区三区视频在线观看| 裸模一区二区三区免费| 欧美毛片在线观看| 116美女写真午夜一级久久| 欧美日韩伦理在线免费| 亚洲一区在线观看免费 | 国产精品自拍99| 一级毛片在线观| 婷婷亚洲五月| 欧美日韩成人一区| 欧美一级片免费观看| 久久亚洲精品大全| 在线观影网站| 欧美人成网站| 555www色欧美视频| 日韩精彩视频| 男人天堂视频网| 色大18成网站www在线观看| 日韩视频三区| 日韩电影中文字幕在线| 亚洲色成人www永久在线观看| 中文字幕在线播放日韩| 超碰超碰在线| 高清在线不卡av| 欧美激情小视频| 色悠悠在线视频| 青娱乐在线视频观看| 公交车上扒开嫩j挺进去| 香蕉一区二区| 欧美午夜电影在线| 欧美日韩三区四区| 中文无码av一区二区三区| 国产cdts系列另类在线观看| 国产成人午夜99999| 欧美福利视频在线观看| 久久性爱视频网站| 美女av在线免费观看| 亚洲理论电影网| 日韩三级精品电影久久久| 欧美精品卡一卡二| 亚洲欧美色图区| 国产另类在线| 在线精品视频小说1| 亚洲一区三区在线观看| www.com在线观看| 四虎影视国产精品| 午夜av一区二区三区| 日本在线免费观看一区| 国产又粗又大又爽视频| 91另类视频| 亚洲午夜电影网| 日本黄网免费一区二区精品| 91在线视频国产| 日韩另类视频| 亚洲成人免费电影| 中文字幕一区二区三区乱码| 视频污在线观看| 2020最新国产精品| 欧美日韩另类一区| 激情伊人五月天| 国产麻豆剧果冻传媒观看hd高清| 奇米色欧美一区二区三区| 91麻豆精品国产综合久久久久久| 九色在线视频观看| 蝌蚪91视频| 欧美国产另类| 色yeye香蕉凹凸一区二区av| www.超碰97| 欧美色18zzzzxxxxx| 国产一区二区在线影院| 国产精品久久色| 日本熟妇毛耸耸xxxxxx| а√天堂中文在线资源8| 亚洲欧美影音先锋| 欧美日韩一区二区三区在线视频| 国产1区在线观看| 亚洲日产av中文字幕| 精品免费视频.| xxx中文字幕| 国产精品自拍第一页| 一本大道色婷婷在线| 一区二区日韩av| 粉嫩av一区二区三区天美传媒| 欧美性狂猛xxxxxbbbbb| 北条麻妃国产九九九精品小说| 日韩av在线资源| 黄色录像a级片| 春暖花开成人亚洲区| 久久精品免视看| 秋霞久久久久久一区二区| 亚洲另类图片另类电影| 色综合久久一区二区三区| 中文字幕日韩av综合精品| 日本性高潮视频| 先锋成人av| 亚洲国产日韩精品| 看av免费毛片手机播放| eeuss性xxxxxx电影| 免费观看久久久4p| 国产精品久久久精品| 一级做a爱片久久毛片| 97久久综合区小说区图片区| 精品第一国产综合精品aⅴ| 艳妇乳肉亭妇荡乳av| 国内外激情在线| 亚洲成人第一页| 美女一区二区三区视频| 在线免费91| 国产精品免费网站在线观看| 男女啪啪免费观看| xfplay资源站夜色先锋| 国产一区二区三区免费播放 | 91精品国产91久久久久福利| 日本在线视频免费观看| 香蕉久久久久久| 亚洲国内精品在线| 五月天色婷婷丁香| 国产私拍福利精品视频二区| 欧美一区二区成人| 亚洲а∨天堂久久精品2021| 国产嫩草在线视频| 欧美四级电影网| www.17c.com喷水少妇| 黄色av网站在线播放| 欧美性猛交xxxx免费看漫画| www.精品在线| 日本不卡不卡| 日本韩国欧美一区二区三区| 亚洲一二三四五| 99热99re6国产在线播放| 337p亚洲精品色噜噜噜| wwwwww日本| 你懂得影院夜精品a| 欧美变态tickle挠乳网站| 亚洲色图第四色| 四虎国产精品成人免费影视| 亚洲乱码一区二区| 日韩偷拍一区二区| 99.玖玖.com| 国产日产欧美一区二区三区| 你真棒插曲来救救我在线观看| 玖草视频在线| 亚洲成人av一区二区三区| 在线播放av中文字幕| 欧美高清另类hdvideosexjaⅴ| 欧美日韩精品一区视频| 亚洲精品国产精品国自| 国语精品视频| 久久久国产成人精品| 一区二区精品视频在线观看| 中文字幕一区二区三区在线视频| 国产在线拍揄自揄视频不卡99 | 99久久国产免费免费| 国产xxxx做受性欧美88| 国产精品一区三区| 福利在线小视频| 污污网站在线| 欧美视频国产精品| 级毛片内射视频| 精品国产伦一区二区三区观看说明 | 成在在线免费视频| 色天天综合色天天久久| 一级性生活毛片| 欧美爱爱视频| 欧美成人精品一区| 日本人妻丰满熟妇久久久久久| 久久精品伊人| 亚洲开发第一视频在线播放| 情趣视频网站在线免费观看| 欧美午夜女人视频在线| 少妇久久久久久久久久| **爰片久久毛片| 日本不卡免费高清视频| 国产视频中文字幕| 久久综合九色综合欧美亚洲| 在线观看免费的av| 欧美大胆成人| 欧美激情精品久久久久| 在线播放性xxx欧美| 成人av免费网站| www.精品在线| 成人在线观看免费播放| 欧美区二区三区| 影音日韩av| 国产午夜精品福利| 男人女人拔萝卜视频| 国产剧情一区二区在线观看| 欧美亚洲国产另类| 91sese| 亚洲乱码国产乱码精品精的特点 | 国产在线精品一区在线观看麻豆| 婷婷五月综合缴情在线视频| 黄在线免费看| 亚洲欧洲视频在线| 国产成人a人亚洲精品无码| 麻豆一区二区99久久久久| 人妻av中文系列| 国产精品—色呦呦| 久久精品国产2020观看福利| 成人久久在线| 国产精品全国免费观看高清| 成人性生活免费看| 亚洲男人都懂第一日本| 国产伦精品一区二区三区| 一区二区三区视频国产日韩| 欧美一区二区久久| 99久久99久久久精品棕色圆| 国产成人99久久亚洲综合精品| 亚洲欧美日韩精品一区| 亚洲精品v亚洲精品v日韩精品| 成人精品久久av网站| 国产成人免费观看视频 | 国产成人午夜精品| 日本丰满少妇一区二区三区| 日韩特黄一级片| 日韩主播视频在线| 免费激情视频在线观看| 欧美天堂一区二区| 91午夜理伦私人影院| 色佬视频在线观看| 亚洲电影天堂av| 特黄视频在线观看| 亚洲国产精品av| 欧美色视频一区二区三区在线观看| 狠久久av成人天堂| 日韩久久久久久久久久久久| 久久r热视频| 国产精品美女免费看| 中文字幕电影在线观看| 亚洲精品电影在线| 手机看片日韩| 欧美日韩另类字幕中文| 天天爽夜夜爽人人爽| 国产成人超碰人人澡人人澡| 精品人妻一区二区免费| 五月婷婷六月综合| 性一交一乱一伧国产女士spa| av有声小说一区二区三区| 国产精品丝袜久久久久久高清 | 国产在线观看www| 国产99久久精品一区二区 夜夜躁日日躁| 国产小黄视频| 日韩精品视频在线播放| 欧美6699在线视频免费| 日韩欧中文字幕|