📄 0806c.c
字号:
#include <reg51.h> //外接芯片来实现外围电机的选择
#include <stdio.h>
#define DAC0832Addr0 0X7FFF //0832地址1
#define uchar unsigned char //单个字节无符号数
#define uint unsigned int // 输出口初始化
sbit p10=P1^0 ;
sbit p12=P1^2 ;
sbit p14=P1^4;
sbit p16=P1^6 ;
bit flag;
uchar keynumber;
uchar i,j;
void Delay ();
void TransformData ( uint DAC0832,uchar c0832data); //转换数据
void ST();
void TR();
//void SQ();
//void SIN();
main ()
{
P0=0xff; //端口初始化,其实不用 上电后自动置高
P1=0xff; //端口初始化,其实不用 上电后自动置高
P2=0xff; //端口初始化,其实不用 上电后自动置高
P3=0xff; //端口初始化,其实不用 上电后自动置高
Delay();
EX0=1;
IT0=1;
EA=1;
while(1)
{
switch(keynumber)
{
case 1: ST();
break;
case 0: TR();
break;
}
}
}
void ST()
{
TransformData( DAC0832Addr0,i) ;
i++;
}
void TR()
{
TransformData( DAC0832Addr0,j) ;
if((j==255)|( j==0)) //g=关系或
{flag=~flag;}
if (flag==1)
{
j++;
}
if (flag==0)
{
j--;
}
}
void int0() interrupt 0 using 0
{
if (p10==0)
keynumber=0;
if (p12==0)
keynumber=1;
if (p14==0)
keynumber=3;
if (p16==0)
keynumber=4;
}
void TransformData( uint DAC0832,uchar c0832data)//转换数据
{
*((uchar xdata *)DAC0832)=c0832data; //向0832输出待转换数字量c0832data
/* 在C语言中 访问外部寄存器时要先进行类型转换。用(uchar xdata *)转化位指针型数据,再间接寻址*/
}
void Delay ()
{
;
;
}
/*
#include <reg51.h> //外接芯片来实现外围电机的选择
#include <stdio.h>
#define DAC0832Addr0 0X7FFF //0832地址1
#define uchar unsigned char //单个字节无符号数
#define uint unsigned int // 输出口初始化
sbit p10=P1^0 ;
sbit p12=P1^2 ;
sbit p14=P1^4;
sbit p16=P1^6 ;
bit flag;
uchar keynumber;
uchar i,j;
void Delay ();
void TransformData ( uint DAC0832,uchar c0832data); //转换数据
void ST();
void TR();
//void SQ();
//void SIN();
main ()
{
P0=0xff; //端口初始化,其实不用 上电后自动置高
P1=0xff; //端口初始化,其实不用 上电后自动置高
P2=0xff; //端口初始化,其实不用 上电后自动置高
P3=0xff; //端口初始化,其实不用 上电后自动置高
Delay();
EX0=1;
IT0=1;
EA=1;
while(1)
{
if(keynumber==1)
{
ST();
}
if(keynumber==2)
{
TR();
}
}
}
void ST()
{ uchar i;
i=0;
while(1)
{
TransformData( DAC0832Addr0,i) ;
i++;
Delay();
}
}
void TR()
{
uchar i;
i=0;
flag=0;
/* while(1)
{
TransformData( DAC0832Addr0,i) ;
if((i==255)|( i==0)) //g=关系或
{flag=~flag;}
if (flag==1)
{
i++;
}
if (flag==0)
{
i--;
}
Delay();
} */
//}
/*void int0() interrupt 0 using 0
{
if (p10==0)
keynumber=1;
if (p12==0)
keynumber=2;
if (p14==0)
keynumber=3;
if (p16==0)
keynumber=4;
}
void TransformData( uint DAC0832,uchar c0832data)//转换数据
{
*((uchar xdata *)DAC0832)=c0832data; //向0832输出待转换数字量c0832data
/* 在C语言中 访问外部寄存器时要先进行类型转换。用(uchar xdata *)转化位指针型数据,再间接寻址*/
// }
/*
void Delay ()
{
;
;
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -