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

📄 pda.c

📁 用C开发PDA程序的源码用C开发PDA程序的源码用C开发PDA程序的源码用C开发PDA程序的源码
💻 C
字号:
/*========================================================================
 *
 *  版权所有 (C) 2000-2001 吴柏建. All Rights Reserved.
 *
 *  文件:       pda.c
 *  内容:		PSDE之演示如何使用PSDE功能函数制作电子词典模拟器。
 *	作者:			吴柏建。
 *	制作日期:		2000.7.28-2001.8.3
 *	修改日期:		2001..
 *
 *========================================================================*/
#ifdef _WIN32
/*Include <windows.h> for use function GetLocalTime()*/
#include <windows.h>
#endif
#include <stdio.h>

#include "pda.h"

#ifdef _PSDE_
/*LCD显示缓冲区*/
extern unsigned char lcdDisBuffer[3808];
/*点阵区域LCD显示缓冲区*/
unsigned char DisBuffer[672];
/*ROM首指针*/
unsigned char *RomAddress;
#endif

/*≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
□  图象数据数组 generated by 《PdaTools-BmpToGray.exe》
□  图象数据头部(有)长度为6字节的DATAHEAD结构。
□  扫描模式:0(0:水平 1:垂直 2:字节垂直,数据水平 3:字节水平,数据垂直 4:Nucleus)
□  灰度:    (1:单色 2:四灰 4:十六灰 8:256色)
□  宽度:     112
□  高度:     48
□---2001.8.6--16:26----------------------------------------------------
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡*/
const unsigned char Image_Ship[678]={0,1,112,0,48,0,
0,0,0,0,0,6,0,0,0,48,0,0,0,0,0,0,0,0,0,6,0,0,0,240,0,0,0,0,0,0,0,
0,0,6,0,0,0,224,0,0,0,0,0,0,0,0,0,6,0,0,0,64,0,0,0,0,0,0,0,0,0,6,
0,0,0,64,0,0,0,0,0,0,0,0,0,6,0,0,0,224,0,0,0,0,0,0,0,0,0,6,0,0,0,
224,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,
0,0,0,0,0,0,6,128,0,0,64,0,0,0,0,0,0,0,0,0,6,0,0,0,16,0,0,0,0,0,0,
0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,81,128,0,64,0,0,0,0,0,0,0,0,0,15,
129,128,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,2,2,4,0,0,0,0,0,0,0,0,24,128,
0,19,56,0,0,0,0,0,0,0,0,0,8,224,0,2,56,16,0,0,0,0,0,0,0,0,127,240,
0,0,16,48,0,0,0,0,0,0,0,0,255,240,0,0,0,48,0,0,0,0,0,0,0,0,6,160,
0,0,15,240,0,0,0,0,0,0,0,0,6,28,0,161,255,240,0,0,0,0,0,0,0,0,30,
29,255,181,255,244,0,0,0,0,0,0,0,0,6,31,72,0,0,254,0,0,0,0,0,0,0,
48,93,249,192,0,0,63,1,64,128,0,0,0,0,48,25,240,99,0,0,63,0,0,64,
0,0,0,0,24,17,225,192,0,0,127,0,0,64,0,0,0,0,0,0,224,0,0,1,0,0,0,
64,0,0,0,0,96,12,192,0,1,192,0,0,1,224,0,0,0,0,112,31,192,0,0,0,0,
0,1,224,0,0,0,0,0,119,192,0,0,0,0,0,1,128,0,0,0,12,127,255,192,0,
0,0,0,0,1,128,0,0,0,28,255,255,128,0,112,0,0,0,1,128,0,0,0,7,255,
191,192,0,120,0,0,0,3,128,0,0,0,7,255,255,199,0,120,0,0,131,3,0,0,
0,0,7,254,0,103,128,120,0,0,143,131,112,0,0,0,0,0,0,39,128,0,4,144,
15,131,240,7,240,62,0,0,0,3,0,0,4,0,7,195,255,71,255,255,206,0,0,
0,0,0,0,0,7,195,255,240,127,247,206,0,0,0,0,0,0,0,7,135,255,224,0,
0,14,0,0,0,0,0,0,0,3,7,255,240,16,64,0,0,0,0,0,0,0,0,0,7,255,248,
48,64,0,0,0,0,0,0,0,0,0,7,255,248,0,64,0,0,0,0,0,0,0,0,0,7,255,252,
0,0,0,0,0,0,0,0,0,0,0,15,255,253,255,168,0,0,0,0,16,0,0,7,255,143,
255,255,255,255,255,0,135,224,0,0,0,0,0,39,255,255,255,255,255,255,
255,255,191,248,15,255,255,255,255,255,255,255,255,255,255,255,255,
255,255,255,255,255,255,};

/*PDA的系统全局时间*/
PDATIME SysTime;

/*PDA秒中断处理函数。*/
void IntSecond(void)
{
	PDAMSG msg;
	TimeSecondAdd(&SysTime);
	msg.type=MSG_SECOND;
	SendMsg(&msg);
}
/*PDA按键中断处理函数。*/
void IntKey(void)
{
	PDAMSG msg;
#ifdef _PSDE_
	msg.key=PSDE_GetMsgButton();
#elif
	/*PDA获得按键消息代码*/
#endif
	if(msg.key!=-1)
	{
		msg.type=MSG_KEY;
		SendMsg(&msg);
	}
#ifdef _PSDE_
	/*获取键盘的字符输入*/
	msg.character=PSDE_GetMsgChar();
	if(msg.x!=-1)/*msg.x==msg.character*/
	{
		msg.type=MSG_CHAR;
		SendMsg(&msg);
	}
#endif
}

/*PDA入口函数。*/
void main()
{
	PDAMSG msg;
	char StrBuf[256];
#ifdef _PSDE_
	/*PSDE模拟PDA初始化代码。*/
	SYSTEMTIME time;

	GetLocalTime(&time);
	SysTime.second = time.wSecond;
	SysTime.minute = time.wMinute;
	SysTime.hour = time.wHour;
	SysTime.day = time.wDay;
	SysTime.month = time.wMonth;
	SysTime.year = time.wYear;
	SysTime.week=GetWeek(SysTime.year,SysTime.month,SysTime.hour);

	PSDE_INT_SetSecond();
	PSDE_SetFuncSecond(IntSecond);
	PSDE_SetFuncKey(IntKey);

	PSDE_SetLcdColor(0,143,194,92);
	PSDE_SetLcdColor(1,12,12,12);
	PSDE_SetLcdColor2(0,133,184,82);
	PSDE_SetLcdColor2(1,12,12,12);
	memset(lcdDisBuffer,0,3808);
	memset(DisBuffer,0,672);
	DispStr(0,0,"PSDE演示!");
#else
	/*PDA初始化代码。*/
#endif
	while(1)
	{
		while(GetMsg(&msg))switch(msg.type)
		{
		case MSG_SECOND:/*秒中断发送的消息*/
			sprintf(StrBuf,"%d月%d日%d:%d:%d",SysTime.month,SysTime.day,SysTime.hour,SysTime.minute,SysTime.second);
			DispStr(0,20,StrBuf);
			break;
		case MSG_CHAR:
			DispChar(0,0,msg.character);
			break;
		case MSG_KEY:
			DispBmp(0,0,(unsigned char *)Image_Ship);
			sprintf(StrBuf,"Key%d press",msg.key);
			DispStr(16,0,StrBuf);
			break;
		}

#ifdef _PSDE_
		PSDE_CpuHalt();
#else
		/*PDA使CPU halt的指令。*/
#endif
	}
}

⌨️ 快捷键说明

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