前言

大家好,上一条博客写了关于基于51单片机以及ADC0808的数字电压表,但是采用的C语言,本章讲一下采用汇编语言来实现电压的测量,同样采用数码管显示。

硬件设计

该设计采用的MCU同样是51单片机,ADC也是采用的TI的ADC0808,显示部分采用4位数码管,最终的测试电压范围为0~5V,这次的精度提高到约为0.01V,仿真图如下:
右下方是模拟的输入电压

部分汇编代码如下: (代码详细备注,方便阅读)

         LED_0   EQU 30H             ;百分位LED_1   EQU 31H             ;十分位LED_2   EQU 32H             ;个位LED_3    EQU 33H             ;十位ADC      EQU 35HCLOCK    BIT P1.4            ;定义0808时钟位ST        BIT P1.5EOC     BIT P1.6OE      BIT P1.7ORG 0000HLJMP STARTORG  000BHLJMP INT_T0ORG 30H
START:  MOV LED_0,#00HMOV   LED_1,#00HMOV   LED_2,#00HMOV   DPTR,#TABLE             ;表格数值赋到DPTRMOV  TMOD,#02H               ;定时器选择方式2MOV    TH0,#0F5H               ;防止数码管数位闪动,可设定的置为小于等于245的数MOV    TL0,#00HMOV IE,#82H                 ;开T0中断SETB TR0                  ;T0开始计数
WAIT:   CLR STSETB ST                       ;上升沿清零SAR(SAR用来在A/D转化过程中存放暂态数字量)CLR   ST                      ;下降沿启动ADC工作JNB  EOC,$                   ;等待转换结果SETB OE                      ;ADC输出MOV   ADC,P2                  ;读取AD转换结果CLR    OE      MOV A,ADC                   MOV R7,A                    ;R7储存AD转换后的结果               MOV LED_3,#00H              ;清空十位MOV    LED_2,#00H              ;清空个位MOV    A,#00H
LOOP1:  ADD A,#20H                  ;一位二进制码对应100mVDA    A                       ;结果转换成BCD码JNC   LOOP2                   ;Cy为0跳转,Cy为1继续执行MOV  R4,A                    ;R4储存百分位、十分位INC LED_2                   ;个位加1MOV    A,LED_2CJNE A,#0AH,LOOP4            ;个位不为10跳转,为10继续执行MOV LED_2,#00H              ;个位置0INC    LED_3                   ;十位加1
LOOP4:  MOV A,R4
LOOP2:  DJNZ R7,LOOP1               ;R7减1不为0跳转,为0继续执行ACALL BTOD1LCALL DISP                   ;调用显示子程序LJMP WAITORG    0200H
BTOD1:  MOV R6,A                    ;R6储存R7为0后的A的值

附:http://www.jh-tec.cn/archives/7313

