51单片机—DAC0832(详细介绍)—06—①

发布者:TP9111最新更新时间:2015-10-23 来源: eefocus关键字:51单片机  DAC0832 手机看文章 扫描二维码
随时随地手机看文章
DAC0832~相信大家都不陌生,想整理整理这个,三种方法吗~~所以这个也得两三篇吧~~慢慢来~~

这一篇还是比较简单的介绍,不过也有注意的~~[转载]51单片机—DAC0832(详细介绍)—06—①

1、DAC0832的简介

1)DAC0832的引脚

当然第一就得是引脚,由于网上的这个东西比较多,那我就粘贴了~~[转载]51单片机—DAC0832(详细介绍)—06—①

[转载]51单片机—DAC0832(详细介绍)—06—①

[转载]51单片机—DAC0832(详细介绍)—06—①

[转载]51单片机—DAC0832(详细介绍)—06—①

2)DAC0832的内部结构(这个对于理解1还是很重要的~~[转载]51单片机—DAC0832(详细介绍)—06—①,呵呵,这个应该放在1处)

[转载]51单片机—DAC0832(详细介绍)—06—①

这里一定注意了:

8位输入寄存器用于存放CPU送来的数字量,使得输入的数字量得到缓冲和锁存,由/LE1来控制。

8位DAC寄存器用于存放待转换的数字量,由/LE2控制

都是低电平有效啊~~[转载]51单片机—DAC0832(详细介绍)—06—①(当他们所对应的引脚都有效的时候,它们俩是高电平~~[转载]51单片机—DAC0832(详细介绍)—06—①
3)DAC0832的接口方式和应用

 [转载]51单片机—DAC0832(详细介绍)—06—①

[转载]51单片机—DAC0832(详细介绍)—06—①

好了,剩下的就是我的图~~[page]

[转载]51单片机—DAC0832(详细介绍)—06—①

[转载]51单片机—DAC0832(详细介绍)—06—①

总算好了,程序

main.c

//------------------------------------------------------------------------------
//主文件
#include"reg52.h"
#include"macroandconst.h"
#include"dac0832.h"
#include"delay.h"
//------------------------------------------------------------------------------
sbit k1=P2^7;      //控制开关
//------------------------------------------------------------------------------
//main
void main()
{
 while(1)
 {
  if(k1==0)    //如果要一直显示正弦代码,那就设置一个标志位~~我就不改了,要睡觉了~
  {
   get_sin();    //取正弦代码并输出
  }
  else
  {
   get_jc();    //锯齿波
  }
 }
}

DAC0832.c

 //------------------------------------------------------------------------------
//DAC0832文件的函数,便于调用
//这个D/A的转换器,我感觉重点是你选择好三种方式中的一种,直通方式(较少使用,此方式不能直接与系统的数据总线连接,
//必须要另加锁存器的,比较少的使用,但是~~呵呵,51系列的单片机的P0口恰巧就是个A/D~~你懂得~~省事了~
//所以这个例程里面就果断用的直通方式
#include"reg52.h"
#include"macroandconst.h"
#include"delay.h"
#include"intrins.h"
//------------------------------------------------------------------------------
#define step 4        //定义锯齿波自动加4~
uchar pdata DAC0832;     //设置DAC0832的地址,这就是51系列的单片机有A/D的好处
uchar k;         //uchar型变量,用于计数
uchar code sin[]={0x80,0x8c,0x98,0xa5,0xb0,0xbc,0xc7,0xd1,
      0xda,0xe2,0xea,0xf0,0xf6,0xfa,0xfd,0xff,
      0xff,0xff,0xfd,0xfa,0xf6,0xf0,0xea,0xe3,
      0xda,0xd1,0xc7,0xbc,0xb1,0xa5,0x99,0x8c,
      0x80,0x73,0x67,0x5b,0x4f,0x43,0x39,0x2e,
      0x25,0x1d,0x15,0x0f,0x09,0x05,0x02,0x00,
      0x00,0x00,0x02,0x05,0x09,0x0e,0x15,0x1c,
      0x25,0x2e,0x38,0x43,0x4e,0x5a,0x66,0x73};  //正弦代码表
//------------------------------------------------------------------------------
//取正弦代码并输出
void get_sin()
{
 for(k=0;k<64;k++)
 {
  DAC0832=sin[k];
  delay(1);
 }
}
//------------------------------------------------------------------------------
//取锯齿代码并输出
void get_jc()
{
 for(k=0;k<250;k+=step)
 {
  DAC0832=k;
  delay(1);
 }
}


关键字:51单片机  DAC0832 引用地址:51单片机—DAC0832(详细介绍)—06—①

上一篇:51单片机—软件看门狗—01
下一篇:实用C51编程的高级技巧(C51编程)

推荐阅读最新更新时间:2024-03-16 14:37

