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

   本系列共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转换值;
  ⑩实验完毕后,应使用暂停命令中止程序的运行。
51单片机汇编语言实验(五)-----A/D 0809模数转换和DA0832数模转换实验(附参考代码及注释)_第1张图片

   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         ;88位显示
        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端的输出波形;
  ⑤实验完毕后,应使用暂停命令中止程序的运行;
51单片机汇编语言实验(五)-----A/D 0809模数转换和DA0832数模转换实验(附参考代码及注释)_第2张图片

   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数模转换实验(附参考代码及注释)附件链接

你可能感兴趣的:(大学实验,单片机及其应用)