?? 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 + -