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

📄 system.c

📁 这里有很多我自己做的凌阳单片机源程序
💻 C
字号:
 #include<spce061a_chf.h>
#include"bit.h"
#include"qiao2.h"
extern counter;
unsigned int sec=0;
unsigned int a[10]={0x14,0xdd,0x38,0x98,0xd1,0x92,0x12,0xdc,0x10,0x90};
///////////////////////////////////////////
//函数:void init_IO(void)
//描述:IO口初始化
//参数:无
//返回:无
/////////////////////////////////////////////
void init_IO(void)
{
	*P_IOB_Dir=0xff00;
	*P_IOB_Attrib=0xff00;
	*P_IOB_Data=0x0000;
	*P_IOA_Dir=0x00ff;
	*P_IOA_Attrib=0x00ff;
	*P_IOA_Data=0x0000;
	*P_INT_Ctrl=0x0004;//开始先不开EXIT1中断
	*P_TimerA_Data = 0xff00;
	//*P_TimerA_Ctrl = 0x03f0;
	*P_TimerB_Data = 0xff7f;
	//*P_TimerB_Ctrl = 0x0280;//调速度
	asm("irq on");
}
///////////////////////////////////////////
//函数:void display(unsigned int data)
//描述:显示函数
//参数:要显示的数据
//返回:无
/////////////////////////////////////////////
void display(unsigned int data)
{
	if(data>9)//大于10
	{
		SPI_1(data/10);
		SPI_2(data%10);
	}
	else
	{
		SPI_2(data);//十位数是0时候就不显示		
	}
}
///////////////////////////////////////////
//函数:void SPI_1(unsigned int temp1)
//描述:显示十位数的模拟SPI程序,IOA0--AB,IOA1--CLK,IOA2--Clr,IOA3--VCC
//参数:要显示的数
//返回:无
/////////////////////////////////////////////
void SPI_1(unsigned int temp1)
{
	unsigned int i=0;
	P0_2=1;
	P0_3=0;
	temp1=a[temp1];
	if(temp1!=0)
	{
		for(i=0;i<8;i++)
		{			
			if(temp1&0x80)
			{
				P0_0=1;//数据口
			}
			else
			{
				P0_0=0;
			}		
			P0_1=1;	//产生时钟,下降沿送出数据
			asm("nop");	
			P0_1=0;								
			temp1<<=1;
		}
		P0_3=1;	
	}
	
}	
///////////////////////////////////////////
//函数:void SPI_2(unsigned int temp2)
//描述:显示个位数的模拟SPI程序IOA4--AB,IOA5--CLK,IOA6--Clr,IOA7--VCC
//参数:要显示的数
//返回:无
/////////////////////////////////////////////
void SPI_2(unsigned int temp2)
{
	unsigned int i=0;
	P0_6=1;
	P0_7=0;
	temp2=a[temp2];	
	for(i=0;i<8;i++)
	{			
		if(temp2&0x80)
		{
			P0_4=1;//数据口
		}
		else
		{
			P0_4=0;
		}		
		P0_5=1;	//产生时钟,下降沿送出数据
		asm("nop");	
		P0_5=0;								
		temp2<<=1;
	}	
	P0_7=1;	
}	
///////////////////////////////////////////
//函数:void led(void)
//描述:平衡指示灯
//参数:无
//返回:无
/////////////////////////////////////////////
void led(void)
{
	P1_15=1;
}
///////////////////////////////////////////
//函数:control_up(void)
//描述:控制电机上坡函数
//参数:无
//返回:无
/////////////////////////////////////////////
void control_up()
{	
	//*P_TimerA_Ctrl = speed1;//12/16
	//*P_TimerB_Ctrl = speed2;//调速度13/16
	P1_8=1;
	P1_9=1;//加速上坡
	P1_10=1;
	P1_11=0;//方向轮不动
	P1_12=0;
	P1_13=1;

}
///////////////////////////////////////////
//函数:control_down(void)
//描述:控制电机下坡函数
//参数:无
//返回:无
/////////////////////////////////////////////
void control_down()
{
	//*P_TimerA_Ctrl =speed1;//12/16
	//*P_TimerB_Ctrl =speed2;//调速度13/16
	P1_8=1;
	P1_9=1;//加速上坡
	P1_10=1;
	P1_11=0;//方向轮不动
	P1_12=0;
	P1_13=1;
}
///////////////////////////////////////////
//函数:control_goback(void)
//描述:控制电机返回函数
//参数:无
//返回:无
/////////////////////////////////////////////
void control_goback()
{	
	P1_8=1;
	P1_9=1;//加速上坡
	P1_10=0;
	P1_11=1;//方向轮不动
	P1_12=1;
	P1_13=0;
}
///////////////////////////////////////////
//函数:control_stop(void)
//描述:控制电机停机函数
//参数:无
//返回:无
/////////////////////////////////////////////
void control_stop(void)
{
	P1_8=0;
	P1_9=0;//加速上坡
	P1_10=0;
	P1_11=0;//方向轮不动
	P1_12=0;
	P1_13=0;
}
///////////////////////////////////////////
//函数:control_right(void)
//描述:控制电机左转函数
//参数:无
//返回:无
/////////////////////////////////////////////
void control_right()
{
	P1_8=1;
	P1_9=1;//停机函数
	P1_10=1;
	P1_11=0;
	P1_12=1;
	P1_13=0;
	
}
///////////////////////////////////////////
//函数:control_left(void)
//描述:控制电机右转函数
//参数:无
//返回:无
/////////////////////////////////////////////
void control_left()
{
	P1_8=1;
	P1_9=1;//停机函数
	P1_10=0;
	P1_11=1;
	P1_12=0;
	P1_13=1;
}
///////////////////////////////////////////
//函数:unsigned int timer(void)
//描述:时钟处理函数
//参数:无
//返回:返回时间
/////////////////////////////////////////////	
/*unsigned int timer(void)
{	
	if(counter==0xffff)
	{
		sec+=1;
		return sec;
	}
	return sec;
}*/
///////////////////////////////////////////
//函数:void delay(void)
//描述:延时函数
//参数:无
//返回:无
/////////////////////////////////////////////
void delay(void)
{
	unsigned int kk=0xfff;
	while(kk--);
}
	
	
	
	
	                                                                                                                                 

⌨️ 快捷键说明

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