C51单片机和ADC0832芯片设计数字电压表

2023-05-16

在这里插入图片描述

#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
	
sbit cs=P1^0;
sbit clk=P1^3;
sbit DI=P1^4;
sbit DO=P1^5;
sbit CS1=P2^0;
sbit CS2=P2^1;
sbit CS3=P2^2;
sbit CS4=P2^3;

uchar adval,volt;//AD value 
uchar temp; 

uchar tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //LED0-F common anode 

void delay(uint ms) //delay ms function
{
	uchar j; 
	while(ms--)
	{
		for(j=0;j<120;j++);
	}
}

void ADC_start() //start frunction
{
	cs=1; //start a cycle 
	_nop_();
	clk=0;
	_nop_();
	cs=0;			//when cs is 0,ADC is workable.
	_nop_();
	DI=1;
	_nop_();
	clk=1;		//frist pulse
	_nop_();
	DI=0;
	_nop_();
	clk=0;
	_nop_();
}

void ADC_read(uint CH) //AD conversion subroutine
{
	uchar i; 
	ADC_start();
	if(CH==0)			//select channel 0
	{
		clk=0;
		DI=1;
		_nop_();
		_nop_();
		clk=1;
		_nop_();
		_nop_();		//frist bit in channel 0
		clk=0;
		_nop_();
		DI=0;
		_nop_();
		_nop_();
		clk=1;
		_nop_();
		_nop_();		//second bit in  channel 0
	}
		else			//selcet channel 1
		{
			clk=0;
			DI=1;
			_nop_();
			_nop_();
			clk=1;
			_nop_();
			_nop_();
			clk=1;
			_nop_();
			_nop_();		//frist 1 bit in channel 1
			DI=1;
			_nop_();
			_nop_();
			clk=1;
			_nop_();
			_nop_();		//second bit in channel 1
		}
		clk=1;
		_nop_();
		clk=0;
		for(i=0;i<8;i++)
		{
			DI=1;
			if(DO)
			{
				temp=(temp|0x01);
			}
			else
			{
				temp=(temp&0xfe); //lastest bit AND 0
			}
			clk=0;
			_nop_();
			clk=1;
			temp=temp<<1;  //move temp 1 bit to the left
		}
		adval=temp;
	}

void volt_result() // solve function
{
	volt=adval*1.96; 		//AD value change to volt value
}

void disp_volt(uint date)		//display function
{
	CS1=1;CS2=0;CS3=0;CS4=0; //P2.0=1 , display frist lamps;
	P0=~((~tab[date/100])|0x80);		//|0X80 for display point 
	delay(1);
	P0=0xff;  // disappear
	CS1=0;CS2=1;CS3=0;CS4=0;		//P2.1=1,display second lamps; 
	P0=tab[date%100/10];
	delay(1);
	P0=0xff; 
	CS1=0;CS2=0;CS3=1;CS4=0;		//P2.2=1,display third lamps;
	P0=tab[date%10];
	delay(1);
	P0=0xff; 
	CS1=0;CS2=0;CS3=0;CS4=1;		//P2.3=1, display fourth lamps; 
	P0=tab[date%100];
	delay(1);
	P0=0xff; 
}

