一、实验目的

通过编写程序,掌握ADC0809的工作原理以及应用方法,掌握ADC0809初始化及应用的编程,实现计算机多点模拟量的采集并完成转换且能够将值实时的显示在外设上。在此基础上,掌握在计算机屏幕、七段数码管、LCD液晶屏等不同显示器件的显示编程。提高自身的编程能力。

二、实验设备与环境

硬件上,使用实验室的TPC-ZK-II硬件实验箱,系统由USB总线接口模块、TPC-ZK-II实验系统及集成开发环境软件组成。USB总线接口模块通过USB总线电缆与pc机相连,模块直接插在TPC-ZK-II实验系统上。具体硬件见使用指导书。

软件上,使用TPC-ZK-II集成开发环境。为用户提供了程序的编辑、汇编、调试、运行等功能。


三、实验内容与指标

3.1设计要求

在平台上利用ADC0809编程实现从IN0、IN1、IN2采集三路信号模拟量,并将转换后的数字量(保留1位小数)在计算机屏幕上实时显示出来。在此基础上,利用数码管、LED排灯来丰富模拟量的表现形式。更进一步的,能够利用LCD显示屏实时显示模拟量的变化波形。

3.2设计目标和性能指标

3.2.1基础功能

(1)在平台上利用ADC0809采集三路信号并转化后在计算机屏幕实时显示

解决这个问题可以将其分为两步:第一步是采集各个路的数据,第二步是将三路信号进行一个实时的显示。首先,对于第一步的实现,只需在不同时间选通不同的IN端口,便可以拿到数据,这时拿到的数据是一个二进制数据,还需要将其变为一个十进制的数字。具体方法是:由于拿到的是255(最大值)的二进制数,可以先将其乘2再除以100,这样就拿到了整数部分(近似),再将余数除10,就拿到了近似的一位小数,由此就拿到了十进制的小数并可以调用INT功能进行显示。第二步,对于实时显示,其实就是一个串行的显示,将每次拿到的数值都送出显示便可以做到实时的动态显示。

3.2.2扩展功能

(1)数码管显示

实现这一问题的原理在上边已经解释,即依托在处理好小数情况下的位码、段码的快速切换。

(2)LED的显示

这个功能也非常简单,只需在INT0通道采集到数据后将其送给PC口即可。

(3)LCD的显示

本次实验并未使用。

3.3硬件电路图

整体电路如下所示,主要芯片ADC0809、P8255。

四、程序流程图

整个程序的框架为串行结构,由于不存在判断转跳等问题,因此十分简单,对于数码管显示的位码段码切换等细节进行了忽略,原理与之前的实验是相同的。

五、方案设计与讨论

方案的整体架构是有两方法可以实现的,最开始是希望将所有数据都采集到并存入定义好的变量后再进行统一的输出,但这样做有两个坏处:其一,这相当于将数据刷新的时间堆在了一遍,而采集处理数据的时间堆在了另一边,会降低整个采集的实时性,此外,这种做法会加大LED输出二进制码的复杂度。在采集到IN0信号就进行输出是相对简单的。但这种方案也并不是没有优点,在处理采集数据的相对关系时,这种先采集、在处理的想法就变得非常有效,相比之下,串行输入输出会变得低效。

在本次采用方案的灵活性上,其实还可以继续增加。方案中一旦开始就只能结束再启动,并没有人为可控的判断在内,可以添加一些例如暂停、继续的选项以增加系统的灵活性。

在显示上,本次采用了数码管以及二进制显示的方法,但相比之下其实LCD的显示是更为直观的,也可以在此基础之上进行嵌入,LCD的基本思想在于动态的刷新屏幕,涉及到滚动等方法。

六、程序展示

