基于51单片机及ADC0808的数字电压表数码管汇编语言proteus仿真程序设计
前言
大家好,上一条博客写了关于基于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仿真程序设计相关推荐
- 基于51单片机的四位共阴数码管秒表proteus仿真
硬件设计 (末尾附文件) 代码设计 #include "reg51.h" #include "intrins.h"#define GPIO_DIG P2 //数 ...
- 基于51单片机MAX6675的热电偶智能体温度检测proteus仿真程序设计
硬件设计 (末尾附文件) 本系统采用的是K型热电偶采集温度,因此本设计有温度采集部分,数据处理部分,温度显示部分,故障显示并显示部分组成.AT89S52单片机以及单片机的外围电路由晶振电路,复位电路, ...
- 【033】基于51单片机的步进电机角度测量与速度设定Proteus仿真设计
一.压缩包资料内容 (1).基于51单片机的步进电机角度测量与速度设定proteus仿真设计一份: (2).基于51单片机的步进电机角度测量与速度设定proteus仿真设计keli源代码一份: (3) ...
- 1430基于51单片机的管道压力检测及泄漏检测Proteus仿真
[前言] hello 大家好,今天给大家讲一讲基于51单片机的管道压力检测及泄漏检测Proteus仿真. 该项目的功能如下: 1.LCD1602液晶实时显示当前始端和末端压力,压力阈值 2.按键启动/ ...
- 基于51单片机CO一氧化碳可燃气体浓度检测超限报警Proteus仿真
资料编号:160 下面是相关功能视频演示: 160-基于51单片机CO一氧化碳可燃气体浓度检测超限报警Proteus仿真(源码+仿真+全套资料) 功能介绍: 采用51单片机作为CPU,ADC083 ...
- 基于51单片机的温湿度光强二氧化碳气体家庭环境检测proteus仿真
硬件设计 仿真图1: 该设计是基于51单片机的温湿度光强二氧化碳检测系统,由LCD1602作为显示器,温湿度采用的SHT11传感器,ADC采用的TLC2543,光强就是光敏传感器,气体检测这里采用的是 ...
- 基于51单片机的智能冰箱鱼缸淬火炉温度控制系统proteus仿真
今天讲解一个温度控制系统的设计,温度控制系统我们在家庭冰箱.鱼缸或者工厂的淬火炉中常常见到,原理其实不复杂:通过人机交互设置好温度的工作范围,外设具有降温和升温设备,当环境温度高于预设温度值,降温设备 ...
- 基于51单片机八路抢答器课程设计(含proteus仿真图及代码)
一.设计要求: 1.可满足8个选手的抢答 2.具有主持者控制开关,用来控制系统清零和抢答开始 3.抢答器具有数据锁存功能.显示功能和声音提示功能 4.抢答开始后,若有选手按动抢答器按钮,编号立即锁存, ...
- 基于51单片机的数字电容容值测量仪proteus仿真原理图PCB
功能介绍: 0.本系统采用STC89C52作为单片机 1.系统支持15pF~450uF电容测量 2.按键可更改测量量程 3.除了采用LCD1602可以实时显示测量参数,同时具有LED可以显示各个档位 ...
- 基于51单片机的万年历(带温湿度)带闹钟功能proteus仿真原理图PCB
功能介绍: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶显示当前时间和温湿度 2.按键可切换页面,显示农历,显示闹钟设置 3.当时间到达设定闹钟时间时,蜂鸣器报警 原理图: PCB ...
最新文章
- 编译vim-8.2并配置jedi-vim插件
- 掌握它才说明你真正懂 Elasticsearch
- html5 canvas 画图移动端出现锯齿毛边的解决方法
- linux应用之--网络编程
- verilog设置24进制计数器_阅读笔记:《Verilog HDL入门》第3章 Verilog语言要素
- java时间戳版本号_maven 自动编译版本号 buildnumber-maven-plugin 1.4
- Kotlin协程的迷惑
- zbbz的lisp_求CAD lisp 程序,选择一条或多条多段线,输出其上点的x,y,z坐标。
- 显示器黑屏的原因解析及解决方法
- 关于几种图片格式的压缩
- C#: 生辰八字五行计算算法
- 枫叶永恒 服务器维护,3月8日服务器维护公告
- MATLAB--数字图像处理 PSNR
- mysql high priv_MYSQL新特性secure_file_priv对读写文件的影响
- Linux下dcm2niix使用
- 联想手机鸿蒙刷机包,联想手机刷机教程 卡刷
- Arthas 使用以及火焰图
- java ethereum_EthereumJ是Ethereum协议的纯java实现
- python520的代码_Python520表白神器.py
- SQL server无法启动服务,提示“错误1069: 由于登录失败而无法启动服务”
热门文章
- python全栈开发工程师_Python Web全栈开发工程师修炼之路
- lede 内核 单 编_终于搞定,在lede官方源码编译k3固件的方法。求助变分享
- Node+Express实现文件的上传下载与删除
- STEP 7 MicroWIN SMART编程软件PG_PC以太网接口搜索不到CPU怎么办?
- list集合排序-lambda表达式实现
- 用c语言算法统宗 李白沽酒,趣味数学题:百羊问题与李白沽酒
- HTML5期末大作业:web课程设计“我的家乡”——四川成都(7页) HTML+CSS+JavaScript
- W3Cschoool菜鸟教程
- 关于Jqueryweui 的select联动用法
- Axure团队项目之Axure share与 SVN