📄 0832-02.c
字号:
#include <reg51.h>
#include <stdio.h>
#define DAC0832Addr0 0XFEFF //0832地址1
#define DAC0832Addr1 0XFFFF //0832地址2
#define DAC0832Addr 0X7FFF //0832地址
#define uchar unsigned char //单个字节无符号数
#define uint unsigned int // 输出口初始化
//sbit P10=P1^0; //默认值为0
//sbit P12=P1^2;
void TransformData1 ( uchar c0832data1)//转换数据
{
*((uchar xdata *)DAC0832Addr0)=c0832data1; //向0832输出待转换数字量c0832data
/* 在C语言中 访问外部寄存器时要先进行类型转换。用(uchar xdata *)转化位指针型数据,再间接寻址*/
}
void TransformData2 ( uchar c0832data2)//转换数据
{
*((uchar xdata *)DAC0832Addr1)=c0832data2; //向0832输出待转换数字量c0832data
/* 在C语言中 访问外部寄存器时要先进行类型转换。用(uchar xdata *)转化位指针型数据,再间接寻址*/
}
void StartTransform( uchar c0832data)//转换数据
{
*((uchar xdata *)DAC0832Addr)=c0832data; //向0832输出待转换数字量c0832data
/* 在C语言中 访问外部寄存器时要先进行类型转换。用(uchar xdata *)转化位指针型数据,再间接寻址*/
}
// void TransformData1 ( uint DAC0832,uchar c0832data1)//转换数据
// {
// *((uchar xdata *)DAC0832)=c0832data1; //向0832输出待转换数字量c0832data
/* 在C语言中 访问外部寄存器时要先进行类型转换。用(uchar xdata *)转化位指针型数据,再间接寻址*/
// }
void Delay ()
{
uint i;
for (i=0; i<200;i++);
}
main ()
{
// uchar cDigtial;
P0=0xff; //端口初始化,其实不用 上电后自动置高
P1=0xff; //端口初始化,其实不用 上电后自动置高
P1=0xff; //端口初始化,其实不用 上电后自动置高
P3=0xff; //端口初始化,其实不用 上电后自动置高
Delay();
//TransformData1(0XFEFF ,0XE0); //进行数模转换
// TransformData1(0X7FFF ,0XE0);
// Delay () ;
TransformData2(0X20); //进行数模转换
StartTransform(0x20) ;
Delay () ;
// printf("increment\n") ; //调试输出信息
} //可以用一个函数来实现数模的转换,关键事把参数改成UINT才可以,不然选通不了。0X7FFF为2字节..
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -