新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > proteus 仿真AD5241程序。。8位數字電位計

        proteus 仿真AD5241程序。。8位數字電位計

        作者: 時間:2016-11-13 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/201611/316373.htm

        #include
        #include
        #include
        #include "skey.c"
        #define uchar unsigned char
        #define uint unsigned int
        #define START 0X08
        #define MT_SLA_ACK 0X18
        #define MT_SLA_NOACK 0X20
        #define MT_DATA_ACK 0X28
        #define MT_DATA_NOACK 0X30

        #define Start() (TWCR=(1<#define Stop() (TWCR=(1<#define Wait() while(!(TWCR&(1<#define TestACK() (TWSR&0xF8) //取出狀態碼
        #define SetACK() (TWCR|=(1<#define Writebyte(twi_d) {TWDR=(twi_d);TWCR=(1<


        void twi_init()
        {
        TWBR=0X20;
        TWSR=0;
        TWCR=0X44;//時能twi應答。twi使能

        }
        //手冊172頁
        uchar AD5241_writeB(uchar devadd,uchar cmd,uchar rdata)
        {
        Start();
        Wait();
        if(TestACK()!=START)
        return 0;
        Writebyte(devadd);

        Wait();
        if(TestACK()!=MT_SLA_ACK)
        return 0;

        Writebyte(cmd);
        Wait();
        if(TestACK()!=MT_DATA_ACK)
        return 0;
        Writebyte(rdata);
        Wait();
        if(TestACK()!=MT_DATA_ACK)
        return 0;

        Stop();
        delay(10);
        return 1;

        }

        void main()
        {
        uchar i,data=128;
        twi_init();
        AD5241_writeB(0x58,0x10,0);
        delay(10);
        AD5241_writeB(0x58,0x10,data);//
        while(1)

        {
        if(key_press())
        {
        i=key_scan();
        switch(i)
        {
        case 0:
        data-=16;break;
        case 1:
        data+=16;break;
        case 2:
        data=0;break;
        case 3:
        data=255;break;

        }
        }
        AD5241_writeB(0x58,0,data);


        }
        }



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 大姚县| 黄大仙区| 本溪| 碌曲县| 奎屯市| 凌云县| 临江市| 桃江县| 长武县| 额尔古纳市| 白水县| 左云县| 古田县| 沂水县| 大新县| 罗江县| 德格县| 威远县| 金乡县| 邛崃市| 潮州市| 莱芜市| 崇礼县| 毕节市| 宝丰县| 繁峙县| 哈密市| 荆门市| 桐乡市| 长阳| 邵武市| 乌恰县| 阜南县| 石屏县| 乐陵市| 文昌市| 沙田区| 隆化县| 舒城县| 巴东县| 金沙县|