MSP430驱动诺基亚5110液晶屏完整程序
/************************************************
main()主函数
试验名称:test_nokia5110
试验功能:测试nokia5110 LCD显示
************************************************/
#include<msp430x14x.h>
#include"nokia5110.h"
#define uchar unsigned char
#define uint unsigned int
//uchar ISR_Symbol=0,DAT=0X00; //任务标志
void Iint_Port1(void);
void main(void)
{
uchar a={'s'};
uint i=56000;
WDTCTL = WDTPW + WDTHOLD;//停止看门狗定时器
unsigned char p;
WDTCTL=WDTPW+WDTHOLD;
//使用XT2振荡器 8MHZ
BCSCTL1&=~XT2OFF; //打开XT2振荡器
do
{
IFG1 &= ~OFIFG; // 清除振荡器失效标志
for (p = 0xFF; p > 0; p--); // 延时,等待XT2起振
}
while ((IFG1 & OFIFG) != 0); // 判断XT2是否起振
while(i--)i=i;
CCR0=100; //10KHZ
CCTL1=OUTMOD_7;
CCR1=0; //占空比 CCR1/CCR0
CCTL2=OUTMOD_7;
CCR2=0;
TACTL = TASSEL_2 + MC_1 + TAIE;// MCLK,定时器 A 增计数模式,且开中断功能
P3DIR=0xff;
LCD_init();
Iint_Port1();
Iint_Port1(); //初始化p1.0
_EINT(); //开总中断允许
//LCD_one_char(10,5,a);
//LCD_char_string(0,2," NOKIA is OK! ");
//LCD_char_string(0,0," CFE");
//LCD_char_string(0,3," 20011-6-18 ");
//WriteByteNokia(CMD, CONV_DISPLAY);
//LCD_num(20,5,49537); /**/
while(1)
{
//LPM3; //进入低功耗模式3,I/O口中断可将其唤醒
//if((ISR_Symbol&BIT0)==BIT0) {ISR_Symbol&=~BIT0;} //中断服务程序
//else if((ISR_Symbol&BIT1)==BIT1) {ISR_Symbol&=~BIT1;} //其他任务
welcome_screen();
};
}
void Iint_Port1(void)
{
//P2DIR=0XFF;
//P2SEL=0X00;
//P2OUT=0XFF;
P1DIR=0X00; //设置为输入方向
P1SEL=0X00; //设置为普通I/O口功能
P1IES|=0X06; //选择下降沿触发
P1IE|=0X06; //打开中断允许
P1IFG=0; //P1IES的切换可能使P1IFG置位,需清除
}
/************************************************************************************
ISR.C 子文件
************************************************************************************/
#include<msp430x14x.h>
#include"nokia5110.h"
uint time;
uint v_right=0;
uint v_left=0;
#pragma vector=PORT1_VECTOR
__interrupt void R_B_ISR(void)
{ //P1IFG=0; //多源中断,需靠软件清除P1IFG
//DAT^=0XFF; //取反
//P2OUT=DAT;
P2OUT=P1IFG;
switch(P1IFG){
case 0x01:break;
case 0x02:
{
v_right++;
break;
}
case 0x04:
{
v_left++;
break;
}
case 0x08:break;
case 0x10:break;
case 0x20:break;
case 0x40:break;
case 0x80:break;
default:break;
}
P1IFG=0;
//ISR_Symbol|=BIT0; //置任务标志
//_BIC_SR_IRQ(LPM3_bits); //将CPU从睡眠模式唤醒
}
// Timer_A3 中断向量 (TAIV)处理程序
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A(void)
{
switch( TAIV )
{
case 2: break;
case 4: break; //应用 switch 语句来处理多中断源的向量
//向量列表通过 case 语句来分多中断源的入口
// CCR1 比较/捕获寄存器的中断入口,本例子未用到。
// CCR2 比较/捕获寄存器的中断入口,本例子未用到。
case 10:
{time++;
if(time>5000)
{
time=0;
//LCD_num(20,4,v_left*1.727);
//LCD_num(20,5,v_right*1.727);
P3OUT ^= 0x33;
v_left=0;
v_right=0;
}
}
break;
}
}
/************************************************************************************************
nokia5110驱动子文件,可以把图片代码替换于此,进行图片显示
************************************************************************************************/
#include "nokia5110.h"
#include"zifu6x8.h"
//汉字编码表,用LCD3310.exe软件可以获取汉字编码
/*typedef struct typHZ_GB12 //12*12 汉字字模显示数据结构,一个汉字分为上下两层
{
char Index[2];//一个汉字占两个字节
char Msk[24];//一个汉字的编码由24个十六进制数组成
}ujjyny;
struct typHZ_GB12 const GB_12[] ={
"距",{0xEF,0x09,0xF9,0x4F,0x40,0xFF,0x49,0x49,0x49,0x79,0x01,0x00,0x07,0x04,0x03,0x02,0x02,0x07,0x04,0x04,0x04,0x04,0x04,0x00},
"离",{0x02,0x82,0xBE,0xA2,0xB6,0xEB,0xB6,0xA2,0xBE,0x82,0x02,0x00,0x00,0x07,0x00,0x02,0x03,0x02,0x02,0x03,0x04,0x07,0x00,0x00},
"温",{0x89,0x72,0x00,0xC0,0x5F,0xD5,0x55,0xD5,0x55,0xDF,0x00,0x00,0x07,0x00,0x04,0x07,0x04,0x07,0x04,0x07,0x04,0x07,0x04,0x00},
"度",{0x00,0xFE,0x0A,0x8A,0xBE,0xAA,0xAB,0xAA,0xBE,0x0A,0x0A,0x00,0x06,0x01,0x04,0x04,0x04,0x03,0x02,0x03,0x04,0x04,0x04,0x00},
"角",{0x10,0x08,0xFC,0xAB,0xAA,0xFA,0xAE,0xAA,0xA8,0xF8,0x00,0x00,0x04,0x02,0x01,0x00,0x00,0x07,0x00,0x04,0x04,0x07,0x00,0x00},
"度",{0x00,0xFE,0x0A,0x8A,0xBE,0xAA,0xAB,0xAA,0xBE,0x0A,0x0A,0x00,0x06,0x01,0x04,0x04,0x04,0x03,0x02,0x03,0x04,0x04,0x04,0x00},
"张",{0xF2,0x92,0x92,0x9E,0x00,0x20,0xFF,0x28,0xE4,0x22,0x20,0x00,0x88,0xFF,0x48,0x00,0xFE,0x22,0xEA,0x2A,0xEA,0x2A,0xA2,0x00},
"振",{0x08,0x88,0x68,0xFF,0x48,0x80,0x68,0xFF,0x68,0x88,0x08,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}
};*/
const unsigned char ceshi[] = {/*-- 调入了一幅图像:C:\Users\lenovo\Documents\ceshi2.bmp --*/
/*-- 宽度x高度=84x48 --*/
0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x98,0xF8,0xF0,0x80,0x80,0x80,0x80,0x80,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0xA0,0xA0,0xE0,0x70,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,
0x00,0x00,0x00,0x00,0xF0,0xF0,0x10,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xF0,0x30,0x70,0xC0,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x88,0x88,0x88,0x88,0xFF,0xFF,0x88,
0x88,0x88,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,
0x08,0x08,0xFF,0xFF,0x0B,0x08,0x08,0x08,0x08,0x0C,0x0C,0x08,0x00,0x00,0x00,0x02,
0x02,0x02,0xFF,0xFF,0x63,0x7B,0x3B,0x81,0xFF,0x7F,0x01,0x01,0xFF,0xFF,0x10,0x70,
0x60,0x00,0x00,0x00,0x10,0x18,0x48,0x4C,0x4E,0x4B,0xC9,0xC8,0xC8,0x48,0x48,0x4D,
0x4F,0x4E,0x66,0x2C,0x0C,0x04,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,
0x00,0x0F,0x0F,0x08,0x08,0x08,0x08,0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x08,0x18,0x1F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x1F,0x18,0x0C,0x06,0x03,0x01,0x08,0x08,0x0C,
0x0F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x18,0x1C,0x0F,0x0B,0x09,
0x08,0x08,0x09,0x0B,0x0E,0x1C,0x1C,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,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,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,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,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
const unsigned char welcome[] = {
/*-- 调入了一幅图像:C:\Documents and Settings\Administrator\桌面\感谢关注密友电子.bmp --*/
/*-- 宽度x高度=84x48 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x90,0xE0,
0x40,0x50,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x60,0xC0,0x00,0x00,0x80,
0xE0,0xB0,0x80,0x00,0x00,0x20,0xE0,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,
0xC0,0x00,0x00,0x80,0x40,0x30,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,
0xC0,0x80,0x00,0x00,0x00,0x00,0x20,0x60,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x60,0x38,0x0F,0x38,
0x2A,0x2A,0x9A,0x20,0x17,0x1C,0x36,0x62,0x40,0x60,0x00,0x00,0x08,0x08,0x0C,0xF4,
0x1C,0xA0,0x20,0xBF,0xEA,0x60,0xFF,0x04,0x24,0x44,0xFF,0x04,0x04,0x04,0x00,0x00,
0x20,0x20,0x20,0x12,0x92,0xF2,0x3E,0x53,0x91,0x19,0x19,0x18,0x10,0x00,0x00,0x00,
0x00,0x02,0x06,0x84,0xE0,0x30,0x00,0x02,0x22,0x22,0xFF,0x11,0x11,0x11,0x01,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x06,0x03,0x00,0x01,0x02,0x04,0x0C,0x09,0x08,0x0E,0x0C,0x01,0x03,0x02,0x00,0x00,
0x00,0x00,0x03,0x03,0x01,0x02,0x01,0x00,0x04,0x0C,0x07,0x00,0x04,0x0C,0x0F,0x00,
0x00,0x00,0x00,0x00,0x04,0x04,0x02,0x03,0x01,0x00,0x00,0x00,0x01,0x03,0x06,0x06,
0x04,0x04,0x00,0x00,0x00,0x00,0x02,0x07,0x00,0x02,0x02,0x02,0x02,0x02,0x03,0x01,
0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xB0,0xDC,0x08,0x48,0x88,0x18,0xA9,0xCB,0x74,0x24,0x84,
0x54,0xDC,0x8C,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x90,0xF0,0xBF,0x9F,0x48,0x48,
0xCC,0x84,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x20,0x20,0xA1,0xFF,0x90,
0x10,0x10,0xF0,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x84,0x84,
0x84,0x92,0xFA,0x4E,0x46,0x42,0x40,0x60,0x60,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x08,0x04,0xF4,0xC2,0xC3,0x49,
0x7A,0x42,0x42,0x5B,0xF1,0x00,0x00,0x00,0x00,0x20,0x10,0x18,0x0C,0x06,0x23,0x21,
0x12,0x16,0x0C,0x0E,0x1B,0x31,0x60,0x60,0x40,0x40,0x40,0x00,0x00,0x00,0x01,0x07,
0x04,0x04,0x3F,0x62,0x42,0x46,0x43,0x40,0x40,0x78,0x30,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x20,0x60,0xC0,0xFF,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,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,0x00
};
const unsigned char join[] = {
/*-- 调入了一幅图像:C:\Documents and Settings\Administrator\桌面\密友电子诚邀您加入.bmp --*/
/*-- 宽度x高度=84x48 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,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,0x80,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x66,0x04,0xB4,0x4A,0x6A,0x93,0x8A,
0xA2,0x42,0x16,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x84,0x64,0x5C,0xA7,0x24,0x92,
0x72,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0xF8,0x08,0x28,0xFF,0x94,0x94,0x84,
0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x22,0x22,0x22,0x29,0xF5,0x13,
0x11,0x10,0x10,0x10,0x00,0x00,0x00,0x20,0x20,0x92,0x74,0x00,0xF0,0x50,0xD0,0x1F,
0xE8,0x09,0xE2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x11,0x1C,
0x10,0x10,0x0E,0x08,0x08,0x1E,0x00,0x00,0x00,0x00,0x00,0x04,0x02,0x01,0x08,0x08,
0x04,0x02,0x01,0x02,0x04,0x04,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x01,0x01,
0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x04,0x08,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0A,0x05,
0x03,0x02,0x03,0x04,0x02,0x03,0x04,0x08,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x88,0x98,0x00,0x30,0x50,0xCC,0xB8,0xC0,0x30,0xEC,0x20,0x20,0x00,0x00,0x00,0x00,
0x40,0x20,0xF8,0x06,0xA0,0x50,0x0E,0xF8,0x08,0x48,0x98,0x00,0x00,0x00,0x00,0x00,
0x40,0x40,0xC0,0x7C,0x20,0xE0,0x00,0xC0,0x40,0x40,0x40,0xC0,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x20,0xA0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x10,0x12,0x1D,0x10,0x19,0x17,0x2A,0x26,0x28,0x25,0x63,0x64,0x28,
0x20,0x00,0x00,0x00,0x30,0x18,0x03,0x08,0x10,0x24,0x29,0x23,0x20,0x30,0x24,0x04,
0x08,0x00,0x00,0x10,0x08,0x06,0x09,0x10,0x08,0x07,0x00,0x07,0x04,0x04,0x04,0x07,
0x00,0x00,0x00,0x20,0x20,0x10,0x08,0x04,0x02,0x01,0x00,0x00,0x03,0x04,0x08,0x30,
0x30,0x20,0x20,0x00,0x00,0x00,0x21,0x21,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,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
};
const unsigned char TE[] = {
/*-- 调入了一幅图像:C:\Documents and Settings\Administrator\桌面\技术交流群.bmp --*/
/*-- 宽度x高度=84x48 --*/
0x00,0x00,0x10,0xCC,0x08,0x68,0x94,0xD5,0x26,0x14,0x44,0x84,0x2C,0x44,0x00,0x00,
0x00,0x00,0x00,0x00,0x08,0xC8,0xB8,0x4F,0x48,0x24,0xE4,0x04,0x00,0x00,0x00,0x00,
0x00,0x00,0x10,0xF0,0x10,0x50,0xFF,0x28,0x28,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x40,0x40,0x44,0x44,0x44,0x52,0xEA,0x26,0x22,0x20,0x20,0x20,0x00,0x00,
0x00,0x00,0x20,0x20,0xFF,0x90,0x10,0x80,0x90,0x7F,0x48,0xC8,0x08,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x22,0x39,0x20,0xA0,0x1D,0x11,0x11,0x3C,
0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x02,0x11,0x10,0x08,0x85,0x02,0x05,0x08,0x08,
0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x0F,0x11,0x11,0x91,0x10,0x10,
0x10,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x10,0x0F,0x00,0x00,0x00,
0x80,0x80,0x00,0x00,0x00,0x02,0x02,0x11,0x1F,0x00,0x08,0x08,0x05,0x02,0x05,0x08,
0x18,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x90,0x50,0x30,0xFF,
0x28,0x48,0x89,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0xA4,0x94,0x04,
0x85,0x6A,0x12,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x22,0x84,0x00,0xA4,0x34,
0xAC,0x24,0xDB,0x32,0x02,0x00,0x00,0x00,0x00,0x08,0xA8,0xEA,0xBE,0x55,0x55,0xDF,
0x80,0xA9,0xFA,0x94,0x95,0x84,0x80,0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,
0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x01,0x03,0x02,0x02,0x00,0x00,0x00,0x00,0x08,
0x08,0x04,0x02,0x01,0x02,0x04,0x08,0x18,0x10,0x10,0x10,0x00,0x00,0x00,0x04,0x06,
0x09,0x04,0x03,0x00,0x07,0x00,0x07,0x08,0x08,0x08,0x06,0x00,0x00,0x02,0x01,0x00,
0x03,0x02,0x01,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x02,0x02,0xFF,0x00,0x00,0x00,0x00,0x00,0x40,0xF8,0x24,0x12,0x11,
0xE1,0x00,0x00,0x00,0x00,0xFC,0x02,0x01,0x03,0xFC,0x00,0x00,0x00,0x00,0x0C,0x1A,
0x12,0x32,0xC0,0x00,0x00,0x00,0x00,0xDE,0x31,0x21,0x52,0x8C,0x00,0x00,0x00,0x04,
0x02,0x02,0xE2,0x1E,0x02,0x00,0x00,0x00,0x00,0x0C,0x1A,0x12,0x32,0xC0,0x00,0x00,
0x00,0xC0,0xB0,0x88,0x84,0xFF,0x80,0x00,0x00,0x00,0x08,0x3E,0x41,0x41,0xE2,0x7C,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x02,0x00,0x00,0x00,0x00,0x00,
0x03,0x04,0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x04,0x03,0x00,0x00,
0x00,0x00,0x06,0x04,0x04,0x03,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x04,0x04,0x03,
0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x04,0x04,
0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x04,
0x02,0x03,0x01,0x00,0x00,0x00,0x00,0x00
};
const unsigned char CFE[]=
{
/*-- 调入了一幅图像:C:\Documents and Settings\Administrator\桌面\密友电子位图.bmp --*/
/*-- 宽度x高度=84x48 --*/
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,0x80,0xC0,0x60,0x30,0x98,0x8C,0xC6,0x73,0x31,0x98,0xCC,0x70,0x30,
0x80,0xC0,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,0x08,0x08,0x88,0x88,0x88,0x88,
0x88,0xB8,0xA8,0x88,0x88,0x88,0xC8,0xC8,0x88,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
0x08,0x08,0x88,0xF8,0xAC,0x8E,0x8B,0x89,0x88,0x0C,0x0F,0x0B,0x09,0x0C,0x0E,0x0B,
0x09,0x0C,0x0E,0x0B,0x39,0xEC,0x0E,0x0B,0x08,0x0C,0x08,0x08,0x08,0x08,0x08,0x08,
0x08,0x08,0x08,0x08,0x08,0x48,0x48,0x48,0x48,0x28,0xA8,0x68,0x68,0x08,0x08,0x08,
0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,
0x99,0x00,0x40,0x38,0x32,0xB2,0xAC,0x27,0x20,0xB0,0x24,0x0C,0x09,0x00,0x00,0x00,
0x00,0x00,0x80,0x41,0x31,0x19,0x27,0x49,0xC8,0xC8,0x3C,0x08,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x06,0x7E,0x42,0x42,0x4A,0xFF,0x48,0x49,0x61,0x3F,0x02,0x00,
0x80,0x00,0x00,0x00,0x00,0x10,0x10,0x08,0x08,0x08,0x08,0x08,0x0A,0xFD,0x04,0x04,
0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x40,0x40,0x40,0x48,0x4F,0xC8,0x48,0x48,0x45,0x44,0x44,0x45,0x4F,0x40,
0x40,0x40,0x40,0x40,0x42,0x41,0xC0,0x40,0x44,0x40,0x42,0xC1,0x41,0x41,0x43,0x46,
0x46,0x44,0x44,0x44,0x40,0x40,0x40,0xC0,0x40,0x40,0x40,0x40,0x40,0x47,0xC4,0x44,
0x44,0x44,0x44,0x44,0x47,0x40,0x40,0x40,0xC0,0x40,0x40,0x40,0x40,0x40,0x40,0x44,
0x4C,0x4F,0x40,0x40,0x40,0xC0,0x40,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x0F,0x0D,0x0D,0x0C,0x09,0x0E,0x0D,0x0D,0x0A,
0x0F,0x0B,0x0F,0x0A,0x0F,0x0F,0x0F,0x08,0x08,0x0D,0x0B,0x09,0x0F,0x09,0x0E,0x19,
0x1E,0x4B,0x6F,0x3A,0x9E,0xC9,0x6F,0x38,0x1E,0x89,0xEF,0x69,0x38,0x98,0xCF,0x6B,
0x3F,0x98,0xCF,0x68,0x3F,0x1B,0x0F,0x08,0x0F,0x0D,0x09,0x0D,0x0D,0x08,0x0B,0x09,
0x0E,0x09,0x0D,0x0A,0x0E,0x09,0x0D,0x08,0x0E,0x08,0x0E,0x09,0x0D,0x08,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,0x01,0x01,0x01,0x0C,0x06,0x33,0x19,0xCC,0x66,
0x33,0x19,0x0C,0x06,0x03,0x01,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
};
const unsigned char bmp[]=
{
/*-- 调入了一幅图像:C:\Documents and Settings\Administrator\桌面\Nokia5110\Nokia5110\Software\Zimo21\图片文件\6.bmp --*/
/*-- 宽度x高度=40x40 --*/
0xC0,0x00,0x80,0x80,0x80,0x80,0x40,0xA0,0xE8,0xF4,0x7E,0x7A,0x5F,0x7D,0x4E,0xDF,
0xCE,0xCF,0xCF,0xCF,0x0F,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0xBF,0xF5,0xC0,0x00,
0x80,0x00,0x80,0x60,0xD0,0xF8,0xD6,0xBD,0xF7,0xFD,0xF7,0xFE,0xFB,0xFE,0xFF,0x5F,
0x07,0x19,0x08,0x7C,0x9E,0x9C,0xFC,0xE4,0xE4,0x58,0x18,0x31,0x03,0x05,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x8A,0x97,0x2F,0xBD,0x3F,0x75,0xFD,0xEA,0xD3,0xC7,0x1F,
0x5F,0x17,0x3F,0xEF,0xBF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x3F,
0x73,0x73,0x7F,0x7F,0xBC,0x73,0x8F,0x7A,0xD5,0x00,0x00,0x00,0x03,0xFE,0xAB,0xFF,
0xF0,0x40,0x00,0x00,0x00,0x00,0x00,0x0A,0x20,0x04,0x28,0x00,0x10,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x00,0xA0,0x40,0xA8,0xD0,0xEA,0x54,0xFB,0x54,0xFF,0x55,
0xAD,0xFF,0x5D,0xAE,0xFC,0x5F,0xBE,0xFF,0xFF,0xFF,0x7D,0x1C,0xA0,0x50,0xA0,0x50,
0xA0,0x50,0xA0,0x50,0xA0,0x58,0xA0,0xFC,0xF0,0xFE,0xF8,0xFE,0xFD,0xFE,0x7F,0x5F,
0x17,0x01,0x0F,0x7F,0x1F,0x1D,0x07,0x05
};
const unsigned char mr[]=
{
/*-- 调入了一幅图像:C:\Documents and Settings\Administrator\桌面\鸣人.bmp --*/
/*-- 宽度x高度=84x48 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x9B,0xAB,0x07,0x63,0x43,0x83,0xCB,0x93,0x4B,0xBC,
0xA0,0x20,0x00,0xFF,0xFF,0xFF,0x3F,0x00,0xC0,0xE0,0xF8,0xFC,0x7C,0x00,0x00,0x00,
0x00,0x00,0x40,0x10,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x80,0xD0,0x18,0x00,0xCC,
0x0C,0x0C,0xE0,0xC6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x08,0x40,0x00,0x00,
0x00,0x00,0xF8,0xF0,0xE0,0x80,0x00,0x01,0xFF,0xFF,0x8F,0x0F,0xFE,0xFC,0xF8,0xF2,
0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xC3,0x3A,0xB0,0xD0,0x20,0x38,
0x08,0x8B,0x6C,0xBD,0x9B,0x88,0xB0,0x07,0xCF,0x0F,0x1C,0x1F,0x3F,0x3F,0x7F,0x7F,
0x78,0xC0,0x80,0xF0,0xE4,0xC1,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x80,0x86,0x80,
0x8B,0x8A,0x8C,0x8D,0x84,0x80,0x81,0x81,0x80,0x80,0x80,0x80,0xC0,0xC0,0xC0,0xC0,
0xC0,0xC0,0xC1,0xC8,0xC0,0xE0,0xEC,0x7F,0x7F,0x7F,0xFF,0x1C,0x13,0xCF,0x63,0x00,
0x03,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF3,0xC7,
0xCB,0xFF,0xD0,0x31,0xF7,0x1E,0x44,0xFB,0x87,0xC7,0x82,0x48,0x83,0x20,0x80,0xC0,
0x00,0x00,0x00,0x00,0x00,0x01,0x20,0x01,0x71,0x51,0x01,0xC3,0x01,0xE1,0xA7,0x63,
0x43,0x0F,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x43,0x03,0x13,0x0B,0x4F,0x83,
0xA5,0xA1,0x87,0x81,0x81,0x01,0x71,0x50,0x50,0x01,0x00,0x00,0x00,0x00,0x07,0xC0,
0x08,0x09,0x12,0x00,0xE0,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFE,0xFE,0xFE,0xD5,0xC3,0xD3,0xD4,0xC3,0xFE,
0xF0,0xF1,0x82,0x25,0x20,0x10,0x00,0x00,0x08,0x00,0x00,0x00,0x84,0x04,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x08,0x00,0x00,0x00,0x10,0x00,0x00,0x20,
0x80,0x34,0x22,0x00,0x08,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xB9,0xD0,0xE8,0xFD,0xF4,0xE0,0x82,0x00,0x01,0x80,
0x40,0x00,0x20,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x41,0x01,0x00,0x02,0x04,
0x00,0xC0,0xF0,0xFC,0xF9,0xF0,0xFC,0xFE,0xFE,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0xDF,0xFF,0xEF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFD,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x10,0x00,0x00,0x08,0x00,
0x00,0x00,0x00,0x00,0x10,0x14,0x04,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,
0xE0,0xF0,0xF8,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
};
/*********************************
函数名称: WriteByteNokia(uchar cmd_data,uchar lcd_cmd)写指令
功能:写入一个字节
入口参数:cmd_data,lcd_cmd
返回参数:无
*********************************/
void WriteByteNokia(uchar cmd_data,uchar lcd_byte)
{
uchar i;
SCE_L();//NOKIA_SCE = LOW;
RST_H();//NOKIA_RST = HIGH;
if(cmd_data)//NOKIA_DC = cmd_data;
DC_H();//命令OR数据
else
DC_L();
for (i=0;i<8;i++)
{
SCLK_L();//NOKIA_SCLK= LOW;
if ((lcd_byte&0x80) == 0x80)
SDIN_H();//NOKIA_SDIN = 1;
else
SDIN_L();//NOKIA_SDIN = 0;
lcd_byte = lcd_byte<<1;
SCLK_H();//NOKIA_SCLK= HIGH;
}
}
/*********************************
函数名称: WriteNokia(uchar cmd_data,uchar lcd_byte)写指令
功能:写入一个字符串
入口参数:cmd_data,lcd_cmd
返回参数:无
*********************************/
void WriteNokia(uchar cmd_data,uchar *lcd_byte)
{
uchar i;
SCE_L();//NOKIA_SCE = LOW;
RST_H();//NOKIA_RST = HIGH;
if(cmd_data)//NOKIA_DC = cmd_data;
DC_H(); //命令OR数据
else
DC_L();
while ((*lcd_byte) != '\0')
{
for (i=0;i<8;i++)
{
SCLK_L();//NOKIA_SCLK= LOW;
if (((*lcd_byte)&0x80) == 0x80)
SDIN_H();//NOKIA_SDIN = 1;
else
SDIN_L();//NOKIA_SDIN = 0;
*lcd_byte = (*lcd_byte)<<1;
SCLK_H();//NOKIA_SCLK= HIGH;
}
lcd_byte++;
}
}
/*********************************
函数名称: SetAddr(uchar addr_x,uchar addr_y)
功能:设定RAM地址
入口参数:uchar addr_x,uchar addr_y
返回参数:无
*********************************/
void SetAddr(uchar addr_x,uchar addr_y)
{
WriteByteNokia(CMD,0x80+addr_x);//加上0x80和0x40是设置地址所必须的控制字
WriteByteNokia(CMD,0x40+addr_y);
}
/*********************************
函数名称: ClearLcd(void)清除RAM
入口参数:无
返回参数:无
*********************************/
void ClearLcd(void)
{
uint i;
WriteByteNokia(CMD,0x80);//将地址指向原点
WriteByteNokia(CMD,0x40);
for (i=0;i<504;i++)
{
WriteByteNokia(DAT,0x00);
}
}
/*********************************
函数名称: LCD_init(void)
功能:清屏
入口参数:无
返回参数:无
*********************************/
void LCD_init(void){
DAT_IN_OUT|=0xff;//设置为输出管脚
OUTPUT|=0xff;
//LED_L(); //打开背光
WriteByteNokia(0,0x21);//初始化Lcd,功能设定使用扩充指令
WriteByteNokia(0,0xC6);//设定液晶偏置电压
WriteByteNokia(0,0x06);//温度校正
WriteByteNokia(0,0x13);;//1:48
WriteByteNokia(0,0x20);//使用基本指令
WriteByteNokia(0,0x0C);//设定显示模式,正常显示
/*
WriteByteNokia(CMD,EXT_INSTRUCTION); //选择扩展指令集
WriteByteNokia(CMD,VOP_SET);//设置Vop
WriteByteNokia(CMD,TEMP); //温度校正
WriteByteNokia(CMD,BS); //设置偏置系统 1:48
//WriteByteNokia(CMD,STD_INSTRUCTION|VER_ADDR);//选择标准指令集
WriteByteNokia(CMD,STD_INSTRUCTION|HOR_ADDR);
WriteByteNokia(CMD,STD_DISPLAY);//选择标准显示模式
ClearLcd();
SetAddr(0,0); */
}
/*********************************
函数名称: DisplayHz(uchar addr_x,uchar addr_y,uchar *hz)
功能:显示汉字
入口参数:uchar addr_x,uchar addr_y,uchar *hz
返回参数:无
*********************************/
void DisplayHz(uchar addr_x,uchar addr_y,const unsigned char *hz)//汉字宽度为12,高度为12
{
uchar i=0,ch_with=12;
SetAddr(addr_x,addr_y);
for (i=0; i<ch_with*2;i++)
{
if (i==ch_with)
{
// if (i==0)
SetAddr(addr_x,addr_y+1);
// else
// SetAddr((addr_x+(ch_with+row)*i),addr_y+1);
}
WriteByteNokia(DAT,hz[i]);
}
}
/*********************************
函数名称: DisplayZf(uchar addr_x,uchar addr_y,uchar *zf)
功能: 显示字符
入口参数:uchar addr_x,uchar addr_y,uchar *hz
返回参数:无
*********************************/
void LCD_char_string(uchar addr_x,uchar addr_y,uchar *zf)//字符宽度为6,高度为8
{
uchar j,i=0; //每行最多写14个字符
while (*zf != '\0')
{
for (j=0;j<6;j++)
{
SetAddr(addr_x+i*6+j,addr_y);
WriteByteNokia(DAT,zifu6x8[*zf-0x20][j]);
}
zf++;
i++;
}
}
/*********************************
函数名称: LCD_write_char(uchar addr_x,uchar addr_y,uchar c)
功能: 在指定的位置显示一个英文字符
入口参数:uchar addr_x,uchar addr_y,uchar c
返回参数:无
*********************************/
void LCD_one_char(uchar addr_x,uchar addr_y,uchar c)
{
unsigned char j;
for (j=0; j<6; j++){
SetAddr(addr_x+j,addr_y);
WriteByteNokia(DAT,zifu6x8[c-0x20][j]);
}
}
/*********************************
函数名称: LCD_num(uchar addr_x,uchar addr_y,unsigned int num)
功能: 在指定的位置显示数据
入口参数:uchar addr_x,uchar addr_y,unsigned int num
返回参数:无
*********************************/
void LCD_num(uchar addr_x,uchar addr_y,unsigned int num)
{
unsigned char dat[7],i;
dat[0]=num/10000+48;
dat[1]=num%10000/1000+48;
dat[2]=num%1000/100+48;
dat[3]=num%100/10+48;
dat[4]=num%10+48;
dat[5]=32;
dat[6]='\0';
for(i=0;i<4;i++)
{
if(dat[i]==48)
dat[i]=32;
else break;
}
LCD_char_string(addr_x,addr_y,dat);
}
/*-----------------------------------------------------------------------
LCD_draw_map : 位图绘制函数
输入参数:X、Y :位图绘制的起始X、Y坐标;
*map :位图点阵数据;
Pix_x :位图像素(长)
Pix_y :位图像素(宽)
-----------------------------------------------------------------------*/
void LCD_draw_bmp(uchar addr_x,uchar addr_y,const unsigned char *map,
uchar Pix_x,uchar Pix_y)
{
unsigned int i,n;
unsigned char row;
if (Pix_y%8==0) row=Pix_y/8; //计算位图所占行数
else
row=Pix_y/8+1;
for (n=0;n<row;n++)
{
SetAddr(addr_x,addr_y);
for(i=0; i<Pix_x; i++)
{
WriteByteNokia(DAT,map[i+n*Pix_x]);
}
addr_y++; //换行
}
}
void welcome_screen(void)//显示图片部分
{ int i=56000;
/*LCD_draw_bmp(0,0,welcome,84,48);
while(i--)i=i;
while(i--)i=i;
while(i--)i=i;
ClearLcd();
LCD_draw_bmp(0,0,join,84,48);
while(i--)i=i;
while(i--)i=i;
while(i--)i=i;
ClearLcd();
LCD_draw_bmp(0,0,TE,84,48);
while(i--)i=i;
while(i--)i=i;
while(i--)i=i;
ClearLcd();
LCD_draw_bmp(0,0,CFE,84,48);
while(i--)i=i;
while(i--)i=i;
while(i--)i=i;
ClearLcd();
LCD_draw_bmp(17,0,bmp,40,40);
while(i--)i=i;
while(i--)i=i;
while(i--)i=i;
ClearLcd();
LCD_draw_bmp(0,0,mr,84,48);
while(i--)i=i;
while(i--)i=i;
while(i--)i=i;
ClearLcd();*/
LCD_draw_bmp(0,0,ceshi,84,48);
while(1);
/*while(i--)i=i;
while(i--)i=i;
while(i--)i=i;
ClearLcd();*/
}
/********************************************************************************************
自己编写的5110.h文件
********************************************************************************************/
#ifndef NOKIA5510_2008_02_23
#define NOKIA5510_2008_02_23
#include <msp430x14x.h>
#define uchar unsigned char
#define uint unsigned int
#define RST 0X40 //复位 P5.6
#define SCE 0x01 //使能 P5.0
#define DC 0x10 //数据/命令选择 P5.4
#define SDIN 0x02 //数据 P5.1
#define SCLK 0x08 //时钟 P5.3
#define LED 0x20 //背光 P5.5
#define DAT_IN_OUT P5DIR
#define OUTPUT P5OUT
#define RST_H() OUTPUT|=RST
#define RST_L() OUTPUT&=~RST
#define SCE_H() OUTPUT|=SCE
#define SCE_L() OUTPUT&=~SCE
#define DC_H() OUTPUT|=DC
#define DC_L() OUTPUT&=~DC
#define SDIN_H() OUTPUT|=SDIN
#define SDIN_L() OUTPUT&=~SDIN
#define SCLK_H() OUTPUT|=SCLK
#define SCLK_L() OUTPUT&=~SCLK
#define LED_H() OUTPUT|=LED
#define LED_L() OUTPUT&=~LED
/*
sbit NOKIA_RST = P1^0;
sbit NOKIA_SCE = P1^1;//使能
sbit NOKIA_DC = P1^2;//数据/命令选择
sbit NOKIA_SDIN = P1^3;//数据
sbit NOKIA_SCLK = P1^4;//时钟
*/
#define LOW 0
#define HIGH 1
#define CMD 0
#define DAT 1
//初始化指令
#define STD_INSTRUCTION 0x20 //标准指令集
#define EXT_INSTRUCTION 0x21 //扩展指令集
#define VER_ADDR 0x02//垂直寻址
#define HOR_ADDR 0x00//水平寻址
#define STD_DISPLAY 0x0c//标准显示
#define BLANK_DISPLAY 0x08//显示空白
#define CONV_DISPLAY 0x0d//反转显示
#define VOP_SET 0xb8//设置偏置电压Vop 调节对比度
#define TEMP 0x06 // 温度校正
#define BS 0x13 // 设置偏置系统
void WriteByteNokia(uchar cmd_data,uchar lcd_byte);
void WriteNokia(uchar cmd_data,uchar *lcd_byte);
void SetAddr(uchar addr_x,uchar addr_y);
void ClearLcd(void);
void DisplayHz(uchar addr_x,uchar addr_y,const unsigned char *hz);
void LCD_char_string(uchar addr_x,uchar addr_y,uchar *zf);
void LCD_init(void);
void LCD_one_char(uchar addr_x,uchar addr_y,uchar c);
void LCD_num(uchar addr_x,uchar addr_y,unsigned int num);
void LCD_draw_bmp(uchar addr_x,uchar addr_y,const unsigned char *map,uchar Pix_x,uchar Pix_y);
void welcome_screen(void);
#endif
/*********************************************************************************************************
由于5110没有内置ASCII码表,所以使用时得手动编写
*********************************************************************************************************/
// 6 x 8 font
// 1 pixel space at left and bottom
// index = ASCII - 32
#ifndef zifu
#define zifu
const unsigned char zifu6x8[][6] =
{
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, // sp
{ 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 }, // !
{ 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 }, // "
{ 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 }, // #
{ 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, // $
{ 0x00, 0x62, 0x64, 0x08, 0x13, 0x23 }, // %
{ 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 }, // &
{ 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 }, // '
{ 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00 }, // (
{ 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 }, // )
{ 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 }, // *
{ 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 }, // +
{ 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 }, // ,
{ 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 }, // -
{ 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 }, // .
{ 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 }, // /
{ 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E }, // 0
{ 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 }, // 1
{ 0x00, 0x42, 0x61, 0x51, 0x49, 0x46 }, // 2
{ 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 }, // 3
{ 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 }, // 4
{ 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 }, // 5
{ 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 }, // 6
{ 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 }, // 7
{ 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 }, // 8
{ 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E }, // 9
{ 0x00, 0x00, 0x36, 0x36, 0x00, 0x00 }, // :
{ 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 }, // ;
{ 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 }, // <
{ 0x00, 0x14, 0x14, 0x14, 0x14, 0x14 }, // =
{ 0x00, 0x00, 0x41, 0x22, 0x14, 0x08 }, // >
{ 0x00, 0x02, 0x01, 0x51, 0x09, 0x06 }, // ?
{ 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E }, // @
{ 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C }, // A
{ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 }, // B
{ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22 }, // C
{ 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C }, // D
{ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 }, // E
{ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 }, // F
{ 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A }, // G
{ 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F }, // H
{ 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 }, // I
{ 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01 }, // J
{ 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 }, // K
{ 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 }, // L
{ 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F }, // M
{ 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F }, // N
{ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E }, // O
{ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 }, // P
{ 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E }, // Q
{ 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46 }, // R
{ 0x00, 0x46, 0x49, 0x49, 0x49, 0x31 }, // S
{ 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 }, // T
{ 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F }, // U
{ 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F }, // V
{ 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F }, // W
{ 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 }, // X
{ 0x00, 0x07, 0x08, 0x70, 0x08, 0x07 }, // Y
{ 0x00, 0x61, 0x51, 0x49, 0x45, 0x43 }, // Z
{ 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00 }, // [
{ 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55 }, // 55
{ 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00 }, // ]
{ 0x00, 0x04, 0x02, 0x01, 0x02, 0x04 }, // ^
{ 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 }, // _
{ 0x00, 0x00, 0x01, 0x02, 0x04, 0x00 }, // '
{ 0x00, 0x20, 0x54, 0x54, 0x54, 0x78 }, // a
{ 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38 }, // b
{ 0x00, 0x38, 0x44, 0x44, 0x44, 0x20 }, // c
{ 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F }, // d
{ 0x00, 0x38, 0x54, 0x54, 0x54, 0x18 }, // e
{ 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02 }, // f
{ 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C }, // g
{ 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78 }, // h
{ 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00 }, // i
{ 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00 }, // j
{ 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00 }, // k
{ 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00 }, // l
{ 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78 }, // m
{ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78 }, // n
{ 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 }, // o
{ 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18 }, // p
{ 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC }, // q
{ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08 }, // r
{ 0x00, 0x48, 0x54, 0x54, 0x54, 0x20 }, // s
{ 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20 }, // t
{ 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C }, // u
{ 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C }, // v
{ 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C }, // w
{ 0x00, 0x44, 0x28, 0x10, 0x28, 0x44 }, // x
{ 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C }, // y
{ 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44 }, // z
{ 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 } // horiz lines
};
#endif
MSP430驱动诺基亚5110液晶屏完整程序相关推荐
- 简单明了操作——ESP8266 NodeMCU驱动TFT LCD液晶屏(制作透明小电视前奏)
简单明了操作--ESP8266 NodeMCU驱动TFT LCD液晶屏(制作透明小电视前奏) 前言 准备材料 esp8266 NodeMCU(串口WiFi模块) 1.44inch SPI Arduin ...
- ht1621b和单片机电平匹配_HT1621B驱动段码液晶屏参考程序——晶拓液晶屏
(1) 段码屏的驱动程序跟数码管的静态驱动程序一样,只要我们弄懂了怎样显示一个基本单位,根据此基本单位编写一个字库表,然后 用与(&)和或(|)这两种位运算符就可以随心所欲编写我们要 ...
- 如何驱动段码液晶屏?
日常生活中我见的较多的就是段码液晶屏了,如遥控器.冰箱.电子体温计.设备上的显示器等等,段码屏应用如此广泛主要是它即有着普通数码管的特征,又有着点阵液晶屏的特征:有固定的图形,不但成本低而且又美观.那 ...
- 【程序】STM32F407VE单片机通过FSMC驱动Ilitek ILI9325液晶屏以及XPT2046触控芯片
本程序使用的单片机为STM32F407VE,晶振大小为8MHz,用10厘米长的杜邦线和彩屏相连,彩屏为微雪(Waveshare)的3.2inch 320x240 ILI9325 Touch LCD ( ...
- arduino loar_Arduino 图片显示 轻松操作诺基亚5110显示屏
大家好,我是兔子.是嵌入式工程师. 诺基亚5110在很多人眼里应该算是经典神机了. 就下面这个,可以砸核桃的东西. 这次,我教大家如何用Arduino点亮诺基亚5110的显示屏,用来显示图片. 实际效 ...
- 也玩MF,雅典娜4 SPI 接口驱动Nokia 5110 LCD
一直以来都想玩一玩嵌入式开发,苦于没有任何硬件基础 ,学校里学的一点入门级的电子信息基础也都忘记的差不多了.很久以前就关注了MF,优势我就不多说了,但是入手门槛还是很高.直到看到大石头的文章. htt ...
- Nokia5110液晶屏完全新手学习笔记(二)
2019独角兽企业重金招聘Python工程师标准>>> 四.时序图 没错,要向液晶屏写入数据,我们需要通过模拟一个串行总线协议来写入数据. 先来看看传送一个字节(指令)的时序图: 如 ...
- 段码液晶屏笔段电压范围_一种笔段式液晶屏测试装置的制作方法
本实用新型属于液晶屏测试技术领域,具体涉及一种笔段式液晶屏测试装置. 背景技术: 笔段式液晶屏,用以区别于点阵型液晶屏,是液晶产品中的一种,其又称为段码液晶.图案型液晶屏或单色液晶屏等.笔段式液晶屏叫 ...
- ESP8266 ST7735S液晶屏像数偏移的解决方法
最近学习ESP8266驱动SPI接口液晶屏,购买的是 1.77寸液晶屏,分辨率是120*160. 使用Arduino编程,使用编译环境是VScode+Prduino.驱动库使用的是Adafruit_S ...
最新文章
- 借一个同事的经历,谈一谈程序员的成长
- 万物生长,万物互联的时代来了
- Jira 6.0.5的详细安装及汉化授权
- 设计模式系列 - 解释器模式
- oracle学习之三--多表查询
- 使用goJenkins create job 返回500
- Visual Studio与C#编程十个实用技巧
- java流换行符方法_java换行符的使用方法
- c++面向对象高级编程 学习十 function-like classes
- Java高并发编程详解系列-单线程执行设计模式
- mysql 查询某个值非空_MySQL查询在单行中计算非空值
- 前景检测算法(十七)--基于光流算法
- wordpress无法建立目录 是否上级目录没有写权限?解决办法
- linux代码折叠,VIM 代码折叠 :set foldmethod=marker
- glide加载gif图不显示动画_Glide4-入门教程-4-加载gif图片
- 记录一下unity 加载外部视频
- 关于本地磁盘“介质受写入保护”的解决
- [4G5G专题-4]:RRU 全面了解什么是4G+5G RF静态射频共享?
- SQLite3 获取最小可用ID,ID无需包含1
- 637. Average of Levels in Binary Tree