void main(void)  //main function
{
	P2=0xff; 		//Port initialization
	P0=0xff; 
	while(1)
	{
		ADC_read(0); // channel 0 working
		delay(1);
		volt_result();
		disp_volt(volt); //show volt value 
	}
}
	
	
	
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C51单片机和ADC0832芯片设计数字电压表 的相关文章

  • Linux——利用Shell脚本编写进度条

    初级版本 xff08 原始进度条 xff09 xff1a span class hljs shebang bin bash span span class hljs built in echo span span class hljs st
  • C语言的日期和时间函数的用法及相应示例

    1 xff0e 概念 在C C 43 43 中 xff0c 对字符串的操作有很多值得注意的问题 xff0c 同样 xff0c C C 43 43 对时间的操作也有许多值得大家注意的地方 下面主要介绍在C C 43 43 中时间和日期的使用方
  • xrdp完美实现Windows远程访问Ubuntu 16.04【包括多人桌面与原生桌面】

    多人桌面 1 安装xrdp sudo apt get install xrdp 2 安装vnc4server 我这里是安装xrdp的时候自动安装的 我看网上很多说是需要单独安装的 3 安装xfce4 sudo apt get install
  • C++ range

    C 43 43 20 引入了 range 来简化对元素序列的处理 xff08 可以省略掉许多的循环遍历 xff09 1 range 和 view range range concept 通过提供一个迭代器以及一个哨兵来表示一个元素范围 xf
  • 高效求两个list的差集

    查一个ListA 的每个值 xff08 String字符串 xff09 在另外一个ListB中是否存在 xff0c 如果不存在就记录下来 模拟数据量 xff1a 100万 方法一 xff1a 直接调用list自带的removeAll方法 p
  • Codeforces Round #368 (Div. 2) A C

    大清早发现自己的rating涨了72分还是很高兴的 xff0c 毕竟之前都是在掉分 xff0c 还差9分才能到宝蓝啊 xff0c 果然还是小菜鸡 A Brain 39 s Photos 大水题 xff0c 要不是这个codeforces是外
  • Linux DISPLAY 设置

    在Linux Unix类操作系统上 DISPLAY用来设置将图形显示到何处 直接登陆图形界面或者登陆命令行界面后使用startx启动图形 DISPLAY环境变量将自动设置为 0 0 此时可以打开终端 输出图形程序的名称 比如xclock 来
  • cmake简单使用及编译项目打包成so文件

    简介 CMake是一个跨平台的编译自动配置工具 xff0c 它使用一个名为CMakeLists txt的文件来描述构建过程 xff0c 可以产生标准的构建文件 它可以用简单的语句来描述所有平台的安装 编译过程 它能够输出各种各样的makef
  • 2021基于Debian的All in One(NAS+软路由)配置教程

    基于Debian10的NAS系统配置 系统概述需求分析功能实现 系统配置简介Debian10的镜像下载与安装系统配置准备oh my zsh安装ssh远程访问开机自动登录root花生壳远程sshFrp图形化界面卸载网路配置磁盘相关命令 软件安
  • 3D Slicer源代码编译与调试(Visual Studio)

    开始 本文将Slicer的源码在Windows系统的编译过程记录下来 我的编译环境 xff1a Qt5 9 3VS2015Git 2 16 1CMake 3 14 1NSIS Unicode NSIS 编译 上述编译环境的准备好之后 xff
  • c++对象模型

    一 什么是c 43 43 对象模型 语言中直接支持面向对象程序设计的部分 对于各种支持的底层实现机制 二 c 43 43 对象的布局成本 成员函数不占用成本 member functions虽然再class的声明之内 xff0c 却不在ob
  • mybatis-plus返回查询总记录数方式(亲测)

    这篇文章主要介绍了mybatis plus返回查询总记录数方式 xff0c 具有很好的参考价值 xff0c 希望对大家有所帮助 如有错误或未考虑完全的地方 xff0c 望不吝赐教 mybatis plus返回查询总记录数mybatis pl
  • Android 模拟器串口与PC虚拟串口通讯

    基于上一篇文章 xff0c Android studio 使用NDK 实现串口 动态库 使用NDK生成 so 库操作PC中的串口 以及Android studio 3 0 and Gradle3 0 JNI 生成 so 库 1 开发环境 1
  • ArchLinux遇到问题unable to lock database

    在ArchLinux上更新系统或者安装软件 xff0c 如 pacman Syu xff0c 遇到下列问题 xff1a error failed to init transaction unable to lock database err
  • 【终极解决方案】当前不会命中断点,还没有为该文档加载任何符号

    我们在用vs进行debug时 xff0c 有的时候会出现无法单步调试 xff0c 提示 当前不会命中断点 xff0c 还没有为该文档加载任何符号 查询网上资料 xff0c 基本都是以下这样 xff1a 在vs里边 xff0c 工具 gt 选
  • Gitlab的安装及使用

    1 Gitlab概述 1 1 GitLab介绍 GitLab是利用Ruby on Rails一个开源的版本管理系统 xff0c 实现一个自托管的Git项目仓库 xff0c 可通过Web界面进行访问公开的或者私人项目 GitLab能够浏览源代
  • UVa 11168 Airport

    这个月看看计算几何 xff0c 这道题写的代码出现的问题还是挺多的 xff0c 不过索性最后解决了 题意 xff1a 给出平面上n个点 xff0c 找一条直线 xff0c 使得所有点在直线的同侧 xff08 也可以在直线上 xff09 xf
  • 使用JSON实现SQL Server少量数据传递(导入导出)

    摘要 xff1a 在开发业务系统时 xff0c 对于使用SQL Server作为业务数据库时 xff0c 要将数据从发库数据配置完成后需要同步到生产库时 xff0c 使用SQL Server自带的工具不是那么流畅 xff0c 本文介绍一种使
  • Mybatis Plus中的lambdaQueryWrapper和LambdaUpdateWrapper

    一 Mybatis Plus中的lambdaQueryWrapper xff1a 用法 xff1a 1 mybatis plus依赖中接口类IService中有这样一个方法 default List lt T gt list Wrapper
  • Docker 从Dockerfile 构建镜像 :build 命令的用法

    前些天发现了一个巨牛的人工智能学习网站 xff0c 通俗易懂 xff0c 风趣幽默 xff0c 忍不住分享一下给大家 点击跳转到教程 Dockerfile 创建完成后 xff0c 可以使用 docker build 命令根据 Dockerf

