8086+ADC0808+8255A电压测量数码管显示Proteus仿真

Proteus仿真截图

代码

CODE SEGMENT
DATA SEGMENT
PORT_ADC EQU 80H
PORT_EOC EQU 40H
PORTA EQU 00H
PORTB EQU 02H
PORTC EQU 04H
PORTCTL EQU 06HNUM DB 3 DUP(?)
LIST DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DATA ENDSMAIN PROC FAR
ASSUME CS:CODE,DS:DATA;段分配
START:
MOV AX, DATA;段初始化
MOV DS, AXMOV DX, PORTCTL;设置8255A工作状态
MOV AL, 80H
OUT DX, AL
BEG:
MOV DX, PORT_ADC;ADC转换过程,NUM低位在前
MOV AL, 00H
OUT DX, AL;MOV DX, PORT_EOC;不使用EOC检测
;NEXT1:
;IN AL, DX
;TEST AL, 0F0H
;JNZ NEXT1
;NEXT2:
;IN AL, DX
;TEST AL, 0F0H
;JZ NEXT2
;MOV DX, PORT_ADCCALL DELAY;使用延时代替
IN AL, DX
MOV BL, 5;转换成十进制
MUL BL
MOV NUM+2, AH
MOV BL, 10
MUL BL
MOV NUM+1, AH
MUL BL
MOV NUM, AHCALL SHOW;显示
JMP BEG
MAIN ENDPSHOW PROC NEAR;输送数码管
MOV DX, PORTC
MOV AL, 0FEH
OUT DX, AL
MOV AL, NUM
MOV BX, OFFSET LIST
XLAT
MOV DX, PORTA
OUT DX, AL
CALL DELAY
MOV DX, PORTC
MOV AL, 0FDH
OUT DX, AL
MOV AL, NUM+1
MOV BX, OFFSET LIST
XLAT
MOV DX, PORTA
OUT DX, AL
CALL DELAY
MOV DX, PORTC
MOV AL, 0FBH
OUT DX, AL
MOV AL, NUM+2
MOV BX, OFFSET LIST
XLAT
MOV DX, PORTA
ADD AL, 80H
OUT DX, AL
CALL DELAY
RET
SHOW ENDPDELAY PROC NEAR;延时
PUSH SI
PUSH CX
MOV SI, 1
DELAYNEXT1:
MOV CX, 1000H
DELAYNEXT2:
LOOP DELAYNEXT2
DEC SI
JNZ DELAYNEXT1
POP CX
POP SI
RET
DELAY ENDPCODE ENDS
END MAIN

思路

使用ADC0808对被测电压做ADC转换,然后将得到的8bit数据转换成三位(小数点前一位,后两位)十进制数。然后将十进制数每一位分别通过查表,8255A显示。不断循环刷新。

8086+ADC0808+8255A电压测量数码管显示Proteus仿真相关推荐

  1. 51单片机AD转换pcf8591+数码管显示+Proteus仿真二

    51单片机AD转换pcf8591+数码管显示+Proteus仿真二

  2. Arduino 74HC595驱动数码管0-9循环显示+Proteus仿真

    Arduino 74HC595驱动数码管0-9循环显示+Proteus仿真 Proteus仿真 实例代码(do{}while();实现方法) /*74HC595控制1位共阳数码管* * * * * * ...

  3. Arduino UNO + 74HC595联级+数码管实现000-999循环计数显示+ Proteus仿真

    Arduino UNO + 74HC595联级+数码管实现000-999循环计数显示+ Proteus仿真 3个74HC595联级显示000-999计数 Proteus仿真 实例代码 int latc ...

  4. 51单片机定时器累加计数(000-999)+4位数码管(循环显示)+Proteus仿真

    51单片机定时器累加计数(000-999)+4位数码管(循环显示)+Proteus仿真 说明:为什么采用4位的数码管,因为Proteus里面没有3位的数码管器件可选,也可以采用2+1,或者1+1+1, ...

  5. Arduino UNO+DS1302+74HC595联级+8位数码管时钟+Proteus仿真

    Arduino UNO+DS1302+74HC595联级+8位数码管时钟+Proteus仿真 最新篇<Arduino UNO+DS1302+74HC595联级+8位数码管时钟+Proteus仿真 ...

  6. 基于icl7107的温度计显示proteus仿真

    基于icl7107的温度计显示proteus仿真 话不多说先上作品图 由于使用的仿真软件中没有icl7107,所以用的是tc7107,两者除了芯片引脚不同,其他没有什么区别. 实现原理 首先得弄清楚整 ...

  7. 51单片机 DHT11+LCD12864温湿度显示 + Proteus仿真

    51单片机 DHT11+LCD12864温湿度显示 + Proteus仿真 采用的接线方式是IIC接口,在Proteus里面仿真太慢了,不知道是电脑古老问题还是怎么,看图像就知道了,有多卡,感觉电脑运 ...

  8. 51单片机ADC0832模数转换+ LCD1602显示+Proteus仿真

    51单片机ADC0832模数转换+ LCD1602显示+Proteus仿真 Proteus仿真 在Proteus SP2仿真过程中发现无法读取ADC0832的数据.解决办法:在proteus安装目录下 ...

  9. 51单片机 DHT11+LCD1602温湿度显示 + Proteus仿真

    51单片机 DHT11+LCD1602温湿度显示+ Proteus仿真 主程序代码 #include <reg52.h> #include <LCD1602.h> #inclu ...

最新文章

  1. OpenMediaVault Redmine 安装
  2. Linux系统抓包命令tcpdump使用实例
  3. flash与IPhone
  4. redis的安装及springDataRedis
  5. java返回两个string_java – 为什么String.intern()方法返回两个不同的结果?
  6. 投票选举 算法_区块链主流共识算法一文全通
  7. [改善Java代码]枚举项的数量限制在64个以内
  8. Python+tkinter模拟京东旋转图片式验证码输入
  9. python复杂网络全局效率计算_python复杂网络库networkx:算法
  10. Word 2010/2013 菜单栏添加 MathType 菜单
  11. convLSTM-tensorflow:LSTM理解
  12. [转]上海五年的奋斗历程 从月薪3500到700万(感人!催人振奋!)
  13. 【排列组合】只上代码不解释
  14. android的大转盘抽奖完美实现
  15. GitHub前50名的Objective-C动画相关库相关推荐,请自行研究
  16. MATLAB textscan之模式匹配用法
  17. 【ReID】EANet: Enhancing Alignment for Cross-Domain Person Re-identification
  18. python 爬网站上的图片
  19. awss3mysql_Amazon aws s3 加速
  20. php神盾解密,浅谈PHP神盾的解密过程

热门文章

  1. excel高级筛选怎么用_excel:高级筛选技巧大全,值得收藏
  2. OpenOffice开发者指南笔记
  3. 网络图片版权保护的主要问题
  4. 语音识别中使用Cool Edit Pro的使用注意事项
  5. 如何快速提取文件名称?
  6. 面试官问你斐波那契数列的时候不要高兴得太早 搞懂C语言函数指针 搜索引擎还可以这么玩? 那些相见恨晚的搜索技巧...
  7. 一种基于肌电信号运动起点、波峰、终点实时自动检测的方法
  8. 记录远程桌面无法互相拷贝文件可能的原因和解决方法
  9. 很全的饮食英语词汇表
  10. 四十余款不良APP被工信部下架处理