|
所需硬件: 1.單片機(jī)實(shí)驗(yàn)開發(fā)板可自制
2.杜邦頭插線
3.NOKIA5110LCD液晶屏
4.STC89C51RC單片機(jī)
所需軟件: 1. Keil C51 V8.08或Keil_uv3 綠色版本
2.STC單片機(jī)ISP下載編程軟件


NOKIA5110LCD液晶屏連接圖
C語言源程序
- /******************************************************************
- ** NOKIA5110(3310)液晶屏驅(qū)動(dòng)程序
- ** 晶 振 頻 率:11.0592M
- ** 線路->單片機(jī)實(shí)驗(yàn)開發(fā)板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 設(shè)置顯示字符的X位置 ; y 設(shè)置顯示字符的Y位置 *s 顯示字符的首地址 */
- void Display_num(unsigned char x,unsigned char y,char s); /* 寫數(shù)字 x 設(shè)置顯示字符的X位置 ; y 設(shè)置顯示字符的Y位置 s 顯示數(shù)字 */
- void write_byte(unsigned char data1); /* 發(fā)送1字節(jié)到 NOkia 5110 */
- void setxy(unsigned char x,unsigned char y); /* 設(shè)置顯示坐標(biāo) x 行坐標(biāo)(0-83) unsigned char y 列坐標(biāo)(0-5) */
- void delay(unsigned int time);
- void main(void)
- {
- initNokia5110(); /* NOkia 5110 初始化 */
- clearNokia5110(); /* 清除屏幕 整屏清空 */
- Display_char(1,2,"www.52c51.com"); /* 寫字符 x 設(shè)置顯示字符的X位置 ; y 設(shè)置顯示字符的Y位置 *s 顯示字符的首地址 */
- Display_char(10,4,"NOKIA5510"); /* 寫字符 x 設(shè)置顯示字符的X位置 ; y 設(shè)置顯示字符的Y位置 *s 顯示字符的首地址 */
- //Display_num(0,0,9); // 寫數(shù)字
- while(1);
- }
- /****************************5110 0-9字模**************************/
- /*函數(shù)原型:無
- /*函數(shù)功能:0-9字模
- /*輸入?yún)?shù):無
- /*輸出參數(shù):無
- /*調(diào)用模塊:
- /*建立時(shí)間: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初始化函數(shù)**************************/
- /*函數(shù)原型:initNokia5110(void)
- /*函數(shù)功能:Nokia5110初始化
- /*輸入?yún)?shù):無
- /*輸出參數(shù):無
- /*調(diào)用模塊:
- /*建立時(shí)間:2006/10/1
- /*作者:站長
- /**********************************************************************/
- void initNokia5110(void)
- {
- delay(10); //系統(tǒng)復(fù)位
- res = 0;
- delay(2);
- res = 1;
- dc = 0;
- write_byte(0x21); //;芯片是活動(dòng)的(PD=0) 使用擴(kuò)展指令集
- write_byte(0xd5);
- write_byte(0x20); //;芯片是活動(dòng)的(PD=0) 使用水平尋址(V=0) 使用基本指令集(H=0)
- write_byte(0x0c); //;設(shè)置顯示配置(D=1 E=0)
- }
- /****************************Nokia5110清屏函數(shù)*********************/
- /*函數(shù)原型:void clearNokia5110(void)
- /*函數(shù)功能:Nokia5110清屏
- /*輸入?yún)?shù):無
- /*輸出參數(shù):無
- /*調(diào)用模塊:
- /*建立時(shí)間: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);
- ;功 能:寫字符
- ;占用資源:
- ;參數(shù)說明:x 設(shè)置顯示字符的X位置 ; y 設(shè)置顯示字符的Y位置 *s 顯示字符的首地址
- ;創(chuàng)建日期: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]);
- }
- s++;
- }
- sce = 1;
- }
- /****************************Nokia5110寫數(shù)字函數(shù)*********************/
- /*函數(shù)原型:void Display_num(unsigned char x,unsigned char y,char s)
- /*函數(shù)功能:Nokia5110寫數(shù)字
- /*輸入?yún)?shù):x 設(shè)置顯示字符的X位置 ; y 設(shè)置顯示字符的Y位置 s 顯示數(shù)字
- /*輸出參數(shù):無
- /*調(diào)用模塊:
- /*建立時(shí)間: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發(fā)送1字節(jié)函數(shù)*********************/
- /*函數(shù)原型:void Display_num(unsigned char x,unsigned char y,char s)
- /*函數(shù)功能:發(fā)送1字節(jié)到 NOkia 5110
- /*輸入?yún)?shù):x 設(shè)置顯示字符的X位置 ; y 設(shè)置顯示字符的Y位置 s 顯示數(shù)字
- /*輸出參數(shù):無
- /*調(diào)用模塊:
- /*建立時(shí)間: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 = 0;
- ;
- sclk = 1;
- data1 <<=1;
- }
- }
- /*************************Nokia5110設(shè)置顯示坐標(biāo)函數(shù)*********************/
- /*函數(shù)原型:void setxy(unsigned char x,unsigned char y)
- /*函數(shù)功能:設(shè)置顯示坐標(biāo)
- /*輸入?yún)?shù):unsigned char x 行坐標(biāo)(0-83) unsigned char y 列坐標(biāo)(0-5)
- /*輸出參數(shù):無
- /*調(diào)用模塊:
- /*建立時(shí)間:2006/10/1
- /*作者:站長
- /**********************************************************************/
- void setxy(unsigned char x,unsigned char y)
- {
- dc = 0;
- write_byte(y|0x40); //設(shè)置y軸。
- write_byte(x|0x80); //設(shè)置x軸。
- }
- /*******************************延時(shí)函數(shù)*********************************/
- /*函數(shù)原型:delay(unsigned int delay_time)
- /*函數(shù)功能:延時(shí)函數(shù)
- /*輸入?yún)?shù):delay_time (輸入要延時(shí)的時(shí)間)
- /*輸出參數(shù):無
- /*調(diào)用模塊:無
- /*建立時(shí)間:2005/10/21
- /*作者:站長
- /**********************************************************************/
- void delay(unsigned int delay_time) //延時(shí)子程序
- {for(;delay_time>0;delay_time--)
- {}
- }
復(fù)制代碼
|
|