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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

msp430f5529 MCP4725程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:404619 發表于 2019-9-3 11:00 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 wubaqian 于 2019-9-3 11:06 編輯

//**************************************
//I2C起始信號
//**************************************
void I2C_Start()
{
    SDAOUT;                  //數據線設為輸出方向
    SDA1;                    //拉高數據線
    SCL_OUT;                 //時鐘線設為輸出方向
    SCL1;                    //拉高時鐘線
    delayus(5);                 //延時
    SDA0;                    //產生下降沿
    delayus(5);                  //延時
    SCL0;                    //拉低時鐘線
}
//**************************************
//I2C停止信號
//**************************************
void I2C_Stop()
{
    SCL0;                    //拉低時鐘線,才可以改變數據
    delayus(5);                  //延時
    SDAOUT;                  //SDA設為輸出方向
    SDA0;                    //拉低數據線
    SCL1;                    //拉高時鐘線
    delayus(5);                   //延時
    SDA1;                    //產生上升沿
    delayus(5);                  //延時
}
//**************************************
//I2C發送應答信號
//入口參數:ack (0:ACK 1:NAK)
//**************************************
void I2C_SendACK(uchar ack)
{
    SDAOUT;                   //SDA設為輸出方向
    SCL0;                   //拉低時鐘線后才可以改變數據
    if(ack) SDA1;
       else SDA0;
//    SDA = ack;                 //寫應答信號
    SCL1;                    //拉高時鐘線
    delayus(5);                  //延時
    SCL0;                    //拉低時鐘線
    delayus(5);                  //延時
}
//**************************************
//I2C接收應答信號
//cy=1,從機發送出的是NACK信號。
//cy=0,從機發送出的是ACK信號。
//**************************************
uchar I2C_RecvACK()
{
    uchar cy;
    SCL0;//時鐘線拉低,等待變為上升沿取數據
    SCL1;                    //拉高時鐘線,開始讀取數據
    SDAIN;                   //將SDA設為輸入方向
    delayus(5);                 //延時
    if(SDADATA)//接受到NACK信號,發送停止信號
    {
        cy=1;
    }
    else
    {
        cy=0;
    }
    SCL0;                    //拉低時鐘線,讀取完畢
    delayus(5);                //延時
    SDAOUT;                  //SDA設為輸出方向
    return cy;

}
//**************************************
//向I2C總線發送一個字節數據(寫數據)
//**************************************
void I2C_SendByte(uchar dat)
{
    uchar i;
    SCL0;//拉低時鐘線,才能改變數據。
    for (i=0; i<8; i++)
    {
        if((dat<<i)&0x80)//讀取最高位的數據,如果最高位為1,則置1,否則置零
        {
            SDA1;
        }
        else
        {
            SDA0;
        }
        SCL1;                //拉高時鐘線,穩定數據
        delayus(5);              //延時
        SCL0;                //拉低時鐘線,準備再次改變數據
        delayus(5);              //延時
    }
    I2C_RecvACK();
}
//**************************************
//從I2C總線接收一個字節數據
//**************************************
uchar I2C_RecvByte()
{
    uchar i;
    uchar dat = 0,cy;
    SDAIN;
    SCL0;//時鐘線拉低,允許數據改變
    for (i=0; i<8; i++)
    {
        dat <<= 1;           //從最低位開始接收數據
        SCL1;                //拉高時鐘線,讀取數據,不允許數據發生變化
        delayus(5);             //延時
        if(SDADATA)
        {
            cy=1;
        }
        else
        {
            cy=0;
        }
        dat |= cy;             //讀數據
        SCL0;                //拉低時鐘線,允許數據變化
        delayus(5);             //延時
    }
    SDAOUT;
    return dat;
}
//MCP4725
//使用快速模式寫命令寫DAC寄存器
void MCP4725_WriteData_Voltage(float Vout)   //電壓單位V
{
    unsigned char temp;
    unsigned int Dn;
    Dn = ( 4096 * Vout)/5;
    temp = (0x0F00 & Dn) >> 8;  //12位數據高字節
   //iic
    I2C_Start();                  //起始信號
    I2C_SendByte(SlaveAddress);   //器件尋址,器件代嗎:1100; 地址位A2,A1,A0為 0 , 1 , 1最后一位為0-> 1100 0010
    I2C_SendByte(temp);            //發送高字節數據
    I2C_SendByte(Dn);             //將低8位送到DAC寄存器
    I2C_Stop();                   //發送停止信號
}


在此只提供部分程序,詳細內容請下載后查看:
另外需要注意:
MCP4725引腳的連接方法:
VCC(VDD):+ 2.7V 至+ 5.5V
SDA:P2.2
SCL:P2.0
GND:接地

硬件連接條件:
1.找到硬件帶芯片的那一面上的三個金屬點,它們分別是GND,A0,VCC。將中間的金屬點連接至VVC金屬點。自此,MCP4725的物理地址變為0xC2。
可使用功能:1.改變MCP4725_WriteData_Voltage(1.21);括號內的數值,即可改變VOUT的輸出電壓。單位為V

proj MCP4725 DAC.zip

83.99 KB, 下載次數: 54, 下載積分: 黑幣 -5

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

使用道具 舉報

沙發
ID:34268 發表于 2023-12-4 16:33 | 只看該作者
樓主這個程序是用什么主控啊
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 激情六月 | 欧美特黄视频 | av网在线观看 | 成人欧美一区二区三区黑人孕妇 | 午夜久久久久久 | 九九热在线观看视频 | 99热伊人| 亚洲综合第一页 | 麻豆视频一区二区 | 美日韩在线 | 精品黑人一区二区三区国语馆 | 亚洲欧美日本在线 | 黄色三级网 | 成人午夜激情视频 | 在线成人免费视频 | 午夜小视频在线观看 | 男人午夜影院 | 免费在线国产 | 亚洲一区成人 | 亚洲精品成人 | 精品一区二区三区在线观看 | 手机在线免费看av | 免费看黄色一级片 | 久久视频在线 | 午夜视频免费观看 | 久久一区二区三区四区 | 免费成人黄色网址 | 亚洲成在线 | 黄色片91 | 国产成人精品一区二区三区四区 | 欧美午夜视频 | 三级免费观看 | 日韩免费在线视频 | 天天干天天插 | 久久免费视频网站 | 亚洲综合日韩 | 色人人 | 免费精品视频 | 一区二区三区在线免费观看 | 激情小说在线视频 | 一级黄色录像片 |