随机推荐

  • Windows下subsystem子系统(wsl)的默认安装位置

    位置在 xff1a C Users THINK AppData Local Packages CanonicalGroupLimited UbuntuonWindows 79rhkp1fndgsc LocalState rootfs 备注
  • 关于提示unrecognized class file version的原因

    今天在发布一个网站的时候 xff0c 发现用java jar 可以运行jar包 xff0c 但是运行到一半会卡住如下图所示 但是我在idea里却可以完美的运行 xff0c 于是我去查了一下资料 xff0c 然后改了几个配置 xff0c 最后
  • Hex编码

    Hex编码的编码原理 xff1a Hex编码的原理就是将原来8位的二进制字节打断 xff0c 分成两个4位的 xff0c 并且在前面加上4个零 xff0c 进行补位这样一个8位二进制字节就变成了2个8位的二进制字节 xff0c 在将新得到的
  • request.post()

    在通过requests post 进行POST请求时 xff0c 传入报文的参数有两个 xff0c 一个是data xff0c 一个是json 常见的form表单可以直接使用data参数进行报文提交 xff0c 而data的对象则是pyth
  • 将python项目(django/flask)打包成exe和安装包

    目录 打包Flask项目写一个简单的Flask项目下载pyinstaller进入到项目路径下 xff0c 执行运行exe xff0c 测试 使用nsis把文件夹打包成windows的安装包下载安装nsis把dist文件夹下的run文件夹压缩
  • Kotlin学习

    开始学习Kotlin xff0c 将学习过程中遇到的 xff0c 看到的知识点记录下来 配置Kotlin环境 在项目根目录build gradle配置 buildscript ext kotlin version 61 39 1 2 71
  • tortoiseGit使用报错gitlab ssh Please make sure you have the correct access rights and the repos

    1 报错现象 xff1a Please make sure you have the correct access rights and the repository exists 2 背景 使用git连接下载公司gitlab项目 xff0
  • 计算几何模板

    初始定义 xff1a xff08 基本都要用到 xff0c 做题直接全打上 xff09 struct Point double x y Point double x 61 0 double y 61 0 x x y y 构造函数 xff0c
  • 【Linux】【踩坑专栏】centOS 7 桌面版使用VMWare Workstation Player 16安装时踩坑

    CentOS 7 Everything在用VMWare Workstation Player 16安装时 xff0c 第二个界面是下面这个 xff1a 我安装的时候误以为 全名 是个性化Linux的全名 xff0c 其实指的是用户的全名 x
  • C#怎样实现远程连接SQL Server2005

    本文详细讲述了C 怎样实现远程连接SQL Server2005各个步骤 首先配置SQLSERVER2005 xff1a 打开 Microsoft SQL Server Management Studio 直接用Windows 用户连接进入
  • 九、Python第九课——Python中的if语句与运用

    xff08 请先看置顶博文 xff09 https blog csdn net GenuineMonster article details 104495419 目录 一 if语句 1 检查变量存储的值是否相等 2 判定字母或字符串时区别大
  • windows环境下wampserver的配置教程

    对 于初做 PHP 网站的朋友来说 xff0c 第一步肯定是希望在自己电脑是搭建 PHP 环境 xff0c 省去空间和上传的麻烦 xff01 但搭建环境也不是件容易的事情 xff0c 特别是对于新手同学来 说 xff01 因此在这里跟大家介
  • CentOS7.X 新装后个性化处理

    目录 1 修改HostName2 Shell脚本中文乱码问题解决3 部分常用开发工具安装4 常用开发工具安装PS 1 修改HostName 设置自定义HostName hostnamectl set hostname MyHostName
  • ffmpeg命令行提示“no such file or directory...”

    最近参考一博客测试使用ffmpeg将rtsp流分片成ts文件 xff0c 附上大神博客链接 xff0c 很有用 xff01 xff01 xff01 https blog csdn net kunzai6 article details 76
  • Python pygame安装过程笔记

    分享一下我老师大神的人工智能教程 xff01 零基础 xff0c 通俗易懂 xff01 http blog csdn net jiangjunshow 也欢迎大家转载本篇文章 分享知识 xff0c 造福人民 xff0c 实现我们中华民族伟大
  • PyQtgraph结合Pyside6绘图解决pyqtgraph模块无GraphicsWindow的问题

    解决前辈的示例的问题 发生异常 AttributeError module pyqtgraph has no attribute GraphicsWindow 代码如下 xff1a 将 xff1a win 61 pg GraphicsWin
  • Proteus&keil-51单片机-外部中断控制流水灯

    实现功能 利用P0端口进行花样显示 xff0c 显示顺序为 xff1a 8个LED灯依次左移点亮 xff1b 8个LED灯依次右移点亮 xff1b xff0c LED0 LED2 LED4 LED6亮1秒熄灭 xff0c LED1 LED3
  • 51单片机-60秒计时

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • 关于计算几何某些定理·基础知识的汇总

    欧拉定理 xff1a 设平面图的顶点数 xff0c 边数和面数分别为V xff0c E和F xff0c 则V 43 F E 61 2 直线方程两点式转换为一般式 xff1a 1 两点式 xff1a y y2 y1 y2 61 x x2 x1
  • C51单片机和ADC0832芯片设计数字电压表

    span class token macro property span class token directive hash span span class token directive keyword include span spa