⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 单片机控制电机程序
💻 C
字号:
#include "aduc842.h"
#include "Display.h"
#include "stdio.h" 
#include "ZLG7290.h"

   
/***********************************************************
函数:Delay()
功能:延时
***********************************************************/
/*void Delay(int n)
{
	int i=0;
	while(n--)
	{
		for(i=0;i<5000;i++);
	}	
}		
   */
/****************************************
*函数名称:Serial_Init(void)
*函数功能:串口初始化设置
*输入参数:无
*还 回 值:无
*说    明:无
****************************************/
void Serial_Init(void)  
{
	PLLCON = 0x00;   //16.777MHz
	T3CON = 0x83;   
	T3FD = 0x09;
	SCON   = 0x052;
}
/****************************************
*函数名称:unsigned int ADC(unsigned char channel)
*函数功能:这里完成ADC的转换,共8个通道可以选择
*输入参数:channel,通道选择参数	  
*还 回 值:(ADCDATAH&0x0F)*256+ADCDATAL,AD转换后的数字量
*说    明:无
****************************************/
unsigned int ADC(unsigned char channel)
{
	ADCCON2 = channel;     //选择通道
	SCONV = 1;             //启动转换
	while(SCONV);          //等待转换完成
	return((ADCDATAH&0x0F)*256+ADCDATAL);	      
}

/****************************************
*函数名称:DAC0(unsigned int DaData)
*函数功能:这里完成DAC0的转换
*输入参数:DaData,送DA转换的数字量
*还 回 值:无
*说    明:无
****************************************/
void DAC0(unsigned int DaData)
{
	DAC0H=DaData>>8;
	DAC0L=DaData;
}
 
/****************************************
*函数名称:DAC1(unsigned int DaData)
*函数功能:这里完成DAC1的转换
*输入参数:DaData,送DA转换的数字量
*还 回 值:无
*说    明:无
****************************************/
void DAC1(unsigned int DaData)
{
	DAC1H=DaData>>8;
	DAC1L=DaData;
}


void delay(long N)
{
  while(N!=0) N--;
}



/**********************************************************
main函数
***********************************************************/
void main()
{
    Serial_Init();
    ADCCON1 = 0xAC;      //ADC上电,内部基准,clk 8分频
    DACCON = 0x1F;       //DAC采用内部ref做基准
	                     //这两个寄存器跟dac无关
	I2CCON = 0xa8;
	DispInit();		
	IT1 = 1;EX1 = 1;				// ZLG7290中断方式
	EA = 1;
	DispClr(0,8);

while(1)
{	
  collect(); 
if(keyFlag)
{
//keyFlag = 0;
 u=KeyScan();
}
if(u==1)
{
num=100*num0+10*num1+num2;
ZLG7290_SegOnOff(38,0);
}
if(u==2)
{
num=0-(100*num0+10*num1+num2);
ZLG7290_SegOnOff(38,1);
}
if(u==3)
   {	  
	num0++;
    if(num0>9)
	num0=0;
    //ZLG7290_Download(5,0,0,num0);
    display(num0,num1,num2);
   }
if(u==4)
   {
	 num1++;
     if(num1>9)
     num1=0;
    //ZLG7290_Download(6,1,0,num1);
     display(num0,num1,num2);
   }
if(u==5)
   {
	num2++;
    if(num2>9)
	num2=0;
    //ZLG7290_Download(7,0,0,num2);
   display(num0,num1,num2);
   }
   if(u==6)
   {
     num0=0;
	 num1=0;num2=0;
	 num=0;
	ZLG7290_SegOnOff(38,0);
	 display(num0,num1,num2);
	}

   while(u==7)
   {
    if(keyFlag)
	{
	keyFlag=0;
	u0=KeyScan();
	}
	if(u0==6)
	{
	u=0;
	num0=0;
	num1=0;
	num2=0;
	num=0;
    }
collect();
    if(num-da>=5)					 
	  {
	  //forward();
	   back();
	   delay(65535);
	   stop();

	  }			  	
	if(da-num>=5)
	  {
	    //back();
		forward();
	   delay(65535);
	   stop();

	  }	   
	if(num-da<5&&da-num<5)
	  {
	   stop();
      }
   }
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -