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

📄 ping.c

📁 MSP430系列单片机资料-7册-46.3M-pdf.zip
💻 C
字号:
/****************************************************************************
文件名:lcd10951.c
编写者:czhang
描述:液晶屏程序模块。用于4xx系列。
      液晶屏为4位数字,每位有小数点。时间表示(两位中间的冒号)和指示符号选一。
      MCLK:8MHz
版本:2005-4 V1.0
*****************************************************************************/
#include "lcd.h"
#include "ping.h"
#include "general.h"
#include "bastimer.h"

//显示字模(与屏幕与MSP430的接法有关)
#define N_ZI  4     //每个字符在显存中由4个字节组成
const unsigned char LcdCh[19][N_ZI] =
{
	{0x11,0x11,0x11,0x00}, //0     	0
	{0x10,0x01,0x00,0x00}, //1     	1
	{0x11,0x10,0x01,0x01}, //2     	2
	{0x11,0x11,0x00,0x01}, //3     	3
	{0x10,0x01,0x10,0x01}, //4     	4
	{0x01,0x11,0x10,0x01}, //5     	5
	{0x01,0x11,0x11,0x01}, //6     	6
	{0x11,0x01,0x00,0x00}, //7     	7
	{0x11,0x11,0x11,0x01}, //8     	8
	{0x11,0x11,0x10,0x01}, //9     	9
	{0x11,0x01,0x11,0x01}, //A     	10
	{0x00,0x11,0x11,0x01}, //b     	11
	{0x01,0x10,0x11,0x01}, //C     	12
	{0x10,0x11,0x01,0x01}, //d     	13
	{0x01,0x11,0x11,0x01}, //E     	14
	{0x01,0x00,0x11,0x01}, //F     	15
	{0x10,0x01,0x11,0x01}, //H     	16
	{0x00,0x00,0x00,0x01}, //-     	17
	{0x00,0x00,0x00,0x00}  //熄灭   	18
};

//屏幕定义
#define N_SHOW 4 		//屏幕显示的位数,最高位为3,最低位为0。
//小数点的位置,0在0位(最右)上,依次类推。N_SHOW为没有小数点。
//显示数码各位在显存中的起始地址(与屏幕与MSP430的接法有关)
const unsigned char LcdWei[N_SHOW]={12,8,4,0};

/*****************************************************************************
初始化
*****************************************************************************/
void PingInit()
{
	LcdInit();		//初始化液晶模块
	InitBasTimer();		//初始化基本定时器
	GoBasTimer(0,2);	//打开基本定时器为LCD提供时钟
}

/*****************************************************************************
写屏幕上显示的数据
pshow:指向要写入的数据的指针
dian:显示小数点的位置
*****************************************************************************/
void Show(unsigned char *pshow,unsigned char dian)
{
		ToLcd(pshow);	      //刷新数码显示
		ToLcdDian(dian,1);    //刷新小数点显示
}

/*****************************************************************************
将要显示的数码转换为显示用的字模,并写入显存
*****************************************************************************/
void ToLcd(unsigned char *pshow)
{
	unsigned char *pmem;
	unsigned char q0;
	for(q0=0;q0<N_SHOW;q0++)
	{
		pmem = (unsigned char *)(&LcdCh[*pshow][0]);	//计算显示字模的首地址
		LcdWrite(pmem,LcdWei[q0],N_ZI,0);  		//显示数码,覆盖写入
		pshow++;
	}
}

/*****************************************************************************
将要显示的数码转换为显示用的字模,并写入显存
dian:显示小数点的位置
visable:0:消隐    1:显示
*****************************************************************************/
void ToLcdDian(unsigned char dian,unsigned char visable)
{
	unsigned char q0,q1,q2;
	if(dian<N_SHOW)
	{
		if(visable==0)
		{
			q1=1;    	//写入LCD模式:与
			q2=0xEF;
		}
		else
		{
			q1=2;   	//写入LCD模式:或
			q2=0x10;
		}
		q0=LcdWei[dian]+3;	//计算写入显存的起始地址
		LcdWrite(&q2,q0,1,q1);  //写入显存
	}
}

⌨️ 快捷键说明

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