design-of-dc-regulated-power-supply.rar

  • PUDN用户
    了解作者
  • C#
    开发工具
  • 6.3MB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 2
    下载次数
  • 2015-10-15 10:59
    上传日期
单片机设计一种单极性可调精密直流稳压电源。从总体方案的选择、各主要模块的选择及优劣、简便可行性等分析对比论证。
design-of-dc-regulated-power-supply.rar
  • 电子实验-单极性可调精密直流稳压电源
  • 单极性可调精密直流稳压电源.wps
    6.6MB
  • 单极性可调精密直流稳压电源.c
    2.6KB
内容介绍
#include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit led1=P2^5; sbit led2=P2^6; sbit led3=P2^7; sbit key1=P2^0; sbit key2=P2^1; sbit key3=P2^2; uchar shishu1,shishu2,shishu3; uint voltage=0; uchar code sund[]="I get "; uint flag,a,i,t,BUF[10]; uchar code table_dian[]{0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0e}; //带点的显示位,只需下面表不带点减去80H ,显示最高位带点 uchar code table[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e }; void delayms(uint xms) { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } void display(uint vol) { shishu3=vol%100/10;//最低位 shishu2=vol%1000/100;//次高位 shishu1=vol/1000;//最高位 led3=1; led2=1; led1=1;//数码管三位均选通 P1=table_dian[shishu1];//带点显示最高位 led1=0;//最高位数码管位选不通 delayms(5); led3=1; led2=1; led1=1; P1=table[shishu2]; led2=0; delayms(5); led3=1; led2=1; led1=1; P1=table[shishu3]; led3=0; delayms(5); } void key_scan() { if(key1==0) { delayms(5);//大于5ms的按键时间 if(key1==0) {while(key1==0); voltage+=20;//步进20mV, } }/**/ if(key2==0) { delayms(5); if(key2==0) {while(key2==0); voltage+=100;//步进100mV } } if(key3==0) { delayms(5); if(key3==0) {while(key3==0); voltage+=1000;//步进1000mV=1V } } } void init() { TMOD=0x21; TH1=0xfd; TL1=0xfd;//计数器1的 TH0=(65536-20000)/256; TL0=(65536-20000)%256;//计数器0的计数初值 ET0=0; TR0=0; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1; } void chuankou() { if(flag==1) { ES=0;//关闭串口中断 for(i=0;i<6;i++)//发送I GET { SBUF=sund[i]; while(!TI); TI=0; } voltage=1000*(BUF[1]-0X30)+100*(BUF[3]-0X30)+10*(BUF[0]-0X30); SBUF=BUF[1]; while(!TI); TI=0; SBUF=BUF[2]; while(!TI); TI=0; SBUF=BUF[3]; while(!TI); TI=0; SBUF=BUF[0]; while(!TI); TI=0; ES=1; flag=0; } } void main() { init(); while(1) { key_scan(); chuankou(); if(voltage>5000)voltage=0;//电压范围限制在5V P0=(double)voltage/5000*255;//接DA0832 //外加 display(voltage); } } void delay() interrupt 4 { if(RI==1) { BUF[t]=SBUF;//接受数据给a RI=0; t++; } if(TI)TI=0; if(t==4) { t=0; flag=1; } } void T0_time() interrupt 1 { TH0=(65536-20000)/256; TL0=(65536-20000)%256; display(voltage); }
评论
    相关推荐
    • 1.rar
      文中给出了系统设计框图,对各部分电路进行了分析,并给出了必要的实验波形,经测试证实设计方法是可行的。将成熟的单片机技术与现有的开关电源技术进行简单结合实现数控,值得借鉴。 叙词:数控开关电源 不对称半桥...
    • cd4ef1.ZIP
      基于dq变换的三相电压暂降生成方法Based on the dq transform three-phase voltage sag generating method
    • asdf.rar
      数控直流稳压电源的设计,实现了以0.1V为单位步进的功能
    • 基于SVPWM的永磁同步电机控制器设计_梁永忠.rar
      svpwm实现论文,对svpwm理论进行详细的讲解,并在matlab中构建模型。
    • danpianji.zip
      2. 选用4位LED数码显示,计数时间0-9999s,定时时间可调; 3. 硬件设计根据设计的任务选定合适的单片机,根据控制对象设计接口电路。设计的单元电路必须有工作原理,器件的作用,分析和计算过程; 4. 软件设计根据...
    • 1xy7z.ZIP
      用于驱动无刷直流电机的矩阵变换器控制策略For driving brushless DC motor control strategy of matrix converter
    • 1_1715285341.rar
      智能小车的总体设计,电源的参考方案,驱动设计,传感器的实现方案。
    • alarm.rar
      关于舱底水报警装置的资料,很宝贵的,对于设计者很有帮助
    • 6counter.rar
      六进制计数器,输入必需是二进制数.用555定时器来产生1HZ的信号脉冲,作为CP的输入信号
    • TTF.rar
      Windows TTF字体格式结构及读取源程序,通过简单修改就可以用在自己的程序中。