dac.c

来自「C8051F内置DA接收程序代码加扩展键盘(独立式键盘直接连入IO口)」· C语言 代码 · 共 69 行

C
69
字号
/************************************************************************************
*  Copyright (c) 2004,西安铭朗电子科技有限责任公司
*            All rights reserved.
*
* 文件名称: DAC.C
* 文件标识: none
* 适用器件: C8051F120
* 
* 摘 要:
* 
* 当前版本:1.0
* 作 者:张宁强
* 完成日期:2006年1月12日
*
* 历史版本:0.9 
* 原作者 : 张宁强
* 完成日期:2005年x月xx日
*************************************************************************************/

#include "MAIN.h" 

void DAC_Init(void) //DAC初始化;
{
   char SFRPAGE_SAVE = SFRPAGE;        // 保存当前SFRPAGE
   SFRPAGE = LEGACY_PAGE;              // 改变页

	REF0CN = 0x07;                   // 使用内部VREF发生器

   SFRPAGE = DAC0_PAGE;                // 改变页

	DAC0CN = 0x80;                   // 打开DAC0,右对齐模式

   SFRPAGE = DAC1_PAGE;                // 改变页

   DAC1CN = 0x80;                   // 打开DAC1,右对齐模式

   SFRPAGE = SFRPAGE_SAVE;             // 恢复SFRPAGE
}

void DAC0_Out_mV(unsigned int v) //DAC0输出电压(mV)
{
   float x;

   char SFRPAGE_SAVE = SFRPAGE;        // 保存当前SFRPAGE
   SFRPAGE = DAC0_PAGE;                // 改变页

   x = v / 2430.0 * 4095;
   v = x;
   DAC0L = v;
   DAC0H = v>>8;

   SFRPAGE = SFRPAGE_SAVE;             // 恢复SFRPAGE
}

void DAC1_Out_mV(unsigned int v) //DAC1输出电压(mV)
{
   float x;

   char SFRPAGE_SAVE = SFRPAGE;        // 保存当前SFRPAGE
   SFRPAGE = DAC1_PAGE;                // 改变页

   x = v / 2430.0 * 4095;
   v = x;
   DAC1L = v;
   DAC1H = v>>8;

   SFRPAGE = SFRPAGE_SAVE;             // 恢复SFRPAGE
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?