;ADC:CS:280H~287H,IN0:0~5v,IN1:+5V,IN2:0V
;数码管位选:CS:288H,段选:P8255A,位选:P8255A
;LED排灯:P8255C串口DATAS SEGMENTP8255A EQU 288HP8255B EQU 289HP8255C EQU 28AHP8255S EQU 28BHADI0   EQU 280H ADI1   EQU 281H ADI2   EQU 282HNUM_LIST DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6H    ;无小数点数字NUMP_LST  DB 0FDH,61H,0DBH,0F3H,67H,0B7H,0BFH,0E1H,0FFH,0F7H   ;有小数点的数字NUM1 DB ?NUM2 DB ?NUM3 DB ?
DATAS ENDSCODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:MOV AX,DATASMOV DS,AXMOV DX,P8255SMOV AL,80H        ;8255初始化OUT DX,AL
MAINLP:CALL GNUM1CALL PNUM1CALL GNUM2CALL PNUM2CALL GNUM3CALL PNUM3JMP MAINLP
;==============================================================GNUM1 PROC MOV AL,00MOV DX,ADI0OUT DX,AL         ;初始化数模转换器NOPNOPNOPNOPMOV DX,ADI0IN AL,DXMOV NUM1,ALMOV DX,P8255C     ;显示LED排灯OUT DX,AL MOV BX,2MUL BLMOV BL,100DIV BLMOV CH,AL         ;CH为采集数的整数部分MOV CL,AH         ;CL为采集数的小数部分RET
GNUM1 ENDPPNUM1 PROC ;数码显示整数MOV DX,P8255AMOV AL,00OUT DX,AL         ;数码管清零MOV DX,P8255BMOV AL,00000001B  ;选位码OUT DX,ALMOV DX,P8255AMOV BX,0000HMOV BL,CHMOV BH,0MOV AL,NUMP_LST[BX]             ;查表输出带小数点的数字,led显示OUT DX,AL;屏幕显示整数MOV AL,CHADD AL,30H                MOV DL,ALMOV AH,02H                      ;输出数字个位显示在屏幕上INT 21HMOV DL,46                       ;输出小数点,显示在屏幕上MOV AH,02HINT 21H;数码显示小数MOV AL,CLMOV BX,10MUL BLMOV BX,100DIV BLMOV CL,AL                       ;得到十分位数据MOV DX,P8255AMOV AL,00OUT DX,AL MOV DX,P8255BMOV AL,00000010BOUT DX,ALMOV DX,P8255AMOV BX,0000HMOV BL,CLMOV BH,0MOV AL,NUM_LIST[BX]             ;输出无小数点的数字,led显示OUT DX,AL                  ;屏幕显示小数 MOV AL,CLADD AL,30HMOV DL,ALMOV AH,02HINT 21HMOV DL,32                      ;输出空格MOV AH,02HINT 21HRET
PNUM1 ENDPGNUM2 PROC MOV AL,00MOV DX,ADI1OUT DX,AL                      ;初始化数模转换器NOPNOPNOPNOPMOV DX,ADI1IN AL,DXMOV NUM2,ALMOV BX,2MUL BLMOV BL,100DIV BLMOV CH,AL                      ;CH为采集数的整数部分MOV CL,AH                      ;CL为采集数的小数部分RET
GNUM2 ENDPPNUM2 PROC ;数码显示整数MOV DX,P8255AMOV AL,00OUT DX,AL                      ;数码管清零MOV DX,P8255BMOV AL,00001000B               ;选位码OUT DX,ALMOV DX,P8255AMOV BX,0000HMOV BL,CHMOV BH,0MOV AL,NUMP_LST[BX]            ;查表输出带小数点的数字,led显示OUT DX,AL;屏幕显示整数MOV AL,CHADD AL,30H                MOV DL,ALMOV AH,02H                     ;输出数字个位显示在屏幕上INT 21HMOV DL,46                      ;输出小数点,显示在屏幕上MOV AH,02HINT 21H;数码显示小数MOV AL,CLMOV BX,10MUL BLMOV BX,100DIV BLMOV CL,AL                      ;得到十分位数据MOV DX,P8255AMOV AL,00OUT DX,AL MOV DX,P8255BMOV AL,00010000BOUT DX,ALMOV DX,P8255AMOV BX,0000HMOV BL,CLMOV BH,0MOV AL,NUM_LIST[BX]            ;输出无小数点的数字,led显示OUT DX,AL                  ;屏幕显示小数 MOV AL,CLADD AL,30HMOV DL,ALMOV AH,02HINT 21HMOV DL,32                      ;输出空格MOV AH,02HINT 21HRET
PNUM2 ENDPGNUM3 PROC MOV AL,00MOV DX,ADI2OUT DX,AL                      ;初始化数模转换器NOPNOPNOPNOPMOV DX,ADI2IN AL,DXMOV NUM2,ALMOV BX,2MUL BLMOV BL,100DIV BLMOV CH,AL                      ;CH为采集数的整数部分MOV CL,AH                      ;CL为采集数的小数部分RET
GNUM3 ENDPPNUM3 PROC ;数码显示整数MOV DX,P8255AMOV AL,00OUT DX,AL                      ;数码管清零MOV DX,P8255BMOV AL,01000000B               ;选位码OUT DX,ALMOV DX,P8255AMOV BX,0000HMOV BL,CHMOV BH,0MOV AL,NUMP_LST[BX]            ;查表输出带小数点的数字OUT DX,AL;屏幕显示整数MOV AL,CHADD AL,30H                MOV DL,ALMOV AH,02H                     ;输出数字个位显示在屏幕上INT 21HMOV DL,46                      ;输出小数点,显示在屏幕上MOV AH,02HINT 21H;数码显示小数MOV AL,CLMOV BX,10MUL BLMOV BX,100DIV BLMOV CL,AL                      ;得到十分位数据MOV DX,P8255AMOV AL,00OUT DX,AL MOV DX,P8255BMOV AL,10000000BOUT DX,ALMOV DX,P8255AMOV BX,0000HMOV BL,CLMOV BH,0MOV AL,NUM_LIST[BX]            ;查表输出无小数点的数字OUT DX,AL                  ;屏幕显示小数 MOV AL,CLADD AL,30HMOV DL,ALMOV AH,02HINT 21HMOV DL,32                      ;输出空格MOV AH,02HINT 21HMOV DL,0DH                     ;显示回车,进行实时显示MOV AH,2INT 21HRET
PNUM3 ENDPCODES ENDS
END START