基于51单片机及ADC0808的数字电压表数码管汇编语言proteus仿真程序设计相关推荐

  1. 基于51单片机的四位共阴数码管秒表proteus仿真

    硬件设计 (末尾附文件) 代码设计 #include "reg51.h" #include "intrins.h"#define GPIO_DIG P2 //数 ...

  2. 基于51单片机MAX6675的热电偶智能体温度检测proteus仿真程序设计

    硬件设计 (末尾附文件) 本系统采用的是K型热电偶采集温度,因此本设计有温度采集部分,数据处理部分,温度显示部分,故障显示并显示部分组成.AT89S52单片机以及单片机的外围电路由晶振电路,复位电路, ...

  3. 【033】基于51单片机的步进电机角度测量与速度设定Proteus仿真设计

    一.压缩包资料内容 (1).基于51单片机的步进电机角度测量与速度设定proteus仿真设计一份: (2).基于51单片机的步进电机角度测量与速度设定proteus仿真设计keli源代码一份: (3) ...

  4. 1430基于51单片机的管道压力检测及泄漏检测Proteus仿真

    [前言] hello 大家好,今天给大家讲一讲基于51单片机的管道压力检测及泄漏检测Proteus仿真. 该项目的功能如下: 1.LCD1602液晶实时显示当前始端和末端压力,压力阈值 2.按键启动/ ...

  5. 基于51单片机CO一氧化碳可燃气体浓度检测超限报警Proteus仿真

    资料编号:160   下面是相关功能视频演示: 160-基于51单片机CO一氧化碳可燃气体浓度检测超限报警Proteus仿真(源码+仿真+全套资料) 功能介绍: 采用51单片机作为CPU,ADC083 ...

  6. 基于51单片机的温湿度光强二氧化碳气体家庭环境检测proteus仿真

    硬件设计 仿真图1: 该设计是基于51单片机的温湿度光强二氧化碳检测系统,由LCD1602作为显示器,温湿度采用的SHT11传感器,ADC采用的TLC2543,光强就是光敏传感器,气体检测这里采用的是 ...

  7. 基于51单片机的智能冰箱鱼缸淬火炉温度控制系统proteus仿真

    今天讲解一个温度控制系统的设计,温度控制系统我们在家庭冰箱.鱼缸或者工厂的淬火炉中常常见到,原理其实不复杂:通过人机交互设置好温度的工作范围,外设具有降温和升温设备,当环境温度高于预设温度值,降温设备 ...

  8. 基于51单片机八路抢答器课程设计(含proteus仿真图及代码)

    一.设计要求: 1.可满足8个选手的抢答 2.具有主持者控制开关,用来控制系统清零和抢答开始 3.抢答器具有数据锁存功能.显示功能和声音提示功能 4.抢答开始后,若有选手按动抢答器按钮,编号立即锁存, ...

  9. 基于51单片机的数字电容容值测量仪proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.系统支持15pF~450uF电容测量 2.按键可更改测量量程 3.除了采用LCD1602可以实时显示测量参数,同时具有LED可以显示各个档位 ...

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

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

最新文章

  1. 编译vim-8.2并配置jedi-vim插件
  2. 掌握它才说明你真正懂 Elasticsearch
  3. html5 canvas 画图移动端出现锯齿毛边的解决方法
  4. linux应用之--网络编程
  5. verilog设置24进制计数器_阅读笔记:《Verilog HDL入门》第3章 Verilog语言要素
  6. java时间戳版本号_maven 自动编译版本号 buildnumber-maven-plugin 1.4
  7. Kotlin协程的迷惑
  8. zbbz的lisp_求CAD lisp 程序,选择一条或多条多段线,输出其上点的x,y,z坐标。
  9. 显示器黑屏的原因解析及解决方法
  10. 关于几种图片格式的压缩
  11. C#: 生辰八字五行计算算法
  12. 枫叶永恒 服务器维护,3月8日服务器维护公告
  13. MATLAB--数字图像处理 PSNR
  14. mysql high priv_MYSQL新特性secure_file_priv对读写文件的影响
  15. Linux下dcm2niix使用
  16. 联想手机鸿蒙刷机包,联想手机刷机教程 卡刷
  17. Arthas 使用以及火焰图
  18. java ethereum_EthereumJ是Ethereum协议的纯java实现
  19. python520的代码_Python520表白神器.py
  20. SQL server无法启动服务,提示“错误1069: 由于登录失败而无法启动服务”

热门文章

  1. python全栈开发工程师_Python Web全栈开发工程师修炼之路
  2. lede 内核 单 编_终于搞定,在lede官方源码编译k3固件的方法。求助变分享
  3. Node+Express实现文件的上传下载与删除
  4. STEP 7 MicroWIN SMART编程软件PG_PC以太网接口搜索不到CPU怎么办?
  5. list集合排序-lambda表达式实现
  6. 用c语言算法统宗 李白沽酒,趣味数学题:百羊问题与李白沽酒
  7. HTML5期末大作业:web课程设计“我的家乡”——四川成都(7页) HTML+CSS+JavaScript
  8. W3Cschoool菜鸟教程
  9. 关于Jqueryweui 的select联动用法
  10. Axure团队项目之Axure share与 SVN