📄 lcd.c
字号:
/******************************************************************************
* File Name: lcd.c *
* Create Time: 2007/07/14 *
* Description: *
* Copyright : *
* History : *
* |---Data---|---Author---|--Version--|--------------Description-------------|
*****************************************************************************/
//#define LCD_ONOFF
#ifdef LCD_ONOFF
/******************************
* Head File *
*****************************/
#include"lcd.h"
/******************************
* Global Variable *
*****************************/
uchar lcdPosbit=0;
uchar lcdDisMem[8];
uchar movebit=0;
/******************************
* Const Segment *
*****************************/
// 低位---------------------------> 高位
uchar pos_select[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
code uchar WordBase[][8] = {0xE7,0xDB,0xBD,0xBD,0xBD,0xBD,0xDB,0xE7,//0-9
0xEF,0xCF,0xEF,0xEF,0xEF,0xEF,0xEF,0xC7,
0xC7,0xBB,0xBB,0xF3,0xEF,0xDF,0xBB,0x83,
0xC7,0xBB,0xBB,0xE7,0xFB,0xFB,0xBB,0xC7,
0xF7,0xE7,0xD7,0xB7,0xB7,0x83,0xF7,0xE3,
0x83,0xBF,0xBF,0x87,0xFB,0xFB,0xBB,0x87,
0xE3,0xDD,0xDF,0xC3,0xDD,0xDD,0xDD,0xE3,
0xC3,0xDB,0xFB,0xF7,0xF7,0xEF,0xEF,0xEF,
0xE3,0xDD,0xDD,0xE3,0xDD,0xDD,0xDD,0xE3,
0xC7,0xBB,0xBB,0xC3,0xFB,0xFB,0xBB,0xC7,
0xFF,0xFF,0xE7,0xE7,0xFF,0xE7,0xE7,0xFF,//: ;< = > ? @
0xFF,0xE7,0xE7,0xFF,0xE7,0xE7,0xF7,0xEF,
0xFF,0xFB,0xF7,0xEF,0xDF,0xEF,0xF7,0xFB,
0xFF,0xFF,0x81,0xFF,0xFF,0x81,0xFF,0xFF,
0xFF,0xDF,0xEF,0xF7,0xFB,0xF7,0xEF,0xDF,
0xFF,0xE7,0xDB,0xFB,0xF7,0xEF,0xFF,0xEF,
0xC3,0xBD,0x66,0x5A,0x56,0xA0,0xB9,0xC3,
0xF7,0xF7,0xEB,0xEB,0xE3,0xDD,0xDD,0x88,//A
0xE1,0xDD,0xDD,0xE1,0xDD,0xDD,0xDD,0xE1,//B
0xC3,0xBD,0xFD,0xFD,0xFD,0xFD,0xBD,0xC3,
0xE0,0xDD,0xBD,0xBD,0xBD,0xBD,0xDD,0xE0,//D
0x80,0xBD,0xED,0xE1,0xED,0xFD,0xBD,0x80,
0xC0,0xBD,0xED,0xE1,0xED,0xFD,0xFD,0xF8,
0xC3,0xBD,0xFD,0xFD,0x8D,0xBD,0xB9,0xC3,
0x18,0xBD,0xBD,0x81,0xBD,0xBD,0xBD,0x18,
0xE3,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xE3,
0xC3,0xEF,0xEF,0xEF,0xEF,0xEF,0xED,0xF3,//J
0x98,0xED,0xF5,0xF1,0xF5,0xED,0xDD,0x98,
0xF1,0xFB,0xFB,0xFB,0xFB,0xFB,0xBB,0x81,
0x18,0x99,0xA5,0xA5,0xA5,0xBD,0xBD,0x3C,
0x1C,0xB9,0xB9,0xB5,0xB5,0xAD,0x9D,0xB8,
0xE3,0xDD,0xBE,0xBE,0xBE,0xBE,0xDD,0xE3,
0xE0,0xDD,0xDD,0xDD,0xE1,0xFD,0xFD,0xF8,
0xE3,0xDD,0xBE,0xBE,0xB2,0xC5,0xE3,0xCF,//Q
0xE0,0xDD,0xDD,0xE1,0xF5,0xED,0xED,0x98,
0xC3,0xBD,0xBD,0xFB,0xC7,0xBF,0xBD,0xC3,
0xC1,0xD5,0xF7,0xF7,0xF7,0xF7,0xF7,0xE3,
0x18,0xBD,0xBD,0xBD,0xBD,0xBD,0xDB,0xE7,
0x18,0xBD,0xBD,0xDD,0xDB,0xEB,0xEB,0xF7,//V
0x94,0xB6,0xB6,0xB6,0xB6,0xAA,0xDD,0xDD,
0x18,0xBD,0xDB,0xC3,0xE7,0xDB,0xDB,0x18,
0x88,0xDD,0xDD,0xEB,0xF7,0xF7,0xF7,0xE3,
0x81,0xDE,0xDF,0xEF,0xEF,0xF7,0x7B,0x01,//Z
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0xE3,0xDD,0xC3,0xDD,0xDD,0x83,0xFF,//a
0xFF,0xFD,0xFD,0xE5,0xD9,0xDD,0xE1,0xFF,
0xFF,0xE3,0xDD,0xFD,0xFD,0xDD,0xE3,0xFF,
0xFF,0xEF,0xEF,0xE3,0xED,0xED,0xD3,0xFF,
0xFF,0xE3,0xDD,0xC1,0xFD,0xDD,0xE3,0xFF,
0xFF,0xEF,0xF7,0xC3,0xF7,0xF7,0xF7,0xFF,
0xC3,0xED,0xE3,0xFD,0xE1,0xDD,0xE3,0xFF,
0xFF,0xFB,0xFB,0xE3,0xDB,0xDB,0xDB,0xFF,
0xFF,0xEF,0xFF,0xE7,0xEF,0xEF,0xEF,0xFF,
0xEF,0xFF,0xE7,0xEF,0xEF,0xEB,0xF7,0xFF,
0xFB,0xFB,0xCB,0xF3,0xEB,0xCB,0xFD,0xFF,
0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xEF,0xFF,
0xFF,0x83,0x6D,0x6D,0x6D,0x7D,0xFF,0xFF,
0xFF,0xC5,0xBB,0xBB,0xBB,0xBB,0xBB,0xFF,
0xFF,0xE3,0xDD,0xDD,0xDD,0xDD,0xE3,0xFF,
0xE1,0xDD,0xDD,0xE1,0xFD,0xFD,0xFD,0xFF,
0xE3,0xED,0xED,0xE3,0xEF,0xAF,0xCF,0xFF,
0xFF,0x93,0xE7,0xF7,0xF7,0xF7,0xFF,0xFF,
0xFF,0xC7,0xFB,0xC7,0xBF,0xBB,0xC7,0xFF,
0xFF,0xF7,0xE3,0xF7,0xF7,0xF7,0xEF,0xFF,
0xFF,0xFF,0xDB,0xDB,0xDB,0xDB,0xA7,0xFF,
0xFF,0xDD,0xDD,0xDD,0xEB,0xEB,0xF7,0xFF,
0xFF,0xBE,0xB6,0xB6,0xAA,0xDD,0xFF,0xFF,
0xFF,0x99,0xDB,0xE7,0xE7,0xDB,0x99,0xFF,
0x99,0xDB,0xDB,0xEB,0xF7,0xF7,0xF9,0xFF,
0xFF,0xC1,0xEF,0xF7,0xFB,0xFD,0xC1,0xFF};//z
/******************************
* Function Implement *
*****************************/
/*******************************************************************************
Function Name: 串行输入函数 *
Target : 将8位数据串行传入缓存 *
Input Parameter : 8位数据 *
Output Parameter : *
Function Description : *
*******************************************************************************/
void lcdSend(uchar inputdata)
{
uchar tmp;
for(tmp=0;tmp<8;tmp++)
{
P1_7=0;
P1_6=(inputdata>>tmp)&0x01;
P1_7=1;
}
}
/*******************************************************************************
Function Name: LCD扫描函数 *
Target : 对lcd进行信息扫描 *
Input Parameter : 无 *
Output Parameter : 无 *
Function Description : *
*******************************************************************************/
void lcdScan(void)
{
P1_5 = 0;
lcdSend(lcdDisMem[lcdPosbit]);
lcdSend(pos_select[lcdPosbit]);
lcdPosbit++;
if(lcdPosbit==8)
lcdPosbit=0;
P1_5 = 1;
}
/*******************************************************************************
Function Name: 显示信息函数 *
Target : 将显示信息放入数据缓存 *
Input Parameter : pos, 无符号字符,显示数据在字库中的第几个位置 *
Output Parameter : *
Function Description : *
*******************************************************************************/
void lcdPrint(uchar displayData)
{
lcdDisMem[0] = WordBase[displayData-0x30][0];
lcdDisMem[1] = WordBase[displayData-0x30][1];
lcdDisMem[2] = WordBase[displayData-0x30][2];
lcdDisMem[3] = WordBase[displayData-0x30][3];
lcdDisMem[4] = WordBase[displayData-0x30][4];
lcdDisMem[5] = WordBase[displayData-0x30][5];
lcdDisMem[6] = WordBase[displayData-0x30][6];
lcdDisMem[7] = WordBase[displayData-0x30][7];
}
/*******************************************************************************
Function Name: 数据循环移动函数 *
Target : 将lcd中的数据向右移动一位 *
Input Parameter : *
Output Parameter : *
Function Description : *
*******************************************************************************/
void circleBitMove()
{
lcdDisMem[0] =circleShift(lcdDisMem[0]);
lcdDisMem[1] =circleShift(lcdDisMem[1]);
lcdDisMem[2] =circleShift(lcdDisMem[2]);
lcdDisMem[3] =circleShift(lcdDisMem[3]);
lcdDisMem[4] =circleShift(lcdDisMem[4]);
lcdDisMem[5] =circleShift(lcdDisMem[5]);
lcdDisMem[6] =circleShift(lcdDisMem[6]);
lcdDisMem[7] =circleShift(lcdDisMem[7]);
}
/*******************************************************************************
Function Name: 循环移位函数 *
Target : 将一个8位数据循环右移一位 *
Input Parameter : 8位的一个数据 *
Output Parameter : 循环移位后的数据 *
Function Description : *
*******************************************************************************/
uchar circleShift(uchar udata)
{
uchar tmp = (udata&0x01)<<7;
udata = (udata>>1)|tmp;
return udata;
}
/*******************************************************************************
Function Name: 普通移位函数 *
Target : 将一个8位数据普通右移一位 *
Input Parameter : 8位的一个数据 *
Output Parameter : 普通右移后的数据 *
Function Description : *
*******************************************************************************/
uchar shift(uchar udata)
{
udata = (udata>>1)|0x80;
return udata;
}
/*******************************************************************************
Function Name: 数据移位函数 *
Target : 将一个8位数据普通右移一位 *
Input Parameter : 8位的一个数据 *
Output Parameter : 普通移位后的数据 *
Function Description : *
*******************************************************************************/
void bitMove()
{
lcdDisMem[0] =shift(lcdDisMem[0]);
lcdDisMem[1] =shift(lcdDisMem[1]);
lcdDisMem[2] =shift(lcdDisMem[2]);
lcdDisMem[3] =shift(lcdDisMem[3]);
lcdDisMem[4] =shift(lcdDisMem[4]);
lcdDisMem[5] =shift(lcdDisMem[5]);
lcdDisMem[6] =shift(lcdDisMem[6]);
lcdDisMem[7] =shift(lcdDisMem[7]);
}
/*******************************************************************************
Function Name: 延时函数 *
Target : 进行软件延时 *
Input Parameter : 延时的时间(单位ms) *
Output Parameter : 无 *
Function Description : *
*******************************************************************************/
void lcdDelay(int i) //延时程序
{
int k;
while ((i--)!= 0)
{
for (k = 0; k<= 0xFFF; k++)
{;}
}
}
#endif
/*******************************************************************************
* The end of the entire file *
******************************************************************************/
/* code const uchar strMem[] = { 0xFF,0xC7,0xEF,0xEF,0xEF,0xEF,0xC7,0xFF,
0xFF,0xFF,
0xFF,0xDF,0xDF,0xDF,0xDF,0xDF,0xC3,0xFF,
0xFF,0xEF,0xD7,0xBB,0xBB,0xD7,0xEF,0xFF,
0xFF,0xFF,0xBB,0xBB,0xBB,0xBB,0xD7,0xEF,
0xFF,0xC3,0xDF,0xC3,0xDF,0xDF,0xC3,0xFF,
0xFF,0xFF,0xFF,0xBB,0xBB,0xD7,0xEF,0xEF,
0xEF,0xFF,
0xFF,0xEF,0xD7,0xBB,0xBB,0xD7,0xEF,0xFF,
0xFF,0xBD,0xBD,0xBD,0xBD,0xDB,0xE7,0xFF,
0xFF,0xFF,
0xFF,0xEF,0xEF,0xEF,0xEF,0xFF,0xEF,0xFF
}; */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -