标题:
LCD12864的单片机汇编语言和C语言源代码
[打印本页]
作者:
1411494834
时间:
2018-9-21 12:43
标题:
LCD12864的单片机汇编语言和C语言源代码
这是液晶屏12864源代码
汇编语言:
;*******************************************************
; 图形点阵液晶显示器实验说明
;实验目的: 1.掌握使用图形点阵液晶显示字体和图形。
;实验内容: 1.显示一个图形
; 2.显示一段字,包括汉字和英文
;连线说明:
;液晶12864J: A1区-->A3区
; CS-->CS1(0F000H),片选
; RW-->A0,读/写控制端
; RS-->A1,数据/指令控制端
; CS1/2-->A2,左右半屏使能端
;*******************************************************
NAME MAIN ;演示主程序
EXTRN CODE(LCD_INIT,LCDClear,ByteDisL,ByteDisR,WordDisL,WordDisR,LineDisL,LineDisR)
MAIN_CODE SEGMENT CODE
STACK SEGMENT IDATA
RSEG STACK
DS 20H ;32 Bytes Stack
CSEG AT 0000H ;定位0
LJMP START
RSEG MAIN_CODE ;开始程序段
START: MOV SP,#STACK-1
MAIN: LCALL LCD_INIT ;液晶初始化
LCALL DelayTime ;延时
LCALL DisLine1 ;第2行显示"星研电子"
LCALL DelayTime
LCALL DisLine2 ;第3行显示"STAR ES51PRO"
LCALL DelayTime
LCALL DisLine3 ;第4行显示"欢迎使用"
LCALL DelayTime
SJMP MAIN
;第2行显示"星研电子"
DisLine1: MOV DPTR,#Line1_1
MOV A,#2 ;A-起始显示行地址,第2行
MOV B,#32 ;B-起始显示列地址,第32列,以下同
LCALL WordDISL ;左半屏,显示一个字子程序
MOV DPTR,#Line1_2
MOV A,#2
MOV B,#48
LCALL WordDISL
MOV DPTR,#Line1_3
MOV A,#2
MOV B,#0
LCALL WordDISR ;右半屏,显示一个字子程序
MOV DPTR,#Line1_4
MOV A,#2
MOV B,#16
LCALL WordDISR
RET
Line1_1:
;-- 文字: 星 --
DB 000H,000H,0FCH,082H,082H,0AAH,02AH,0AAH,0AAH,0AAH,02AH,002H,002H,0FCH,000H,000H
DB 000H,0EEH,09BH,090H,098H,094H,095H,080H,080H,080H,095H,095H,095H,095H,0FFH,000H
Line1_2:
;-- 文字: 研 --
DB 09EH,062H,002H,002H,002H,032H,0FEH,062H,002H,002H,032H,002H,002H,002H,062H,0DCH
DB 003H,03CH,040H,040H,046H,040H,0F1H,08EH,080H,040H,07CH,080H,080H,080H,0FEH,003H
Line1_3:
;-- 文字: 电 --
DB 000H,0F8H,004H,004H,044H,044H,006H,002H,002H,046H,044H,004H,004H,0F8H,000H,000H
DB 000H,00FH,010H,010H,011H,011H,0F0H,080H,090H,091H,091H,08CH,084H,087H,0C8H,078H
Line1_4:
;-- 文字: 子 --
DB 080H,040H,05EH,052H,052H,052H,032H,072H,082H,082H,042H,062H,052H,04CH,0C0H,000H
DB 007H,004H,004H,004H,0FCH,08CH,08CH,080H,080H,07CH,004H,004H,004H,004H,007H,000H
;第3行显示"STAR ES51PRO"
DisLine2: MOV DPTR,#Line2_1
MOV A,#4 ;A-起始显示行地址,第4行
MOV B,#16 ;B-起始显示列地址,第16列,以下同
LCALL ByteDISL ;左半屏,显示一个字节子程序
MOV DPTR,#Line2_2
MOV A,#4
MOV B,#24
LCALL ByteDISL
MOV DPTR,#Line2_3
MOV A,#4
MOV B,#32
LCALL ByteDISL
MOV DPTR,#Line2_4
MOV A,#4
MOV B,#40
LCALL ByteDISL
MOV DPTR,#Line2_5
MOV A,#4
MOV B,#48
LCALL ByteDISL
MOV DPTR,#Line2_6
MOV A,#4
MOV B,#56
LCALL ByteDISL
MOV DPTR,#Line2_7
MOV A,#4
MOV B,#0
LCALL ByteDISR ;右半屏字节显示数据
MOV DPTR,#Line2_8
MOV A,#4
MOV B,#8
LCALL ByteDISR
MOV DPTR,#Line2_9
MOV A,#4
MOV B,#16
LCALL ByteDISR
MOV DPTR,#Line2_10
MOV A,#4
MOV B,#24
LCALL ByteDISR
MOV DPTR,#Line2_11
MOV A,#4
MOV B,#32
LCALL ByteDISR
MOV DPTR,#Line2_12
MOV A,#4
MOV B,#40
LCALL ByteDISR
RET
;"STAR ES51PRO"
Line2_1:
DB 000H,070H,088H,008H,008H,008H,038H,000H,000H,038H,020H,021H,021H,022H,01CH,000H
Line2_2:
DB 018H,008H,008H,0F8H,008H,008H,018H,000H,000H,000H,020H,03FH,020H,000H,000H,000H
Line2_3:
DB 000H,000H,0C0H,038H,0E0H,000H,000H,000H,020H,03CH,023H,002H,002H,027H,038H,020H
Line2_4:
DB 008H,0F8H,088H,088H,088H,088H,070H,000H,020H,03FH,020H,000H,003H,00CH,030H,020H
Line2_5:
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
Line2_6:
DB 008H,0F8H,088H,088H,0E8H,008H,010H,000H,020H,03FH,020H,020H,023H,020H,018H,000H
Line2_7:
DB 000H,070H,088H,008H,008H,008H,038H,000H,000H,038H,020H,021H,021H,022H,01CH,000H
Line2_8:
DB 000H,0F8H,008H,088H,088H,008H,008H,000H,000H,019H,021H,020H,020H,011H,00EH,000H
Line2_9:
DB 000H,010H,010H,0F8H,000H,000H,000H,000H,000H,020H,020H,03FH,020H,020H,000H,000H
Line2_10:
DB 008H,0F8H,008H,008H,008H,008H,0F0H,000H,020H,03FH,021H,001H,001H,001H,000H,000H
Line2_11:
DB 008H,0F8H,088H,088H,088H,088H,070H,000H,020H,03FH,020H,000H,003H,00CH,030H,020H
Line2_12:
DB 0E0H,010H,008H,008H,008H,010H,0E0H,000H,00FH,010H,020H,020H,020H,010H,00FH,000H
;第4行显示"欢迎使用"
DisLine3: MOV DPTR,#Line3_1
MOV A,#6 ;A-起始显示行地址,第6行
MOV B,#32 ;B-起始显示列地址,第32列,以下同
LCALL WordDISL ;左半屏,显示一个字子程序
MOV DPTR,#Line3_2
MOV A,#6
MOV B,#48
LCALL WordDISL
MOV DPTR,#Line3_3
MOV A,#6
MOV B,#0
LCALL WordDISR ;右半屏,显示一个字子程序
MOV DPTR,#Line3_4
MOV A,#6
MOV B,#16
LCALL WordDISR
RET
Line3_1:
;-- 文字: 欢 --
DB 014H,024H,044H,084H,064H,01CH,020H,018H,00FH,0E8H,008H,008H,028H,018H,008H,000H
DB 020H,010H,04CH,043H,043H,02CH,020H,010H,00CH,003H,006H,018H,030H,060H,020H,000H
Line3_2:
;-- 文字: 迎 --
DB 040H,041H,0CEH,004H,000H,0FCH,004H,002H,002H,0FCH,004H,004H,004H,0FCH,000H,000H
DB 040H,020H,01FH,020H,040H,047H,042H,041H,040H,05FH,040H,042H,044H,043H,040H,000H
Line3_3:
;-- 文字: 使 --
DB 040H,020H,0F0H,01CH,007H,0F2H,094H,094H,094H,0FFH,094H,094H,094H,0F4H,004H,000H
DB 000H,000H,07FH,000H,040H,041H,022H,014H,00CH,013H,010H,030H,020H,061H,020H,000H
Line3_4:
;-- 文字: 用 --
DB 000H,000H,000H,0FEH,022H,022H,022H,022H,0FEH,022H,022H,022H,022H,0FEH,000H,000H
DB 080H,040H,030H,00FH,002H,002H,002H,002H,0FFH,002H,002H,042H,082H,07FH,000H,000H
;延时程序
DelayTime: PUSH 05H
PUSH 06H
PUSH 07H
MOV R5,#48
DelayTime_1: MOV R6,#100
DelayTime_2: MOV R7,#100
DJNZ R7,$
DJNZ R6,DelayTime_2
DJNZ R5,DelayTime_1
POP 07H
POP 06H
POP 05H
RET
END
复制代码
c语言
//;*******************************************************
//; 图形点阵液晶显示器实验说明
//;实验目的: 1.掌握使用图形点阵液晶显示字体和图形。
//;实验内容: 1.显示一个图形
//; 2.显示一段字,包括汉字和英文
//;连线说明:
//;液晶12864J: A1区-->A3区
//; CS-->CS1(0F000H),片选
//; RW-->A0,读/写控制端
//; RS-->A1,数据/指令控制端
//; CS1/2-->A2,左右半屏使能端
//;*******************************************************
extern void LCD_INIT();
extern void WordDisL(unsigned char x, unsigned char y,unsigned char * pt);
extern void WordDisR(unsigned char x, unsigned char y,unsigned char * pt);
extern void ByteDisL(unsigned char x, unsigned char y,unsigned char * pt);
extern void ByteDisR(unsigned char x, unsigned char y,unsigned char * pt);
//-- 文字: 星 --
code const unsigned char Line1_1[] = {
0x00,0x00,0xFC,0x82,0x82,0xAA,0x2A,0xAA,0xAA,0xAA,0x2A,0x02,0x02,0xFC,0x00,0x00,
0x00,0xEE,0x9B,0x90,0x98,0x94,0x95,0x80,0x80,0x80,0x95,0x95,0x95,0x95,0xFF,0x00};
//-- 文字: 研 --
code const unsigned char Line1_2[] = {
0x9E,0x62,0x02,0x02,0x02,0x32,0xFE,0x62,0x02,0x02,0x32,0x02,0x02,0x02,0x62,0xDC,
0x03,0x3C,0x40,0x40,0x46,0x40,0xF1,0x8E,0x80,0x40,0x7C,0x80,0x80,0x80,0xFE,0x03};
//-- 文字: 电 --
code const unsigned char Line1_3[] = {
0x00,0xF8,0x04,0x04,0x44,0x44,0x06,0x02,0x02,0x46,0x44,0x04,0x04,0xF8,0x00,0x00,
0x00,0x0F,0x10,0x10,0x11,0x11,0xF0,0x80,0x90,0x91,0x91,0x8C,0x84,0x87,0xC8,0x78};
//-- 文字: 子 --
code const unsigned char Line1_4[] = {
0x80,0x40,0x5E,0x52,0x52,0x52,0x32,0x72,0x82,0x82,0x42,0x62,0x52,0x4C,0xC0,0x00,
0x07,0x04,0x04,0x04,0xFC,0x8C,0x8C,0x80,0x80,0x7C,0x04,0x04,0x04,0x04,0x07,0x00};
//第2行显示"星研电子"
void DisLine1()
{
WordDisL(2,32,Line1_1); //第2行,第32列,左半屏,显示一个字子程序
WordDisL(2,48,Line1_2);
WordDisR(2,0,Line1_3); //右半屏,显示一个字子程序
WordDisR(2,16,Line1_4);
}
//"STAR ES51PRO"
code const unsigned char Line2_1[] = {
0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00};
code const unsigned char Line2_2[] = {
0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00};
code const unsigned char Line2_3[] = {
0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20};
code const unsigned char Line2_4[] = {
0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20};
code const unsigned char Line2_5[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
code const unsigned char Line2_6[] = {
0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00};
code const unsigned char Line2_7[] = {
0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00};
code const unsigned char Line2_8[] = {
0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00};
code const unsigned char Line2_9[] = {
0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00};
code const unsigned char Line2_10[] = {
0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00};
code const unsigned char Line2_11[] = {
0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20};
code const unsigned char Line2_12[] = {
0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00};
//第3行显示"STAR ES51PRO"
void DisLine2()
{
ByteDisL(4,16,Line2_1); //第4行,第16列,左半屏,显示一个字节子程序
ByteDisL(4,24,Line2_2);
ByteDisL(4,32,Line2_3);
ByteDisL(4,40,Line2_4);
ByteDisL(4,48,Line2_5);
ByteDisL(4,56,Line2_6);
ByteDisR(4,0,Line2_7); //右半屏字节显示数据
ByteDisR(4,8,Line2_8);
ByteDisR(4,16,Line2_9);
ByteDisR(4,24,Line2_10);
ByteDisR(4,32,Line2_11);
ByteDisR(4,40,Line2_12);
}
//-- 文字: 欢 --
const unsigned char Line3_1[] = {
0x14,0x24,0x44,0x84,0x64,0x1C,0x20,0x18,0x0F,0xE8,0x08,0x08,0x28,0x18,0x08,0x00,
0x20,0x10,0x4C,0x43,0x43,0x2C,0x20,0x10,0x0C,0x03,0x06,0x18,0x30,0x60,0x20,0x00};
//-- 文字: 迎 --
const unsigned char Line3_2[] = {
0x40,0x41,0xCE,0x04,0x00,0xFC,0x04,0x02,0x02,0xFC,0x04,0x04,0x04,0xFC,0x00,0x00,
0x40,0x20,0x1F,0x20,0x40,0x47,0x42,0x41,0x40,0x5F,0x40,0x42,0x44,0x43,0x40,0x00};
//-- 文字: 使 --
const unsigned char Line3_3[] = {
0x40,0x20,0xF0,0x1C,0x07,0xF2,0x94,0x94,0x94,0xFF,0x94,0x94,0x94,0xF4,0x04,0x00,
0x00,0x00,0x7F,0x00,0x40,0x41,0x22,0x14,0x0C,0x13,0x10,0x30,0x20,0x61,0x20,0x00};
//-- 文字: 用 --
const unsigned char Line3_4[] = {
0x00,0x00,0x00,0xFE,0x22,0x22,0x22,0x22,0xFE,0x22,0x22,0x22,0x22,0xFE,0x00,0x00,
0x80,0x40,0x30,0x0F,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x42,0x82,0x7F,0x00,0x00};
//第4行显示"欢迎使用"
void DisLine3()
{
WordDisL(6,32,Line3_1); //第6行, 第32列,左半屏,显示一个字子程序
WordDisL(6,48,Line3_2); //第6行, 第48列
WordDisR(6,0,Line3_3); //右半屏,显示一个字子程序
WordDisR(6,16,Line3_4);
}
//延时程序
void DelayTime()
{
unsigned char i;
unsigned int j;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 0xffff; j++)
{;}
}
}
main()
{
while (1)
{
LCD_INIT(); //液晶初始化
DelayTime(); //延时
DisLine1(); //第2行显示"星研电子"
DelayTime();
DisLine2(); //第3行显示"STAR ES51PRO"
DelayTime();
DisLine3(); //第4行显示"欢迎使用"
DelayTime();
}
}
复制代码
全部资料51hei下载地址:
LCD12864J.rar
(6.33 KB, 下载次数: 13)
2018-9-21 12:42 上传
点击文件名下载附件
C代码
下载积分: 黑币 -5
12864J_Ccode.rar
(5.96 KB, 下载次数: 12)
2018-9-21 12:42 上传
点击文件名下载附件
C代码
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1