📄 main.cpp
字号:
#include <msp430x22x4.h>
#define CPU_F ((double)1000000)
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
#define sce1 P1OUT|=BIT0; //片选
#define sce0 P1OUT&=~BIT0; //片选
#define res1 P1OUT|=BIT1; //复位,0复位
#define res0 P1OUT&=~BIT1;
#define dc1 P1OUT|=BIT2; //1写数据,0写指令
#define dc0 P1OUT&=~BIT2;
#define sdin1 P1OUT|=BIT3; //数据
#define sdin0 P1OUT&=~BIT3;
#define sclk1 P1OUT|=BIT4; //时钟
#define sclk0 P1OUT&=~BIT4;
const unsigned char tuxiang[]={
/*-- 调入了一幅图像:G:\images\photoshop\毛体江苏科技大学.bmp --*/
/*-- 宽度x高度=84x48 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x7C,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x80,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,0xC0,0x00,0x00,0x00,0xC0,0x3C,
0x00,0x10,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x0F,0x07,0x00,0x00,0x00,0x00,
0x80,0x80,0x00,0x00,0x00,0x00,0x80,0xC0,0x7C,0xFE,0xF8,0x7C,0x0F,0xC3,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x1C,0x0F,0x77,0xE0,0xF8,0x0F,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0xFE,0x00,0xC0,0xFF,0xF0,0x78,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xFC,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0xFE,
0x10,0xE7,0xFF,0x84,0xFE,0x1E,0x03,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,
0x38,0x78,0x9C,0xFF,0x1F,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0xFE,0x7F,0x00,0x08,
0xF3,0xE1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x70,0x76,0xFB,0x7F,
0x1C,0x07,0x00,0x00,0x00,0x00,0x38,0x1C,0xFF,0xC3,0xC3,0xFF,0xF3,0xE0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0xFF,0x7C,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x3F,0x00,0x03,0x86,0xE1,0x73,0xF3,0x70,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,
0x00,0xC0,0x0C,0x00,0x00,0xFC,0xDF,0xE1,0xE0,0x00,0x00,0x00,0x00,0x00,0x70,0xFE,
0xCD,0xFC,0x3C,0xFC,0xFF,0x07,0x00,0x00,0x00,0x00,0xF0,0x70,0x9C,0xFF,0xFF,0xE3,
0x38,0x06,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFC,0x0F,0x01,0x0D,0xF9,
0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,0x02,0x0F,0xC7,0x7F,0x43,0x80,0x00,0x00,0x00,
0x00,0x00,0x00,0xF8,0xC0,0x30,0x1C,0x07,0x01,0x78,0xF6,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0xFF,0x7E,0x03,0x00,0x00,0x00,0x03,0x01,0x01,0x00,0x00,0x00,0x00,
0x00,0x20,0xFF,0xF7,0xEF,0xBB,0x60,0xFF,0x03,0x02,0x7C,0x00,0x00,0x00,0x00,0x3E,
0x1F,0x7F,0xF3,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x40,0x78,0x1E,0x07,0xFF,
0x00,0x06,0x07,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x60,0x1C,0x07,0x00,0x00,
0x0F,0x3E,0x1C,0x00,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x00,0x80,0x60,0xFF,0x70,
0x00,0x00,0x00,0x00,0x00,0x3C,0x3F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x08,0x1C,0x1E,0x0F,0x03,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x3F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x0F,0x1C,0x1E,0x0F,0x00,0x00,0x00,0x00,
};
/*--------------------------------------------
LCD_write_byte: 使用SPI接口写数据到LCD
输入参数:dt:写入的数据;
command :写数据/命令选择;
编写日期:20080918
----------------------------------------------*/
void LCD_write_byte(unsigned char dt, unsigned char command)
{
unsigned char i;
sce0;
if(command==1)
{dc1; }
else {dc0;}
for(i=0;i<8;i++)
{
if(dt&0x80)
{sdin1;}
else
{sdin0;}
dt=dt<<1;
sclk0;
sclk1;
}
dc1;
sce1;
sdin1;
}
/*---------------------------------------
LCD_init: 3310LCD初始化
编写日期:20080918
----------------------------------------- */
void LCD_init(void)
{
res0;
delay_ms(1);
res1;
LCD_write_byte(0x21,0);//初始化Lcd,功能设定使用扩充指令
LCD_write_byte(0xd0,0);//设定液晶偏置电压
LCD_write_byte(0x20,0);//使用基本指令
LCD_write_byte(0x0C,0);//设定显示模式,正常显示
}
/*-------------------------------------------
LCD_set_XY: 设置LCD坐标函数
输入参数:X:0-83 Y:0-5
编写日期:20080918
---------------------------------------------*/
void LCD_set_XY(unsigned char X, unsigned char Y)
{
LCD_write_byte(0x40 | Y, 0);// column
LCD_write_byte(0x80 | X, 0);// row
}
/*------------------------------------------
LCD_clear: LCD清屏函数
编写日期:20080918
--------------------------------------------*/
void LCD_clear(void)
{
unsigned char t;
unsigned char k;
LCD_set_XY(0,0);
for(t=0;t<6;t++)
{
for(k=0;k<84;k++)
{
LCD_write_byte(0x00,1);
}
}
}
/*---------------------------------------------
LCD_write_hanzi: 显示16(宽)*16(高)点阵列汉字等半角类
输入参数:c:显示的字符;
编写日期:20080918
-----------------------------------------------*/
void LCD_write_tuxiang() //row:列 page:页 dd:字符
{
unsigned char i,page,c=0;
for(page=0;page<6;page++)
{
LCD_set_XY(0, page);// 列,页
for(i=0; i<84;i++)
{
LCD_write_byte(tuxiang[c*84+i],1);
}
c++;
}
}
main()
{
WDTCTL = WDTPW + WDTHOLD;
DCOCTL=CALDCO_1MHZ;
BCSCTL1=CALBC1_1MHZ;
P1DIR=0XFF;
res0;
delay_ms(200);
res1;
LCD_init(); //初始化LCD模块
LCD_clear(); //清屏幕
LCD_write_tuxiang();
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -