📄 da_040.c
字号:
#include "C8051f040.h"
#define uchar unsigned char
#define uint unsigned int
void da_init();
void port_init();
void os_init();
char bdata ad=0;
sbit df0=ad^0;
sbit df1=ad^1;
sbit df2=ad^2;
char bdata as=0;
sbit sc0=as^0;
/*************************************************************************
*
*主函数
*************************************************************************/
void main()
{ char sd,sd1;
WDTCN = 0xDE; // 关闭看门狗
WDTCN = 0xAD;
os_init();
SFRPAGE = ADC0_PAGE;
REF0CN = 0x03; //内部参考电压
da_init();
while(1)
{
df0=1;
df1=1;
df2=1;
sc0=1;
sd=ad;
sd1=as;
SFRPAGE = DAC0_PAGE;
DAC0L=0x66; //改变此处的值后,在DAC0输出端的电压会随着变化
DAC0H=0x06;
SFRPAGE = DAC1_PAGE;
DAC1L=0x00;
DAC1H=0x0f; //改变此处的值后,在DAC1输出端的电压会随着变化
}
}
/************************************************************************
*
*DAC初始化函数
*************************************************************************/
void da_init()
{
SFRPAGE = DAC0_PAGE;
DAC0CN = 0x80;
SFRPAGE = DAC1_PAGE;
DAC1CN = 0x80;
}
/***********************************************************************
*
*系统时钟初始化,选择外部晶振
************************************************************************/
void os_init()
{
uint i ;
SFRPAGE = CONFIG_PAGE;
OSCXCN = 0x67;
for (i = 0; i < 3000; i++); // 等待晶振稳定加的延时
while ((OSCXCN & 0x80) == 0);
CLKSEL = 0x01;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -