//------------------------------51单片机头文件

#include

//各数字的数码管段码(共阴)

unsigned char code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //数码管显示数组{0,1,2,3,4,5,6,7,8,9}

sbit CLK=P3^3;    //时钟信号

sbit ST=P3^6;     //启动信号,由低电平到高电平时间段复位 ,高电平到低电平时间段开始转换

sbit EOC=P3^5;    //转换结束信号,当转换结束时会自动变成高电平

sbit OE=P3^4;     //输出使能 ,当OE为高电平时开启输出端,OE为低电平时禁止输出

sbit W1=P2^4;     //定义W1表示P2.4位,第一位数码管控制端, 为0时亮,为1时灭

sbit W2=P2^3;          //定义W2表示P2.3位,第二位数码管控制端, 为0时亮,为1时灭

sbit W3=P2^2;          //定义W3表示P2.2位,第三位数码管控制端, 为0时亮,为1时灭

sbit key=P3^7;          //定义按键控制key为P3.7

//----------------------------1ms延时函数

void Delayms(unsigned char ms)

{

unsigned char i;

while(ms--)

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

}

//---------------------------显示转换结果(动态扫描模式)

void Display(unsigned int d)

{

d=d*1.0/256*5*40;  //将数字量转换成模拟量的公式为5V*(d/256),采样电压值为电流值*100欧姆,所以要获得实际电流值,即为采样电压值*40倍 (n1:n2=4000:1)

W1=0;   //第一个数码管亮

P0=DSY_CODE[d%10];  //显示第一个数码管的值 为P1的值除以10取余

Delayms(6);                        //延时5ms

W1=1;   //第一个数码管灭

W2=0;

P0=DSY_CODE[d%100/10];        //显示第二个数码管的值 为P1的值除以100取余 再除以10取整

Delayms(6);

W2=1;

W3=0;

P0=DSY_CODE[d/100];           //显示第三个数码管的值 为P1的值除以100取整

Delayms(6);

W3=1;

}

//-------------------------------------------------主程序

void main()

