C51数模转换(DA)Digital-to-analog-Conversion

发布者:SparklingSoul最新更新时间:2022-01-25 来源: eefocus关键字:C51  数模转换 手机看文章 扫描二维码
随时随地手机看文章

代码:

DAC0832和C51


#include

#define uint unsigned int

uint a,i,j;

sbit dawr=P3^6; 对DA的WR1 引脚进行定义

sbit csda=P3^2; 对DA的CS 引脚进行定义

sbit dula=P2^6; 数码管引脚定义

sbit wela=P2^7;

void delay(uint);

void main()

{

csda=0; CS等于0时接着让WR也等于0

dawr=0;

dula=0;

wela=0;

while(1)

{

for(a=0;a<256;a++)

{

P0=a; 给DA 数据输入端送入数据a

delay(10);

}

}

}


void delay(uint x)

{

for(i=x;i>0;i--)

{

for(j=120;j>0;j--);

}

}


1、把数字信号转换成模拟信号

单片机只能识别 0和1 但是有些时候需要用到不同的电压去控制设备

需要把数字信号转换成模拟信号

DA芯片:DAC0832或者DA模块


2、DAC0832是使用非常普遍的8位D/A转换器,

由于其片内有输入数据寄存器,故可以直接与单片机接口相连。

DAC0832以电流形式输出,当需要转换为电压输出时,可外接运算放大器。

属于该系列的芯片还有DAC0830、DAC0831,它们可以相互代换


3、

在这里插入图片描述

4、

在这里插入图片描述

5、

操作时序图

在这里插入图片描述

关键字:C51  数模转换 引用地址:C51数模转换(DA)Digital-to-analog-Conversion

上一篇:51单片机:P3.3口输入/P 1口输出实验
下一篇:C51驱动步进电机

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

DAC0832数模转换实验
#include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int uchar tt; uint temp; void delay(uint z) { uint x,y; for(x=110;x 0;x--) for(y=z;y 0;y--); } void main() { TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; while(1) { for(temp=0x80;temp 0x
[单片机]
c51中断/定时寄存器的典型运用程序
程序如下: #include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int sbit dula=P2^6; sbit wela=P2^7; uchar code table ={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71, 0x76,0x79,0x38,0x3f,0}; uchar temp,t0,t1,bai,shi,ge,flag,flag1; uint shu; void
[单片机]
<font color='red'>c51</font>中断/定时寄存器的典型运用程序
C51:串口程序
一、程序功能 pc向c51发送字符串不大于5个字符,c51将收到的字符前端加 S ,末端加 N ,回传给pc. 二、关键点 1、c51串口初始化步骤: 定时器设置,确定波特率发生器,定时器分配。 根据波特率,c51频率计算时间常数。 串口设置。 中断设置 2、定时器时间常数计算方法: 从晶振频率到波特率流程如下 晶振- 12分频- 定时器输入,8位计数,TH,TL控制定时器溢出时间,或输入分频值,例TH=0xfd,对输入3分频- 2分频(默认SMOD=0,2分频。如SMOD=1不分频)- 16分频- 波特率。 3、中断程序格式 void 函数名() interrupt n {函数体} n=0,外部中断0 n
[单片机]
Keil C51对C语言的关键词扩展之十: pdata
外部ram通过一个地址指针寄存器来间接访问,读写效率要低于内部ram。 外部ram容量最大可位64KB。 Keil C51提供两种外部数据存储方式,pdata和xdata。 1)xdata存储类型,指示变量可存储在外部ram 64KB地址范围内任意位置。large内存模型下,变量即为此种默认存储类型。 2)pdata存储类型,指示变量可存储在外部ram 256字节页范围内任意位置。compact内存模型下,变量即为此种存储类型。 外部ram通过movx指令存取。
[单片机]
对于c51外部中断和程序调用的理解
首先介绍一下C51外部中断的基本概念 中断的优点: 1、实时处理。需要CPU立即做出相应或处理。 2、异常处理。运行过程中,出现断电、程序出错等问题,就需要CPU对故障源进行处理。 3、提高效率。采用中断技术可以大大提高CPU的运行效率。 中断源:C51单片机有5个中断源(2个外部中断、2个定时器中断和一个串口中断)。对中断的配置操作,主要通过控制三个寄存器就可以(中断允许寄存器IE)、定时器控制寄存器(TCON)和中断优先级寄存器(IP)。即通过控制EA EX IT 的直接赋值,即可调用中断服务程序 注:中断服务程序与while(1)中的程序调用是不一样的 中断服务函数:在CPU接收到中断后,会执行相应中断的中断服务函数
[单片机]
对于<font color='red'>c51</font>外部中断和程序调用的理解
C51单片机学习笔记(六)——液晶显示屏的使用
1.LCD1602的认识 液晶显示屏简称液晶、LCD。各种型号的液晶通常是按显示字符的行数或液晶点阵的行、列进行命名的。1602的意思就是每一行显示16个字符,共可以显示2行,常见的液晶还有0801、0802、1601等,这类液晶是字符型液晶,只能显示ASCII码字符。而LCD12864属于图形型液晶,由128*64个像素点构成,可以显示各种图形包括汉字。 LCD1602可显示2行ASCII码字符,每行包括16个5*10点阵(像素),有16个引脚,其实物图如下所示: 2.LCD1602的引脚及其功能 3.LCD模块的内部结构 LCD1602模块的内部结构分为三部分:LCD控制器、LCD驱动器、LCD显示器 LCD控制器
[单片机]
<font color='red'>C51</font>单片机学习笔记(六)——液晶显示屏的使用
基于C51单片机的I/O并行口直接驱动LED显示电路图
如图 13 所示,利用 AT89S51 单片机的 P0 端口的 P0.0 - P0.7 连接到一个共阴码管的 a - h 的笔段上,数码管的公共端接地。在数码管上循环显示 0 - 9 数字时间间隔 0.2 秒。   把 “ 单片机系统 ” 区域中的 P0.0/AD0 - P0.7/AD7 端口用 8 芯排线连接到 “ 四路静态数码显示模块 ” 区域中的任一个数码管的 a - h 端口上;要求: P0.0/AD0 与a 相连, P0.1/AD1 与 b 相连,P0.2/AD2 与 c 相连, …… , P0.7/AD7 与 h 相连。
[模拟电子]
基于<font color='red'>C51</font>单片机的I/O并行口直接驱动LED显示电路图
Keil C51中直接使用二进制数的方法
在Keil C51中数不能直接以二进制形式赋值,虽然在8051的汇编中是可以的。二进制数虽然书写长,易出错,但是由于是一位位写的,所以程序设计者能够很明确的看到每一位的状态,看得比较直观。于是很多人怀念了8051的汇编,很想在C51中使用二进制。没猜错的话搜到本篇日志的人很可能就是来找这种解决办法的,下面两种办法都是不错的选择。 方法一:   建立一个头文件,将所有的二进制数宏定义列举出来,用的时候直接使用宏定义,头文件定义: binary (右键 “目标另存为” 下载)。 方法二:   做一个带参数宏定义,将输入的类二进制数变换为对应的16进制数,整个定义和使用实例请见下文,可以直接使用,如果想研究原理又看不懂带参宏定
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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