找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8101|回复: 7
收起左侧

一种精密的数控直流电流源 Proteus仿真图加单片机程序

  [复制链接]
ID:204264 发表于 2017-5-24 13:36 | 显示全部楼层 |阅读模式
精密数控直流电流源仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png 0.png

单片机源程序如下:
  1. #include<reg51.h>
  2. #include<absacc.h>                                   //头文件,可使用其中定义的宏来访问绝对地址   
  3. #define  dac0832 XBYTE[0X7fff]            //定义dac端口地址,P0口为地址的低8位,P2口为地址的高8位,0x7fff让P2.7=0,其余为1
  4. unsigned char code shu[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x7f};        //数码管段码
  5. unsigned char code sho[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x7f};  //带小数点的七段码
  6. float s;
  7. sbit ALE=P3^0;                 //DAC0832 ALE脚工作脉冲位定义
  8. sbit START=P3^1;         //DAC0832 START位定义
  9. sbit EOC=P3^2;                 //转换结束标志位
  10. sbit OE=P3^3;                 //输出允许位
  11. sbit SHCP=P2^0;                 //数码管驱动芯片(如595)位定义
  12. sbit DS=P2^1;                 //同上
  13. sbit STCP=P2^2;                  //同上
  14. sbit P11=P3^5;
  15. sbit P12=P3^7;
  16. sbit clk=P2^6;                 //DAC0832 工作脉冲
  17. unsigned char j,k,m,n,i,a,l;           //定义变量
  18. unsigned int b;

  19. void delay(unsigned char t)      //延时程序     
  20.   {
  21.    while(t--);
  22.    }

  23. void display()                                   //静态数码管显示程序
  24. {
  25.    
  26.          
  27.   
  28.   j=0x01;                                          //74HC595 把数据从串口导入输出,点亮数码管过程。
  29.   for(i=0;i<8;i++)
  30.   {
  31.       if((sho[m]&j)==0)                  //带小数点数组输出数码管七段码。
  32.        {
  33.              DS=0;                                //移位寄存器的内容到达保持寄存器并从并口输出,空移位寄存器到输出寄存器
  34.            }
  35.       else
  36.            {
  37.              DS=1;                //逻辑高电平移入移位寄存器状态0,包含所有的移位寄存器状态 移入
  38.            }
  39.     SHCP=1;
  40.     SHCP=0;
  41.       j<<=1;        //j的数值左移一位
  42.    }       
  43.         P12=0;                 //RD 低电平
  44.     P11=1;                 //T1 高电平
  45.     STCP=0;                          //STCP置为上升沿
  46.     STCP=1;

  47.     delay(200);


  48.     j=0x01;
  49.   for(i=0;i<8;i++)
  50.      {
  51.           if((shu[n]&j)==0)
  52.        {
  53.             DS=0;                                //清空移位寄存器,并行输出为高阻状态
  54.                 }
  55.       else
  56.        {
  57.             DS=1;
  58.            }
  59.      SHCP=1;                         //端口下降沿,下降沿移位寄存器数据不变
  60.      SHCP=0;          
  61.      j<<=1;
  62.      }
  63.            P11=0;                         //T1 高电平
  64.     P12=1;                         //RD 低电平
  65.     STCP=0;                         //STCP置为上升沿
  66.     STCP=1;
  67.     delay(200);                //调用延时程序
  68.     }
  69.   

  70. void main()               //主函数
  71. {
  72.    P2=0X87;
  73.    TMOD=0X20;                         //定时器1初始化
  74.    TH1=0X06;
  75.    TL1=0X06;
  76.    EA=1;                                //总中断允许
  77.    ET1=1;
  78.    TR1=1;

  79.    while(1)                //循环程序
  80.    {
  81.    ALE=1;                //DAC0832地址锁存脉冲
  82.    ALE=0;
  83.    //DAC0832 开始转换脉冲
  84.    START=1;                 //ADC0808脉冲,置 START引脚为下降沿。
  85.    START=0;                 //ST下降沿,开始进行模数转换。
  86.    while(EOC==0);  //等待转换完毕, A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
  87.    OE=1;                    //开始读,数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
  88.    k=P1;                    //读数据,数据从ADC0808 读入 AT89C51     
  89.    a=P1;                        //读数据, 转换好的数据存放在P1口。
  90.    b=a*3.9;                        //平衡模数转换输出的数值用来通过单片机进行给数码管显示。
  91.    m=b%1000/100;                 //取千位数
  92.    n=b%100/10;          //取百位数
  93.    //l=b%1000/100/10          //取十位数

  94.    dac0832=k;
  95.   
  96. ……………………

  97. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
数控直流稳压电源proteus仿真 程序资料.zip (108.47 KB, 下载次数: 221)
回复

使用道具 举报

ID:163623 发表于 2018-4-8 22:39 | 显示全部楼层
这是电流源?
回复

使用道具 举报

ID:168453 发表于 2019-5-27 09:50 | 显示全部楼层
非常好,是我的需要
回复

使用道具 举报

ID:432192 发表于 2019-5-27 12:18 | 显示全部楼层
牛逼啊,顶楼主
回复

使用道具 举报

ID:168453 发表于 2019-5-27 18:03 | 显示全部楼层
我已经下载了,挺好的
回复

使用道具 举报

ID:564445 发表于 2019-6-20 00:16 | 显示全部楼层
感谢分享,下载测试测试
回复

使用道具 举报

ID:871264 发表于 2020-12-30 22:18 来自手机 | 显示全部楼层
终于找到了,对数控恒流源没有一点头绪
回复

使用道具 举报

ID:70035 发表于 2021-5-29 10:29 | 显示全部楼层
可用。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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