利用c51进行数模转换并在液晶屏上显示_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转换值;
⑩实验完毕后,应使用暂停命令中止程序的运行。
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数模转换实验(附参考代码及注释)...相关推荐
- 利用c51进行数模转换并在液晶屏上显示_单片机数模转换
摘要: 本设计待测的输入电压为 8 路,电压范围为 0 - 5V ,使用目前广 泛使用的 AT89C51 来做控制系统, 用 ADC0809 来进行模拟电压的采集及 模数转换,实现采集 8 路数据,并 ...
- 利用c51进行数模转换并在液晶屏上显示_基于C51单片机的智能计算器、矩阵键盘、lcd1602...
目录 1绪论.............................................................................................. ...
- 利用c51进行数模转换并在液晶屏上显示_7.0寸tft触摸液晶屏可满足不同操作需求...
tft触摸液晶屏现在广泛的被我们使用,主要应用于一些电子产品当中,通过外部接入一种可接收触头来接触触摸液晶屏,实现数据操控的功能,它也是目前来说,非常简单.方便使用的辅助产品. 通过使用tft触摸液晶 ...
- 51单片机汇编语言实验(五)-----A/D 0809模数转换和DA0832数模转换实验(附参考代码及注释)
本系列共6篇文章,本文作为本系列的第五篇文章,介绍实验五 :A/D 0809模数转换和DA0832数模转换实验,本系列文章基于Dais-52PRO实验箱. 本系列文章链接: ---------- ...
- STM32/51单片机实训day8——基于Keil5+Proteus8使用DHT11温度传感器实现温湿度采集并在LM016L液晶屏上显示
目录 任务指导 1 DHT11产品概述 2 应用领域 3 传感器性能说明 4 接口说明 5 电源引脚 6 串行接口(单线双向) 通讯过程如图3所示: 任务实现 内 容:本任务使用DHT1 ...
- 51单片机进阶案例(1)——基于MATLAB GUI的单片机串口与PC的通信实现实时时钟和双向可调时钟功能(利用DS1302时钟芯片和LCD1602液晶屏)
目录 一.案例描述 二.实现功能 三.51单片机部分实现 3.1 实时时钟的实现 3.2 串口通信的实现 3.2.1 接收数据 3.2.2 发送数据 四.MATLAB部分实现 4.1 GUI界面 4. ...
- 使用Python控制1602液晶屏实时显示时间(附PyCharm远程调试)
前言 原创文章,转载引用务必注明链接.水平有限,如有疏漏,欢迎指正. 本文介绍一下UP板的GPIO资源使用,以及一个使用Python演示一个简单的demo. 本文使用Markdown写成,为获得更好的 ...
- Arduino实现超声波测距+LCD液晶屏实时显示
Arduino实现超声波测距+LCD液晶屏实时显示 计科在我们学校是完全偏软的.实在是闲的无聊,在家搞起了硬件.好玩呐!!! ************************************* ...
- msp430单片机oled汉字字模_OLED液晶屏如何显示中文呢?
序言 之前我们分享了,如何使用STM32驱动OLED液晶屏,讲了SSD1306控制芯片的驱动,对其驱动时序和常用命令做了介绍,详细请参考下面链接: STM32驱动0.96寸OLED液晶屏 上篇中我们已 ...
最新文章
- 2022-2028年现代农业背景下中国家庭农场深度调研及投资前景预测报告
- matplotlib画图、如何提高图像分辨率?
- s:action,s:param的用法
- Linux console on LCD
- python的序列包括字符串列表和什么_Python基础:03序列:字符串、列表和元组
- mysql 5.7 延迟同步_MySQL5.6升级5.7时出现主从延迟问题排查过程
- Android环境配置
- Windows注册表相关示例(重装Chrome、思迅条码软件、清除远程痕迹等)
- [Java] 集合类(List、Set、Map的基本使用)
- web与app开发java_移动web开发和移动app开发的区分
- 【jdk源码】System.arraycopy()复制
- 老牌下载站fixdown被挂马 威金蠕虫开始复苏
- 学校 计算机 教室 设计标准,数字美术创新教室建设解决方案(含配套设备)
- c语言中指针几个字节,【C++】一个指针占几个字节?为什么呢?
- 家居物联网(IoT)接入控制与认证的再思考
- 【硬件篇】计算机起源
- php error reporting,php error_reporting
- 阿里云道哥:我曾经是饱受网络攻击摧残的创业者,现在我要帮他们顶住
- python判断用户名密码是否正确_python实现用户名密码校验
- 《白帽子讲Web安全》| 学习笔记之Web框架安全