3183|8

13

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

跪求!求助protues高手帮忙啊 [复制链接]

)设计要求

基本要求

a. 输出电压:范围0~+9.9V,步进0.1V,纹波不大于10mV

b. 输出电流:500mA

c. 输出电压值由数码管显示;

d. 两键分别控制输出电压步进增减;

e. 为实现上述几部件工作,自制一稳压直流电源,输出±15V,+5V

发挥部分

a. 输出电压可预置在09.9V之间的任意一个值;

b. 用自动扫描代替人工按键,实现输出电压变化(步进0.1V不变);

c. 扩展输出电压种类(比如三角波等)。

 

 

搞了几天还是出不了结果,头都大了,这是我们的课程设计,周五就交了,4个学分。现在真急人。protues是刚学不久的,还不是很明白,请会做的的看看我的接线图哪里错了,真不胜感激啊。如果可以,能帮我改后发到我邮箱吗564686052@qq.com            真的万分感谢啊!拜谢!

简易数控直流电源.rar

24.82 KB, 下载次数: 5

DSN文件及程序

最新回复

用DSP的???发在DSP板块了  详情 回复 发表于 2011-12-21 18:08
 
点赞 关注

回复
举报

13

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

回复 楼主 lq812008 的帖子

有人能帮帮忙吗,真不胜感激啊
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

回复 沙发 lq812008 的帖子

跪求了
 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

4
 

回复 楼主 lq812008 的帖子

#include
#include
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77};
uchar data tab[2];
uchar ws[2]={0,0};
uchar code table2[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7};
uchar code tablewei[]={0x0e,0x0d};

sbit dula=P1^5;
sbit dawr=P2^6;//DA写数据段
sbit dacs=P2^7;//DA始能段

uchar num1,f,f1,f2,f3,f4,f5,f6,keynum;
//f为数字键标志位;f1为DA转换标志位;f2,f4分别为+,-0.1标志位;f3为清零标志位
void delay(uint z)//延时子程序
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
void display(uint number)//显示LED
{  
     
       uchar i,j;
       tab[0]=number%10;
       tab[1]=number/10;
        for(i=0,j=0;i<2;i++,j++)
     {   
         
         dula=1;
         P2=tablewei[j];
         if(i==0)
         P0=table[tab];
         else
         P0=table2[tab];
         dula=0;
         delay(5);
     }

}
keyscan()//键盘扫描
{
   uchar num,tt;
   P1=0xfe;
   tt=P1;
   tt=tt&0xf0;
   while(tt!=0xf0)  // 检查按键是否被摁下
   {
              delay(50);
              tt=P1;
              tt=tt&0xf0;
                     while(tt!=0xf0)  // 检查按键是否被摁下
                    {   
                                 tt=P1;
                  switch(tt)
                                 {
                                         case 0xee: num=7,f=1;
                                    break;
                                         case 0xde: num=8;f=1;
                                    break;
                                         case 0xbe: num=9;f=1;
                                    break;
                                         case 0x7e: num='0';f3=1;//清零按键   
                                    break;
                    default:break;                                        
                        }
               while(tt!=0xf0)
                {
                   tt=P1;
                   tt=tt&0xf0;
                }

             }
      
   }
   P1=0xfd;
   tt=P1;
   tt=tt&0xf0;
   while(tt!=0xf0)  // 检查按键是否被摁下
   {
              delay(50);
              tt=P1;
              tt=tt&0xf0;
                     while(tt!=0xf0)  // 检查按键是否被摁下
                    {
                                 tt=P1;
                  switch(tt)
                                 {
                                         case 0xed: num=4;f=1;
                                    break;
                                         case 0xdd: num=5;f=1;
                                    break;
                                         case 0xbd: num=6;f=1;
                                    break;
                                         case 0x7d: num=14;f4=1;//减0.1按键
                                    break;
                     default:break;
                         }
              while(tt!=0xf0)
                {
                   tt=P1;
                   tt=tt&0xf0;
                }               

            }
      
   }
   P1=0xfb;
   tt=P1;
   tt=tt&0xf0;
   while(tt!=0xf0)  // 检查按键是否被摁下
   {
              delay(50);
              tt=P1;
              tt=tt&0xf0;
                     while(tt!=0xf0)  // 检查按键是否被摁下
                    {
                                 tt=P1;
                  switch(tt)
                                 {
                                         case 0xeb: num=1;f=1;
                                    break;
                                         case 0xdb: num=2;f=1;
                                    break;
                                         case 0xbb: num=3;f=1;
                                    break;
                                         case 0x7b: num='+';f2=1;//加0.1按键
                                    break;
                        default:break;
                        }
              while(tt!=0xf0)
                {
                   tt=P1;
                   tt=tt&0xf0;
                }

             }
      
   }
   P1=0xf7;
   tt=P1;
   tt=tt&0xf0;
   while(tt!=0xf0)  // 检查按键是否被摁下
   {
              delay(50);
              tt=P1;
              tt=tt&0xf0;
                     while(tt!=0xf0)  // 检查按键是否被摁下
                    {
                                 tt=P1;
                  switch(tt)
                                 {
                                         case 0xe7: num=0;f=1;
                                    break;
                                         case 0xd7: num=10;f1=1;//确认DA转换按键
                                    break;
                                         case 0xb7: num=11;f5=1;
                                    break;
                                         case 0x77: num=12;f6=1;
                                    break;
                    default:break;

                        }
              while(tt!=0xf0)
                {
                   tt=P1;
                   tt=tt&0xf0;
                }
               
           }
      
   }
   return(num);
}

void jishu()//预置电压值
{      
       keynum=keyscan();
       if(f==1)
        {  
           f=0;
           num1=num1*10+keynum;
        }
}

void change()//DA转换
{
    if(f1==1)
    {
       P3=(uchar)(256*num1/100);
       delay(100);
    }
}

void up_down_clear()//加减0.1和清零
{
    if(f2==1)
    {
      f2=0;
      num1++;
    }
    if(f4==1)
    {
     f4=0;
     num1--;
    }
    if(f3==1)
    {
      f3=0;
      num1=0;
    }
}

void up_down_1()//加减1
{
  if(f5==1)
    {
      f5=0;
      num1=num1+10;
    }
    if(f6==1)
    {
      f6=0;
      num1=num1-10;
    }
}
void main()
{  
   dawr=0;
   dacs=0;
   P3=0;
   while(1)
   {   

       jishu();
       up_down_clear() ;
       up_down_1();      
       display(num1);      
       change();
      
   }
}
 
 
 

回复

2606

帖子

0

TA的资源

五彩晶圆(初级)

5
 
没用过啊。毕业设计,其实可以去向你们的导师请教下
 
个人签名工程 = 数学+物理+经济
 
 

回复

82

帖子

0

TA的资源

一粒金砂(中级)

6
 
好 我回来看看
 
 
 

回复

7228

帖子

192

TA的资源

五彩晶圆(高级)

7
 
用DSP的???发在DSP板块了
 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

8
 

回复 6楼 eeboyok 的帖子

多谢,多谢
 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

9
 

回复 5楼 安_然 的帖子

不是毕业设计,是课程设计,2个周完成,后天验收答辩了。所以才急人
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表