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

📄 lpclib.c.bak

📁 基于LP22132 KELL下的磁卡写卡器
💻 BAK
📖 第 1 页 / 共 2 页
字号:
 //IO1SET 0000 00X0 0000 0000 0000 0000 0000 0000 
 IO1SET=IO1SET |0x02000000;//写入1
 }
//----------------------------------------------------------------------------------------------------
//关闭写磁头
//void Hd1_L(void)
//----------------------------------------------------------------------------------------------------
void Hd1_off(void)
{
//IO0SET 0000 0000 0000 0000 0000 0000 000x 0000 
 IO0SET=IO0SET|0x00000010; //写入1
 //IO1SET 0000 00X0 0000 0000 0000 0000 0000 0000 
 IO1SET=IO1SET|0x02000000; //写入1
}
//----------------------------------------------------------------------------------------------------
//使能HD2 写NS
//void Hd1_H(void)
//----------------------------------------------------------------------------------------------------
void Hd2_H(void)
{
//IO0SET 0000 0000 0000 0000 0000 0000 00X0 0000 
 IO0SET=IO0SET|0x00000020; //写入1
//IO0SET 0000 0000 0000 0000 0000 0000 0X00 0000 
 IO0CLR=IO0CLR|0x00000040; //写入0
}
//------------------------------------------------------------------------------------------------------
//使能HD1 写SN
//void Hd1_L(void)
//----------------------------------------------------------------------------------------------------
void Hd2_L(void)
{
//IO0SET 0000 0000 0000 0000 0000 0000 00X0 0000 
 IO0CLR=IO0CLR|0x00000020; //写入0
//IO0SET 0000 0000 0000 0000 0000 0000 0X00 0000 
 IO0SET=IO0SET|0x00000040; //写入1
}
//----------------------------------------------------------------------------------------------------
//关闭写磁头
//void Hd2_L(void)
//----------------------------------------------------------------------------------------------------
void Hd2_off(void)
{
//IO0SET 0000 0000 0000 0000 0000 0000 00X0 0000 
 IO0SET=IO0SET|0x00000020; //写入1
//IO0SET 0000 0000 0000 0000 0000 0000 0X00 0000 
 IO0SET=IO0SET|0x00000040; //写入1
}
//----------------------------------------------------------------------------------------------------
//使能HD3 写NS
//void Hd3_H(void)
//----------------------------------------------------------------------------------------------------
void Hd3_H(void)
{
//IO0SET 0000 0000 0000 0000 0000 0000 X000 0000 
 IO0SET=IO0SET|0x00000080; //写入1
//IO1SET 0000 000X 0000 0000 0000 0000 0000 0000 
 IO1CLR=IO1CLR|0x01000000; //写入0
}
//----------------------------------------------------------------------------------------------------
//使能HD3 写SN
//void Hd1_L(void)
//----------------------------------------------------------------------------------------------------
void Hd3_L(void)
{
//IO0SET 0000 0000 0000 0000 0000 0000 X000 0000 
 IO0CLR=IO0CLR|0x00000080; //写入0
//IO1SET 0000 000X 0000 0000 0000 0000 0000 0000 
 IO1SET=IO1SET|0x01000000; //写入1
}
//----------------------------------------------------------------------------------------------------
//关闭写磁头
//void Hd3_off(void)
//----------------------------------------------------------------------------------------------------
void Hd3_off(void)
{
//IO0SET 0000 0000 0000 0000 0000 0000 X000 0000 
 IO0SET=IO0SET|0x00000080; //写入1
//IO1SET 0000 000X 0000 0000 0000 0000 0000 0000 
 IO1SET=IO1SET|0x01000000; //写入1
}
//----------------------------------------------------------------------------------------------------
//打开读LED灯
//void LED_R_ON (void)
//----------------------------------------------------------------------------------------------------
void LED_R_ON (void)
{
//IO0SET 0000 0000 00X0 0000 0000 0000 0000 0000 
 IO0SET=IO0SET|0x00200000; //写入1
}
//----------------------------------------------------------------------------------------------------
//关闭读LED灯
//void LED_R_OFF (void)
//----------------------------------------------------------------------------------------------------
void LED_R_OFF (void)
{
//IO0SET 0000 0000 00X0 0000 0000 0000 0000 0000 
 IO0CLR=IO0CLR|0x00200000; //写入0
}
//----------------------------------------------------------------------------------------------------
//打开读LED灯
//void LED_W_ON (void)
//----------------------------------------------------------------------------------------------------
void LED_W_ON (void)
{
//IO0SET 0000 0000 0X00 0000 0000 0000 0000 0000 
 IO0SET=IO0SET|0x00400000; //写入1
}
//----------------------------------------------------------------------------------------------------
//关闭读LED灯
//void LED_W_OFF (void)
//----------------------------------------------------------------------------------------------------
void LED_W_OFF (void)
{
//IO0SET 0000 0000 0X00 0000 0000 0000 0000 0000 
 IO0CLR=IO0CLR|0x00400000; //写入1
}
//----------------------------------------------------------------------------------------------------
//打开错误LED灯
//void LED_ERR_ON (void)
//----------------------------------------------------------------------------------------------------
void LED_ERR_ON (void)
{
//IO1SET 0000 X000 0000 0000 0000 0000 0000 0000 
 IO1SET=IO1SET|0x08000000; //写入1
}
//----------------------------------------------------------------------------------------------------
//关闭错误LED灯
//void LED_ERR_OFF (void)
//----------------------------------------------------------------------------------------------------
void LED_ERR_OFF (void)
{
//IO1SET 0000 X000 0000 0000 0000 0000 0000 0000 
 IO1CLR=IO1CLR|0x08000000; //写入0
}
//-----------------------------------------------------------------------------------------------------
//打开蜂鸣器
//void Beep_ON (void)
//-----------------------------------------------------------------------------------------------------
void Beep_ON (void)
{
//IO1SET 0000 0000 0000 X000 0000 0000 0000 0000 
 IO1SET=IO1SET|0x00080000; //写入1
}
//-----------------------------------------------------------------------------------------------------
//关闭蜂鸣器
//void Beep_OFF (void)
//-----------------------------------------------------------------------------------------------------
void Beep_OFF (void)
{
//IO1SET 0000 0000 0000 X000 0000 0000 0000 0000 
 IO1CLR=IO1CLR|0x00080000; //写入0
}


//-----------------------------------------------------------------------------------------------------
//读CPD信号
//unsigned char R_CPD (void)
//-----------------------------------------------------------------------------------------------------
unsigned char R_CPD (void)
{
//IO0PIN 0000 0000 0000 0X00 0000 0000 0000 0000 
 return ((unsigned char)((IO0PIN&0x00040000)>>18));
}
//-----------------------------------------------------------------------------------------------------
//读磁道1信号
//unsigned char R_HD1 (void)
//-----------------------------------------------------------------------------------------------------
unsigned char R_HD1 (void)
{
//IO1PIN 0000 0000 00x0 0000 0000 0000 0000 0000 
 return ((unsigned char)((IO1PIN&0x00200000)>>21));
}
//-----------------------------------------------------------------------------------------------------
//读磁道2信号
//unsigned char R_HD2 (void)
//-----------------------------------------------------------------------------------------------------
unsigned char R_HD2 (void)
{
//IO1PIN 0x00 0000 0000 0000 0000 0000 0000 0000 
 return ((unsigned char)((IO1PIN&0x40000000)>>30));
}
//-----------------------------------------------------------------------------------------------------
//读磁道3信号
//unsigned char R_HD3 (void)
//-----------------------------------------------------------------------------------------------------
unsigned char R_HD3 (void)
{
//IO1PIN 00x0 0000 0000 0000 0000 0000 0000 0000 
 return ((unsigned char)((IO1PIN&0x20000000)>>29));
}

//-----------------------------------------------------------------------------------------------------
//打开写卡中断
//void EN_W_INT(void)
//-----------------------------------------------------------------------------------------------------
void EN_W_INT(void)
{
 VICIntEnable =(1<<14);	//使能EINT0
 VICIntEnable =(1<<15);	//使能EINT1
}
//-----------------------------------------------------------------------------------------------------
//关闭写卡中断
//void CLR_W_INT(void)
//-----------------------------------------------------------------------------------------------------
 void CLR_W_INT(void)
{
 VICIntEnClr =(1<<14);	//关EINT0
 VICIntEnClr =(1<<15);	//关EINT1
}
//-----------------------------------------------------------------------------------------------------
//打开串口中断
//void EN_W_INT(void)
//-----------------------------------------------------------------------------------------------------
void EN_UART0_INT(void)
{
 VICIntEnable =(1<<6);	//使能UART0
}
//-----------------------------------------------------------------------------------------------------
//关闭串口中断
//void CLR_W_INT(void)
//-----------------------------------------------------------------------------------------------------
 void CLR_UART0_INT(void)
{
 VICIntEnClr =(1<<6);	//关UART0
}
//-----------------------------------------------------------------------------------------------------
//打开读卡中断
//void EN_R_INT(void)
//-----------------------------------------------------------------------------------------------------
void EN_R_INT(void)
{
 VICIntEnable =(1<<16);	//使能EINT2;
 VICIntEnable =(1<<17);	//使能EINT3;
 VICIntEnable =(1<<5);  //使能TIMER1捕获中断`
}
//-----------------------------------------------------------------------------------------------------
//关闭读卡中断
//void CLR_R_INT(void)
//-----------------------------------------------------------------------------------------------------
void CLR_R_INT(void)
{
VICIntEnClr =(1<<16);	//关EINT2;
VICIntEnClr =(1<<17);	//关EINT3;
VICIntEnClr=(1<<5);     //关TIMER1捕获中断`
}


