📄 ping.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 + -