#include<reg51.h> #include<intrins.h> #include<absacc.h> #define uchar unsigned char #define uint unsigned int #define read_addr 0x81 //写配置寄存器时对应的器件地址 #define write_addr 0x80 //读转换结果时对应的器件地址 uchar H_AD; // H_AD用于存储高八位A/D转换结果 uchar L_AD; // L_AD用于存储低八位A/D转换结果 sbit SDA = P1^0; sbit SCL = P1^1; void delay_ms(uint n) { uchar i; while(n--) { for(i=0;i<100;i++); } } void Start(void) { SDA = 1; SCL = 1; _nop_();_nop_();_nop_();_nop_(); SDA = 0; _nop_();_nop_();_nop_();_nop_(); } void Stop(void) { SDA = 0; SCL = 1; _nop_();_nop_();_nop_();_nop_(); SDA = 1; _nop_();_nop_();_nop_();_nop_(); } void slave_ACK(void) { // SDA = 0; // _nop_();_nop_();_nop_();_nop_(); // SCL = 1; // _nop_();_nop_();_nop_();_nop_(); // SCL = 0; uchar i=0; SCL=1; _nop_();_nop_();_nop_();_nop_(); while((SDA==1)&&(i<255)) i++; SCL=0; _nop_();_nop_();_nop_();_nop_(); } void check_ACK(void) { SDA=1; SCL=1; F0=0; if(SDA==1) F0=1; SCL=0; } void ATWriteByte(uchar dat) { uchar i; for(i=0;i<8;i++) { SCL = 0; _nop_();_nop_();_nop_();_nop_(); SDA = ((dat<<i)&0x80)?1:0; SCL = 1; } SCL = 0; } uchar ATReadByte(void) { uchar i,temp = 0; SDA = 1; for(i=0;i<8;i++) { SCL = 0; _nop_();_nop_();_nop_();_nop_(); SCL = 1; _nop_();_nop_();_nop_();_nop_(); temp <<= 1; if(SDA==1) { temp |= 0x01; } } return temp; } void setting_INA226(void) { Start(); ATWriteByte(write_addr); slave_ACK(); ATWriteByte(0x00); slave_ACK(); ATWriteByte(0x42); slave_ACK(); ATWriteByte(0x93); slave_ACK(); ATWriteByte(write_addr); slave_ACK(); ATWriteByte(0x01); slave_ACK(); Stop(); } void READ_INA226(void) { Start(); ATWriteByte(read_addr); slave_ACK(); H_AD=ATReadByte(); check_ACK(); L_AD=ATReadByte(); Stop(); ES=0; SBUF=H_AD; while(TI==0); TI=0; SBUF=L_AD; while(TI==0); TI=0; ES=1; } void init() { TMOD=0x21; TH1=0xfd; TL1=0xfd; TR1=1; SM0=0; SM1=1; REN=1; PS=1; EA=1; ES=1; } void main() { init(); setting_INA226(); READ_INA226(); } 请大神帮忙看看程序把。我的目的是想要测经过一个25毫欧姆的电阻的电流,从想从数据输出寄存器中读出分流电压。
举报
dirtwillfly 发表于 2013-7-5 21:07 没用过INA226,帮顶
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
人才类勋章
等级类勋章
发帖类勋章
时间类勋章
1
3
0
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注电源系统设计
扫码关注21ic项目外包
扫码浏览21ic手机版
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才
京公网安备 11010802024343号