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

📄 force.c

📁 基于Plinps的SJA1000CAN总线控制器的CAN应用开发程序
💻 C
字号:
  #pragma db cd small 	 
       #include <intrins.h>
       #include <reg52.h>
       #include <absacc.h>
       #include <math.h>
       #include <stdio.h>
       #define  NOP _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_()
       #define  uchar unsigned char
       #define  uint  unsigned int
       #define  ulong unsigned long
       extern uchar can_send_array[10];	/*CAN发送暂存*/ 
       extern uchar can_receive_array[10];	/*CAN接收暂存*/
       extern bit canflag;    		/*CAN接收信息标志*/
	 extern  void dma_trans();		
       extern  VSAA(float display);
       extern  convert(uchar out[]);
       extern   can_init();         /*CAN初始化*/
       sbit  CANRST=P1^2;       /*复位CAN控制器*/

 
 //主程序初始化//
 void main_init( )	/*初始化子程序*/
 {
           void delay( uint x );
            uchar i;
            EA=0;              /*cpu关中断*/
	    IT0=1;            /*外部中断0触发方式选择,下降沿触发*/
	    EX0=1;            /*开外部中断0*/
            TMOD=0x10;
            TH1=0x3c; 
            TL1=0xb0;/*T/C1置初值, 定时5ms*/
     	    CANRST=0;          /*复位CAN控制器*/
	    for(i=0;i<10;i++)
	   {
	    delay(125);
	   }
	    CANRST=1;
	    can_init();         /*CAN初始化*/
            ET1=1;             /*定时器1开中断*/  
                          
           
	     
 }

  void delay( uint x )            /*delay subprogram*/
     {
      uchar j;
      while(x--){
        for(j=0;j<10;j++) 
          {;}
       }
     }  
  
 
 //主程序//
        void main()
           {   
                 uint i;
		 float data force;
             uchar out[2]={ 0x40,0x00};
		 uchar idata ad[2];
 		 main_init();
                 EA=1;
                 for(;;)
                 {
                    ad[0]=convert(out);             /*测试D/A输出的原始输出,并选A/D转换通道*/
                    force=(5.0/146)*(ad[0]-38);  /*计算转换电压,并进行修正*/	
        	    VSAA(force);	 
		    delay(300);
		    can_send_array[2]=(int)force;
                can_send_array[3]=(force-can_send_array[2])*100; 
	        	 if(canflag==1)
          		         {
        	   	           canflag=0;
        	                   dma_trans();
          		           }
          		          }
          		          
                         }

  
 

⌨️ 快捷键说明

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