基于51单片机的数字电压表设计

news2024/12/23 15:07:58

程序运行图:

 仿真原理图:

部分程序:

#define LED_GLOBAL 1

#include "led.h"

void ledDelay(uint ms) 

{

   uchar delayi;

   while(--ms)

   {

          for(delayi=0;delayi<124;delayi++);

   }

}

void init_led(void)

{

   LED=segLedCode[0];

   LED_CS1=0;

   LED_CS2=0;

   LED_CS3=0;

   LED_CS4=0;

}

void ledWrite(uchar c,uchar n,uchar mod)

{

   if(CHARACTER==mod)

   {

           LED=c; 

   }

   else if(DIGITAL==mod)

            {

               if((c-'0')<0x0a)

                    {

                      LED=segLedCode[c-'0'];

                    }

                    else

                    { 

                          LED=segLedCode[0];

                    }

            }

   switch(n)

   {

                  case 0x01:

                  {

                    LED_CS1=0;

                    ledDelay(10);

                    LED_CS1=1;

                    break;

                  }

                  case 0x02:

                  {

                    LED_CS2=0;

                    ledDelay(10);

                    LED_CS2=1;

                    break;

                  }

                  case 0x03:

                  {

                    LED_CS3=0;

                    ledDelay(10);

                    LED_CS3=1;

                    break;

                  }

             case 0x04:

                  {

                    LED_CS4=0;

                    ledDelay(10);

                    LED_CS4=1;

                    break;

                  }

                  default:

                    break;

   }

}

                

void ledSweepDisplay(uchar *segCode,uchar segCodeMod,uchar segNumber)            //循环显示子函数

{

     uchar segCount;

         for(segCount=0;segCount<segNumber;segCount++)

         {

            if(segCodeMod&0x01)        //1代表此处显示任意字符 *

            {

              ledWrite(segCode[segCount],segCount+1,CHARACTER);

            }

            else

            {

              ledWrite(segCode[segCount],segCount+1,DIGITAL);

            }

            segCodeMod=segCodeMod>>1;

         }

}

#define TLC2543_GLOBAL

#include "TLC2543.h"

uint read_TLC2543(uchar channel)

{

    register uchar i;

    uint tempAD = 0;

    while(!TLC2543GetEoc());        //wait TLC2543 free

         _delay_us(3);

    channel <<= 4;

    TLC2543Clk(TLC2543_CLR);

    TLC2543_Cs(TLC2543_SET);

    TLC2543_Cs(TLC2543_CLR);                //_CS TLC2543 select

         _delay_us(3);

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

    {

        tempAD <<= 1;

        if( TLC2543GetDo() )        //read value

        {

            tempAD |= 0x01;

        }

        if( channel&0x80 )

        {

            TLC2543Di(TLC2543_SET);

        }

        else

        {

            TLC2543Di(TLC2543_CLR);

        }

        channel <<= 1;

        TLC2543Clk(TLC2543_SET);

        nop();

        TLC2543Clk(TLC2543_CLR);

    }

  

           temp=(uchar)(voltageRead/0x0fff);

           if(i==4)

             displayBuff[i-1]=digitalNumber[temp]|0x80;

           else

             displayBuff[i-1]=digitalNumber[temp];

           voltageRead=voltageRead%0x0fff;

           voltageReadTemp=voltageRead<<1;

           voltageRead=0x0000;

           for(j=0;j<5;j++)

             voltageRead+=voltageReadTemp;//voltageRead=voltageRead*10

           

         }

  }

}

资料包括:

 

需要完整的资料可在我的资源里下载,也可以加入我的纷传圈子,里面有资源压缩包的百度网盘下载地址及提取码。

纷传点击用微信打开即可,过程有点繁琐请见谅。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/87276.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

四、JavaScript——基本语法

1.注释 <script>/*1.多行注释*///2. 单行注释</script> 2.大小写 JS严格区分大小写 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"…

