【51单片机】【protues仿真】基于51单片机电压测量多量程系统

目录

一、主要功能

二、使用步骤

三、硬件资源

四、软件设计

五、实验现象

一、主要功能

1、数码管显示显示

2、双刀开关模拟切换挡位

3、电位器模拟测量电压

二、使用步骤

基于51单片机的多量程电压测量系统设计需要解决量程自动切换、信号调理和精度优化等关键问题。

三、硬件资源

1、51单片机核心模块

2、按键模块

3、数模转换器模块

4、挡位选择开关

5、继电器模块

6、数码管显示模块

四、软件设计

#include <reg52.h> //52系列单片机头文件定义

#include <stdio.h> //C语言头文件定义

//***************************

//*******引脚定义************

//***************************

//ADC0832控制口定义

sbit CS =P2^0; //CS:片选使能信号输出端

sbit CLK=P2^1; //CLK:时钟信号输出端

sbit DIO=P2^2; //DI/DO信号输出端(由于D0与D1在通信时不会同时有效,所以共用一个IO口)

//数码管控制引脚定义(数据引脚共8个,使用P0)

sbit S_1=P1^0; //第一个数码管阳极控制端

sbit S_2=P1^1; //第二个数码管阳极控制端

sbit S_3=P1^2; //第三个数码管阳极控制端

sbit S_4=P1^3; //第四个数码管阳极控制端

//量程与继电器控制引脚定义

sbit KEY=P1^4; //用于量程的选择以及继电器的控制

//***************************

//*******常量定义************

//***************************

unsigned int table\[\]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

//0~9在共阳数码管中所对应的十六进制值

//***************************

//*******延时1000us**********

//***************************

void delay_1000us() //简单延时函数,约延时1000us

{

unsigned char i=1000;

while(i--);

}

//***************************

//*******主程序**************

//***************************

void main()

{

unsigned int buff,ge,shi,bai; //缓存数据定义

UartInit(); //串口初始化

while(1) //死循环

{ //主函数程序开始

buff=ADC0832()*100; //读取AD的值,并进行修正

buff=buff/51; //精度修正,转换为000~500范围

bai=buff/100; //保存buff的百位

shi=(buff%100)/10; //保存buff的十位

ge=buff%10; //保存buff的个位

}

}

五、实验现象

演示视频:

相关推荐
树的枝14 分钟前
【STM32】03.中断和EXTI外设
笔记·stm32·单片机·嵌入式硬件
不灭的黄金瞳12319 分钟前
预处理详解
c语言
小雪崩1 小时前
嵌入式学习 day25:哈希表及排序与查找
linux·c语言·数据结构·学习·排序算法
单片机杂货铺1 小时前
【单片机毕业设计选题】基于stm32单片机儿童公路车速度检测报警
stm32·单片机·嵌入式硬件·51单片机·硬件工程·课程设计
yiqiefeimeng2 小时前
C语言指针难倒90%人?买房比喻让你瞬间开窍
c语言·学习·编程·指针·比喻
caimouse2 小时前
ReactOS 窗口系统分析(5):可见区域与窗口 DC — vis.c + windc.c
c语言·开发语言
振南的单片机世界3 小时前
看门狗硬核拆解:1.6秒不喂狗,硬件强制“掀桌子”
arm开发·stm32·单片机·嵌入式硬件
嵌入式阿蔡3 小时前
Linux_01:交叉编译与开发环境实战——从单片机跨到 Linux 的第一道坎
linux·运维·网络·单片机·嵌入式硬件·嵌入式实时数据库
_Narcissus_4 小时前
动态规划初探(含完整代码实现)
c语言·数据结构·c++·算法·动态规划·背包问题·最短路径
Cerman4 小时前
QEMU启动OVMF shell超时分析
c语言·windows·经验分享