main.c

来自「冷火MCF52255开发板精华资料」· C语言 代码 · 共 159 行

C
159
字号
/*广州穗佳电子科技有限公司
  冷火MCF52255多功能开发板
  更多精彩产品,关注穗佳电子淘宝店
  http://sogadz.taobao.com*/
#include "support_common.h" /* include peripheral declarations and more */
#if (CONSOLE_IO_SUPPORT || ENABLE_UART_SUPPORT) 
/* Standard IO is only possible if Console or UART support is enabled. */
#include <stdio.h>
#endif


#define uchar unsigned char 
#define uint unsigned int 




/*********************************************/  //延时     /*********************************************/
void delay(int xms)        //xms毫秒延时
{
    int ii,jj;
    
    for(ii=0;ii<xms;ii++)
    for(jj=0;jj<2000;jj++); 
       
}
void delay_us(int xus)     //xus微秒延时
{
    int ii,jj;
    
    for(ii=0;ii<xus;ii++)
    for(jj=0;jj<2;jj++);    
}

/*********************************************/  //流水灯,数码管 蜂鸣器 /*********************************************/



#define Du MCF_GPIO_PORTUC_PORTUC0 	//段选锁存器控制端
#define We MCF_GPIO_PORTUC_PORTUC1 	//位选锁存器控制端

#define Du_1 MCF_GPIO_PORTUC|=Du 	//段选锁存器控制端置1
#define We_1 MCF_GPIO_PORTUC|=We 	//位选锁存器控制端置1

#define Du_0 MCF_GPIO_PORTUC&=~Du 	//段选锁存器控制端置0
#define We_0 MCF_GPIO_PORTUC&=~We 	//位选锁存器控制端置0


#define Beeper MCF_GPIO_PORTUC_PORTUC3
#define Beeper_1 MCF_GPIO_PORTUC|=Beeper
#define Beeper_0 MCF_GPIO_PORTUC&=~Beeper



#define LED_EN MCF_GPIO_PORTTJ_PORTTJ7	//LED 使能EN信号
#define LED_EN_0 MCF_GPIO_PORTTJ=0x0f
#define LED_EN_1 MCF_GPIO_PORTTJ=0x8f

void IO_init() 
{
   
    MCF_GPIO_PTJPAR = 0x00;      // 配置PTJ为普通IO    
    MCF_GPIO_DDRTJ = 0xff;    // 设置PTJ为输出
    MCF_GPIO_PORTTJ = 0x00;   //关闭PTJ口
    
    MCF_GPIO_PUCPAR = 0x00;      // 配置PUC为普通IO    
    MCF_GPIO_DDRUC = 0xff;    	// 设置PUC为输出
    MCF_GPIO_PORTUC = 0x08;      //关闭PUC口
    
}

/*********************************************/  //1602LCD   /*********************************************/

#define LCD1602_RW MCF_GPIO_PORTTJ_PORTTJ6	//1602LCD 读写RW信号
#define LCD1602_RS MCF_GPIO_PORTTJ_PORTTJ4	//1602LCD 数据控制RS信号
#define LCD1602_EN MCF_GPIO_PORTTJ_PORTTJ5	//1602LCD 使能EN信号

#define LCD1602_RW_1 MCF_GPIO_PORTTJ|=LCD1602_RW	
#define LCD1602_RS_1 MCF_GPIO_PORTTJ|=LCD1602_RS
#define LCD1602_EN_1 MCF_GPIO_PORTTJ|=LCD1602_EN

#define LCD1602_RW_0 MCF_GPIO_PORTTJ&=~LCD1602_RW	
#define LCD1602_RS_0 MCF_GPIO_PORTTJ&=~LCD1602_RS
#define LCD1602_EN_0 MCF_GPIO_PORTTJ&=~LCD1602_EN

void write(uchar COD,uchar dat)    //CD=1为写数据,0为写命令;dat:数据/命令
{
	MCF_GPIO_PORTTJ=dat;			//送数据/命令
	Du_1;		//段选锁存器
	Du_0;
	
	MCF_GPIO_PORTTJ=0x8f;
	if(COD!=0)LCD1602_RS_1;//判断是写数据/命令
	
	We_1;		//位选锁存器

	//delay(10);
	LCD1602_EN_1;	//LCD使能
	delay(10);
	MCF_GPIO_PORTTJ=0x8f;	
	We_0;

}


char tab1[]={"0123456789,.:;?!"};
char tab2[]={"abcdefghijklmnopq"};

void show_str(char *x)	//*x:显示内容
{
	uchar i=0;
	for(;;)
	{
		write(1,x[i]);
		i++;
		if(x[i]=='\0')break;	
	}
}
void LCD1602_init()		//LCD初始化
{

	write(0,0x38);
	write(0,0x0c);
	write(0,0x06);
	write(0,0x01);//清零
	write(0,0x80);
	//write(0,0x80+40);//换行

}


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


	
void main(void) 
{
	
	int counter;
	int i=0,j=0,k=0;

    IO_init();
   
	//******************液晶1602******************		
    LCD1602_init();
	show_str("1234567890");
	write(0,0x80+40);//换行
	show_str("abcdefg");
	delay(1000);
	while(1) ;


  	
    
} 


⌨️ 快捷键说明

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