📄 dac.c
字号:
#include "c8051f020.h"
#include <intrins.h>
sfr16 DAC0 = 0xd2; // DAC0 data
extern unsigned int SaveMotorCount;
extern unsigned int SetSpeed;
extern unsigned char KeyValue;
#define NOSELECT7279 P5 |= 0x80 //SPICS4(P57)=1
#define SELECT7279 P5 &= ~(0x80) //SPICS4(P57)=0;
void Delay1ms(unsigned char T);
void DispLED(char *DispBuf,char ShowDot); //ShowDot 显示小数点位
void FlashLED(unsigned char No); //关闪烁
void Send7279Byte(unsigned char ch);
char GetKeyValue(void);
void WaitKeyOff(void);
extern unsigned int iDAC0;
void TestMotor(bit LoopFlag)
{
char KeyValue ;
char buf[6];
int SD1;
SetSpeed=2000/20; // 设定稳定转速
DAC0=iDAC0;
Delay1ms(25); //等待25ms复位时间
Send7279Byte(0xA4); //发复位指令
NOSELECT7279; //置CS高电平
if (LoopFlag==0) return;
while(1)
{
FlashLED(8); //关闪烁
for (;;)
{
KeyValue=GetKeyValue();
if(KeyValue!=-1)
{
NOSELECT7279;
WaitKeyOff();
if(KeyValue==0)
{ // 设定键'0'按下显示设定转速状态
buf[0]='E';
buf[1]=' ';
buf[2]=' ';
buf[3]=' ';
buf[4]=' ';
buf[5]=' ';
DispLED(buf,0);
break;
}
}
buf[0]='F'; // 无键按下显示转速
buf[1]=' ';
buf[2]=(SaveMotorCount%10000)/1000; //取千位
buf[3]=(SaveMotorCount%1000)/100; //取百位
buf[4]=(SaveMotorCount%100)/10; //取十位
buf[5]=(SaveMotorCount%10); //取个位
DispLED(buf,0);
}
for (;;) // 设定千位
{
KeyValue=GetKeyValue();
if(KeyValue!=-1)
{
NOSELECT7279;
WaitKeyOff();
if(KeyValue%16<=9)
{
buf[2]=KeyValue%16;
DispLED(buf,0);
break;
}
}
}
for (;;) // 设定百位
{
KeyValue=GetKeyValue();
if(KeyValue!=-1)
{
NOSELECT7279;
WaitKeyOff();
if(KeyValue%16<=9)
{
buf[3]=KeyValue%16;
DispLED(buf,0);
break;
}
}
}
for (;;) // 设定十位
{
KeyValue=GetKeyValue();
if(KeyValue!=-1)
{
NOSELECT7279;
WaitKeyOff();
if(KeyValue%16<=9)
{
buf[4]=KeyValue%16;
DispLED(buf,0);
break;
}
}
}
for (;;) // 设定个位
{
KeyValue=GetKeyValue();
if(KeyValue!=-1)
{
NOSELECT7279;
WaitKeyOff();
if(KeyValue%16<=9)
{
buf[5]=KeyValue%16;
DispLED(buf,0);
break;
}
}
}
for (;;) // 按F键确认
{
KeyValue=GetKeyValue();
if(KeyValue!=-1)
{
NOSELECT7279;
WaitKeyOff();
if(KeyValue==0x0f)
{
SD1 = buf[2]*1000+buf[3]*100+buf[4]*10+buf[5];
if ((SD1<=2700)&&(SD1>=600))// 运转速度在1200至2700转之间较适合
SetSpeed = SD1/20; // 更新运转速度
break;
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -