找回密码
 立即注册

QQ登录

只需一步,快速开始

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

基于51单片机的数控电源全部资料分享

  [复制链接]
跳转到指定楼层
楼主
制作出来的实物图如下:


数控电源电路原理图如下:


单片机数控电源源程序:
  1. #include "reg52.h"

  2. //宏定义
  3. #define uchar unsigned char
  4. #define uint  unsigned int

  5. //按键定义
  6. sbit KEY1= P2^0;
  7. sbit KEY2= P2^1;
  8. sbit KEY3= P2^2;
  9. sbit KEY4= P2^3;

  10. //数码管定义
  11. sbit W1= P2^4;
  12. sbit W2= P2^5;
  13. sbit W3= P2^6;
  14. sbit W4= P2^7;

  15. //DAC定义
  16. sbit  CS_5615=P3^2;
  17. sbit CLK_5615=P3^3;
  18. sbit DAT_5615=P3^4;

  19. //报警指示定义
  20. sbit beep = P3^6;
  21. sbit Duan = P3^7;

  22. uint  U;
  23. bit flag=0;
  24. uint  a=0;

  25. uchar code table[]=
  26. {
  27.         0xC0,/*0*/
  28.         0xF9,/*1*/
  29.         0xA4,/*2*/
  30.         0xB0,/*3*/
  31.         0x99,/*4*/
  32.         0x92,/*5*/
  33.         0x82,/*6*/
  34.         0xF8,/*7*/
  35.         0x80,/*8*/
  36.         0x90,/*9*/

  37. };        //共阳数码管段码表        没有小数点 0~9



  38. void delay_ms(uint z)                          //延时函数
  39. {
  40.   uint a,b;
  41.   for(a=z;a>0;a--)
  42.   for(b=125;b>0;b--);
  43. }

  44. void  shuma(uint buf)
  45. {
  46.         P0=table[buf%1000/100];
  47.         W1=0;
  48.         delay_ms(1);
  49.     P0=0xff;
  50.         W1=1;

  51.         P0=table[buf%100/10]&0x7f;
  52.     W2=0;
  53.         delay_ms(1);
  54.         P0=0xff;
  55.         W2=1;

  56.         P0=table[buf%10];
  57.         W3=0;
  58.         delay_ms(1);
  59.         P0=0xff;
  60.         W3=1;

  61.         P0=0xC1;
  62.         W4=0;
  63.         delay_ms(1);
  64.         P0=0xff;
  65.         W4=1;
  66. }

  67. void tlc_5615(uint buf)
  68. {
  69.         uint a,c;
  70.         c=buf;   
  71.     CS_5615=0;
  72.         for(a=16;a>0;a--)
  73.         {
  74.          DAT_5615=c>>15;      
  75.          c=c<<1;
  76.          CLK_5615=1;
  77.          CLK_5615=0;               
  78.     }
  79.         CLK_5615=1;
  80.         CLK_5615=0;
  81.         CLK_5615=1;
  82.         CLK_5615=0;
  83.         CS_5615=1;
  84. }

  85. //主函数
  86. void main(void)
  87.    {
  88.         U=0;
  89.         beep=0;
  90.         delay_ms(300);
  91.         beep=1;
  92.         while(1)
  93.         {
  94.                 tlc_5615(U*10);
  95.                 shuma(U);
  96.                 if(flag==0)
  97.                 {
  98.                         if(KEY1==0)
  99.                         {
  100.                                   delay_ms(5);
  101.                                 if(KEY1==0)
  102.                                 {
  103.                                  while(!KEY1);
  104.                                  if(U<120)U++;
  105.                                 }      
  106.                         }
  107.                         if(KEY2==0)
  108.                         {
  109.                         delay_ms(5);
  110.                         if(KEY2==0)
  111.                           {
  112.                             while(!KEY2);
  113.                                 if(U>0) U--;
  114.                           }
  115.                         }                       
  116.                         if(KEY3==0)
  117.                         {
  118.                         if(KEY3==0)
  119.                                 {
  120.                                         U=50;      
  121.                                 }      
  122.                         }      
  123.                         if(KEY4==0)
  124.                            {
  125.                        
  126.                            if(KEY4==0)
  127.                                 {
  128.                                  U=0;
  129.                                 }      
  130.                               }
  131.                 }
  132.                 if(Duan==0)
  133.                 {
  134.                         delay_ms(10);
  135.                         if(Duan==0)
  136.                         {
  137.                                 flag=1; //过流标志置高
  138.                                 beep=0;
  139.                                 U=0;
  140.                                 tlc_5615(0);      
  141.                         }
  142.                    else
  143.                      {
  144.                           beep=1;
  145.                          }               
  146.                 }                       
  147.         }
  148. }

复制代码


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:502198 发表于 2019-4-22 11:01 | 只看该作者
楼主有这个仿真图嘛,我老是画不对劲
回复

使用道具 举报

板凳
ID:438506 发表于 2019-4-24 10:50 | 只看该作者
楼主求个全部资料 谢谢
回复

使用道具 举报

地板
ID:520127 发表于 2019-4-24 10:59 | 只看该作者
感谢楼主的分享
回复

使用道具 举报

5#
ID:91476 发表于 2019-5-9 22:12 | 只看该作者
有时间学习下
回复

使用道具 举报

6#
ID:56665 发表于 2019-5-10 08:36 | 只看该作者
这种资料要定要带完整原理图和源程序,不然做成产品也调不通。
回复

使用道具 举报

7#
ID:643576 发表于 2019-11-20 21:18 | 只看该作者
谢谢分享
回复

使用道具 举报

8#
ID:629731 发表于 2019-11-24 13:08 | 只看该作者
好东西
回复

使用道具 举报

9#
ID:648939 发表于 2019-11-25 11:09 | 只看该作者
谢谢分享
回复

使用道具 举报

10#
ID:90069 发表于 2020-3-7 10:53 | 只看该作者
楼主求个全部资料 谢谢
回复

使用道具 举报

11#
ID:303894 发表于 2020-3-11 11:40 | 只看该作者
谢谢分享
回复

使用道具 举报

12#
ID:435715 发表于 2020-4-5 12:10 | 只看该作者
感谢大佬,不过想问问大佬有源文件嘛,我画的图经常报错。
回复

使用道具 举报

13#
ID:586915 发表于 2021-11-29 16:23 | 只看该作者
这样的降压效率太低发热量太大 还是用BUCK 的靠谱
回复

使用道具 举报

14#
ID:982495 发表于 2021-11-30 08:28 | 只看该作者
键控改成编码器是不是更好用点呢?
回复

使用道具 举报

15#
ID:321563 发表于 2021-12-24 17:58 | 只看该作者
做得成功呀,我就经常做了卖
回复

使用道具 举报

16#
ID:128989 发表于 2022-3-20 00:58 | 只看该作者
不错的电源
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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