89C51单片机与DAC0832

news/2024/11/24 13:04:26/
  1. DAC0832的介绍
  2. DAC0832与51单片机使用实例
  3. 实例proteus仿真
  4. 实例代码

1.DAC0832的介绍:

  主要特性:(1) 分辨率:8位

                    (2) 电流稳定时间1us

  芯片引脚:

                    

       

 \tiny \overline{CS}: 片选

ILE:输入寄存器允许,高电平有效

\tiny \overline{WR}1:写信号,当\tiny \overline{CS},\tiny \overline{WR}1,ILE同时有效时,D0~D7 >>> 输入寄存器

\tiny \overline{XFER}: 传送控制

Rfb:反馈电阻

Vref: 基准电压

2.DAC0832与51单片机使用实例

实例分析:片选连接到P27 所以DAC0832的端口地址为 0x7FFF;(P27为0,其它P20~P26,P00~P07为1) ,通过给端口地址不同的值,控制U0输出不同的电压值,通过51单片机自带的定时器达到周期性的电压输出;

3.实例proteus仿真: 

仿真中遇到困难:(1)LM324有些型号不能进行仿真 

                             (2)示波器关闭之后不知道打开

解决方法:(1)使用SPICE Library 为“NATOA”的LM324

                  (2)

仿真运行时点击解决;

4.实例代码

#include "reg51.h"
#include <absacc.h>void T1_50ms_Init(void);
unsigned char N50ms=0,N=0; //N50ms多少个50ms, N多少个0.5s 范围(0-4)void main()
{T1_50ms_Init();while(1){;//等待中断函数执行}
}//定时器1 50ms定时初始化
void T1_50ms_Init(void)//晶振12MHZ
{TMOD = 0x10;//方式选择定时器1 16位定时器TH1  = 0x3C; //65536-50000 = 15536  转化为16进制 3CB0TL1  = 0xB0;EA   = 1;  //开启总中断ET1  = 1;//开启定时器1中断TR1  = 1;//开启定时器1计数
}
//定时器1 中断函数
void T1_50ms(void) interrupt 3
{N50ms++;if(N50ms==10)//0.5s{N++;N50ms = 0;if(N==1){XBYTE[0x7fff]=0x66;//输出2V  102/256 * 5V = 2V}else {XBYTE[0x7fff]=0x00;//输出0V   0/256 * 5V = 2Vif(N==4)//2s到 一个周期结束 N清零{N=0;}}}
}

 运行结果:

代码百度网盘下载   提取码:0411

仿真百度网盘下载   提取码:0411


http://www.ppmy.cn/news/703561.html

相关文章

VS上配置docker步骤记录

1:VS里安装Remote Development 2:运行 sudo usermod -aG docker $USER。#将当前用户添加到docker用户组中 sudo newgrp docker#更新,运行这个切到了root用户,获取权限 docker ps #列出正在运行的容器。它会显示容器的相关信息&#xff0c;如容器ID、镜像名称、创建时间、状态…

MySQL - Delete 和 Truncate 的区别

1. DELETE 命令 语法 &#xff1a; delete from 表名 [where 条件] -- 删除数据 (避免这样写, 会全部删除) DELETE FROM student;-- 删除指定数据 DELETE FROM student WHERE id 1; 2. TRUNCATE 命令 作用 : 完全清空一个数据库表, 表的结构和索引约束不会变. -- 清空 stu…

sftp上传文件失败解决

同事求助&#xff0c;说他用sftp上传文件失败。 首先想到的是权限问题。于是登陆服务器&#xff0c;cd到上传目录&#xff0c;ls -l看上去没问题。 测试一下吧&#xff0c;用我自己的帐号sftp登陆&#xff0c;随便传一个文件&#xff0c;成功了。 哈&#xff0c;问题范围缩减…

SFTP向服务器上传文件失败问题的解决办法

FileZilla和XShell都可以通过FTP传输文件。 FileZilla连接上服务器后&#xff0c;可以下载文件&#xff0c;但是不能上传&#xff0c;传输会有提示&#xff1a;“无法启动传输”。 这个问题一般情况有如下三个原因&#xff1a; 1、文件夹权限不够&#xff0c;修改之&#xff…

网易邮箱发送失败的原因

1.设置故障&#xff0c;再网易的web界面开启pop3、imap协议即可 一般出现再刚下载还未设置 2.免费信箱故障 解决方法&#xff1a;给自己发邮件&#xff0c;如果没有受到&#xff0c;则免费信箱有问题&#xff0c;去手机店处理即可 3.对方线路问题 测试方法&#xff1a;让一个朋…

smtp 发送邮件(qq邮箱)失败

项目用的框架是 ThinkPHP&#xff0c;在本地WAMP环境下使用了QQ邮箱的 smtp 邮件系统 本地测试成功的情况下&#xff0c;部署到服务器上无法发送邮件&#xff0c;报错&#xff1a;500 解决方法 最终发现是端口号的原因&#xff0c;QQ邮箱的 smtp 服务端口号为 465 或 587&#…

关于发送邮件时上传附件的问题

最近在做邮件列表的项目时发现一个问题&#xff0c;虽然不是什么大问题&#xff0c;但是稍不注意就会出现问题&#xff1a;因为我做的是B/S和C/S得两个版本&#xff0c;客户端程序使用Jmail组件来发送邮件&#xff0c;直接发送&#xff0c;不写入数据库存档&#xff0c;当时jmM…

网易云邮箱发送邮件失败

原因&#xff1a;code: 41, domain: WMSVR Mail Error Domain, detail: , userInfo: {“errorRcpts”:[“FA_MTA_RCPT_ERROR”],“code”:“FA_MTA_MULTI_ERROR”} 发送邮件的时候提示以上错误&#xff0c;但是按照官方的邮件发送标准并没有违规&#xff0c;官网和其他地方也暂…