七、实验结果与分析

首先,整个电路的实物连接如下:

观察数码管,可以看到可以随数值的变化而实时显示(由于手机快门过快,实际上人眼观察到的此时值为2.8V)

与此同时,观察屏幕的显示也进行着同步的更新。

再观察显示二进制数的LED排灯,这里以5V距离,可以看到它是全亮的(即达到最大幅值)

八、实验总结

本次的实现强化了对于ADC0809的使用,由于设计的整体架构较为简单,因此这次实验并没太多的困难,很顺利就可以实现。当然,对于LCD的显示问题也是一个可扩展的点,但线路复接是一个需要考虑的问题。

[微机原理]多点模拟量计算机数据采集实验相关推荐

  1. 计算机微机原理及接口技术实训室,《微机原理与接口技术》课程实验报告.doc...

    <微机原理与接口技术>课程实验报告 实验一基本操作 一.实验目的 ? 1.熟悉Netlab MCS-51单片机实验系统的设置和使用方法 2.掌握基本MCS-51软件的编写.修改和编译的方法 ...

  2. 微型计算机音乐发生器,微机原理及接口技术音乐发生器实验.doc

    微机原理及接口技术音乐发生器实验 微机原理及接口技术音乐发生器实验发生器音乐发生器)) Y N N (图2.2.1) 符号-频率对照表: 音符1 2 3 4 5 6 7频率131 147 165 17 ...

  3. 计算机原理寄存器基础知识,微机原理——基础知识及计算机基本组成

    微机原理基础 期末复习要求 理解Bit byte word doubleword 等基本概念 计算机常用的数制和编码 十进制.二进制.十六进制的运算和转换 常用的ASCII码:数字.大小写英文字母的A ...

  4. 微机原理——基础知识及计算机基本组成

    微机原理基础 期末复习要求 理解Bit byte word doubleword 等基本概念 计算机常用的数制和编码 十进制.二进制.十六进制的运算和转换 常用的ASCII码:数字.大小写英文字母的A ...

  5. 工业自动化控制系统中的PLC模拟量信号数据采集如何实现?

    在数字化的各种应用场景中,工业控制系统通常采用标准模拟型号在采集过程和控制设备之间传输数据.例如,化工厂中的过程变送器将低电平温度和压力信号转换为稳定的4-20mA电流环路信号,保证设备安全稳定运行. ...

  6. 嵌入式四级等级考试(微机原理与接口技术计算机操作系统)

    嵌入式四级考试主要内容包括:微机原理与接口技术,计算机操作系统等基本知识,这里只是一些容易出错的地方以及一些基本知识点.我用一下午的时间做了一个简单的总结(嵌入式四级试题第一套).有错误还希望大家指出 ...

  7. 南京邮电大学微型计算机原理与接口技术实验,南京邮电大学《微机原理与接口技术》上机实验参考答案(四次全).pdf...

    南京邮电⼤学 <微型计算机原理与接⼝技术> 上机实验 汇编语⾔参考程序(四次全) 1 第⼀次 • 实验 1.3.1 "排除语法错误" • 实验 3.1.1 " ...

  8. 微型计算机排除语法错误,南京邮电大学《微机原理与接口技术》上机实验参考答案(四次全)...

    南京邮电大学<微型计算机原理与接口技术>上机实验答案.包含全部四次试验内容,涵盖汇编语言源程序和硬件连接指导等. 第 一次 实验1.3.1 "排除语法错误" 实验3.1 ...

  9. 计算机原理实验红绿灯转换,微机原理与应用的5个实验 包含8086扩展,8255交通灯,DEBUG程序,数码显示...

    包含8086扩展,8255交通灯,数码显示 实验一:汇编语言程序设计 实验二:查表程序设计 实验三:I/O口扩展实验 实验四:数码显示 实验五:8255模拟交通灯 实验一汇编语言程序设计实验目的 1. ...