51单片机PWM占空比调整
//51单片机PWM占空比调整演示程序 //(通过测试,注意:AT89S51单片机,有的单片机P3_7需要改为P3^7) /***************************************************************************** * 程序名称:PWM占空比调整演示程序 * *程序思路说明: * * 只需要4个按键。 * *关于频率和占空比的确定,对于12M晶振,输出频率为1KHZ,这样定时中断次数设定为 * *10,即0.0
[单片机]
51单片机点亮LED灯、流水灯
2-1点亮一个LED灯 1.首先在keil中新建一个工程,这里需要注意,将所写的工程可以统一一个地方进行存储,这样方便查找。之后再右击添加新文件 2.首先右击代码行,引用文件 3.之后再编写主函数 4.以其中亮一个LED灯为例,编写程序如下: P2=0xFE;//1111 1110 转换成十六进制0x表示前缀代表的是十六进制数 P2=0xFE;//1111 1110 下载程序后到STC-ISP中选择单片机的型号,串口号,打开相应的程序文件,进行下载编程 5.实现效果 6.当然,也可以加上循环语句表示让其一直循环下去,实现效果是一样的 通过点亮第一个LED灯,可以知道以八个一组为例改变010
[单片机]
<font color='red'>51单片机</font>点亮LED灯、流水灯
51单片机学习之陆 —— 1.2 第一个c51程序(点亮流水灯)
由于学校的板子跟我买的板子有些差异,为了大家的阅读,以后的所有程序编写烧录都以老师发的板子为主。 1 事先准备   a 驱动安装,注意群中已经发了,吧板子的驱动装好哦。   b 烧写软件(烧录器) stc - isp (这里说明下,板子上的芯片是stc的,你还能看到它的型号stc89c52RC,用stc的烧写软件就可以了)    提问:什么是烧写软件?     答:就是把你写好代码(C或者是汇编)专程的 机器语言 通过一定的方式下载到单片机中。称为烧写。(就先这样简单理解吧)   c 编写软件 keil uVision 4 (我仅用它编译生成hex 文件)         notpad++ (我用它写c51的代码,然
[单片机]
<font color='red'>51单片机</font>学习之陆 —— 1.2 第一个c51程序(点亮流水灯)
51单片机有哪些特性?
MCS-51单片机是美国INTE公司于1980年推出的产品,与MCS-48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品,各高校及专业学校的培训教材仍与MCS-51单片机作为代表进行理论基础学习。我们也以这一代表性的机型进行系统的讲解。 MCS-51系列单片机主要包括8031、8051和8751等通用产品,其主要功能如下: ·8位CPU ·4kbytes 程序存储器(ROM) ·128bytes的数据存储器(RAM) ·32条I/O口线 ·111条指令,大部分为单字
[单片机]
51单片机指令集详解 51单片机布尔操作指令集详解
这里给大家分享一下 51单片机布尔操作指令集详解。 布尔处理功能是MCS-51系列单片机的一个重要特征,这是出于实际应用需要而设置的。布尔变量也即开关变量,它是以位(bit)为单位进行操作的。 在物理结构上,MCS-51单片机有一个布尔处理机,它以进位标志做为累加位,以内部RAM可寻址的128个为存储位。 既然有布尔处理机功能,所以也就有相应的布尔操作指令集,下面我们分别谈论。 . 位传送指令 位传送指令就是可寻址位与累加位CY之间的传送,指令有两条。 MOV C,bit ;bit→CY,某位数据送CY MOV bit,C ;CY→bit,CY数据送某位 . 位置位复位指令 这些指令对CY及可寻址位进行置位或复位操作,
[单片机]
51单片机汇编语言实验(四)----串行通信实验
一、实验目的:    学习串行口的工作方式,掌握单片机通信程序编制方法。 二、实验设备:    PC计算机一台,Dais-52PRO+实验系统一套。 三、实验内容:    与PC进行串行通信 四、与PC进行串行通信    1、实验原理:    8051单片机通过MAX232芯片与PC机进行通信,在PC机上运行串口助手软件。PC机通过软件助手发数据给单片机,单片机收到数据后取反发给PC机,可以在PC上观察数据。    2、实验步骤:   ① 将IO口区的P3.0与PACK区扩展板的RXD(P3.0)连接;   ② 将IO口区的P3.1与PACK区扩展板的TXD(P3.1)连接;   ③ 将PACK区模块的DB9通过串
[单片机]
<font color='red'>51单片机</font>汇编语言实验(四)----串行通信实验
51单片机中断控制LED灯亮灭
#include reg51.h //头文件 sbit LED=P2^0;//位定义LED灯 sbit k3=P3^2;//位定义按键 void delay()//延时函数 { unsigned char a,b; for(a=0;a 200;a++) for(b=0;b 200;b++); } void Int0()//使用中断所做的处理函数 { IT0=1;//外部中断0下降沿触发 EX0=1;//打开外部中断0 EA=1;//打开总中断 } void main()//主函数 { Int0();//调用函数 while(1); } void ledxs() interrupt
[单片机]
基于MCS51单片机的大屏幕LED显示屏高速控制方案
摘要:以MCS51系列单片机为例,介绍单片机对大屏幕LED显示屏的一种高速控制方案。单片机对LED显示屏的显示控制,一般是先从数据存储器读取数据,然后将数据写给LED点阵片。本方案的创新点是:用一条对外部数据存储器的读指令,同时完成对外部数据存储器读和对LED点阵片的写操作。本文详细介绍高速控制方案的电路设计,并简要提示软件编制的要点;最后介绍高速控制方案在大屏幕LED显示屏中的应用。 引言   LED显示屏的基本工作原理是动态扫描。显示控制的过程是先从数据存储器读得字模数据,再通过单片机的串行口或并行口将数据写给LED点阵片,然后再行扫描。   动态扫描方案和静态显示方案相比节省驱动元件,但要求刷新频率高于50 Hz
[家用电子]
基于MCS<font color='red'>51单片机</font>的大屏幕LED显示屏高速控制方案
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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