51单片机汇编语言实验(五)-----A/D 0809模数转换和DA0832

发布者:WhisperingHeart最新更新时间:2022-01-19 来源: eefocus关键字:51单片机  汇编语言  模数转换  数模转换 手机看文章 扫描二维码
随时随地手机看文章

一、实验目的:

   了解模/数转换基本原理,掌握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单片机  汇编语言  模数转换  数模转换 引用地址:51单片机汇编语言实验(五)-----A/D 0809模数转换和DA0832

上一篇:51单片机ADDA数模转换
下一篇:51单片机汇编语言实验(六)-----8255键盘与显示设计

推荐阅读最新更新时间:2024-11-10 11:27

基于51单片机最小系统点亮一个灯的程序
51单片机最小系统 今天我们开始进行51单片机编程学习,首先我们要了解一下单片机工作需要的基本条件。前面的内容中我们知道了51单片机的引脚有电源引脚,时钟引脚,控制引脚,以及通用输入输出端口。那要怎样才能让单片机工作呢? 如果将单片机与人类比,那它的电源就像人的心脏;时钟信号就像人的脉搏;控制引脚就如人的五官;通用端口就如人的四肢;芯片内部的控制逻辑就如我们的神经系统。这么说的话我们就很容易确定单片机的最小系统了吧。首先我们需要给单片机供电,再给他提供时钟,然后配置它的控制电路,最后给它的引脚接上一些外部电路,据此我们就可以绘制出下图这个最小系统电路了。 例程实图 以上最小系统电路图中使用的是89C51单片机,因为它的功能
[单片机]
基于<font color='red'>51单片机</font>最小系统点亮一个灯的程序
51单片机开发步骤详解
想要从事高端嵌入式开发,首先要会用ARM与Linux,想要会用ARM与Linux,首先要会单片机,想要零基础学会单片机,就要想从51单片机开始; 想要学好单片机,基础:1、C语言了解;2、微机原理与接口技术了解;想要提升开发能力,就必须要不断地实践,建议小白可以在网上(某宝)买一块51单片机开发板,自己参照课程研究研究 下面我把我的经历给大家说一下,希望有志于单片机开发的童鞋能做一个参考 第一步: C语言基础,建议买一本谭浩强的《C语言程序设计》,如果不想买,可以在网上找一个PDF版; 微机原理与接口技术基础,建议去中国大学MOOC上看一下相关课程,也可以看C语言课程;记住:这些课程要不求甚解,因为这些都是非常抽象的概念,如果非要
[单片机]
51单片机动态数码管显示(新字符串思路)
新思路 对于数码管的动态显示,已经有了很多的基础教学,教学中多用数组的形式储存数据来进行动态显示,便于理解。对于纯数据来说,数组是一个很好的选择,但是如果有的特殊符号或者字母,数组似乎就没这么方便,总是需要记忆特殊字符所对应的数组下标。如果一定要用数组显示,也可以通过宏定义或枚举来减轻记忆的负担,但是总觉得没这么流畅。倘若能把所有需要显示的内容写成一个字符串,再对字符串进行处理,那么应该能够使程序更加可读,并可以简化操作。 字符串的处理 若想对字符串进行处理,那么第一步就是将字符串中的内容转化成数码管的段码。这里展示共阳极数码管的转化函数代码: #ifndef U8 #define U8 typedef unsigned
[单片机]
89C51单片机的工作方式与工作原理
89C51单片机共有复位、程序执行、低功耗以及编程和校验等四种工作方式。 1.复位方式 (l)复位操作复位是单片机的初始化操作,其主要功能是把PC初始化为OOOOH,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键以重新启动。 除PC之外,复位操作还对其它一些特殊功能寄存器有影响,它们的复位状态如上表所示。 复位操作还对单片机的个别引脚信号有影响。例如在复位期间,ALE和信号变为无效状态,即ALE=LPSEN=1。(2)复位信号及其产生 ①复位信号 RST引脚是复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡脉冲周
[单片机]
89C<font color='red'>51单片机</font>的工作方式与工作原理
使用51单片机和MAX7219控制点阵滚动显示
最近玩MAX7129控制点阵,弄了一个用51和MAX7219控制两个1088AS点阵滚动显示。此文章作为总结。方便自己日后需要时回顾,也方便他人借鉴参考。文中如果有地方不准确,有错误,欢迎指正。 这次主要用了一个STC89C52RC、两个MAX7219和两个1088AS8*8点阵。 刚开始做了好几天没弄出来,最后发现是硬件出了问题……弄好硬件后很快就做了出来。下面主要是在整个过程中一些探索 1088AS 因为之前没找到相关资料,所以自己一个一个引脚测了一下,第一张图是自己测的各引脚控制的行或列以及是接GND还是VCC,右侧是标有1088AS和突出一个半圆的一侧。第二张厂家公司提供的,他这个排列方式……反正我是有点懵。
[单片机]
使用<font color='red'>51单片机</font>和MAX7219控制点阵滚动显示
基于CY7C68013芯片的高速数据采集系统的设计方案
在图像处理、瞬态信号测量等一些高速、高精度的应用中,需要进行高速数据采集。USB 2.0接口以其高速率等优点渐有取代传统ISA及PCI数据总线的趋势,热插拔特性也使其成为各种PC外设的首选接口。EZ-USB FX2是Cypress公司推出的集成USB 2.0的微处理器,它集成了USB 2.0收发器、SIE(串行接口引擎)、增强的8051微控制器和可编程的外围接口。本文将介绍基于EZ-USB FX2系列CY7C68013芯片的高速数据采集系统的设计,该系统具有限幅保护功能,固件和驱动程序的编写简便,能够完成对数据的高速采集和传送。 数据采集系统方案设计 数据采集系统的框图如图1所示,硬件电路如图2所示。其中,AD1674是l2位模数
[单片机]
基于CY7C68013芯片的高速数据采集系统的设计方案
51单片机-按键的扫描检测与消抖
触发按键,简称按键,是电路设计中常用的器件之一。种类很多,有贴片式的,有直插式的,有四条腿的,也有两条腿的。一般根据需求,进行高低、大小的选择。 如上图所示,样式非常多。记得我第一次去中发买按键的时候,老板问我要什么样的,我也不知道,就说常用的就行。老板嘿嘿一笑,知道我是新人,就拿了几款常见的给我选。 现在自然不会这么笨,一般来说,选择的参数也就这么几项,尺寸、高度、封装方式。例如我想买一种按键,我就直接问老板:6*6*5,四脚贴片的按键有木有? 6*6是什么意思?占地面积,单位是毫米,就是说长和宽都是6mm的。 5是高度,按键整体高度,单位是毫米。要求精细的,会说明按键座的高度和按键头的高度。
[单片机]
学<font color='red'>51单片机</font>-按键的扫描检测与消抖
51单片机超声波四通道端口扫描方式测距
超声波四通道测距:超声波测距实现分为三大块: 其一是12864带字库的液晶驱动程序: 代码如下: /////////////////12864驱动程序/////////////////////////// //1写数据 void WriteDataLCD(unsigned char WDLCD) { ReadStatusLCD(); //检测忙 LCD_RS = 1; LCD_RW = 0; LCD_Data = WDLCD; LCD_E = 1; LCD_E = 1; LCD_E = 1; LCD_E = 0; } //2写指令 void WriteCommandLCD(unsigned ch
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved