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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1525|回復: 2
打印 上一主題 下一主題
收起左側

關于單片機ADXL345的程序 這幾個取余運算,之后的延時函數作用

[復制鏈接]
跳轉到指定樓層
樓主
ID:890746 發表于 2021-4-15 17:48 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
在自學ADXL345,想問一下大佬們這幾個取余運算,之后的延時函數還有那幾個對數據線和時鐘線的操作有什么用啊

單片機源程序如下:
#include<reg52.h>
#include<math.h>
#include"1602.h"
#include  <INTRINS.H>
#define        SlaveAddress   0xA6        
sbit sclk=P1^1;
sbit sda=P1^2;
float  dis_datax,dis_datay,dis_dataz,acc,acc1=1000;
uchar BUF[8];
uchar wan, qian, bai, shi ,ge,flag,miao,miao1,n;
uint count;
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 delay6us()                 //6us延時函數
{
        _nop_();        _nop_();         
}
void delay_ms(uint n)       //N ms延時函數
{
        uint x,y;
        for(x=n;x>0;x--)
                for(y=110;y>0;y--);        
}                                                                                                                                
void ADXL345_Start()
{
    sda = 1;                    //拉高數據線
    sclk = 1;                    //拉高時鐘線
    delay6us();                 //延時
    sda = 0;                    //產生下降沿
    delay6us();                 //延時
    sclk = 0;                    //拉低時鐘線
}
void ADXL345_Stop()
{
    sda = 0;                    //拉低數據線
    sclk = 1;                    //拉高時鐘線
    delay6us();                 //延時
    sda = 1;                    //產生上升沿
    delay6us();                 //延時
}
void ADXL345_SendACK(bit ack)
{
    sda = ack;                  //寫應答信號
    sclk = 1;                    //拉高時鐘線
    delay6us();                 //延時
    sclk = 0;                    //拉低時鐘線
    delay6us();                 //延時
}
bit ADXL345_RecvACK()
{
    sclk = 1;                    //拉高時鐘線
    delay6us();                 //延時
    CY = sda;                   //讀應答信號
    sclk = 0;                    //拉低時鐘線
    delay6us();                 //延時

    return CY;
}
void ADXL345_SendByte(uchar dat)
{
    uchar i;
//        sclk = 0;                //拉低時鐘線
    for (i=0; i<8; i++)         //8位計數器
    {
        dat <<= 1;              //移出數據的最高位
        sda = CY;               //送數據口
        sclk = 1;                //拉高時鐘線
        delay6us();             //延時
        sclk = 0;                //拉低時鐘線
        delay6us();             //延時
    }
    ADXL345_RecvACK();
}
uchar ADXL345_RecvByte()
{
    uchar i;
    uchar dat = 0;
    sda = 1;
        //        write_com(0x80);
                   //使能內部上拉,準備讀取數據,
    for (i=0; i<8; i++)         //8位計數器
    {
        dat <<= 1;
        sclk = 1;                //拉高時鐘線
        delay6us();             //延時
        dat |= sda;             //讀數據               
        sclk = 0;                //拉低時鐘線
        delay6us();             //延時
    }
    return dat;
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:752974 發表于 2021-4-16 08:44 | 只看該作者
取余部分是將數字的各個位分離出來,再轉換成字符。對時鐘線的操作是軟件模擬SPI接口時序,完成SPI接口的數據輸入輸出操作,延時是 為了匹配CPU和345的SPI總線速度。
回復

使用道具 舉報

板凳
ID:890746 發表于 2021-4-16 10:54 | 只看該作者
munuc_w 發表于 2021-4-16 08:44
取余部分是將數字的各個位分離出來,再轉換成字符。對時鐘線的操作是軟件模擬SPI接口時序,完成SPI接口的數 ...

好的謝謝您!我照著這個再看一下
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久久国产精品视频 | 91久久久精品国产一区二区蜜臀 | 亚洲精品1区2区3区 91免费看片 | 一区二区精品电影 | 91爱爱·com | 麻豆成人在线视频 | 欧洲精品一区 | www.黄色片视频 | 老司机67194精品线观看 | 中文字幕日韩在线 | 欧美三级电影在线播放 | 久久9精品 | 综合久久99 | 91在线视频观看免费 | www.精品国产 | 91免费在线| 爱草视频 | 超碰伊人久久 | 成人妇女免费播放久久久 | 国产精品永久免费视频 | 日韩精品中文字幕一区二区三区 | 中文字幕一区二区三区四区五区 | 日韩激情一区 | 99re在线观看 | 91私密视频| 国产精品久久久久久中文字 | 久草成人| 日韩在线欧美 | 亚洲视频免费观看 | 欧美v日韩v | 91在线观看| 狠狠操狠狠干 | 欧美激情精品久久久久久 | 久久免费国产 | 九九综合九九 | 殴美一级片 | 欧美日韩电影一区二区 | 欧美1页 | 成人国产精品久久久 | 国产日韩91 | 四虎影院新地址 |