本系列共6篇文章,本文作为本系列的第五篇文章,介绍实验五 :A/D 0809模数转换和DA0832数模转换实验,本系列文章基于Dais-52PRO实验箱。

本系列文章链接:

-----------------------------------------------------------------------------

51单片机汇编语言实验(一)-----数字量输入输出(附参考代码及注释)

51单片机汇编语言实验(二)-----中断控制实验(附参考代码及注释)

51单片机汇编语言实验(三)-----定时/计数器实验(附参考代码及注释)

51单片机汇编语言实验(四)----串行通信实验(附参考代码及注释)

51单片机汇编语言实验(五)-----A/D 0809模数转换和DA0832数模转换实验(附参考代码及注释)

51单片机汇编语言实验(六)-----8255键盘与显示设计(附参考代码及注释)

-----------------------------------------------------------------------------

一、实验目的:

了解模/数转换基本原理,掌握ADC0809的使用方法,掌握DAC0832芯片的使用方法。

二、实验设备:

PC计算机一台,Dais-52PRO+实验系统一套。

三、实验内容:

1. A/D 0809模数转换

2. DA0832数模转换

四、 A/D 0809模数转换

1、实验原理:

利用实验系统上的ADC0809作为A/D转换器,实验系统的电位器提供模拟量输入,编制程序,将模拟量转换成数字量并显示。

2、实验步骤:

① 将0809区的IN0与调压区的0-5V孔连接;

②将控制线区的RD连到逻辑电路区或非门的一个输入端;

③将端口地址区的300连到逻辑电路区或非门的另一个输入端;

④该或非门的输出端连接到0809区的OE端;

⑤将控制线区的WR连到逻辑电路区或非门的一个输入端;

⑥将端口地址区的300连到逻辑电路区或非门的另一个输入端;

⑦该或非门的输出端连接到0809区的SC/ALE端;

⑧编写实验程序,经编译、链接无语法错误后装载到实验系统;

⑨全速运行程序,调节0~5V模拟电压,观察数码管显示的A/D转换值;

⑩实验完毕后,应使用暂停命令中止程序的运行。

3、参考代码:

//实验三 定时器实验

//实验五 AD转换实验

CS0809 EQU 0300H

CS8279C EQU 0FFF1H

CS8279D EQU 0FFF0h

LEDBUF EQU 70h ;显示缓冲

ORG 0000H

AJMP start

ORG 0100H

start: call I8279 ;8279初始化

MOV LedBuf+0,#0

MOV LedBuf+1,#8

MOV LedBuf+2,#0

MOV LedBuf+3,#9

MOV DPTR,#CS0809

ADC: MOVX @DPTR,A ;0809的通道0采样

nop

nop

nop

nop

nop

MOVX A,@DPTR ;取出采样值

mov b,a ;拆送显示缓冲区

swap a

anl a,#0fh

anl b,#0fh

MOV LedBuf+4,a

MOV LedBuf+5,b

call disp

SJMP ADC ;循环

;8279初始化

I8279: PUSH DPL

PUSH DPH

MOV dptr,#CS8279C ;指向命令口

MOV A,#00H ;8个8位显示

MOVX @dptr,a ;方式字写入

MOV A,#32H ;设分频初值

MOVX @dptr,a ;分频字写入

MOV A,#0DFH ;定义清显字

MOVX @dptr,a ;关闭显示器

x90s: movx a,@dptr

JB ACC.7,x90s ;检测8279

POP DPH

POP DPL

ret

;显示子程序

disp: PUSH DPL

PUSH DPH

mov r2,#85h

mov r0,#ledbuf

disp1: mov dptr,#CS8279C

mov a,r2

movx @dptr,a

mov dptr,#ledmap ;指字形表首

mov a,@r0 ;取送显数据

movc a,@a+dptr ;索字形代码

mov dptr,#CS8279D ;指向字形口

movx @dptr,a ;送当前字形

dec r2

inc r0

cjne r0,#ledbuf+6,disp1

POP DPH

POP DPL

ret

;字形表

ledmap: db 0ch,9fh,4ah,0bh,99h,29h,28h,8fh

db 08h,09h,88h,38h,6ch,1ah,68h,0e8h,0ffh

END

五、DA0832数模转换:

1、实验原理:

利用0832芯片输出三角波驱动发光二极管,观察二极管渐亮渐灭,或者用示波器观察输出波形(三角波)

2、实验步骤:

① 将端口地址区的300与0832区的/CS按下图连接;

②将LED区的L0与0832区的AOUT连接;

③编写实验程序,经编译、链接无语法错误后装载到实验系统;

④全速运行程序,观察L0等做呼吸亮灭或者用示波器观察OUT端的输出波形;

⑤实验完毕后,应使用暂停命令中止程序的运行;

3、参考代码:

//实验五 DA转换

CS0832 EQU 0300H

DA0V EQU 00H

DA5V EQU 0FFH

ORG 0000H

MOV DPTR,#CS0832

CLR A

K1: MOVX @DPTR,A ;

INC A ;

ACALL DELAY

CJNE A,#255,K1

K2: MOVX @DPTR,A ;

DEC A ;

ACALL DELAY

CJNE A,#0,K2

DELAY: MOV R6,#20H

KK: MOV R7,#80H

DJNZ R7,$

DJNZ R6,KK

RET

END

本文介绍的内容完整的工程文件我会放在附件里,需要者自取,放的时候都是免费,它会自己涨,链接失效或者需要的可以在评论区留言,我直接发给你。本文附件链接如下:

