nokia5110_nokia3310中文数据手册
- 格式:pdf
- 大小:753.32 KB
- 文档页数:36
Nokia 3310 LCD显示原创Nokia 3310手机的点阵LCD模块不仅小巧、省电、驱动容易,而且价钱也便宜。
因此,最近网上常见到不少朋友都在用单片机来驱动该模块,制做出很多作品。
在此,我要特别感谢神舟兄,是在他的热情帮助下,我才购得这款3310的液晶显示模块。
如果有朋友需要的话也可以和他联系(神舟emal:conglp@ )。
实验目标本实验我们就采用Atmega8或者Atmega48来驱动3310的LCD。
在LCD上显示和移动汉字;在LCD的最上一行显示“欢迎光临电子爱好者俱乐部!”,并且让这串汉字在LCD上从左至右不停地移动。
在LCD上显示英文字符串;在LCD的最底一行固定显示“”。
在LCD上显示位图。
在LCD的中间位置显示“AVR”和“实验室”两个位图。
本站商城提供该LCD模块邮购:/shop/index.asp实验器材Atmega8或者Atmega48芯片一只、3.3V稳压二极管一只、3310LCD点阵液晶显示屏。
Atmega8和Atmega48的管脚顺序完全相同,硬件可以直接替用。
实验电路图及工作原理由于3310LCD的工作电压范围是2.7-3.3V,因此实验中使用一个3.3V的稳压二极管D1将5V电源稳压为3.3V左右,为MCU和LCD供电。
MCU和LCD之间使用SPI接口传输数据。
LCD模块的引脚排列:从模块的背面看,管脚排列顺序从左至右分别为1至8脚。
如下图所示:注意:LCD模块的引脚即使用导线直接焊接上,也要用东西将金属引脚压下去,否则还是不能接触到内部电路实验源程序主程序:文件名是3310LCDTest.c#include <iom48v.h>#include <macros.h>#include "lcd.h"#include "bmp.h"/*******************************************/void main(void){OSCCAL=0x99;// 8M系统内部时钟校准//设置MCU的I/O口DDRB |= LCD_RST | LCD_DC | LCD_CE | SPI_MOSI | SPI_CLK| 0X02;SPSR |= BIT(SPI2X);// 设置SPI时钟倍速SPCR |= BIT(SPE)|BIT(MSTR);// 使能SPI接口,主机模式,4M时钟LCD_init(); //初始化LCD模块LCD_write_String(1,5,""); //显示英文字符串”“LCD_draw_map(0,2,AVR_bmp,40,24); //显示“AVR”位图LCD_draw_map(44,3,china_bmp,36,15); //显示”实验室“位图PORTB |= 0x02; //LED亮while(1){LCD_move_chi(0, 0, 25); //汉字移动显示}}LCD3310驱动程序:文件名3310LCD.c#include <iom48v.h>#include <macros.h>#include "lcd.h"#include "6x8.h"#include "chinese.h"/*---------------------------------------LCD_init: 3310LCD初始化编写日期:2004-8-10最后修改日期:2004-8-10----------------------------*/void LCD_init(void){PORTB &= ~LCD_RST;// 产生一个让LCD复位的低电平脉冲delay_1us();PORTB |= LCD_RST;PORTB &= ~LCD_CE ;// 关闭LCDdelay_1us();PORTB |= LCD_CE;// 使能LCDdelay_1us();LCD_write_byte(0x21, 0);// 使用扩展命令设置LCD模式LCD_write_byte(0xc8, 0);// 设置偏置电压LCD_write_byte(0x06, 0);// 温度校正LCD_write_byte(0x13, 0);// 1:48LCD_write_byte(0x20, 0);// 使用基本命令LCD_clear();// 清屏LCD_write_byte(0x0c, 0);// 设定显示模式,正常显示PORTB &= ~LCD_CE ;// 关闭LCD}/*----------------------------------------------------------------------- LCD_clear: LCD清屏函数编写日期:2004-8-10最后修改日期:2004-8-10-----------------------------------------------------------------------*/ void LCD_clear(void){unsigned int i;LCD_write_byte(0x0c, 0);LCD_write_byte(0x80, 0);for (i=0; i<504; i++)LCD_write_byte(0, 1);}/*----------------------------------------------------------------------- LCD_set_XY: 设置LCD坐标函数输入参数:X:0-83Y:0-5编写日期:2004-8-10最后修改日期:2004-8-10-----------------------------------------------------------------------*/ void LCD_set_XY(unsigned char X, unsigned char Y){LCD_write_byte(0x40 | Y, 0);// columnLCD_write_byte(0x80 | X, 0);// row}/*----------------------------------------------------------------------- LCD_write_char: 显示英文字符输入参数:c:显示的字符;编写日期:2004-8-10最后修改日期:2004-8-10-----------------------------------------------------------------------*/ void LCD_write_char(unsigned char c){unsigned char line;c -= 32;for (line=0; line<6; line++)LCD_write_byte(font6x8[c][line], 1);}/*----------------------------------------------------------------------- LCD_write_char: 英文字符串显示函数输入参数:*s:英文字符串指针;X、Y: 显示字符串的位置编写日期:2004-8-10最后修改日期:2004-8-10-----------------------------------------------------------------------*/ void LCD_write_String(unsigned char X,unsigned char Y,char *s){LCD_set_XY(X,Y);while (*s){LCD_write_char(*s);s++;}}/*----------------------------------------------------------------------- LCD_write_chi: 在LCD上显示汉字输入参数:X、Y:显示汉字的起始X、Y坐标;ch_with :汉字点阵的宽度num:显示汉字的个数;line:汉字点阵数组中的起始行数row:汉字显示的行间距编写日期:2004-8-11最后修改日期:2004-8-12-----------------------------------------------------------------------*/ void LCD_write_chi(unsigned char X, unsigned char Y,unsigned char ch_with,unsigned char num,unsigned char line,unsigned char row){unsigned char i,n;LCD_set_XY(X,Y);//设置初始位置for (i=0;i<num;){for (n=0; n<ch_with*2; n++)//写一个汉字{if (n==ch_with)//写汉字的下半部分{if (i==0) LCD_set_XY(X,Y+1);elseLCD_set_XY((X+(ch_with+row)*i),Y+1);}LCD_write_byte(china_char[line+i][n],1);}i++;LCD_set_XY((X+(ch_with+row)*i),Y);}}/*----------------------------------------------------------------------- LCD_write_chi: 汉字移动输入参数:X、Y:显示汉字的起始X、Y坐标;T:移动速度;编写日期:2004-8-13最后修改日期:2004-8-13-----------------------------------------------------------------------*/ void LCD_move_chi(unsigned char X, unsigned char Y, unsigned char T){unsigned char i,n,j=0;unsigned char buffer_h[84]={0};unsigned char buffer_l[84]={0};for (i=0; i<156; i++){buffer_h[83] = china_char[i/12][j];buffer_l[83] = china_char[i/12][j+12];j++;if (j==12) j=0;for (n=0; n<83; n++){buffer_h[n]=buffer_h[n+1];buffer_l[n]=buffer_l[n+1];}LCD_set_XY(X,Y);for (n=0; n<83; n++){LCD_write_byte(buffer_h[n],1);}LCD_set_XY(X,Y+1);for (n=0; n<83; n++){LCD_write_byte(buffer_l[n],1);}delay_nms(T);}}/*----------------------------------------------------------------------- LCD_draw_map: 位图绘制函数输入参数:X、Y:位图绘制的起始X、Y坐标;*map:位图点阵数据;Pix_x:位图像素(长)Pix_y:位图像素(宽)编写日期:2004-8-13最后修改日期:2004-8-13-----------------------------------------------------------------------*/ void LCD_draw_map(unsigned char X,unsigned char Y,unsigned char *map, unsigned char Pix_x,unsigned char Pix_y){unsigned int i,n;unsigned char row;if (Pix_y%8==0) row=Pix_y/8;//计算位图所占行数elserow=Pix_y/8+1;for (n=0;n<row;n++){LCD_set_XY(X,Y);for(i=0; i<Pix_x; i++){LCD_write_byte(map[i+n*Pix_x], 1);}Y++;//换行}}/*----------------------------------------------------------------------- LCD_write_byte: 使用SPI接口写数据到LCD输入参数:data:写入的数据;command :写数据/命令选择;编写日期:2004-8-10最后修改日期:2004-8-13-----------------------------------------------------------------------*/ void LCD_write_byte(unsigned char data, unsigned char command){PORTB &= ~LCD_CE ;// 使能LCDif (command == 0)PORTB &= ~LCD_DC ;// 传送命令elsePORTB |= LCD_DC ;// 传送数据SPDR = data;// 传送数据到SPI寄存器while ((SPSR & 0x80) == 0);// 等待数据传送完毕PORTB |= LCD_CE ;// 关闭LCD}o延时程序:文件名delay.c/*----------------------------------------------------------------------- 延时函数系统时钟:8M-----------------------------------------------------------------------*/ void delay_1us(void)//1us延时函数{asm("nop");}void delay_nus(unsigned int n)//N us延时函数{unsigned int i=0;for (i=0;i<n;i++)delay_1us();}void delay_1ms(void)//1ms延时函数{unsigned int i;for (i=0;i<1140;i++);}void delay_nms(unsigned int n)//N ms延时函数{unsigned int i=0;for (i=0;i<n;i++)delay_1ms();}o lcd.h头文件//Mega48/8port B pinout for LCD.#define LCD_DC0x01//PB0#define LCD_CE0x04//PB2#define SPI_MOSI0x08//PB3#define LCD_RST0x10//PB4#define SPI_CLK0x20//PB5void LCD_init(void);void LCD_clear(void);void LCD_write_String(unsigned char X,unsigned char Y,char *s);void LCD_write_chi(unsigned char X, unsigned char Y,unsigned char ch_with,unsigned char num,unsigned char line,unsigned char row);void LCD_move_chi(unsigned char X, unsigned char Y, unsigned char T);void LCD_write_char(unsigned char c);void LCD_draw_map(unsigned char X,unsigned char Y,unsigned char *map,unsigned char Pix_x,unsigned char Pix_y);void LCD_write_byte(unsigned char data, unsigned char dc);void delay_1us(void);void delay_nus(unsigned int n);void delay_1ms(void);void delay_nms(unsigned int n);o点阵数据文件chinese.h文件:/*------------------------------------------------------------------------------;源文件 / 文字 : 欢迎光临电子爱好者俱乐部!;宽×高(像素): 12×13;字模格式/大小 : 单色点阵液晶字模,纵向取模,字节倒序/24字节;数据转换日期: 2004-8-12 14:22:30------------------------------------------------------------------------------*/const unsigned char china_char[][24]={{0x14,0x24,0xC4,0x3C,0x04,0x30,0x0E,0xE8,0x08,0x28,0x18,0x00,0x04,0x03, 0x00,0x09,0x0A,0x04,0x03,0x00,0x03,0x04,0x08,0x00},//汉字“欢”{0x10,0xF2,0x04,0x00,0xFC,0x84,0x82,0xFC,0x04,0x04,0xFC,0x00,0x0C,0x03, 0x04,0x04,0x09,0x08,0x08,0x0B,0x08,0x09,0x09,0x00},//汉字“迎”{0x20,0x24,0x28,0xF0,0x20,0x3E,0xE0,0x30,0x28,0x24,0x20,0x00,0x08,0x08, 0x04,0x03,0x00,0x00,0x07,0x08,0x08,0x08,0x0E,0x00},//汉字“光”{0xF8,0x00,0xFE,0x00,0x20,0x98,0x8E,0x98,0xA8,0x88,0x88,0x00,0x03,0x00, 0x0F,0x00,0x00,0x0F,0x04,0x07,0x04,0x04,0x0F,0x00},//汉字“临”{0x00,0xF8,0x28,0x28,0x28,0xFE,0x28,0x28,0x28,0xFC,0x08,0x00,0x00,0x03, 0x01,0x01,0x01,0x07,0x09,0x09,0x09,0x09,0x0C,0x00},//汉字“电”{0x40,0x42,0x42,0x42,0x42,0xF2,0x52,0x4A,0x46,0x62,0x40,0x00,0x00,0x00, 0x00,0x08,0x08,0x0F,0x00,0x00,0x00,0x00,0x00,0x00},//汉字“子”{0x30,0x54,0x54,0x5C,0xF4,0x5C,0x52,0x5A,0x56,0x52,0x30,0x00,0x08,0x08,0x04,0x0A,0x0B,0x05,0x05,0x0B,0x09,0x08,0x08,0x00},//汉字“爱”{0x88,0x78,0x0E,0x88,0x78,0x42,0x42,0xF2,0x4A,0x46,0x40,0x00,0x09,0x05, 0x02,0x03,0x04,0x00,0x08,0x0F,0x00,0x00,0x00,0x00},//汉字“好”{0x20,0x24,0x24,0xA4,0xFE,0xA4,0xB4,0xAC,0xA4,0x32,0x20,0x00,0x02,0x02, 0x01,0x0F,0x0A,0x0A,0x0A,0x0A,0x0F,0x00,0x00,0x00},//汉字“者”{0x20,0xF8,0x06,0x00,0xFE,0x52,0x52,0x52,0x52,0xFE,0x00,0x00,0x00,0x0F, 0x01,0x09,0x05,0x03,0x01,0x01,0x03,0x05,0x09,0x00},//汉字“俱”{0x00,0x60,0x5C,0xC4,0x44,0x44,0xFA,0xC2,0x42,0x60,0x40,0x00,0x04,0x02, 0x01,0x00,0x08,0x08,0x0F,0x00,0x01,0x02,0x04,0x00},//汉字“乐”{0x24,0xAC,0xB4,0xA6,0xB4,0xAC,0x24,0xFC,0x04,0x74,0x8C,0x00,0x00,0x0F, 0x04,0x04,0x04,0x0F,0x00,0x0F,0x02,0x04,0x03,0x00},//汉字“部”{0x00,0x38,0xFC,0xFC,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//汉字“!”};6x8.h文件:// 6 x 8 font// 1 pixel space at left and bottom// index = ASCII - 32const unsigned char font6x8[][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, 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, 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, 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, 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, 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, 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};bmp.h文件/*------------------------------------------------------------------------------;源文件 / 文字 : AVR;宽×高(像素): 40×24;字模格式/大小 : 单色点阵液晶字模,纵向取模,字节倒序/120字节;数据转换日期: 2004-8-13------------------------------------------------------------------------------*/unsigned char AVR_bmp[]={0x00,0x00,0x00,0x80,0xF0,0xF0,0x70,0xF0,0xF0,0x80,0x00,0x00,0x00,0x30, 0xF0,0xF0,0xC0,0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0xF0,0x30,0x00,0xF0, 0xF0,0xF0,0x70,0x70,0x70,0x70,0x70,0xF0,0xE0,0xC0,0x00,0x00,0x00,0xC0, 0xF8,0xFF,0xFF,0xE3,0xE0,0xE3,0xFF,0xFF,0xFC,0xC0,0x00,0x00,0x01,0x0F, 0x7F,0xFE,0xF0,0x80,0xF0,0xFE,0x7F,0x0F,0x01,0x00,0x00,0xFF,0xFF,0xFF, 0x1C,0x1C,0x3C,0x7C,0xFC,0xEF,0xCF,0x07,0x00,0x00,0x06,0x07,0x07,0x01, 0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x07,0x06,0x00,0x00,0x00,0x00,0x03, 0x07,0x07,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x00,0x00, 0x00,0x00,0x01,0x07,0x07,0x07,0x04,0x00};/*------------------------------------------------------------------------------;源文件 / 文字 : 实验室;宽×高(像素): 36×15;字模格式/大小 : 单色点阵液晶字模,纵向取模,字节倒序/72字节;数据转换日期: 2004-8-13------------------------------------------------------------------------------*/unsigned char china_bmp[]={0x20,0x18,0x88,0x28,0x48,0x0C,0xE8,0x08,0x08,0x28,0x18,0x00,0x84,0xF4, 0x84,0xFC,0x40,0x20,0x50,0x4C,0x50,0x20,0x40,0x00,0x10,0x18,0x28,0xA8, 0x68,0x2C,0x28,0x68,0xA8,0x28,0x18,0x00,0x02,0x12,0x12,0x13,0x0A,0x06, 0x03,0x06,0x0A,0x12,0x02,0x00,0x04,0x14,0x12,0x0F,0x10,0x17,0x10,0x17, 0x18,0x17,0x10,0x00,0x10,0x10,0x15,0x15,0x15,0x1F,0x15,0x15,0x15,0x11, 0x10,0x00}。
nokia5110课程设计一、课程目标知识目标:1. 让学生掌握Nokia 5110液晶显示屏的基本原理和操作方法;2. 了解Nokia 5110在图形显示和文字显示方面的应用;3. 学会运用编程语言(如:MicroPython)对Nokia 5110进行控制和编程。
技能目标:1. 能够独立完成Nokia 5110的硬件连接和初始化;2. 掌握使用编程语言对Nokia 5110显示内容进行设计和编写;3. 能够运用所学的知识解决实际问题,如制作简单的电子时钟、小游戏等。
情感态度价值观目标:1. 培养学生对电子产品的兴趣,激发他们探索未知领域的热情;2. 培养学生的团队合作精神,学会与他人共同解决问题;3. 增强学生的环保意识,让他们了解电子废弃物的回收和处理方法。
课程性质:本课程为实践性较强的课程,结合理论讲解和实际操作,让学生在动手实践中掌握知识。
学生特点:六年级学生具有一定的编程基础和电子知识,好奇心强,喜欢动手实践。
教学要求:教师需关注学生的个体差异,因材施教,鼓励学生积极参与,注重培养学生的实践能力和创新精神。
通过本课程的学习,使学生能够将所学知识运用到实际生活中,提高他们的综合素质。
二、教学内容1. Nokia 5110液晶显示屏原理介绍:包括显示屏的硬件结构、工作原理和显示原理。
- 理解显示屏的像素点阵和色彩显示方式。
- 掌握显示屏的初始化和基本操作。
2. 硬件连接与编程环境搭建:- 学习如何将Nokia 5110与微控制器(如Arduino或MicroPython板)连接。
- 搭建编程环境,熟悉相关开发工具的使用。
3. 图形和文字显示编程:- 学习使用编程语言进行图形绘制和文字显示。
- 掌握如何清屏、绘制点、线、矩形和圆形等基本图形。
- 实现文字的滚动显示和特效。
4. 实际应用案例分析与制作:- 分析并制作简单的电子时钟,学习时间管理和中断处理。
- 设计并实现一个简易小游戏,如贪吃蛇或俄罗斯方块,提高逻辑思维能力。
NOKIA手机工程模式简介许多朋友都听说过工程模式,但对工程模式究竟如何开启又有哪些作用就不太清楚了,这里我以Nokia 手机工程模式为例给大家介绍一下工程模式的开启和使用技巧。
几乎所有的Nokia手机都有工程模式(经测试,Nokia的5110、5130、6110、6130、6138、6150、3210、8210、8850、6210、3310、8250均具备工程模式),不过它是隐藏在菜单中,需要特殊的方法打开工程模式后你才能看见。
Net Monitor在诺基亚51××/6100中共有88个画面(6100软件版本在V5.0以后则为89个画面),6150则为89个画面,而8210则有编号为140的画面,实际上有些为空,但比6150多。
前19个画面称为Operator Net Monitor,以系统网络功能为主,后面的则被称为R&D Net Monitor,以手机软硬件的资料为主。
注意:很多朋友都以为工程模式能修改手机功能或增强信号,其实,工程模式只能显示GSM900/1800网络的执行情形或显示手机内某些有用信息作为参考用,不能修改手机功能或增强手机信号。
同时,由于手机本身并非精密的仪器,所有显示的数值仅是近似值,而且因为现在的网络技术不断更新,而手机软件是原先设计的,可能也会有不符的情况发生,因此切记,工程模式仅能作参考使用。
Nokia工程模式的打开Nokia的工程模式在菜单中显示为“Net Monitor”,中文手机也是如此,Net monitor直译就是“网络监视器”,也比较符合实际。
工程模式开启后为常驻,不需再输入任何密码,当然你也可以通过和开启类似的方法再把其关闭。
目前能开启Nokia工程模式的软件很多,如著名的Logo Manager就可以通过数据线或笔记本自带的红外线打开工程模式,功能十分强大。
另外有一个专门用于数据线开启工程模式的小程序94xft.exe,不过只能在DOS下使用。
诺基亚3310液晶是一种OEM产品48X84 pixels matrix LCD controller/driver生产厂家Philips, 型号为:PCD8544可显示84*48点,被评为性价比最好的AVR液晶3310lcd驱动电路:Vdd接3.3V(注意:工作电压是3.3V)或者如图接(1、接100欧姆电阻接5V 2、接二极管再接地)V out接4.7uF电容后接地,电容作用是调对比度GND接地其它的接普通IO口编码显示原理:LCD3310屏幕由84*48个点组成,划分为84列*6行个显示单元,每一个显示单元由1*8个点组成,编程控制显示时按坐标定位,X轴从左到右为0、1、。
83,Y轴从上到下为0、1.。
5,每一个显示单元用一个十六进制0x**控制,0x**转换成二进制后是8个01位,每一个显示单元从上到下为点1到点8,分别对应二进制数的最低到最高位,为1的显示黑点,为0的不显示下面将要讲到的字符显示是用六个连续的显示单元控制显示的,将会显示符号*所以我们可以自由的显示字母、汉字、图片,只要将对应的十六进制控制码写入LCD即可,汉字和图片的控制码可借助于专用的字模生成软件生成。
Pin Signal Description Port1:VDDPower Input. Logic supply voltage range VDD to GND : 2.7 to 3.3 V2:SCLKSerial clock. Input for the clock signal: 0.0 to 4.0 Mbits/s.3:SDINSerial data. Input for the data line.4:D/CMode Select. To select either command/address or data input.5:SCEChip enable input. The enable pin allows data to be clocked in. The signal is active LOW.6:GNDGround7:VOUTOuptut voltage. Add external 1-10 uF electrolytic capacitor from VOUT to GND8:RESExternal reset. This signal will reset the device and must be applied to properlyinitialize the chip. The signal is active LOW.程序:(完整可运行)下面的程序是针对飞思卡尔的十六位单片机MC9S12XS128开发的用于其它MCU时只要将端口改一下,就可移植#include <hidef.h> /* common defines and macros */#include "derivative.h" /* derivative-specific definitions */#define sclk PTM_PTM0 //时钟#define sdin PTM_PTM1 //数据#define dc PTM_PTM2 //1写数据,0写指令#define sce PTP_PTP4 //片选#define res PTP_PTP7 //复位byte const mask_table[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};void Initlcd(void);//LCD初始化void write_byte(byte dd,byte a);//写一个字节到LCDvoid qp(void);//清屏void setadd(byte a,byte d);//设置坐标void DelaymS(word delay);//延时byte const dal1[][6]={//字符显示对应的二维十六进制数组,本程序中没有用到{0x00,0x00,0x00,0x00,0x00,0x00}, // 0位显示空白{0x00,0x00,0x00,0x00,0x00,0x00}, // 1{0x00,0x00,0x00,0x00,0x00,0x00}, // 2{0x00,0x00,0x00,0x00,0x00,0x00}, // 3{0x00,0x00,0x00,0x00,0x00,0x00}, // 4{0x00,0x00,0x00,0x00,0x00,0x00}, // 5{0x00,0x00,0x00,0x00,0x00,0x00}, // 6{0x00,0x00,0x00,0x00,0x00,0x00}, // 7{0x00,0x00,0x00,0x00,0x00,0x00}, // 8{0x00,0x00,0x00,0x00,0x00,0x00}, // 9{0x00,0x00,0x00,0x00,0x00,0x00}, // 10{0x00,0x00,0x00,0x00,0x00,0x00}, // 11{0x00,0x00,0x00,0x00,0x00,0x00}, // 12{0x00,0x00,0x00,0x00,0x00,0x00}, // 13{0x00,0x00,0x00,0x00,0x00,0x00}, // 14{0x00,0x00,0x00,0x00,0x00,0x00}, // 15{0x00,0x00,0x00,0x00,0x00,0x00}, // 16{0x00,0x00,0x00,0x00,0x00,0x00}, // 17{0x00,0x00,0x00,0x00,0x00,0x00}, // 18{0x00,0x00,0x00,0x00,0x00,0x00}, // 19{0x00,0x00,0x00,0x00,0x00,0x00}, // 20{0x00,0x00,0x00,0x00,0x00,0x00}, // 21{0x00,0x00,0x00,0x00,0x00,0x00}, // 22{0x00,0x00,0x00,0x00,0x00,0x00}, // 23{0x00,0x00,0x00,0x00,0x00,0x00}, // 24{0x00,0x00,0x00,0x00,0x00,0x00}, // 25{0x00,0x00,0x00,0x00,0x00,0x00}, // 26{0x00,0x00,0x00,0x00,0x00,0x00}, // 27{0x00,0x00,0x00,0x00,0x00,0x00}, // 28{0x00,0x00,0x00,0x00,0x00,0x00}, // 29{0x00,0x00,0x00,0x00,0x00,0x00}, // 30{0x00,0x00,0x00,0x00,0x00,0x00}, // 31{0x00,0x00,0x00,0x00,0x00,0x00}, // sp 32{0x00,0x00,0x2f,0x00,0x00,0x00}, // ! 33{0x00,0x07,0x00,0x07,0x00,0x00}, // " 34{0x14,0x7f,0x14,0x7f,0x14,0x00}, // # 35{0x24,0x2a,0x7f,0x2a,0x12,0x00}, // $ 36{0x36,0x49,0x55,0x22,0x50,0x00}, // & 38 {0x00,0x05,0x03,0x00,0x00,0x00}, // ' 39 {0x00,0x1c,0x22,0x41,0x00,0x00}, // ( 40 {0x00,0x41,0x22,0x1c,0x00,0x00}, // ) 41 {0x14,0x08,0x3E,0x08,0x14,0x00}, // * 42 {0x08,0x08,0x3E,0x08,0x08,0x00}, // + 43 {0x00,0x00,0x50,0x30,0x00,0x00}, // , 44 {0x10,0x10,0x10,0x10,0x10,0x00}, // - 45 {0x00,0x60,0x60,0x00,0x00,0x00}, // . 46 {0x20,0x10,0x08,0x04,0x02,0x00}, // / 47 {0x3E,0x51,0x49,0x45,0x3E,0x00}, // 0 48 {0x00,0x42,0x7F,0x40,0x00,0x00}, // 1 49 {0x42,0x61,0x51,0x49,0x46,0x00}, // 2 50 {0x21,0x41,0x45,0x4B,0x31,0x00}, // 3 51 {0x18,0x14,0x12,0x7F,0x10,0x00}, // 4 52 {0x27,0x45,0x45,0x45,0x39,0x00}, // 5 53 {0x3C,0x4A,0x49,0x49,0x30,0x00}, // 6 54 {0x01,0x71,0x09,0x05,0x03,0x00}, // 7 55 {0x36,0x49,0x49,0x49,0x36,0x00}, // 8 56 {0x06,0x49,0x49,0x29,0x1E,0x00}, // 9 57 {0x00,0x36,0x36,0x00,0x00,0x00}, // : 58 {0x00,0x56,0x36,0x00,0x00,0x00}, // ; 59 {0x08,0x14,0x22,0x41,0x00,0x00}, // < 60 {0x14,0x14,0x14,0x14,0x14,0x00}, // = 61 {0x00,0x41,0x22,0x14,0x08,0x00}, // > 62 {0x02,0x01,0x51,0x09,0x06,0x00}, // ? 63 {0x32,0x49,0x59,0x51,0x3E,0x00}, // @ 64 {0x7E,0x11,0x11,0x11,0x7E,0x00}, // A 65 {0x7F,0x49,0x49,0x49,0x36,0x00}, // B 66 {0x3E,0x41,0x41,0x41,0x22,0x00}, // C 67 {0x7F,0x41,0x41,0x22,0x1C,0x00}, // D 68 {0x7F,0x49,0x49,0x49,0x41,0x00}, // E 69 {0x7F,0x09,0x09,0x09,0x01,0x00}, // F 70 {0x3E,0x41,0x49,0x49,0x7A,0x00}, // G 71 {0x7F,0x08,0x08,0x08,0x7F,0x00}, // H 72 {0x00,0x41,0x7F,0x41,0x00,0x00}, // I 73 {0x20,0x40,0x41,0x3F,0x01,0x00}, // J 74 {0x7F,0x08,0x14,0x22,0x41,0x00}, // K 75 {0x7F,0x40,0x40,0x40,0x40,0x00}, // L 76 {0x7F,0x02,0x0C,0x02,0x7F,0x00}, // M 77 {0x7F,0x04,0x08,0x10,0x7F,0x00}, // N 78 {0x3E,0x41,0x41,0x41,0x3E,0x00}, // O 79 {0x7F,0x09,0x09,0x09,0x06,0x00}, // P 80{0x7F,0x09,0x19,0x29,0x46,0x00}, // R 82{0x46,0x49,0x49,0x49,0x31,0x00}, // S 83{0x01,0x01,0x7F,0x01,0x01,0x00}, // T 84{0x3F,0x40,0x40,0x40,0x3F,0x00}, // U 85{0x1F,0x20,0x40,0x20,0x1F,0x00}, // V 86{0x3F,0x40,0x38,0x40,0x3F,0x00}, // W 87{0x63,0x14,0x08,0x14,0x63,0x00}, // X 88{0x07,0x08,0x70,0x08,0x07,0x00}, // Y 89{0x61,0x51,0x49,0x45,0x43,0x00}, // Z 90{0x00,0x7F,0x41,0x41,0x00,0x00}, // [ 91{0x55,0x2A,0x55,0x2A,0x55,0x00}, //55 92{0x00,0x41,0x41,0x7F,0x00,0x00}, // ] 93{0x04,0x02,0x01,0x02,0x04,0x00}, // ^ 94{0x40,0x40,0x40,0x40,0x40,0x00}, // _ 95{0x00,0x01,0x02,0x04,0x00,0x00}, // ' 96{0x20,0x54,0x54,0x54,0x78,0x00}, // a 97{0x7F,0x48,0x44,0x44,0x38,0x00}, // b 98{0x38,0x44,0x44,0x44,0x20,0x00}, // c 99{0x38,0x44,0x44,0x48,0x7F,0x00}, // d 100{0x38,0x54,0x54,0x54,0x18,0x00}, // e 101{0x08,0x7E,0x09,0x01,0x02,0x00}, // f 102{0x0C,0x52,0x52,0x52,0x3E,0x00}, // g 103{0x7F,0x08,0x04,0x04,0x78,0x00}, // h 104{0x00,0x44,0x7D,0x40,0x00,0x00}, // i 105{0x20,0x40,0x44,0x3D,0x00,0x00}, // j 106{0x7F,0x10,0x28,0x44,0x00,0x00}, // k 107{0x00,0x41,0x7F,0x40,0x00,0x00}, // l 108{0x7C,0x04,0x18,0x04,0x78,0x00}, // m 109{0x7C,0x08,0x04,0x04,0x78,0x00}, // n 110{0x38,0x44,0x44,0x44,0x38,0x00}, // o 111{0x7C,0x14,0x14,0x14,0x08,0x00}, // p 112{0x08,0x14,0x14,0x18,0x7C,0x00}, // q 113{0x7C,0x08,0x04,0x04,0x08,0x00}, // r 114{0x48,0x54,0x54,0x54,0x20,0x00}, // s 115{0x04,0x3F,0x44,0x40,0x20,0x00}, // t 116{0x3C,0x40,0x40,0x20,0x7C,0x00}, // u 117{0x1C,0x20,0x40,0x20,0x1C,0x00}, // v 118{0x3C,0x40,0x30,0x40,0x3C,0x00}, // w 119{0x44,0x28,0x10,0x28,0x44,0x00}, // x 120{0x0C,0x50,0x50,0x50,0x3C,0x00}, // y 121{0x44,0x64,0x54,0x4C,0x44,0x00}, // z 122{0xD5,0x01,0x80,0x01,0x80,0xAB}, // <50 123 {0xFF,0x81,0x81,0x81,0x81,0xFF}, //50<= <100 124{0xFF,0x81,0xBD,0xBD,0x81,0xFF}, //100<= <150 125{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, //>=150 126{0x00,0x00,0x00,0x00,0x00,0x00} // sp 127};/*******************显示一幅图****************/uchar dal11[]={//------------------------------------------------------------------------------/*--图像的数据*//*-- 图像宽度*高度=84x48 --*/0xE0,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xE7,0xFB,0xBB,0xBB,0x5B,0xE7,0xFF,0xFF,0xE7,0xFB,0xBB,0xBB,0x5B,0xE7,0xFF,0xFF,0xF7,0xF7,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0xF7,0xFB,0xFB,0xF7,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF3,0xFB,0xFB,0x03,0xFB,0xFB,0xF3,0xFF,0xFF,0x3F,0x5F,0x5F,0x5F,0x5F,0x3F,0xFF,0xFF,0x3F,0xDF,0xDF,0xDF,0x9F,0xFF,0xFF,0xFF,0xDF,0xDF,0x07,0xDF,0xDF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFE,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF9,0xF7,0xF7,0xF7,0xF7,0xF8,0xFF,0xFF,0xF9,0xF7,0xF7,0x37,0xF7,0xF8,0xFF,0xFF,0xF7,0xF7,0xF0,0xF7,0xF7,0x7F,0x7F,0x7F,0x7C,0x7B,0x77,0x77,0x7B,0x7C,0x7F,0x7F,0x3F,0x7F,0xFF,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x77,0xB0,0x77,0xFF,0xFF,0x3F,0xFF,0xF8,0xF7,0xF7,0xF7,0xF7,0xFB,0xFF,0xFF,0xF3,0xF6,0xF6,0x36,0xF9,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xF7,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x81,0xBD,0xBD,0xBD,0xBD,0x00,0xBD,0xBD,0xBD,0xBD,0x80, 0xFD,0xFF,0xFF,0xFF,0x00,0xFF,0xFD,0xED,0xED,0x01,0xED,0xCD,0xAD,0xFD,0xFF,0x00, 0xFF,0xFF,0xFF,0x00,0xDB,0xDB,0x00,0x7F,0x5B,0xDB,0xDA,0x03,0xDA,0xDB,0xDB,0xDB, 0xFF,0xF7,0x76,0xB6,0xC6,0xF6,0x36,0xF7,0xFB,0x7B,0x80,0xFB,0xFB,0x01,0xFB,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,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0xFB,0xFA,0xFA,0xFA,0xFA,0xFA,0xFA,0xFA,0xFA,0xFA,0xF0,0xFF,0xDF,0x1D,0xFC,0xFE,0xFE,0xF0,0xFF,0xF7,0xFB,0xFC,0xFF,0xFE,0xFD,0xF3,0xFB,0xFF,0xFE,0xFC,0xFE,0xFE,0xFE,0xF6,0xFA,0xFD,0xFE,0xFF,0xFB, 0xF7,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE3,0xDD,0xBE,0xBE,0xBE,0xDD,0xFF,0xBE,0xBE,0x80,0xBD,0xBE,0xFE,0xFC,0xFF,0xFF,0xCD,0xB6,0xBA,0xBA,0x81,0xBF, 0xFF,0xFF,0x99,0xB6,0xB6,0xB6,0xCC,0xFF,0xFF,0xFF,0x80,0xBD,0xBE,0xBE,0xBE,0xC1, 0xFF,0xFE,0xFC,0xE2,0x1F,0xCF,0xF2,0xFC,0xFE,0xFF,0xE3,0xDD,0xBE,0xBE,0xDD,0xE3, 0xFF,0xFF,0xC1,0xBA,0xBA,0xBA,0xBA,0xD9,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0x7F,0x7F,0x7F,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,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFE,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,0x7F,0x7F,0x7F,0x0F,};void xp11()//写图函数{uchar e;uchar t;uchar k1;uint d;d=0;for(t=0;t<6;t++){for(k1=0;k1<84;k1++){setadd(k1,t);e=dal11[d];write_byte(e,1);d=d+1;}}}//主函数实现的功能是循环显示图片和擦除void main(void){/* put your own code here */DisableInterrupts;/******************SetClock*******************/CLKSEL=0X00; //disengage PLL to systemPLLCTL_PLLON=1; //turn on PLLSYNR =0xc0 | 0x07;REFDV=0xc0 | 0x01;POSTDIV=0x00; //pllclock=2*osc*(1+SYNR)/(1+REFDV)=128MHz;_asm(nop); //BUS CLOCK=64M_asm(nop);while(!(CRGFLG_LOCK==1)); //when pll is steady ,then use it;CLKSEL_PLLSEL =1; //engage PLL to system;while(FSTAT_CCIF == 0); //wait if command in progressFCLKDIV = 0x0F; //set prescaler//EnableInterrupts;for(;;){xp11();DelaymS(2000);qp();DelaymS(2000);_FEED_COP(); /* feeds the dog */} /* loop forever *//* please make sure that you never leave main */ }void Initlcd(void){//LCD端口初始化,GPIO输出DDRM_DDRM0=1;DDRM_DDRM1=1;DDRM_DDRM2=1;DDRP_DDRP4=1;DDRP_DDRP7=1;DelaymS(1);res=0;DelaymS(1);res=1;sce=0;DelaymS(1);sce=1;sdin=1;sclk=1;write_byte(0x21,0);//初始化LCD,write_byte(0xcc,0);//设置液晶偏执电压write_byte(0x20,0);//使用基本指令qp();//write_byte(0x0c,0); //设定显示模式,正常显示sce=0;}void write_byte(byte dd,byte a)//{char i;dc=a;for(i=0;i<8;i++){if(dd&mask_table[i]) {sdin=1;} else {sdin=0;}sclk=0;sclk=1;}dc=1;sce=1;sdin=1;}void setadd(byte a,byte d)//{write_byte((a|0x80),0); //Xwrite_byte((d|0x40),0); //Y}void qp(void)//{byte t;byte k;for(t=0;t<6;t++){for(k=0;k<84;k++){setadd(k,t);write_byte(0,1);}}}void DelaymS(word delay){word i, j;for ( i = delay; i != 0; i -- ){for ( j = 7000; j != 0; j -- ) ;for ( j = 6320; j != 0; j -- ) ;} }。
#include <reg51.h>/* 雨亭电子代码测试环境:JME-2核心板+1T指令周期的STC单片机(51内核STC12LE5A60S2)+33M 晶振单片机工作电压3.3V程序默认IO连接方式:sce-P0^0; res-P0^1; dc-P0^2; sdin-P1^5; sclk-P1^7;*/sbit sce = P2^0; //片选sbit res = P2^1; //复位,0复位sbit dc = P2^2; //1写数据,0写指令sbit sdin = P2^3; //数据sbit sclk = P2^4; //时钟//6*16字符unsigned char code shuzi[]={/*-- 文字: > --*//*-- 宋体9; 此字体下对应的点阵为:宽x高=6x12 --*//*-- 高度不是8的倍数,现调整为:宽度x高度=6x16 --*/0x00,0x02,0x04,0x88,0x50,0x20,0x00,0x02,0x01,0x00,0x00,0x00,/*-- 文字: W --*//*-- 宋体9; 此字体下对应的点阵为:宽x高=6x12 --*//*-- 高度不是8的倍数,现调整为:宽度x高度=6x16 --*/0x1C,0xE0,0x3C,0xE0,0x1C,0x00,0x00,0x03,0x00,0x03,0x00,0x00,/*-- 文字: Y --*//*-- 宋体9; 此字体下对应的点阵为:宽x高=6x12 --*//*-- 高度不是8的倍数,现调整为:宽度x高度=6x16 --*/0x04,0x1C,0xE0,0x1C,0x04,0x00,0x00,0x02,0x03,0x02,0x00,0x00,/*-- 文字: G --*//*-- 宋体9; 此字体下对应的点阵为:宽x高=6x12 --*//*-- 高度不是8的倍数,现调整为:宽度x高度=6x16 --*/0xF0,0x08,0x04,0x44,0xCC,0x40,0x00,0x01,0x02,0x02,0x01,0x00};unsigned char code hanzi[]={/*-- 文字: 单--*//*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*//*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/0x00,0x00,0x7C,0x55,0x56,0xFC,0x56,0x55,0x54,0x7C,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x07,0x01,0x01,0x01,0x01,0x01,0x00,/*-- 文字: 片--*//*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*//*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/0x00,0x00,0xFF,0x48,0x48,0x48,0x4F,0xC8,0x08,0x08,0x08,0x00,0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,/*-- 文字: 机--*//*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*//*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/0x84,0x64,0xFF,0x24,0x44,0xFE,0x02,0x02,0xFF,0x02,0x00,0x00,0x01,0x00,0x07,0x04,0x02,0x01,0x00,0x00,0x07,0x04,0x07,0x00,/*-- 文字: 开--*//*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*//*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/0x20,0x22,0x22,0xFE,0x22,0x22,0x22,0xFE,0x22,0x23,0x22,0x00,0x04,0x04,0x02,0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,/*-- 文字: 发--*//*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*//*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/0x08,0x0E,0x88,0x78,0x2F,0xE8,0x28,0xA9,0x6A,0x08,0x08,0x00,0x04,0x02,0x05,0x04,0x02,0x02,0x01,0x02,0x02,0x04,0x04,0x00,/*-- 文字: 工--*//*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*//*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/0x00,0x02,0x02,0x02,0x02,0xFE,0x02,0x02,0x03,0x02,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x04,0x04,0x00,/*-- 文字: 作--*//*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*//*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/0x10,0x08,0xFC,0x13,0x08,0x04,0xFF,0x24,0x24,0x24,0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x07,0x01,0x01,0x01,0x01,0x00,/*-- 文字: 室--*//*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*//*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/0x04,0x06,0x4A,0x6A,0x5A,0xCB,0x4A,0x5A,0x6A,0x4A,0x06,0x00,0x04,0x04,0x05,0x05,0x05,0x07,0x05,0x05,0x05,0x04,0x04,0x00,/*-- 文字: 雨--*//*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*//*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/0x02,0xFA,0x9A,0x2A,0x0A,0xFE,0x9A,0x2A,0x0A,0xFB,0x02,0x00,0x00,0x07,0x00,0x01,0x00,0x07,0x00,0x05,0x04,0x07,0x00,0x00,/*-- 文字: 亭--*//*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*//*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/0x60,0x22,0xA2,0xBA,0xAA,0xAB,0xAA,0xAA,0xBA,0x22,0x60,0x00,0x00,0x00,0x00,0x04, 0x04,0x07,0x00,0x00,0x00,0x00,0x00,0x00,/*-- 文字: 电--*//*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*//*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/0x00,0xFC,0x94,0x94,0x94,0xFF,0x94,0x94,0x94,0xFE,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x04,0x04,0x04,0x04,0x06,0x00,/*-- 文字: 子--*//*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*//*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/0x20,0x21,0x21,0x21,0x21,0xF9,0x29,0x25,0x23,0x31,0x20,0x00,0x00,0x00,0x00,0x04,0x04,0x07,0x00,0x00,0x00,0x00,0x00,0x00,/*-- 文字: 第--*//*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*//*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/0x04,0xEA,0xAB,0xAE,0xAA,0xFC,0xAA,0xAB,0xAE,0xBA,0x82,0x00,0x04,0x04,0x02,0x01, 0x00,0x07,0x00,0x02,0x02,0x02,0x01,0x00,/*-- 文字: 一--*//*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*//*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*-- 文字: 行--*//*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*//*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/0x48,0x24,0xF3,0x08,0x09,0x09,0x09,0x09,0xF9,0x09,0x08,0x00,0x00,0x00,0x07,0x00,0x00,0x04,0x04,0x04,0x07,0x00,0x00,0x00,/*-- 文字: 二--*//*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*//*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x04,0x00,0x00,0x02,0x02,0x02,0x02, 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,/*-- 文字: 三--*//*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*//*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/0x00,0x02,0x22,0x22,0x22,0x22,0x22,0x22,0x23,0x02,0x00,0x00,0x04,0x04,0x04,0x04, 0x04,0x04,0x04,0x04,0x04,0x06,0x04,0x00};void delayms(unsigned int ii)//1ms延时函数{unsigned int i,x;for (x=0;x<ii;x++){for (i=0;i<100;i++);}}/*--------------------------------------------LCD_write_byte: 使用SPI接口写数据到LCD输入参数:dt:写入的数据;command :写数据/命令选择;编写日期:20080918----------------------------------------------*/void LCD_write_byte(unsigned char dt, unsigned char command){unsigned char i;sce=0;dc=command;for(i=0;i<8;i++){if(dt&0x80)sdin=1;elsesdin=0;dt=dt<<1;sclk=0;sclk=1;}dc=1;sce=1;sdin=1;}/*---------------------------------------LCD_init: 3310LCD初始化编写日期:20080918----------------------------------------- */void LCD_init(void){res=0;delayms(10);res=1;LCD_write_byte(0x21,0);//初始化Lcd,功能设定使用扩充指令LCD_write_byte(0xC6,0);//设定液晶偏置电压LCD_write_byte(0x06,0);//温度校正LCD_write_byte(0x13,0);;//1:48LCD_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);// columnLCD_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_shu: 显示6(宽)*16(高)点阵列数字字母符号等半角类输入参数:c:显示的字符;编写日期:20080918-----------------------------------------------*/void LCD_write_shu(unsigned char row, unsigned char page,unsigned char c) //row:列page:页dd:字符{unsigned char i;LCD_set_XY(row*6, page);// 列,页for(i=0; i<6;i++){LCD_write_byte(shuzi[c*12+i],1);}LCD_set_XY(row*6, page+1);// 列,页for(i=6; i<12;i++){LCD_write_byte(shuzi[c*12+i],1);}}/*---------------------------------------------LCD_write_hanzi: 显示12(宽)*16(高)点阵列汉字等半角类输入参数:c:显示的字符;编写日期:20080918-----------------------------------------------*/void LCD_write_hanzi(unsigned char row, unsigned char page,unsigned char c) //row:列page:页dd:字符{unsigned char i;LCD_set_XY(row*6, page);// 列,页for(i=0; i<12;i++){LCD_write_byte(hanzi[c*24+i],1);}LCD_set_XY(row*6, page+1);// 列,页for(i=12; i<24;i++){LCD_write_byte(hanzi[c*24+i],1);}}main(){unsigned char k;sce=0;res=0;for(k=0;k<250;k++);res=1;LCD_init(); //初始化LCD模块LCD_clear(); //清屏幕LCD_write_hanzi(0,0,0); //单LCD_write_hanzi(2,0,1); //片LCD_write_hanzi(4,0,2); //机LCD_write_hanzi(6,0,3); //开LCD_write_hanzi(8,0,4); //发LCD_write_hanzi(10,0,5); //工LCD_write_hanzi(12,0,6); //作LCD_write_hanzi(0,2,7); //室LCD_write_hanzi(2,4,8); //雨LCD_write_hanzi(4,4,9); //亭LCD_write_hanzi(6,4,10); //电LCD_write_hanzi(8,4,11); //子LCD_write_shu(10,4,0); //>LCD_write_shu(11,4,1); //WLCD_write_shu(12,4,2); //YLCD_write_shu(13,4,3); //Gwhile(1){delayms(5000);}。
/******************************************************************** NOKIA5110(3310)液晶屏驱动程序** 晶振频率:11.0592M** 线路->单片机实验开发板A******************************************************************/#include/*-- -------定义Nokia5110 引角---- -----*/sbit sclk = P3^3;sbit sdin = P3^4;sbit dc = P3^5;sbit sce = P3^7;sbit res = P3^6;void initNokia5110(void); /* NOkia 5110 初始化*/void clearNokia5110(void); /* 清除屏幕整屏清空*/void Display_char(unsigned char x,unsigned char y,char *s); /* 写字符x 设置显示字符的X位置; y 设置显示字符的Y 位置*s 显示字符的首地址*/void Display_num(unsigned char x,unsigned char y,char s); /* 写数字x 设置显示字符的X位置; y 设置显示字符的Y 位置s 显示数字*/void write_byte(unsigned char data1); /* 发送1字节到NOkia 5110 */void setxy(unsigned char x,unsigned char y); /* 设置显示坐标x 行坐标(0-83) unsigned char y 列坐标(0-5) */void delay(unsigned int time);void main(void){initNokia5110(); /* NOkia 5110 初始化*/clearNokia5110(); /* 清除屏幕整屏清空*/Display_char(1,2,""); /* 写字符x 设置显示字符的X位置; y 设置显示字符的Y位置*s 显示字符的首地址*/Display_char(10,4,"NOKIA5510"); /* 写字符x 设置显示字符的X位置; y 设置显示字符的Y位置*s 显示字符的首地址*///Display_num(0,0,9); // 写数字while(1);}/****************************5110 0-9字模**************************//*函数原型:无/*函数功能:0-9字模/*输入参数:无/*输出参数:无/*调用模块:/*建立时间:2006/10/1/*作者:站长/**********************************************************************/ unsigned char code asc2tab[][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 }};/****************************Nokia5110初始化函数**************************//*函数原型:initNokia5110(void)/*函数功能:Nokia5110初始化/*输入参数:无/*输出参数:无/*调用模块:/*建立时间:2006/10/1/*作者:站长/**********************************************************************/void initNokia5110(void){delay(10); //系统复位res = 0;delay(2);res = 1;dc = 0;write_byte(0x21); //;芯片是活动的(PD=0) 使用扩展指令集write_byte(0xd5);write_byte(0x20); //;芯片是活动的(PD=0) 使用水平寻址(V=0) 使用基本指令集(H=0) write_byte(0x0c); //;设置显示配置(D=1 E=0)}/****************************Nokia5110清屏函数*********************//*函数原型:void clearNokia5110(void)/*函数功能:Nokia5110清屏/*输入参数:无/*输出参数:无/*调用模块:/*建立时间:2006/10/1/*作者:站长/**********************************************************************/void clearNokia5110(void){unsigned int i,j;for(i=0;i<6;i++){setxy(j,i);dc = 1;while (j<84){write_byte(0x00);j++;}j = 0;}}/*--------------------------------------;模块名称:Display_char(unsigned char x,unsigned char y,char *s);;功能:写字符;占用资源:;参数说明:x 设置显示字符的X位置; y 设置显示字符的Y位置*s 显示字符的首地址;创建日期:2001.01.19;版本:VER 2.0 ★STALI☆;-------------------------------------*/void Display_char(unsigned char x,unsigned char y,char *s){unsigned char line;setxy(x,y);while(*s){for(line=0;line<6;line++){dc = 1;write_byte(asc2tab[*s - 32][line]);}}sce = 1;}/****************************Nokia5110写数字函数*********************/ /*函数原型:void Display_num(unsigned char x,unsigned char y,char s)/*函数功能:Nokia5110写数字/*输入参数:x 设置显示字符的X位置; y 设置显示字符的Y位置s 显示数字/*输出参数:无/*调用模块:/*建立时间:2006/10/1/*作者:站长/**********************************************************************/ void Display_num(unsigned char x,unsigned char y,char s){unsigned char line;setxy(x,y);dc = 1;for(line=0;line<6;line++){write_byte(asc2tab[s+16][line]);}sce = 1;}/*************************Nokia5110发送1字节函数*********************/ /*函数原型:void Display_num(unsigned char x,unsigned char y,char s)/*函数功能:发送1字节到NOkia 5110/*输入参数:x 设置显示字符的X位置; y 设置显示字符的Y位置s 显示数字/*输出参数:无/*调用模块:/*建立时间:2006/10/1/*作者:站长/**********************************************************************/ void write_byte(unsigned char data1){unsigned char i;res = 1;sce = 0;for(i=0;i<8;i++){sdin = (bit) (data1&0x80);;sclk = 1;data1 <<=1;}}/*************************Nokia5110设置显示坐标函数*********************/ /*函数原型:void setxy(unsigned char x,unsigned char y)/*函数功能:设置显示坐标/*输入参数:unsigned char x 行坐标(0-83) unsigned char y 列坐标(0-5)/*输出参数:无/*调用模块:/*建立时间:2006/10/1/*作者:站长/**********************************************************************/ void setxy(unsigned char x,unsigned char y){dc = 0;write_byte(y|0x40); //设置y轴。