注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
shiyan的个人空间 https://home.eeworld.com.cn/space-uid-340888.html [收藏] [复制] [分享] [RSS]
日志

这个程序可有人帮我看看,老是有错误

已有 1042 次阅读2011-7-19 19:08

#include <intrins.h>
#include <REG51.H>

#define uint unsigned int
#define uchar unsigned char
sbit ADCS =P1^3; //ADC0832 chip seclect
sbit ADDI =P1^1; //ADC0832 data in
sbit ADDO =P1^1; //ADC0832 data out
sbit ADCLK =P1^0; //ADC0832 clock signal
 
/***************************************读ADC0832函数***************************************/
 
//采集并返回
uchar ADC_read(uchar mode)
{  uint dat;
   uchar i;
dat=mode;
ADDI=1;
_nop_();
_nop_();
ADCS=0;//拉低CS端
_nop_();
_nop_();
ADCLK=1;//拉高CLK端
_nop_();
_nop_();
ADCLK=0;//拉低CLK端,形成下降沿1
_nop_();
_nop_();
ADCLK=1;//拉高CLK端
ADDI=1;
_nop_();
_nop_();
ADCLK=0;//拉低CLK端,形成下降沿2
_nop_();
_nop_();
ADCLK=1;//拉高CLK端
ADDI=1;
_nop_();
_nop_();
ADCLK=0;//拉低CLK端,形成下降沿3
ADDI=1;//控制命令结束
_nop_();
_nop_();
dat=0;
for(i=0;i<8;i++)
{
   dat|=ADDO;//收数据
   ADCLK=1;
   _nop_();
   _nop_();
   ADCLK=0;//形成一次时钟脉冲
   _nop_();
   _nop_();
   dat<<=1;
   if(i==7)dat|=ADDO;
}
ADCS=1;//拉低CS端
ADCLK=0;//拉低CLK端
ADDO=1;//拉高数据端,回到初始状态
dat<<=8;
   return(dat);            //return ad data
}
 
//******************************步进电机驱动程序**************************************//
sbit A1=P0^0; //定义步进电机连接端口
sbit B1=P0^1;
sbit C1=P0^2;
sbit D1=P0^3;

#define Coil_A1 {A1=1;B1=0;C1=0;D1=0;}//A相通电,其他相断电
#define Coil_B1 {A1=0;B1=1;C1=0;D1=0;}//B相通电,其他相断电
#define Coil_C1 {A1=0;B1=0;C1=1;D1=0;}//C相通电,其他相断电
#define Coil_D1 {A1=0;B1=0;C1=0;D1=1;}//D相通电,其他相断电
#define Coil_OFF {A1=0;B1=0;C1=0;D1=0;}//全部断电

void DelayUs2x(unsigned char t)
{  
 while(--t);
}
void DelayMs(unsigned char t)
{
    
 while(t--)
 {
   
     DelayUs2x(245); //大致延时1mS
 DelayUs2x(245);
 }
}
/*------------------------------------------------
                    主函数
------------------------------------------------*/
main()
{  uchar y;
  y=ADC_read();
  if(y<0xee)
  {
    Coil_A1                //遇到Coil_A1  用{A1=1;B1=0;C1=0;D1=0;}代替
     DelayMs()       
     Coil_B1
     DelayMs()
     Coil_C1
    DelayMs()
     Coil_D1
  }   
  else
  Coil_OFF 
}
评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章