找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1003|回复: 0
打印 上一主题 下一主题
收起左侧

AD1100.h单片机驱动源码

[复制链接]
跳转到指定楼层
楼主
ID:618096 发表于 2019-9-29 17:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
仅供学习

单片机源程序如下:
  1. #include<intrins.h>  
  2. sbit SDA=P1^0;
  3. sbit SCL=P1^1;
  4. #define VREF 5.0
  5. /****************开始位********************/
  6. void start()

  7. {
  8.         SDA = 1;   
  9.         SCL = 1;   
  10. delaynus(50);   
  11.         SDA = 0;   
  12. delaynus(50);      
  13.         SCL = 0;   
  14. }
  15. // 停止位
  16. void stop()

  17. {
  18.         SDA = 0;   
  19. delaynus(50);      
  20.         SCL = 1;     
  21. delaynus(50);      
  22.         SDA = 1;   
  23. }
  24. bit ACK()
  25. {
  26.    bit ack_bit;
  27.         SCL = 1;      
  28. delaynus(50);        
  29.         ack_bit = SDA;                       
  30.         SCL = 0;
  31.         return ack_bit;
  32. }

  33. unsigned char ReadData()

  34. {
  35.         unsigned char i;
  36.         unsigned char x;   
  37.         for(i = 0; i < 8; i++)
  38.         {
  39.                 SCL = 1;               
  40.                 x<<=1;                  
  41.                 x|=(unsigned char)SDA;  
  42.                 SCL = 0;                       
  43.         }
  44.         return(x);               
  45. }

  46. void WriteCurrent(unsigned char y)
  47. {
  48.         unsigned char i;            
  49.         for(i = 0; i < 8; i++)               
  50.         {
  51.             SDA = (bit)(y&0x80);                                                   
  52. delaynus(50);           
  53.            SCL = 1;               
  54. delaynus(50);  
  55.                   SCL = 0;           
  56.                 y <<= 1;           
  57.         }

  58. }

  59. float ReadVoltage()
  60. {
  61. unsigned char dat1,dat2;
  62. unsigned int dat3;
  63. start();
  64. WriteCurrent(0x97);
  65. ACK();
  66. dat1=ReadData();
  67.   ACK();
  68. dat2=ReadData();
  69. ACK();
  70. dat3=ReadData();
  71. ACK();
  72. stop();
  73. delay(20);
  74. dat3=(int)(dat1*256+dat2);
  75.   return (dat3*VREF/32768);
  76. }
  77. /*
  78. *配置寄存器
  79. *BIT  7      6      5      4     3      2      1      0
  80. *   ST/BSY          0                 0                SC         |DR1  DR0|   |PGA1   PGA0|
  81. */
  82. void AD1100_initi(unsigned char com)
  83. {

  84. start();
  85. WriteCurrent(0x96);
  86. ACK();
  87. WriteCurrent(com);
  88. ACK();
  89. stop();
  90. delay(10);
  91. }
复制代码

所有资料51hei提供下载:
AD1100.zip (56.68 KB, 下载次数: 5)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表