ad转化输出电压值8086和ADC0808的Proteus仿真
注意:Proteus中没有ADC0809因此要选择ADC0808
DATAS SEGMENT;此处输入数据段代码 IOYO equ 0C400h;对应的端口地址a8255 equ IOYO+00H*4;A端口b8255 equ IOYO+01H*4;B端口c8255 equ IOYO+02H*4;C端口m8255 equ IOYO+03H*4;8255控制字adc0808 equ 0C420h;对应的ADC0808的端口 table db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8hdb 80h,90h,88h,83h,0c6h,0a1h,86h,8ehresult db 5 dup(?)buf db 5 dup(?)
DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码db 200 dup(0)
STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS
START:MOV AX,DATASMOV DS,AX;准备工作写控制字lea di,result;用来保存计算后转换的结果mov dx,m8255mov al,99h;1001 1001out dx,almov dx,b8255mov al,0fhout dx,al;相当与单片机的while(1)部分;这里是0808测量部分部分,这里测量得到al的结果为1010 1000
LOOP1:mov dx,adc0808mov al,0out dx,almov dx,c8255
EOC:in al,dxtest al,01h;00表示还在转换jz eocjmp finish
Finish:mov dx,a8255in al,dx;计算转换结果mov ah,00h;将ah中的内容清零mov bx,01f4h;500的16进制mul bx;将al和500相乘,高位放到dx中,低位存在ax中mov bx,0ffhdiv bx;除以255得到的结果,ax中结果为0000 0001 0100 1001mov cx,ax;cx中备份数据;显示结果;将数据转换为十进制mov bx,10mov si,2;三位
toDec:mov dx,0div bx;(dx,ax)/bx中的数据除以bxmov [buf+si],dl;余数为该位上的值,第一次循环为个位,第二次为十位dec sicmp ax,0;商为0表示算法结束ja toDec;计算个位inc simov al,[buf+si]inc simov bx,offset tablexlatand al,7fh;加上小数点mov [di],al;计算第一个小数点位mov al,[buf+si]inc sixlat tablemov [di+1],al;计算第二个小数点位mov al,[buf+si]xlat tablemov [di+2],al;完成数码管动态扫描刷新mov dx,b8255;8255芯片or dx,0800h;;0000 1000 0000 0000mov al,[di+2]out dx,alcall delay_2msmov dx,b8255or dx,1000h;0001 0000 0000 0000mov al,[di+1]out dx,alcall delay_2msmov dx,b8255or dx,1800h;0001 1000 0000 0000mov al,[di]out dx,alcall delay_2msjmp LOOP1;循环MOV AH,4CHINT 21Hdelay_2ms proc nearpush bxmov bx,1ffh
LP2:pushfpopfdec bxjnz lp2pop bxret
delay_2ms endp
CODES ENDSEND START
结果是可以实时显示电压值。
A/D转化部分,显示结果需要经过一些计算,首先要计算分辨率,基准源为5V,分辨率为5.0/255=0.019,然后再和ADC0808输出的结果相乘得到的就是最终的结果。这个实验的显示部分我改进了几次,因为要显示多位数值,因此要对数码管进行动态扫描,可是不知道如何使用中断,因此扫描就是用的计时的方法,每当检测一次ADC0808转化的结果,就扫描数码管显示,可是因为用了一个1s的延时程序,因此中间会有一段数码管完全没有显示,所有就改进为检测EOC位,因为EOC位转化时为低电平,转化完成后会变为高电平,因此直接检测EOC位是否变为高电平延时很短,人眼也观察不出来效果就是数码管可以持续显示,还有一个问题是ADC0808在运行程序后只能检测一次,之后改变电压值,不会输出检测的结果。后来发现是使能端start和ALE的问题,修改之后就可以正常显示了,这里给出的是修改之后的程序。
时钟信号设置:
部分使能信号:
ad转化输出电压值8086和ADC0808的Proteus仿真相关推荐
- da转化输出不同波形8086和DAC0832的Proteus仿真
DATAS SEGMENT;此处输入数据段代码 DAC0832 equ 0C400h IOY1 equ 0C480hb8255 equ IOY1+01H*4m8255 equ IOY1+03H*4bu ...
- 音乐发生器8086和8253通过Proteus仿真
图中脉冲信号的频率为307.2KHz. 我这里实现了不同的乐曲分别是小星星,友谊地久天长和卖报歌,按下开关一是小星星,开关二是友谊地久天长,开关三是卖报歌: DATAS SEGMENT;此处输入数据段 ...
- 不同频率的方波发生器8086和8253的Proteus仿真
时钟信号的频率为307.2kHz. 通过按钮可以选择输出不同频率的方波. DATAS SEGMENT;此处输入数据段代码 IOYO equ 0C400h;对应的端口地址IOY1 equ 0C440hM ...
- 8086+ADC0808+8255A电压测量数码管显示Proteus仿真
8086+ADC0808+8255A电压测量数码管显示Proteus仿真 Proteus仿真截图 代码 CODE SEGMENT DATA SEGMENT PORT_ADC EQU 80H PORT_ ...
- 二极管电路图如图所示,试分析各电路中二极管的工作状态,并求出输出电压值,设二极管的导通电压为Vd=0.7V
二极管电路图如图所示,试分析各电路中二极管的工作状态,并求出输出电压值,设二极管的导通电压为Vd=0.7V. (1) 当二极管开路时,Vd=2-(-2)=4V>0.7V,故二极管两端电压为导通状 ...
- “MPX4115型压力传感器+PCF8591型AD+模拟IIC总线”的Proteus仿真
一.MPX4115型压力传感器介绍 1.1 引脚说明 即:1引脚为模拟量输出,2引脚接地,三引脚接电源,4.5.6引脚空 1.2 输出特性图 选择典型曲线,我们可以得知转换公式:压力值=(电压值/5. ...
- 【Proteus仿真】ATMEGA16 ADC转化数码管显示
[Proteus仿真]ATMEGA16 ADC转化数码管显示 注意这是ATMEGA16AVR型号的单片机,不能在Keil平台上进行开发和编译的. Proteus仿真 所使用的编译软件ICCAVR 不懂 ...
- 8086+DAC0832产生方波、三角波及正弦波波形Proteus仿真
8086+DAC0832产生方波.三角波及正弦波波形Proteus仿真 仿真截图 代码 CODE SEGMENTDATA SEGMENT SQURE DB 0,0,0,0,0,0,0,0,0,0,25 ...
- 基于8086步进电机定时启动设计-基于8086八路智能抢答器系统控制设计-基于8086八路PT100热敏电阻温度采集-基于8086 8253定时计数器方波发生器仿真-基于8086的1602动态显示仿真
1157基于8086八路智能抢答器系统控制设计-微机原理资料 以8086为核心,设计一个8位竞赛抢答器:同时供8名选手或8个代表队比赛,分别用8个按钮S0-S7表示. 设置一个系统清除和抢答控制开关S ...
- 【资料转发分享】基于8086八路智能抢答器系统控制设计、基于8086八路PT100热敏电阻温度采集、基于8086步进电机定时启动设计-仿真设计资料
1157基于8086八路智能抢答器系统控制设计-微机原理资料 以8086为核心,设计一个8位竞赛抢答器:同时供8名选手或8个代表队比赛,分别用8个按钮S0-S7表示. 设置一个系统清除和抢答控制开关S ...
最新文章
- deepsort原理快速弄懂——时效比最高的
- java并发处理时mvel表达式处理慢,一文说清!
- 浅谈常见的七种加密算法及实现(附代码)
- 一段从TXT导入excel的py脚本
- laya 怎么生成签名_PHP开发API接口签名生成及验证
- jquery ajax json转换出错Invalid JSON
- c语言char有什么作用,C语言中char*和char[]用法区别分析
- 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 11丨产品销售分析 II【难度简单】
- 图解 继电器模组接线图_中间继电器如何接线_中间继电器接线图图解
- python循环结构代码_Python --- 程序的循环结构
- 转Java调用C/C++编写的第三方dll动态链接库(非native API)--- JNI
- 完全二叉树之深度问题
- T电脑经典基础知识技术OC
- NBU备份软件实施过程的注意事项
- 开心盒子助手3.0版|开心盒子助手工具3.0电脑版
- 基于AD9979+夏普sharp 1/3英寸130万像素CCD成像组件设计
- 苹果手机白屏_岳瀚:Iphone手机维修简单总结
- 【无线网络技术专题(十)】企业无线网络规划设计与交付流程
- 会计专业毕业论文如何选题?
- 系统常用的通信对接方式