最新文章

  1. 【Leetcode】100. 相同的树
  2. Multiple substitutions specified in non-positional format; did you mean to add the formatted=false
  3. @IT老司机 6月3日,扫除技术与产品选型难题,CSDN选型智囊团来了!
  4. 【MySQL】JDBC下载
  5. How to root android Oppo A11w,OPPO R11系列 解锁Bootloader 救砖 TWRP Recovery ROOT 详细教程 亲测[推荐]...
  6. 使用AD域管理您的本地计算机密码
  7. 高等代数期末考试题库及答案_数学类高等代数期末考试试题A卷(含答案)
  8. 【CodeVS 1222】信与信封的问题 随机化+treat Hungery
  9. Linux 查看网络流量 iftop
  10. 软件项目管理三国启示录01 群雄争霸之项目经理的自我修养
  11. java中long类型的空值怎么表示,【关于long类型的转换】传进来的是String类型是或null或0如何转成long类型...
  12. Matlab——图形绘制——三维立体图形 剔透玲珑球 动态图——彗星状轨迹图
  13. mysql注入单引号和双引号的区别_mysql单引号和双引号的用法
  14. 单反相机风景摄影易记易学口诀
  15. 解决google打开界面就是hao123的问题
  16. 使用CSS去除 去掉超链接的下划线方法
  17. 微软外包人才之道:一流外包团队如何打造
  18. python大战机器学习——人工神经网络
  19. 当前目录./和父目录../辨析
  20. 通过python-pptx模块操作ppt文件

热门文章

  1. ElasticSearch(ES)详解(二)
  2. ie浏览器打不开闪退_ie浏览器点开闪退_ie浏览器打不开?就是闪退.别的可以_ie浏览器打不开闪退...
  3. 如何将base64转化为图片
  4. Java面试必备240个知识点
  5. C语言 | 栈区空间初探
  6. SAP FICO F-32和F-44设置默认凭证类型
  7. 内部人员造成的数据泄露,企业该如何防护
  8. ADC0832的AD模数转换原理及编程
  9. Autodesk印象(三)
  10. Windows - 关于网络唤醒设置的说明