Web前端105天-day42-JSCORE

JSCORE02 目录 前言 一、复习 二、函数在对象中触发方式 2.1.call 2.2.apply 2.3.bind 三、引用类型 四、构造函数 五、new 六、原型理念 ​七、原型 八、class 九、严格模式 十、ES6 十一、let与const 总结 前言 JSCORE02学习开始 一、复习 JS引擎具有自动修…

操作系统学习笔记_4 文件;磁盘

文件 有信息的数据集合。 文件包含的信息&#xff1a;文件名、标识符&#xff08;操作系统要看&#xff09;、类型、大小、创建修改时间、所有者、安全信息。 文件管理 文件分为无结构的流式文件和有结构的记录式文件。记录式文件由一条条记录组成。 文件存放在根目录里的…

DFGN-Dynamically Fused Graph Network for Multi-hop Reasoning 论文阅读

文章目录介绍相关工作text-based QA多跳QA推理模型段落选择器构建实体图编码 Query 和 ContextFusion Block 推理Doc2GraphDynamic Graph AttentionUpdate QueryGraph2Doc预测介绍 将 DFGN 模型用于HotpotQA &#xff08;TBQA类型的公开数据集&#xff09; QA任务注重从单一的…

ADI Blackfin DSP处理器-BF533的开发详解46:图像处理专题-Translation (图像平移处理)(含源码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 代码实现了图像平移处理&#xff0c;代码运行时&#xff0c;会通过文件系统打开工程文件根目下" …/ImageView"路径中的 tes…

【爬虫实战项目】Python爬取Top100电影榜单数据并保存csv文件(附源码)

前言 今天给大家介绍的是Python爬取Top100电影榜单数据保存csv文件&#xff0c;在这里给需要的小伙伴们代码&#xff0c;并且给出一点小心得。 首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫&#xff0c;基本的是加请求头&#xff0c;但是这样的纯文本数据爬取的…

(四)springcloud之Nacos注册服务与发现-1

前言&#xff1a;一段时间来忙忙碌碌&#xff0c;回头发现很多技术已经更新了很多&#xff0c;很长一段时间都在忙其他的事情&#xff0c;以至于没有太多关注于微服务更新&#xff0c;今天更新了下版本以便于后期使用&#xff0c;突然发现很多东西已经被删除或直接改变了&#…

TIA博途_序列化指令Serialize的具体使用方法示例

TIA博途_序列化指令Serialize的具体使用方法示例 序列化指令的基本用途: 首先,我们可以查看TIA博途中的帮助文件说明,如下图所示: 简单总结就是: 把复杂的数据或数据类型(例如UDT、STRUCT等)转换成BYTE或CHAR类型的数组,从而方便数据处理,通常在通信数据的处理中可以…

DBCO-PEG-amine,二苯并环辛炔PEG氨基 MV 1K、2K、3.4K、4K、5K、10K

1、试剂基团反应特点&#xff08;Reagent group reaction characteristics&#xff09;&#xff1a; DBCO用于无铜点击化学。在没有铜催化剂的情况下&#xff0c;与叠氮化合物的反应非常迅速。这种反应是非常迅速&#xff0c;温和&#xff0c;和生物相容性&#xff0c;NH2和带N…

数据结构---KMP算法

一、KMP算法简介 KMP算法是一个字符串匹配算法&#xff0c;对暴力算法BF的一种优化&#xff0c;使得时间复杂度大量的降低。 基本概念&#xff1a; s[]是字符串&#xff0c;简单来说&#xff0c;就是比较长的字符串。p[]是模式串&#xff0c;简单来说&#xff0c;就是比较短的…

使用小爱同学语音控制电脑关机 - Winform C#

使用小爱同学语音控制电脑变关机前言实现原理准备注册巴法云账号接入巴法云接入米家编写程序连接TCP接收信息并运行关机指令发送指令订阅主题添加心跳机制后台运行阻止默认关闭窗口事件完整代码前言 小爱同学应该已经是家喻户晓的了&#xff0c;现在一直用来控制家里的家电。于…

selenium + python自动化测试环境搭建(有手就行)

selenium 是一个web的自动化测试工具&#xff0c;不少学习功能自动化的同学开始首选selenium &#xff0c;相因为它相比QTP有诸多有点&#xff1a; 免费&#xff0c;也不用再为破解QTP而大伤脑筋 小巧&#xff0c;对于不同的语言它只是一个包而已&#xff0c;而QTP需要下载安装…

时序预测 | MATLAB实现PSO-SVM粒子群优化支持向量机时间序列预测

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

LeetCode刷题日记之链表II

1.四数相加II 题目描述 解题思路 1.定义一个哈希Map,其中key存放两数之和&#xff0c;value存放两数和出现的次数。 2.遍历统计出nums1和nums元数相加和出现的次数(ab)。 3.遍历nums3和nums4&#xff0c;并求和(cd),统计出(0-(cd))在Map中出现的次数。 4.返回&#xff08;0-(…

央企招聘:中国人民银行2023年度招聘启事

2023年中国外汇交易中心 博士后科研工作站招聘公告 中国外汇交易中心暨全国银行间同业拆借中心&#xff08;以下简称“交易中心”&#xff09;于1994年成立&#xff0c;是中国人民银行直属事业单位&#xff0c;为银行间外汇、货币、债券及其衍生产品提供交易、发行、基准及一线…

如何通过.exe文件控制一台电脑

CVE-2022-21999漏洞 如何实现发送一个.exe文件偷偷控制他人的电脑&#xff1f;这个想法很刑的&#xff0c;所以我只是说明我的实现方式&#xff0c;具体操作建议仅用于hvv等专业领域&#xff0c;请勿以身试法。 首先我们分析一下.exe文件的实际应用场景---windows系统的电脑&am…

11、setoolkit工具 构造钓鱼网站、powershell注入

靶机&#xff1a;192.168.11.105攻击机kail&#xff1a;192.168.11.1061.在kali中启动setoolkitsetoolkit2.利用SET构建钓鱼网站1&#xff09;选择1 Social-Engineering Attacks &#xff08;社会工程学攻击&#xff09;2&#xff09;选择2 Website Attack Vectors &#xff…

Spring Boot 概念、创建和运行 · Spring Boot 的优点 · 启动第一个 Spring Boot · Spring Boot 的注意事项

一、什么是 Spring Boot二、Spring Boot 优点三、Spring Boot 项目创建四、项目目录介绍和运行4.1 运行项目4.2 输出 Hello World五、注意事项5.1 包路径错误5.2 小结&#xff1a;约定大于配置六、总结一、什么是 Spring Boot Spring 的诞生是为了简化 Java 程序的开发的&…

GAMES101-现代计算机图形学入门-闫令琪 课程笔记 - 汇总(上)

一些前言与感慨&#xff1a; 学了再多的AI&#xff0c;终究还是没有办法拒绝计算机图形学的魅力。当初就不该一招不慎&#xff0c;踏入AI的坑。 可惜当年在学校里学计算机图形学的时候&#xff0c;还没有闫令琪这么好的课程&#xff0c;当时学得一知半解&#xff0c;云里雾里…

极市直播回放第106期丨阿里达摩院:兼顾速度与精度的高效目标检测框架DAMO-YOLO

阿里巴巴达摩院智能计算实验室团队设计并开源了一款兼顾速度与精度的目标检测框架DAMO-YOLO&#xff0c;其性能超越了目前的一众YOLO系列方法&#xff0c;在实现精度SOTA的同时&#xff0c;保持了很高的推理速度。DAMO-YOLO是在YOLO框架基础上引入了MAE-NAS、efficient-RepGFPN…