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

📄 pt6964.c

📁 UCOSII在51单片机上的移植
💻 C
字号:
//---------------------------------------------------------------------------
// YuXiang Inc. Company Confidential Strictly Private
// main.c
// $Archive: PT6964.c $
// $Revision: 0.1 $
// $Author: YuCheng $
// $Date: 2005/08/19 16:15:51 $
//
// --------------------------------------------------------------------------
// >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// --------------------------------------------------------------------------
// Copyright 2005(c) YuXiang Inc.
// This is an unpublished work.
// --------------------------------------------------------------------------
#include <intrins.h>
#include "includes.h"
#include "serial.h"
#include "PT6964.h"
#include "PCF8563.h"

//---------------------------------------------------------------------------
//指令和数据操作
//---------------------------------------------------------------------------
//--------------------------------------------------------------------------
// Write Command to LCM
//--------------------------------------------------------------------------
INT8U  Disp_Tab[18] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71,0x73,0x78};
bit LED_Dip_enable;
//--------------------------------------------------------------------------
// WriteData
//--------------------------------------------------------------------------
void WriteData(INT8U Value)
{
	INT8U i;

	for(i=0;i<8;i++)
	{
		if(Value & 0x01)
			PT6964_DIN_H;
		else
			PT6964_DIN_L;

		PT6964_CLK_L;
		PT6964_CLK_H;
		Value >>= 1;
	}
}
//--------------------------------------------------------------------------
// Write_Adr_Data to LCM
//--------------------------------------------------------------------------
void Write_Adr_Data(INT8U addr, INT8U value)  reentrant
{
	PT6964_STB_L;
	WriteData(0x44);
	PT6964_STB_H;

	PT6964_STB_L;
	WriteData(addr|0xc0);
	WriteData(value);
	PT6964_STB_H;
}
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
// Clear6961RAM
//--------------------------------------------------------------------------
void Clear6964RAM(void)
{
	char i;

	PT6964_STB_L;
	WriteData(0x40);			//Command 1, increment address
	PT6964_STB_H;

	PT6964_STB_L;
	WriteData(0xc0);			//Command 2, RAM address = 0
	for(i=0;i<=0x0D;i++)			//22 bytes
		WriteData(0x00);
	PT6964_STB_H;
}

//--------------------------------------------------------------------------
// PT6964_Init
//--------------------------------------------------------------------------
void PT6964_Init(void)
{

    PT6964_STB_H;					//Initial state
    PT6964_CLK_H;					//Intial state

	Clear6964RAM();

	PT6964_STB_L;
	WriteData(0x03);			//7 digit
	PT6964_STB_H;

	PT6964_STB_L;
	WriteData(0x8a);			//Command 3, Display ON
	PT6964_STB_H;
}


//--------------------------------------------------------------------------
// Write Command to LCM
//--------------------------------------------------------------------------
void LED_DISP(INT8U Led_value,INT8U Led_bit)  reentrant
{INT8U temp;
 if(Led_value<18)
  {  temp=Led_value&0x1f;
     PT6964_STB_L;
     WriteData(0x44);			//
     PT6964_STB_H;
     switch(Led_bit)
       {case 1:Write_Adr_Data(0x00, Disp_Tab[temp]);break;
        case 2:Write_Adr_Data(0x02, Disp_Tab[temp]);break;
        case 3:Write_Adr_Data(0x04, Disp_Tab[temp]);break;
        case 4:Write_Adr_Data(0x06, Disp_Tab[temp]);break;
        case 5:Write_Adr_Data(0x08, Disp_Tab[temp]);break;
        case 6:Write_Adr_Data(0x0a, Disp_Tab[temp]);break;
		default:  break;
        }
	   Write_Adr_Data(0x0c, 0x8a);
   }
}

void LED_PT6964(void)  reentrant
{
    INT8U temp1,temp2;
		
	temp2=T_Hour&0x0f;
	temp1=T_Hour>>4& 0x03;
	LED_DISP(temp1,1);
	LED_DISP(temp2,2);
	
	temp2=T_Minute&0x0f;
	temp1=(T_Minute>>4)&0x07;
	LED_DISP(temp1,3);
	LED_DISP(temp2,4);

	temp2=T_Second&0x0f;
	temp1=(T_Second>>4)&0x07;
	LED_DISP(temp1,5);
	LED_DISP(temp2,6);
}

void LED_Dip_Event(void)  reentrant
{
LED_PT6964();
}

⌨️ 快捷键说明

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