【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 XBYTE0X7fff

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((shum&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((shun&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();

}

}

五、实验现象

演示视频:

相关推荐
广药门徒3 小时前
虚拟机联网20260725
嵌入式硬件
2601_951644323 小时前
C语言二级备考指南
c语言·编程基础·编译环境·二级考试·题库选择
国产化创客4 小时前
Kindle 嵌入式交叉开发环境
嵌入式硬件·智能硬件
szxinmai主板定制专家6 小时前
RK3568+FPGA高速并行采集|半导体探针测试设备多通道同步数据采集系统设计
人工智能·嵌入式硬件·计算机视觉·fpga开发
日拱一卒——功不唐捐7 小时前
红黑树删除(C语言)
c语言·数据结构
Dlrb12118 小时前
ARM---I2C协议时序详解以及IMX6ULL使用I2C协议与AT24C02,LM75A芯片通信详解与示例代码
嵌入式硬件·arm·lm75a·i2c协议·at24c02·i2c时序
周洲083010 小时前
STM32独立/窗口看门狗完整配置|防止程序跑飞死机、异常复位
stm32·单片机·嵌入式硬件
论迹复利11 小时前
多平台移植 BTBLE Stack 的思路与踩坑实战——从 Ceva IP 到厂商适配层的迁移指南
嵌入式硬件·物联网·架构
ziguo112211 小时前
C/C++ 错误处理全解:从 errno 到 C++ 异常
linux·c语言·c++·windows·visual studio
SUNNYSPY00111 小时前
30N03DF-ASEMI扫地机器人主驱动30N03DF
单片机