//---------------------------------------------------------------------------------------------------
//系统初始化
//void Beep_OFF (void)
//-----------------------------------------------------------------------------------------------------
void TargetResetInit(void)
{
	/* 设置系统各部分时钟 */
	/* Set system timers for each component */
	    PLLCON = 1;
	#if (Fpclk / (Fcclk / 4)) == 1
	    VPBDIV = 0;
	#endif
	#if (Fpclk / (Fcclk / 4)) == 2
	    VPBDIV = 2;
	#endif
	#if (Fpclk / (Fcclk / 4)) == 4
	    VPBDIV = 1;
	#endif
	
	#if (Fcco / Fcclk) == 2
	    PLLCFG = ((Fcclk / Fosc) - 1) | (0 << 5);
	#endif
	#if (Fcco / Fcclk) == 4
	    PLLCFG = ((Fcclk / Fosc) - 1) | (1 << 5);
	#endif
	#if (Fcco / Fcclk) == 8
	    PLLCFG = ((Fcclk / Fosc) - 1) | (2 << 5);
	#endif
	#if (Fcco / Fcclk) == 16
	    PLLCFG = ((Fcclk / Fosc) - 1) | (3 << 5);
	#endif
	    PLLFEED = 0xaa;
	    PLLFEED = 0x55;
	    while((PLLSTAT & (1 << 10)) == 0);
	    PLLCON = 3;
	    PLLFEED = 0xaa;
	    PLLFEED = 0x55;
	    
	    /* 设置存储器加速模块 */
	    /* Set memory accelerater module*/
	    MAMCR = 0;
	#if Fcclk < 20000000
	    MAMTIM = 1;
	#else
	#if Fcclk < 40000000
	    MAMTIM = 2;
	#else
	    MAMTIM = 3;
	#endif
	#endif
	    MAMCR = 2;
	    
	    /* 初始化VIC */
	    /* initialize VIC*/
	    VICIntEnClr = 0xffffffff;          //清除中断标志位
	    VICVectAddr = 0x00000000;          //向量中断地址寄存器清0
	    VICIntSelect= 0x00000000;          //所有中断为IRQ中断

        VICVectCntl0 = 0x0000002e;			
		VICVectAddr0 = (unsigned int)IRQ_Eint0;	     // 0
		
		VICVectCntl1 = 0x0000002f;
		VICVectAddr1 = (unsigned int)IRQ_Eint1;		 // 1
		
		VICVectCntl2 = 0x00000030;
		VICVectAddr2 = (unsigned int)IRQ_Eint2;		 // 2
		
		VICVectCntl3 = 0x00000031;
		VICVectAddr3 = (unsigned int)IRQ_Eint3;		 // 3
		
		VICVectCntl4 = 0x00000025;
		VICVectAddr4 = (unsigned int)IRQ_TIME1;		 // 4
		
		VICVectCntl5 = 0x00000026 ;
		VICVectAddr5 = (unsigned int)IRQ_UART0;		 // 5
	
	   
	     Port_Init();
         Hd1_off();
         Hd2_off();
         Hd3_off();
         UART0_Init ();
         UART1_Init (115200);
         Uart_Printf("hello philpis lpc2132");
//------------------------------------------------------------------------------------------
// UART0= 0x00000026  串行中断0中断号
// TIME1= 0x00000025  捕获中断3中断号
// Eint0= 0x0000002e  外部中断0中断号
// Eint1= 0x0000002f  外部中断1中断号
// Eint2= 0x00000030  外部中断2中断号
// Eint3= 0x00000031  外部中断3中断号
//------------------------------------------------------------------------------------------
}

⌨️ 快捷键说明

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