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

📄 motor.c.091702

📁 keil c 文件 @@##%%…… &……源代码程序
💻 091702
字号:
#include <reg52.h>
#include<absacc.h>
#include <intrins.h>

sbit cflag=ACC^7;
/*
sbit L297_CLK=P1^3;
sbit L297_CW=P1^2;
sbit L297_EN=P1^0;
sbit L297_HALF=P1^4;
sbit L297_RST=P1^5;
sbit L297_CTL=P1^1;
*/

sbit L298_A=P1^0;
sbit L298_B=P1^1;
sbit L298_C=P1^2;
sbit L298_D=P1^3;
sbit L298_I1=P1^4;	
sbit L298_I2=P1^5;
#define uchar unsigned char
#define uint unsigned int

#define ctrl8279 XBYTE[0X0100]
#define data8279 XBYTE[0X0000]

/*********************************/

void msec(unsigned int x){
uchar j;
while(x--){
for(j=0;j<125;j++)
{;}
}
}

/*************************/
uchar code table[]={0x0fc,0x60,0x0da,0x0f2,0x66,0x0b6,0x0be,0x0e0,0x0fe,0x0f6,0x8e};
/****************************/
void wdat_8279(uchar d){
msec(1);
do
{ACC=ctrl8279;}
while (cflag==1);
data8279=d;
}


/*******************************************/

void wcom_8279(uchar c){
msec(1);
do
{ACC=ctrl8279;}
while (cflag==1);
ctrl8279=c;
}
/********************/

void init8279()
{
  //unsigned char i;
 ctrl8279=0x32;            //biancheng minglin shizhong :ale 18 fenping 00110010
 ctrl8279=0x00;            //8zifuxianshi you ru kou ,bianma sao miao jianpan,shuang jian suo
 ctrl8279=0xd0;            //xianshi ram qing 0,quan zhi 1;
 

 }
 /******************/



void display_xy(int x, int y , uchar ch){
    
    if (y<1) y=1;
    if (y>2) y=2;
    if (x<1) x=1;
    if (x>4) x=4;
    if (ch<0) ch=0;
    if (ch>15) ch=15;
    if (y==1) {
      switch (x) {
       case 1:  wcom_8279(0x87);      
                wdat_8279(table[ch]);
				break;
       case 2:  wcom_8279(0x83);      
                wdat_8279(table[ch]);
      			break;
       case 3:  wcom_8279(0x85);      
                wdat_8279(table[ch]);
				break;
       case 4:  wcom_8279(0x81);      
                wdat_8279(table[ch]);
      			break;
      } 
      
    }else {
	   switch (x) {
       case 1:  wcom_8279(0x86);      
                wdat_8279(table[ch]);
				break;
       case 2:  wcom_8279(0x82);      
                wdat_8279(table[ch]);
      			break;
       case 3:  wcom_8279(0x84);      
                wdat_8279(table[ch]);
				break;
       case 4:  wcom_8279(0x80);      
                wdat_8279(table[ch]);
      			break;
      } 
      
    }

}



void display2( int k){

    uint s=0,a=0,d=0, m=0,f=0,n=0,i;

	
	 if(k>=0&&k<=9999)
     { 
     //	ctrl8279=0x00;
	   
     	 s=k/1000;
         wcom_8279(0x86);      
         wdat_8279(table[s]);

     	 a=k%1000;
     	 d=a/100;
     	 wcom_8279(0x82); 
         i=0x80;
          wdat_8279(table[d]);
          //
     	 m=a%100;
     	 f=m/10;
     	 wcom_8279(0x84);
        i=0x80;
         wdat_8279(table[f]);
        
     	 n=m%10;
     	 
     	wcom_8279(0x80);
       wdat_8279(table[n]);  
    }

}
void display1( int k)
{ 
    uint s=0,a=0,d=0, m=0,f=0,n=0,i;

	
	 if(k>=0&&k<=9999)
     { 
     //	ctrl8279=0x00;
	   
     	 s=k/1000;
         wcom_8279(0x87);      
         wdat_8279(table[s]);

     	 a=k%1000;
     	 d=a/100;
     	 wcom_8279(0x83); 
         i=0x80;
          wdat_8279(table[d]);
          //
     	 m=a%100;
     	 f=m/10;
     	 wcom_8279(0x85);
        i=0x80;
         wdat_8279(table[f]);
        
     	 n=m%10;
     	 
     	wcom_8279(0x81);
       wdat_8279(table[n]);
       //
       }

	   
 }  
 /***********************/
   uchar key_pressed(void) //判断FIFO有键按下函数
{uchar k;
k=ctrl8279;
return(k&0x0f); //非0,有键按下
}


uchar keyin(void)
{uchar i,k;
while(key_pressed()==0);
wcom_8279(0x40); //读FIFO RAM命令
i=data8279;
k=0;
switch(i)
     {
          case 196:
          display1(0);
		  k=0;
          break;
          case 228:
          display1(1);
		  k=1;
          break;
          case 192:
          display1(2);
		  k=2;
          break;
          case 224:
          display1(3);
		  k=3;
          break;
          case 197:
          display1(4);
		  k=4;
          break;
          case 229:
          display1(5);
		  k=5;
          break;
          case 193:
          display1(6);
		  k=6;
          break;
          case 225:
          display1(7);
		  k=7;
          break;
          case 198:
          display1(8);
		  k=8;
          break;
          case 230:
          display1(9);
		   k=9;
          break;
          case 194:
          display1(10);
		 k=10;
          break;
          case 226:
          display1(11);
		 k=11;
          break;
          case 199:
          display1(12);
		 k=12;
          break;
          case 231:
          display1(13);
		  k=13;
          break;
          case 195:
          display1(14);
		 k=14;
          break;
          case 227:
          display1(15);
		  k=15;
          break;  
        }

return(k);

}
 /**************************/
void clear_led(){
 wcom_8279(0xd0);
}	  



void initL298(){
L298_I1=1;
L298_I2=1;
    
}


bit int_flag;
//extern ReadTemperature(void);
    

main() {
   unsigned int i,j;
   
   int_flag=0;
    IT1=1;
    IE=0X84;
    init8279();
	display1(1200);
	display2(0000);
	msec(2000);
	clear_led();
	for(i=1;i<3;i++)
	 {for(j=1;j<5;j++) {
     display_xy(j,i,2);
     msec(100);
	 clear_led();
	}
	}
    display1(1234);
    display2(5678);
    initL298();
  
do{  

	L298_I1=1;
    L298_I2=1;
    L298_A=0;
	L298_B=1;
    L298_C=0;
	L298_D=0;


    msec(100);

	L298_I1=1;
    L298_I2=1;
    L298_A=0;
	L298_B=0;
    L298_C=0;
	L298_D=1; 
                                                                                                                                                                                              

    msec(100);
/*
    L298_A=1;
	L298_B=0;
    L298_C=0;
	L298_D=0;
    msec(50);

    L298_A=0;
	L298_B=0;
    L298_C=1;
	L298_D=0;
    msec(2000);

*/

}
while(1);


}
void int1() interrupt 2{
 int_flag=1;
 }



⌨️ 快捷键说明

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