找回密码
 立即注册

QQ登录

只需一步,快速开始

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

TLC2543 AD转换电压程序

[复制链接]
跳转到指定楼层
楼主
ID:307669 发表于 2019-1-26 10:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
通过SPI用51单片机和TLC2543进行AD转换读取电压值

单片机源程序如下:
  1. #include "reg52.h"
  2. #include"intrins.h"
  3. //void Delay500ms();                //@11.0592MHz
  4. unsigned int AD_Read()  ;
  5. //void Delay10us();                //@11.0592MHz
  6. //void Delay3000ms();                //@11.0592MHz
  7. sbit SCK= P1^0;
  8. sbit RES_CS= P1^1;
  9. sbit DI = P1^2;
  10. sbit DO = P1^3;
  11. code unsigned char seg[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};  //0-9段码显示
  12. int main()
  13. {
  14.         unsigned char j,a,aa,aaa,aaaa;
  15.         unsigned int advalue=0;
  16.         float value;
  17.         while(1)
  18.         {  
  19.          advalue=AD_Read();
  20. //         value=(advalue*5)/65536.0;
  21. //         advalue=value*10000;
  22.          a=advalue%10;
  23.             advalue=advalue/10;
  24.          aa=advalue%10;
  25.          advalue=advalue/10;
  26.          aaa=advalue%10;
  27.          aaaa=advalue/10;

  28.          P3=0xfe;
  29.                 P2=~seg[aaaa];
  30.                 for(j=0;j<100;j++);
  31.                 P3=0xfd;
  32.                 P2=~seg[aaa];
  33.                 for(j=0;j<100;j++);
  34.                 P3=0xfb;
  35.                 P2=~seg[aa];
  36.                 for(j=0;j<100;j++);
  37.                 P3=0xf7;
  38.                 P2=~seg[a];
  39.                 for(j=0;j<100;j++);

  40.         }
  41. }


  42. unsigned int AD_Read()
  43. {
  44. unsigned char i,j,command=0x0c;
  45. unsigned int value;
  46. RES_CS = 1;
  47. _nop_();
  48. SCK = 0;
  49. _nop_();
  50. RES_CS = 0;
  51. _nop_();
  52. for(i=8;i>0;i--)
  53. {
  54. command <<= 1;
  55. DI = CY;                      //CY为状态寄存器进位标志位,将command的最高位赋给DI
  56. _nop_();
  57. SCK = 1;
  58. _nop_();
  59. SCK = 0;
  60. _nop_();
  61. value=value<<1;
  62. j=DO;
  63.         if(j==1)
  64.         {
  65.                 value|=0x01;
  66.         }
  67. }
  68. for(i=8;i>0;i--)
  69. {
  70. _nop_();
  71. SCK = 1;
  72. _nop_();
  73. SCK = 0;
  74. _nop_();
  75. value=value<<1;
  76. j=DO;
  77.         if(j==1)
  78.         {
  79.                 value|=0x01;
  80.         }
  81. }
  82. return value;

  83. }
复制代码

所有资料51hei提供下载:
TLC2543 SPI通信.zip (31.82 KB, 下载次数: 16)


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

使用道具 举报

沙发
ID:1 发表于 2019-1-26 15:32 | 只看该作者
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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