35 基于单片机的精确电压表DA-AD转换
目录
一、主要功能
二、硬件资源
三、程序编程
四、实现现象
一、主要功能
基于51单片机,采用DAC0832和ADC0832检测电压,0到8.5V,设计复位电路
LED管显示实际稳压值,初始电压0
二、硬件资源
基于KEIL5编写C++代码,PROTEUS8.15进行仿真,全部资源在页尾,提供安装包。
编辑
三、程序编程
#include <REGX52.H>#include<intrins.h> //定义头文件#include<stdio.h> //定义头文件#define uchar unsigned char#define uchar unsigned char#define uchar unsigned char //定义变量#define uint unsigned int //定义变量//管脚定义sbit jia=P1^6;sbit jian=P1^7;sbit LED1=P3^4;sbit LED2=P3^5;sbit LED3=P3^6;sbit LED4=P3^7;sbit CS=P3^0; //adc0832引脚sbit CLK=P3^1; //adc0832引脚sbit DIO=P3^2; //adc0832引脚//函数声明 void delay(void); //延时 void key(void); //按键void add01(void); //步进加0.1void dec01(void); //步进减0.1void add1(void); //步进加1void dec1(void); //步进减1void shuchu(void); //显示输出和电压调节void DA(void); //模数转换void beepwarning(int n);uchar a\[11\]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x8c}; static unsigned char bw=0,sw=0,gw=0,dw=0; static unsigned char fvol=00; static int number=0; static unsigned char st=0;uchar get\_AD\_Res() //ADC0832启动读取函数{uchar i, data1=0, data2=0; //赋值变量CS=0; //CS赋值低电平CLK=0;DIO=1;\_nop\_(); //赋值变量 并且等待CLK=1;\_nop\_(); //赋值变量 并且等待CLK=0;DIO=1;\_nop\_(); //赋值变量 并且等待CLK=1;\_nop\_(); //赋值变量 并且等待CLK=0;DIO=0;\_nop\_(); //赋值变量 并且等待CLK=1;\_nop\_(); //赋值变量 并且等待CLK=0;DIO=1;\_nop\_(); //赋值变量 并且等待for(i=0; i<8; i++) //循环{CLK=1;\_nop\_(); //赋值变量 并且等待CLK=0;\_nop\_(); //赋值变量 并且等待data1=(data1<<1)|(uchar)DIO;//赋值变量 并且等待 } for(i=0; i<8; i++) //循环{data2=data2|(uchar)DIO<<i;//赋值变量 并且等待CLK=1;\_nop\_(); //赋值变量 并且等待CLK=0;\_nop\_(); //赋值变量 并且等待}CS=1; //赋值高电平return(data1 == data2)?data1:0; //返回值}
void main(void) //主程序{ double u;TMOD = 0x01;TH0 = (65535-2000)/256;TL0 = (65535-2000)%256; EA=1;ET0=1;TR0=1; while(1){ key(); DA(); u=get\_AD\_Res();}
}void delay(void) //延时程序{ unsigned char i,j; for(i=10;i>0;i--) for(j=248;j>0;j--);
}
void key(void) //按键{uchar k;P1=0xff;k=P1; if(k==0xff) return; delay();k=P1; if(k==0xff) return; while(P1!=0xff) delay(); switch(k){ case 0xbf:add01();break; case 0x7f:dec01();break; case 0xfe:add1();break; case 0xfd:dec1();break;}
} void add1(void){ if(fvol<85) {fvol=fvol+10; if(fvol>85)fvol = 85;}sw=fvol/100;gw=fvol%100/10;dw=fvol%10;
}void dec1(void){ if(fvol>00) fvol=fvol-10;sw=fvol/100;gw=fvol%100/10;dw=fvol%10;
}void add01(void) //步进加 0.1{ if(fvol<85) fvol++;sw=fvol/100;gw=fvol%100/10;dw=fvol%10;
}
void dec01(void) //步进减0.1{ if(fvol>00) fvol--;sw=fvol/100;gw=fvol%100/10;dw=fvol%10;
} void Timer0() interrupt 1{TH0 = (65535-2000)/256;TL0 = (65535-2000)%256; switch(st){ case 0: st=1;LED2=1;LED3=1;LED4=1;P0=a\[bw\];LED1=0;break; case 1: st=2;LED3=1;LED4=1;LED1=1;P0=a\[gw\]+0x80;LED2=0;break; case 2: st=3;LED1=1;LED2=1;LED4=1;P0=a\[dw\];LED3=0;break; case 3: st=0;LED1=1;LED2=1;LED3=1;P0=a\[10\];LED4=0;break;}
}void DA(void) //模数转换{ unsigned char temp,dianya;temp=sw\*100+gw\*10+dw;dianya=temp\*2.13\*0.9*0.984;P2=dianya;
}
四、实现现象
具体动态效果看B站演示视频:
B站演示视频
基于单片机的精确电压表DA-AD转换
全部资料(源程序、仿真文件、安装包、演示视频):
百度网盘下载资料https://pan.baidu.com/s/1F3iOjg7KN7wQQkEIwByUxQ?pwd=ef5v
相关文章:
35 基于单片机的精确电压表DA-AD转换
目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机,采用DAC0832和ADC0832检测电压,0到8.5V,设计复位电路 LED管显示实际稳压值,初始电压0 二、硬件资源 基于KEIL5编写C代码,…...
JDBC 设置 PostgreSQL 查询中 any(?) 的参数
这段时间都纠缠于 Java 如何操作 PostgreSQL 数据库上,千方百计的为求得更好的性能。为此我们用上了 Batch, 或用 id any(?) 这种更 PostgreSQL 化的数组参数操作。其实它还有更多数组方面的花样可以玩,毕竟 PostgreSQL 数据库有一种广纳百川的胸怀&am…...
【11-20期】Java面试进阶:深入解析核心问题与实战案例
🚀 作者 :“码上有前” 🚀 文章简介 :Java 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 文章题目:Java面试进阶:深入解析11-20期核心问题与实战案例 摘要: 本篇…...
C++——内存池_2
C内存池 重载 new 和 delete 运算符C内存池使用内存池的目的逐步实现内存池 重载 new 和 delete 运算符 实际开发中,重载new和delete的主要目的是实现内存池。内存池在高性能的服务程序中很常用。点击浏览重载 new 和 delete 运算符的内容,建议先看这部…...
如何使用PHP爬虫获取店铺详情:一篇详尽指南
在数字化时代,数据的价值不言而喻。对于企业来说,获取竞争对手的店铺详情、顾客评价等信息对于市场分析和决策至关重要。PHP作为一种广泛使用的服务器端脚本语言,结合其强大的库支持,使得编写爬虫程序变得简单而高效。本文将详细介…...
HTML5和CSS3新增特性
HTML5的新特性 HTML5新增的语义化标签 HTML5 的新增特性主要是针对于以前的不足,增加了一些新的标签、新的表单和新的表单属性等。 这些新特性都有兼容性问题,基本是 IE9 以上版本的浏览器才支持,如果不考虑兼容性问题,可以大量…...
linux运行vue编译后的项目
如果你的 Vue 项目使用了 history 模式(而非默认的 hash 模式),在纯静态服务器中会出现类似的问题。因为 Vue Router 的 history 模式要求所有未匹配的路径都重定向到 index.html,以便 Vue 前端处理路径。 首先在本地执行npm run…...
论文阅读:A Software Platform for Manipulating theCamera Imaging Pipeline
论文代码开源链接: A Software Platform for Manipulating the Camera Imaging Pipelinehttps://karaimer.github.io/camera-pipeline/摘要:论文提出了一个Pipline软件平台,可以方便地访问相机成像Pipline的每个阶段。该软件允许修改单个模块…...
【MySQL篇】持久化和非持久化统计信息的深度剖析(第一篇,总共六篇)
💫《博主介绍》:✨又是一天没白过,我是奈斯,DBA一名✨ 💫《擅长领域》:✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux,也在扩展大数据方向的知识面✌️…...
Ubuntu下安装Qt
1.如图1所示,在Index of /archive上下载安装包; 图1 2.将图1安装包下载好之后,通过共享文件夹的方式拷贝到ubutntu,如图2所示; 图2 3.如图3所示,执行chmod x qt-creator-opensource-linux-x86_64-10.0.2.…...
丹摩征文活动 | AI创新之路,DAMODEL助你一臂之力GPU
目录 前言—— DAMODEL(丹摩智算) 算力服务 直观的感受算力提供商的强大 平台功能介绍 镜像选择 云磁盘创建 总结 前言—— 只需轻点鼠标,开发者便可拥有属于自己的AI计算王国 - 从丰富的GPU实例选择,到高性能的云磁盘,再到预配置的深度学习…...
数据库(总结自小林coding)|索引失效的场景、慢查询、原因及如何优化?undo log、redo log、binlog 作用、MySQL和Redis的区别
数据库(总结自小林coding)|索引失效的场景、慢查询、原因及如何优化?undo log、redo log、binlog 作用、MySQL和Redis的区别 说一下索引失效的场景?什么是慢查询?原因是什么?可以怎么优化?undo …...
Docker容器运行CentOS镜像,执行yum命令提示“Failed to set locale, defaulting to C.UTF-8”
最近对运维比较感兴趣,以前虽然对公司负责的项目做过运维工作,但用的都是最原始的方法,例如是在阿里云服务器上直接安装jdk,tomcat,redis ,nginx 。这种方式对不大的项目还能够支持,随着项目变大,服务增加&…...
OpenCV基本图像处理操作(六)——直方图与模版匹配
直方图 cv2.calcHist(images,channels,mask,histSize,ranges) images: 原图像图像格式为 uint8 或 float32。当传入函数时应 用中括号 [] 括来例如[img]channels: 同样用中括号括来它会告函数我们统幅图 像的直方图。如果入图像是灰度图它的值就是 [0]如果是彩色图像 的传入的…...
【LLM学习笔记】第四篇:模型压缩方法——量化、剪枝、蒸馏、分解
文章目录 1. 为什么要进行模型压缩2. 模型量化2.1 常见数据类型2.2 浮点数表示2.3 线性量化2.4 非线性量化2.5 挑战2.6 实际应用 3. 模型剪枝4. 模型蒸馏4.1 模型蒸馏的基本流程4.2 模型蒸馏的优势4.3 实际应用 5. 低秩分解(低秩近似)5.1 基本概念5.2 实…...
python3 自动更新的缓存类
这个类会在后台自动更新缓存数据,你只需要调用方法来获取数据即可。 自动更新缓存类 以下是 AutoUpdatingCache 类的实现: import threading import timeclass AutoUpdatingCache:def __init__(self, update_function, expiry_time60):""&qu…...
英语知识网站开发:Spring Boot框架应用
3系统分析 3.1可行性分析 通过对本英语知识应用网站实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本英语知识应用网站采用SSM框架,JAVA作为开发语…...
文件上传upload-labs-docker通关
(图片加载不出,说明被和谐了) 项目一: sqlsec/ggctf-upload - Docker Image | Docker Hub 学习过程中,可以对照源码进行白盒分析. 补充:环境搭建在Linux虚拟机上的同时,以另一台Windows虚拟机进行测试最…...
git(Linux)
1.git 三板斧 基本准备工作: 把远端仓库拉拉取到本地了 .git --> 本地仓库 git在提交的时候,只会提交变化的部分 就可以在当前目录下新增代码了 test.c 并没有被仓库管理起来 怎么添加? 1.1 git add test.c 也不算完全添加到仓库里面&…...
Doris实战—构建日志存储与分析平台
构建日志存储与分析平台 日志是系统运行的详细记录,包含各种事件发生的主体、时间、位置、内容等关键信息。出于运维可观测、网络安全监控及业务分析等多重需求,企业通常需要将分散的日志采集起来,进行集中存储、查询和分析,以进一步从日志数据里挖掘出有价值的内容。 针…...
【vue3+Typescript】unapp+stompsj模式下替代plus-websocket的封装模块
由于plus-websocket实测存在消息丢失的问题,只能寻找替代的方案,看文章说使用原生的即可很好的工作。而目前在stompjs里需要使用websocket类型的封装模块,看了下原来提供的接口,采用uniapp原生的websocket模式,对原模块…...
Tcon技术和Tconless技术介绍
文章目录 TCON技术(传统时序控制器)定义:主要功能:优点:缺点: TCONless技术(无独立时序控制器)定义:工作原理:优点:缺点: TCON与TCONl…...
C#-利用反射自动绑定请求标志类和具体执行命令类
文章速览 概述例程请求类命名空间父类示例子类示例 命令类命名空间子类示例 记录的数据结构实现绑定方法 坚持记录实属不易,希望友善多金的码友能够随手点一个赞。 共同创建氛围更加良好的开发者社区! 谢谢~ 概述 需求: 将指定的两种类型的…...
高中数学练习:初探均值换元法
文章目录 1. 均值换元法定义2. 均值换元法优点3. 均值换元法应用4. 均值换元法示例4.1 求解分式方程4.2 求解指数方程4.3 计算最大值 5. 实战小结 1. 均值换元法定义 均值换元法是一种数学技巧,通过引入新变量 t t t将两个变量 x x x和 y y y表示为它们的平均值加上…...
数据结构单链表,顺序表,广义表,多重链表,堆栈的学习
单链表 比如一个多项式,主要包括x的系数,x的指数,那么可以创建一个一维数组来存储它的系数和指数,用数组下标来表示。它的系数可以用数组下标对应的数组元素来储存。 可是这样储存会浪费空间所以采用单链表形式来存储。 即创建一…...
【保姆级教程】使用lora微调LLM并在truthfulQA数据集评估(Part 2.在truthfulQA上评估LLM)
上一期我们成功用lora微调了一个模型传送门,怎样评估模型呢?目前LLM没有一个统一的BENCHMARK。我们今天选用truthfulQA。 truthfulQA数据集格式如下所示 {question: What is the smallest country in the world that is at least one square mile in ar…...
thinkphp中对请求封装
请求的封装 //调用 $res Http::post($this->baseUrl . $url,$params,[CURLOPT_HTTPHEADER > [Content-Type: application/json,Content-Length: . strlen($params),],]);<?php namespace fast; /*** 字符串类*/ class Http {/*** 发送一个POST请求*/public static …...
leetcode hot100【LeetCode 215.数组中的第K个最大元素】java实现
LeetCode 215.数组中的第K个最大元素 题目描述 给定一个整数数组 nums 和一个整数 k,请返回数组中第 k 个最大的元素。 请注意,要求排名是从大到小的,因此第 k 个最大元素是排序后的第 k 个元素。你需要设计一个高效的算法来解决这个问题。…...
簡單易懂:如何在Windows系統中修改IP地址?
無論是為了連接到一個新的網路,還是為了解決網路連接問題,修改IP地址都是一個常見的操作。本文將詳細介紹如何在Windows系統中修改IP地址,包括靜態IP地址的設置和動態IP地址的獲取。 IP地址是什麼? IP地址是互聯網協議地址的簡稱…...
Python中的23种设计模式:详细分类与总结
设计模式是解决特定问题的通用方法,分为创建型模式、结构型模式和行为型模式三大类。以下是对每种模式的详细介绍,包括其核心思想、应用场景和优缺点。 一、创建型模式(Creational Patterns) 创建型模式关注对象的创建࿰…...
wordpress 更新网站/免费发帖平台
大纲复习 服务治理: nacos 注册中心(nacos 同时解决配置)Eureka配置 为什么要用注册中心 一旦服务提供者地址变化,就需要手工修改代码 一旦是多个服务提供者,无法实现负载均衡功能 一旦服务变得越来越多,…...
网站建设费用高低有什么区别/网络推广软文
服务器用类似宝塔等管理软件可以吗?很多企业IT运维人员都存在这样的疑问,今天我们就来一起聊聊。 服务器用类似宝塔等管理软件可以吗? 对于个人站长/运维新手而言,一些简单运维的需求,完全可以使用类似宝塔等运维工具…...
湘潭九华网站/企业网络推广计划书
centos7安装配置Jboss注:安装Jboss前先安装好jdk1.81、下载Jboss各版本下载链接见如下博客:这里选择下载jboss-eap-6.4.0.zip下载后上传到centos72、安装解压jboss-eap-6.4.0.zip,放到目录/usr/local/3、配置环境变量在文件/etc/profile中添加以下内容&a…...
高端网站建设域名注册/汕头网站设计公司
p2p思路适应安卓,iOS,web一.SDP配置顺序1.本地PC设置生成offer sdp [localPC offerForConstraints:constraints completionHandler:^(RTCSessionDescription * _Nullable sdp, NSError * _Nullable error) { }];复制代码将生成sdp通过信令发送给远端并设…...
上饶市建设局培训网站/恶意点击软件哪个好
我是做前端的,接触html也就一年,一年的时间,其实也就是个小白,恰好巧了,我这个小白,一年的时间,半年时间用来接触html、css、html5、css3等,当然也包括js与jquery的学习,…...
如何做网络网站推广/推广文案范例
最近一个项目要用到ActiveMq,并且需要最大程度的保证消息不丢失。以前对activeMq不是很熟悉,完全是摸着石头过河,目前基 本配置都搞定了。只是对于它的自动重连一直找不到好的解决办法,我希望的效果是当一个broker(假设…...