【51单片机】【protues仿真】基于51单片机数控直流稳压电源系统

目录

一、主要功能

二、使用步骤

三、硬件资源

四、软件设计

五、实验现象

一、主要功能

1、数码管显示输出电压值

2、滑动电阻调节输出电压

3、电压输出范围0-15V,步进值1

二、使用步骤

基于51单片机的数控直流稳压电源是一种通过数字控制实现电压调节的智能化电源系统,其核心设计结合了单片机控制、D/A转换、稳压电路。

三、硬件资源

1、51单片机核心模块

2、按键模块

3、数模转换模块

4、放大电路模块

5、模数转换模块

6、数码管显示模块

四、软件设计

#include<reg51.h>

#include<absacc.h>

#define dac0832 XBYTE[0X7fff]

unsigned char code shu[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

float s;

sbit ALE=P3^0;

sbit START=P3^1;

sbit EOC=P3^2;

sbit OE=P3^3;

sbit SHCP=P2^0;

sbit DS=P2^1;

sbit STCP=P2^2;

sbit P11=P3^5;

sbit P12=P3^7;

sbit clk=P2^6;

unsigned char j,k,m,n,i,a;

unsigned int b;

void delay(unsigned char t)

{ while(t--);

}

void display()

{

j=0x01;

for(i=0;i<8;i++)

{ if((shu[m]&j)==0)

{ DS=0;}

else {DS=1;}

SHCP=1;

SHCP=0;

j<<=1;

}

P12=0;

P11=1;

STCP=0;

STCP=1;

delay(200);

j=0x01;

for(i=0;i<8;i++)

{ if((shu[n]&j)==0)

{ DS=0;}

else {DS=1;}

SHCP=1;

SHCP=0;

j<<=1;

}

P11=0;

P12=1;

STCP=0;

STCP=1;

delay(200);

}

void main()

{

P2=0X87;

TMOD=0X20;

TH1=0X06;

TL1=0X06;

EA=1;

ET1=1;

TR1=1;

while(1)

{

ALE=1;

ALE=0;

START=1;

START=0;

while(EOC==0);

OE=1;

k=P1;

a=P1;

b=a*6;

m=b/1000;

n=b%1000/100;

dac0832=k;

display();

}

}

五、实验现象

演示视频:

相关推荐
小年糕是糕手4 分钟前
【C语言】函数栈帧的创建和销毁
java·c语言·开发语言·数据结构·c++·链表
物随心转15 分钟前
ARM的中断模式与快速中断模式
嵌入式硬件
TU^40 分钟前
C语言习题~day27
c语言·数据结构·算法
Wind哥1 小时前
VS Code搭建C/C++开发调试环境-Windows
c语言·开发语言·c++·visual studio code
朱嘉鼎2 小时前
寄存器编写LED程序
stm32·单片机·架构·keilmdk
喵了meme2 小时前
Linux学习日记6:文件IO与标准IO
linux·c语言·学习
杨福瑞3 小时前
数据结构:顺序表讲解(总)
c语言·数据结构
点灯小铭3 小时前
基于单片机的智能厨房环境控制系统设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
LS_learner7 小时前
运放的虚短和虚断
嵌入式硬件
Jane-6667779 小时前
C语言——栈与队列
c语言·开发语言