Exemple #1
0
/*****************************************************
函数功能:从1302读一个字节数据
入口参数:x
***************************************************/ 
uchar Read1302(void)
 {
    uchar i,dat;
	Delaynus(5);       //稍微等待,使硬件做好准备
	for(i=0;i<8;i++)   //连续读8个二进制位数据
	 {	 dat>>=1;
		 if(DATA==1)    //如果读出的数据是1
		 dat|=0x80;    //将1取出,写在dat的最高位
		 SCLK=1;       //将SCLK置于高电平,为下降沿读出
		 Delaynus(5);  //稍微等待
		 SCLK=0;       //拉低SCLK,形成脉冲下降沿
		 Delaynus(5);  //稍微等待
	  }	 
  return dat;        //将读出的数据返回
}  
Exemple #2
0
/*****************************************************
函数功能:向1302写一个字节数据
入口参数:x
***************************************************/ 
void Write1302(uchar dat)
{
  uchar i; 
  SCLK=0;            //拉低SCLK,为脉冲上升沿写入数据做好准备
  Delaynus(5);       //稍微等待,使硬件做好准备
  for(i=0;i<8;i++)      //连续写8个二进制位数据
    {
	     DATA=dat&0x01;    //取出dat的第0位数据写入1302  低位在前,高位在后
		 Delaynus(5);       //稍微等待,使硬件做好准备
		 SCLK=1;           //上升沿写入数据
		 Delaynus(5);      //稍微等待,使硬件做好准备
		 SCLK=0;           //重新拉低SCLK,形成脉冲
		 dat>>=1;          //将dat的各数据位右移1位,准备写入下一个数据位
	  }
	
 }
Exemple #3
0
// 产生复位脉冲
static void LcdReset(void)
{

	GPIO_ResetBits( LCD_RESET_CTL_Pins ,   LCD_RST );
	Delaynus(500);
	GPIO_SetBits( LCD_RESET_CTL_Pins ,   LCD_RST );
}
Exemple #4
0
int main(void)
{
	/* Clock Config */
	RCC_Configuration();
	/* Configure the GPIO ports */
	//GPIO_Configuration_Main();
	/* Interrupt Config */
	NVIC_Configuration();
	///////////////// SDCARD Initialisation ////
//	SDCard_Configuration();
//	res = f_open(&fsrc, "a.txt", FA_OPEN_ALWAYS | FA_WRITE |FA_READ);
//	if(res==FR_OK)
//		printf("File opened successfully.\n\r");
//	else 
//	{
//		printf("File open error.\n\r");
//		return 1;
//	}
//	printf("****************File Start***************\n\r");
//	while(f_read(&fsrc, fileBuff, buffsize,&br)==FR_OK)
//	{
//		printf("\n\r%s\n\r",fileBuff);
//		if(br!=buffsize)
//			break;
//	}
//	printf("****************File End*****************\n\r");
//	if(f_close(&fsrc)==FR_OK)
//		printf("\n\rFile closed.\n\r");
	LcdInit();
	while(1)
	{	
		LcdWriteDC(COMMAND , 0x0c );	/*标准显示模式*/
		//	LcdDrawBitmap(0, 0, (uint8_t *)logo, 80, 6);  //画一个接近全屏的位图
		LcdPutString(0, 0, "Nokia 5110 LCD");  //在位图的左上方覆盖英文字符
		LcdPutString(0, 1, "--0123456789--");  //在位图的左上方覆盖英文字符
		LcdPutString(0, 2, "--9876543210--");  //在位图的左上方覆盖英文字符
		LcdPutString(0, 3, "--0123456789--");  //在位图的左上方覆盖英文字符
		LcdPutString(0, 4, "--9876543210--");
		LcdPutString(0, 5, "--0123456789--");
		Delaynus(1000000);
		
		LcdWriteDC(COMMAND , 0x0d);   /*反显*/
		Delaynus(1000000);
	}
}
Exemple #5
0
// 使能信号传输
// true : 使能 false : 禁止
static void LcdEnable(bool Enable)
{

	if( Enable == TRUE )
	 	 LCD_SCE_LOW();
	else           
		LCD_SCE_HIGH();	
	Delaynus(1);
}
Exemple #6
0
/*****************************************************
函数功能:根据命令字,向1302写一个字节数据
入口参数:Cmd,储存命令字;dat,储存待写的数据
***************************************************/ 
void WriteSet1302(uchar Cmd,uchar dat)
 {	  
        RST=0;           //禁止数据传递
        SCLK=0;          //确保写数居前SCLK被拉低
	    RST=1;           //启动数据传输
	    Delaynus(5);     //稍微等待,使硬件做好准备
	    Write1302(Cmd);  //写入命令字
	    Write1302(dat);  //写数据
	    SCLK=1;          //将时钟电平置于高电平状态
	    RST=0;           //禁止数据传递
 }
Exemple #7
0
// 发送数据或指令
// DC : 数据或指令
// info : 发送的信息
void LcdWriteDC(u8 DC, uint8_t info)
{
	LcdEnable(TRUE);
	
	if( DC == DATA)		
		LCD_DC_HIGH();
	else
		LCD_DC_LOW();	
	Delaynus(5);
	
	SpiSendByte(info);
	LcdEnable(FALSE);
}
Exemple #8
0
void LCD_Reset(void)
{
	GPIO_ResetBits( LCD_RESET_CTL_Pins ,   LCD_RST );
	Delaynus(1000);
	GPIO_SetBits( LCD_RESET_CTL_Pins ,   LCD_RST );
}