{

TMOD=0x02; //16位定时器0工作模式设置为2

TH0=0x14;  //设置定时器高8位初值为0x14

TL0=0x00;  //设置定时器低8位初值为0x00

TR0=1;           //开启定时器0开关

ET0=1;           //开启定时器0中断开关

EA=1;           //开启中断总开关

//---------------启动 A/D 转换

//---------开始按键-----

A:        while(key==1);     //等待按键按下

Delayms(1);               //延时1ms

if(key==0)         //延时1ms后按键还是按下了,说明按键确实按下了(按键消抖功能)

while(key==0);           //当按键松开时,循环转换和显示

while(1)

{

ST=0;

ST=1;

ST=0;

while(EOC==0);   //等待转换完成

OE=1;                          //开启输出端

Display(P1);     //将输出到单片机P1端口上的数字信号在LED显示出来

OE=0;            //关闭输出端

//------停止按键---------

if(key==0)

{

Delayms(1);

if(key==0)         //延时1ms后按键还是按下了,说明按键确实按下了(按键消抖功能)

while(key==0);           //当按键松开时

…………限于本文篇幅 余下代码请从51黑下载附件…………

adurnio 单片机_单片机20~200A大电流检测电路设计 用AD实现 带原理图,源代码,proteus仿真文件...相关推荐

  1. 先导课程 单片机_单片机课程教案-课程教案

    第一章 单片机基本知识 第一节 单片机的发展与应用 一.什么是单片机 单片机即单片机微型计算机,是将计算机主机 (CPU .内存和 I/O 接口 ) 集成 在一小块硅片上的微型机. 二.单片机的发展 ...

  2. ioca0中断 pic单片机_单片机入门知识-PIC为例程序.ppt

    PIC单片机原理及应用 内容提要 单片机概述 PIC单片机的特色 PIC单片机的程序设计 单片机概述 单片机正名为:微控制器 --MCU ,MicroController Unit 单片机概述 何为单 ...

  3. 单片机+DHT11的温湿度采集监测系统,LCD1602显示,带报警功能,C代码、原理图和Proteus仿真

    设计要求 1.设计一个基于51单片机和DHT11传感器的温湿度监测系统: 2.传感器DHT11实现对环境温湿度参数的准确测量,单片机对数据进行分析和处理: 3.用户可根据需要,通过按键自主调节温湿度上 ...

  4. 基于C51单片机和TB6600步进电机驱动器驱动的三路超声波避障移动机器人平台设计与Proteus仿真

    目录 前言 例程分析 模块介绍 超声波模块(SRF04) TB6600步进电机驱动器和42步进电机 原理图讲解 运用示波器模拟 代码部分 项目后期 前言 这是我在一个大学生机械创新比赛所做的项目,主要 ...

  5. 单片机课程设计温控风扇(源代码+Proteus仿真图)

    总体设计 本设计是使用AT89C51单片机为核心制作的一个模拟温控电扇的系统.通过DS18B20温度传感器来实现温度的调节,使用四位一体数码管来显示电扇的挡位以及当前温度,通过proteus中的直流电 ...

  6. 基于51单片机的电子时钟万年历带农历温度proteus仿真

    硬件设计 本设计由数据显示模块.温度采集模块.时间处理模块和调整设置模块四个模块组成.系统以AT89S52单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年.月.日.时.分.秒进 ...

  7. 电感检测_几种常用的电流检测方式

    RT1720 是一款最高输入电压可达 80V.输出电压可达 60V 的热插拔控制器,它的作用是防止系统受到过高电压和负电压的攻击,同时还能防范过电流可能导致的问题,它的一种应用电路大致如下图所示: 为 ...

  8. 基于51单片机的万年历(带温湿度)带闹钟功能proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶显示当前时间和温湿度 2.按键可切换页面,显示农历,显示闹钟设置 3.当时间到达设定闹钟时间时,蜂鸣器报警 原理图: PCB ...

  9. 基于51单片机的秒表系统设计(源代码+Proteus仿真图)

    目录 总体设计 晶体震荡电路 复位电路 按键控制电路 LCD1602显示电路 蜂鸣器电路 Proteus仿真图调试结果 源代码: Proteus仿真提取链接 总体设计 本设计是采用AT89C51单片机 ...

最新文章

  1. Hibernate双向多对多关联
  2. jdk和tomcat配置
  3. 什么是前端开发中的Pseudo elements
  4. LeetCode412Fizz Buzz
  5. 八大排序算法交换排序算法
  6. store 存取数据数组对象_如何从Firestore文档中获取对象数组
  7. Python的hasattr(),getattr(),setattr()
  8. python 检查域名是否可以访问_糖尿病人是否都要做喝糖水的检查?结果可以说明胰岛功能水平吗?...
  9. 阿里云盾证书服务助力博客装逼成功
  10. 搜索系统硬盘中包含指定字符串的文件的工具和方法——全文搜索、搜索文件内容(持续更新中)
  11. 使用 String[] values = request.getParameterValues(key);出现的问题 ,Ajax Post 提交数组参数后台无法接收
  12. Python【一点号】短视频的自动上传与发布实例演示,同时支持抖音、快手、哔哩哔哩、小红书、微视、西瓜视频、微信视频号等平台的视频自动化同步发布
  13. 百万比亚迪仰望出圈靠的不止技术
  14. 如何强制修改电脑密码
  15. 安装部署docker
  16. 电脑桌面上的控制面板和计算机怎么没有了,控制面板在哪?没有控制面板怎么办...
  17. 渠道触点归因、推广来源追踪
  18. 主机ip6容器ip6以及应用ip6
  19. 最清晰的进制转换讲解 - java实现
  20. Scintilla MFC使用教程

热门文章

  1. Mybatis-Plus的SQL语句组拼原理
  2. 解决SecureCRT与SecureFX中文乱码问题
  3. 玩转微服务日志框架Logback
  4. VBA FSO 对象模型知识点梳理
  5. js如何监听元素事件是否被移除_JS移除事件监听的方法 .removeEventListener( )
  6. java integer常量池_为什么Integer常量池的行为在127发生变化?
  7. python设置随机数种子为12_Python标准库12 数学与随机数 (math包,random包)(转载)...
  8. java+fseek+函数_函数fseek() 用法(转)
  9. java怎么写事件listener_java 事件监听器ActionListener
  10. 安卓9与10的系统要求_代码开源!支持RISC-V架构的安卓系统终于来了!