51单片机汇编语言实验(五)-----AD 0809模数转换和DA0832数模转换实验(附参考代码及注释)附件链接

利用c51进行数模转换并在液晶屏上显示_51单片机汇编语言实验(五)-----A/D 0809模数转换和DA0832数模转换实验(附参考代码及注释)...相关推荐

  1. 利用c51进行数模转换并在液晶屏上显示_单片机数模转换

    摘要: 本设计待测的输入电压为 8 路,电压范围为 0 - 5V ,使用目前广 泛使用的 AT89C51 来做控制系统, 用 ADC0809 来进行模拟电压的采集及 模数转换,实现采集 8 路数据,并 ...

  2. 利用c51进行数模转换并在液晶屏上显示_基于C51单片机的智能计算器、矩阵键盘、lcd1602...

    目录 1绪论.............................................................................................. ...

  3. 利用c51进行数模转换并在液晶屏上显示_7.0寸tft触摸液晶屏可满足不同操作需求...

    tft触摸液晶屏现在广泛的被我们使用,主要应用于一些电子产品当中,通过外部接入一种可接收触头来接触触摸液晶屏,实现数据操控的功能,它也是目前来说,非常简单.方便使用的辅助产品. 通过使用tft触摸液晶 ...

  4. 51单片机汇编语言实验(五)-----A/D 0809模数转换和DA0832数模转换实验(附参考代码及注释)

       本系列共6篇文章,本文作为本系列的第五篇文章,介绍实验五 :A/D 0809模数转换和DA0832数模转换实验,本系列文章基于Dais-52PRO实验箱. 本系列文章链接: ---------- ...

  5. STM32/51单片机实训day8——基于Keil5+Proteus8使用DHT11温度传感器实现温湿度采集并在LM016L液晶屏上显示

    目录 任务指导 1 DHT11产品概述 2 应用领域 3 传感器性能说明 4 接口说明 5 电源引脚 6 串行接口(单线双向) 通讯过程如图3所示: 任务实现​​​​​​​ 内 容:本任务使用DHT1 ...

  6. 51单片机进阶案例(1)——基于MATLAB GUI的单片机串口与PC的通信实现实时时钟和双向可调时钟功能(利用DS1302时钟芯片和LCD1602液晶屏)

    目录 一.案例描述 二.实现功能 三.51单片机部分实现 3.1 实时时钟的实现 3.2 串口通信的实现 3.2.1 接收数据 3.2.2 发送数据 四.MATLAB部分实现 4.1 GUI界面 4. ...

  7. 使用Python控制1602液晶屏实时显示时间(附PyCharm远程调试)

    前言 原创文章,转载引用务必注明链接.水平有限,如有疏漏,欢迎指正. 本文介绍一下UP板的GPIO资源使用,以及一个使用Python演示一个简单的demo. 本文使用Markdown写成,为获得更好的 ...

  8. Arduino实现超声波测距+LCD液晶屏实时显示

    Arduino实现超声波测距+LCD液晶屏实时显示 计科在我们学校是完全偏软的.实在是闲的无聊,在家搞起了硬件.好玩呐!!! ************************************* ...

  9. msp430单片机oled汉字字模_OLED液晶屏如何显示中文呢?

    序言 之前我们分享了,如何使用STM32驱动OLED液晶屏,讲了SSD1306控制芯片的驱动,对其驱动时序和常用命令做了介绍,详细请参考下面链接: STM32驱动0.96寸OLED液晶屏 上篇中我们已 ...

最新文章

  1. 2022-2028年现代农业背景下中国家庭农场深度调研及投资前景预测报告
  2. matplotlib画图、如何提高图像分辨率?
  3. s:action,s:param的用法
  4. Linux console on LCD
  5. python的序列包括字符串列表和什么_Python基础:03序列:字符串、列表和元组
  6. mysql 5.7 延迟同步_MySQL5.6升级5.7时出现主从延迟问题排查过程
  7. Android环境配置
  8. Windows注册表相关示例(重装Chrome、思迅条码软件、清除远程痕迹等)
  9. [Java] 集合类(List、Set、Map的基本使用)
  10. web与app开发java_移动web开发和移动app开发的区分
  11. 【jdk源码】System.arraycopy()复制
  12. 老牌下载站fixdown被挂马 威金蠕虫开始复苏
  13. 学校 计算机 教室 设计标准,数字美术创新教室建设解决方案(含配套设备)
  14. c语言中指针几个字节,【C++】一个指针占几个字节?为什么呢?
  15. 家居物联网(IoT)接入控制与认证的再思考
  16. 【硬件篇】计算机起源
  17. php error reporting,php error_reporting
  18. 阿里云道哥:我曾经是饱受网络攻击摧残的创业者,现在我要帮他们顶住
  19. python判断用户名密码是否正确_python实现用户名密码校验
  20. 《白帽子讲Web安全》| 学习笔记之Web框架安全

热门文章

  1. webpack 打包进度条几款插件
  2. Binaries和Source的区别
  3. 编码GBK不可映射字符的三种解决方法
  4. 【程序设计】字符串题单
  5. cloud探索 - ASW基础知识
  6. Vue页面嵌入其他页面
  7. 提高硬件设计能力的学习路线
  8. 云图科技,长沙VR全景产业的未来是什么?
  9. VScode软件使用之鼠标右键直接打开工程文件夹
  10. 使用java编程恢复乱码