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

📄 io.c

📁 2407的一些源代码
💻 C
字号:
/*==========================================================================*
* File name : io.c *
* Author: davidlee *
* Data: 2006.11.19*
* Version: 2.0 *
* Organization: DSP&EMC,National Key Laboratory of Power Electronics, 
*               Zhejiang University, Hangzhou 310027, China *
* Description : PROGRAM TO CONTROL A ELECTRIC CAR USE F2407A * 
;============================================================================*
*/
#include "F2407_c.H" 	//the header file
        int temp1,j,k,data;
 	    asm(" .word   #0ffffh ");
	    asm(" .word   #0ffffh ");
	    asm(" .word   #0ffffh ");
	    asm(" .word   #0ffffh ");
//屏蔽中断程序
void inline disable()
{
	    asm(" SETC INTM ");     //屏蔽总中断程序
}
void inline enable()
{
	    asm(" CLRC INTM ");
}         
//=======================================================
//系统初始化子程序
//=======================================================
void   system_init()
{       
        asm(" CLRC  SXM ");          //符号位不作扩展    
        asm(" CLRC  OVM ");          //遇到溢出,累加器被设置为它的最大正值或负值
        asm(" CLRC  CNF ");          //B0设置为数据存储区
        temp1=0x0;
        asm(" OUT _temp1,0FFFFh ");  //设置整体延时为0   
        SCSR1=0x02C;                 //使能ADC,EVA,EVB时钟
        WDCR=0x0E8;                  //不使能看门狗,因为SCSR2中的WDOVERRIDE
                                     //即WD保护位复位后的缺省值为1,故可以用软件禁止看门狗
        IFR=0x0FFFF;                 //清除全部中断标志,"写1清0"
}
//=======================================================
//初始化程序
//=======================================================
void   initial()  
{      
        MCRA=0x0CFFF;            //设置相应的按键接口为普通I/O口
        MCRB=0x0FFFD;            //仿真口设置,允许在线仿真
        MCRC=0x02FF;             //这里分别设置IOPF0,2,3,4,5,6以及IOPB4,5为普通I/O口
        PBDATDIR=0x0;            //设置IOPB,IOPF等为输入端口,按键输入
        PFDATDIR=0x200;        
}
//=======================================================
//该中断服务程序主要是为了防止干扰,不作任何其他操作
//=======================================================
void    interrupt nothing()
{
        return;                   //中断直接返回
}                                    
//=======================================================
//主程序
//=======================================================
main()
{      
        disable();
	    system_init();
	    initial();
	    enable();
	    while(1)
    {
        j=PFDATDIR;
	    j=j&0x0001;
	    if(j==0)
	    {k=PFDATDIR&0x0FD;
	     k=k>>1;
	     k=k&0x3F; 
	    }
	    else if(j!=0)
	    {k=PFDATDIR|0x02;
	     k=k>>1;
	     k=k&0x3F;
	    }
       	data=PBDATDIR<<2;
	    data=data&0x0C0;
        data=data|k;
        asm(" OUT _data,2000h ");
	}
}

⌨️ 快捷键说明

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