這是液晶屏12864源代碼
匯編語言:
- ;*******************************************************
- ; 圖形點陣液晶顯示器實驗說明
- ;實驗目的: 1.掌握使用圖形點陣液晶顯示字體和圖形。
- ;實驗內容: 1.顯示一個圖形
- ; 2.顯示一段字,包括漢字和英文
- ;連線說明:
- ;液晶12864J: A1區(qū)-->A3區(qū)
- ; CS-->CS1(0F000H),片選
- ; RW-->A0,讀/寫控制端
- ; RS-->A1,數(shù)據(jù)/指令控制端
- ; 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 ;左半屏,顯示一個字節(jié)子程序
- 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 ;右半屏字節(jié)顯示數(shù)據(jù)
- 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區(qū)-->A3區(qū)
- //; CS-->CS1(0F000H),片選
- //; RW-->A0,讀/寫控制端
- //; RS-->A1,數(shù)據(jù)/指令控制端
- //; 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列,左半屏,顯示一個字節(jié)子程序
- 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); //右半屏字節(jié)顯示數(shù)據(jù)
- 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, 下載次數(shù): 13)
2018-9-21 12:42 上傳
點擊文件名下載附件
C代碼 下載積分: 黑幣 -5
12864J_Ccode.rar
(5.96 KB, 下載次數(shù): 12)
2018-9-21 12:42 上傳
點擊文件名下載附件
C代碼 下載積分: 黑幣 -5
|