本帖最后由 kaillen 于 2020-5-20 13:38 編輯
一,打開文件(可以隨文下載放置在文檔中打開)。(如下圖1所示)
1.png (811.56 KB, 下載次數: 89)
下載附件
2020-5-19 23:58 上傳
圖1
二,調整原理圖大小,適合可視,另存工程文件。(如下圖2,3,4所示)
2.png (234.58 KB, 下載次數: 85)
下載附件
2020-5-19 23:58 上傳
圖2
3.png (245 KB, 下載次數: 96)
下載附件
2020-5-19 23:58 上傳
圖3
4.png (293.93 KB, 下載次數: 97)
下載附件
2020-5-19 23:58 上傳
圖4
三,點擊Source Code標簽。(如下圖5所示)
5.png (149.19 KB, 下載次數: 75)
下載附件
2020-5-19 23:58 上傳
圖5
四,編輯main.c 代碼如Proteus8.9 VSM Studio Keil編譯器仿真AT89C51RD2系列017_lcd12864橫屏 (如下圖6所示)
6.png (158.21 KB, 下載次數: 88)
下載附件
2020-5-19 23:58 上傳
圖6
五,Main.c 代碼:
/* Main.c file generated by New Project wizard
*Coder: Ziegler Yin
* Created: 周日 5月 3 2020
* Processor: AT89C51RD2
* Compiler: Keil for 8051
*/
#include "lcd12864.h"
uint xdata idat[16], dp[16];
int main(void)
{
P2=8;
init_lcd();
chrScrn(0);
Wrt_wds(nstr, 0, 4, 0, 0);
Wrt_wds(nstr, 256, 4, 2, 0);
Wrt_wds(nstr, 512, 4, 4, 0);
Wrt_wds(nstr, 768, 4, 6, 0);
LCDMcs=1; LCDScs=0;//左、右屏顯示
Wrt_wds(nstr, 128, 4, 0, 0);
Wrt_wds(nstr, 384, 4, 2, 0);
Wrt_wds(nstr, 640, 4, 4, 0);
Wrt_wds(nstr, 896, 4, 6, 0);
LCDdelay(1000);
P3=0x33;
while(1);
}
Lcd12864.h:
/* Main.c file generated by New Project wizard
*Coder: Ziegler Yin
* Created: 周日 5月 3 2020
* Processor: AT89C51RD2
* Compiler: Keil for 8051
*/
#ifndef __LCD12864_H_
#define __LCD12864_H_
#include "mySPI.h"
#define LCDDisp_Off 0x3e
#define LCDDisp_On 0x3f
#define Page_Add 0xb8//頁地址
#define LCDCol_Add 0x40//列地址
#define Start_Line 0xC0//行地址
/*****液晶顯示器的端口定義*****/
#define data_ora P0 /*液晶數據總線*/
sbit LCDMcs=P1^1 ; /*片選1*/
sbit LCDScs=P1^2 ; /*片選2*/
sbit RESET=P1^3 ; /*復位信號*/
sbit LCDDi=P1^4 ; /*數據/指令 選擇*/
sbit LCDRW=P1^5 ; /*讀/寫 選擇*/
sbit LCDEnable1=P1^6 ; /*讀/寫 使能*/
sbit LCDEnable2=P1^7 ; /*讀/寫 使能*/
sbit LCD20 = P2^0;
sbit LCD10 = P1^0;
static uchar code nstr[1024]= {
/*-- 文字: 長 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x08,0x00,0x08,0x10,0x08,0x20,0x08,0x40,0x08,0x80,0x09,0x00,0x08,0x00,0xFF,0xFE,
0x0A,0x00,0x09,0x00,0x08,0x80,0x08,0x40,0x09,0x20,0x0A,0x18,0x0C,0x06,0x08,0x00,
/*-- 文字: 波 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x20,0x20,0x20,0x10,0x20,0x13,0xFE,0x82,0x22,0x42,0x24,0x4A,0x20,0x0B,0xFC,
0x12,0x84,0x12,0x88,0xE2,0x48,0x22,0x50,0x22,0x20,0x24,0x50,0x24,0x88,0x09,0x06,
/*-- 文字: 浪 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x80,0x20,0x40,0x13,0xF8,0x12,0x08,0x82,0x08,0x43,0xF8,0x4A,0x08,0x0A,0x08,
0x13,0xF8,0x12,0x40,0xE2,0x44,0x22,0x28,0x22,0x10,0x22,0x88,0x23,0x06,0x02,0x00,
/*-- 文字: , --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x10,0x00,0x20,0x00,0x00,0x00,
/*-- 文字: 男 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x3F,0xF8,0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08,0x21,0x08,0x3F,0xF8,
0x01,0x00,0x01,0x00,0x7F,0xFC,0x02,0x04,0x04,0x04,0x08,0x04,0x30,0x28,0xC0,0x10,
/*-- 文字: 囡 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x7F,0xFC,0x42,0x04,0x42,0x04,0x42,0x04,0x7F,0xFC,0x44,0x44,0x44,0x44,
0x48,0x84,0x46,0x84,0x41,0x04,0x42,0x84,0x44,0x44,0x48,0x24,0x7F,0xFC,0x40,0x04,
/*-- 文字: 頭 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x80,0x00,0x80,0x08,0x80,0x04,0x80,0x24,0x80,0x10,0x80,0x10,0x80,0x00,0x80,
0xFF,0xFE,0x01,0x00,0x01,0x40,0x02,0x20,0x04,0x10,0x08,0x08,0x30,0x04,0xC0,0x04,
/*-- 文字: ; --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x30,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x10,0x00,0x20,0x00,0x00,0x00,
/*-- 文字: 嘆 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x07,0xF8,0x7A,0x08,0x4A,0x08,0x4A,0x08,0x49,0x10,0x49,0x10,0x49,0x10,
0x48,0xA0,0x48,0xA0,0x78,0x40,0x48,0x40,0x00,0xA0,0x01,0x10,0x02,0x08,0x0C,0x06,
/*-- 文字: 誰 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x01,0x40,0x41,0x20,0x21,0x20,0x23,0xFE,0x02,0x20,0x06,0x20,0xEB,0xFC,0x22,0x20,
0x22,0x20,0x23,0xFC,0x22,0x20,0x22,0x20,0x2A,0x20,0x33,0xFE,0x22,0x00,0x02,0x00,
/*-- 文字: 人 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x02,0x80,0x02,0x80,
0x04,0x40,0x04,0x40,0x08,0x20,0x08,0x20,0x10,0x10,0x20,0x08,0x40,0x04,0x80,0x02,
/*-- 文字: , --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x10,0x00,0x20,0x00,0x00,0x00,
/*-- 文字: 制 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x04,0x04,0x24,0x04,0x24,0x04,0x3F,0xA4,0x44,0x24,0x04,0x24,0xFF,0xE4,0x04,0x24,
0x04,0x24,0x3F,0xA4,0x24,0xA4,0x24,0xA4,0x26,0x84,0x25,0x04,0x04,0x14,0x04,0x08,
/*-- 文字: 花 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x08,0x20,0x08,0x20,0xFF,0xFE,0x08,0x20,0x00,0x00,0x08,0x88,0x08,0x90,0x10,0xA0,
0x30,0xC0,0x50,0x80,0x91,0x80,0x12,0x82,0x14,0x82,0x10,0x82,0x10,0x7E,0x10,0x00,
/*-- 文字: 衣 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x02,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x02,0x00,0x02,0x00,0x05,0x00,0x05,0x08,
0x08,0x90,0x18,0xA0,0x28,0x40,0x48,0x20,0x88,0x10,0x0A,0x08,0x0C,0x06,0x08,0x00,
/*-- 文字: ; --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x30,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x10,0x00,0x20,0x00,0x00,0x00,
/*-- 文字: 短 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x20,0x00,0x21,0xFE,0x3C,0x00,0x50,0x00,0x90,0xFC,0x10,0x84,0x10,0x84,0xFE,0x84,
0x10,0xFC,0x10,0x00,0x10,0x84,0x28,0x44,0x24,0x48,0x44,0x00,0x41,0xFE,0x80,0x00,
/*-- 文字: 發 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x01,0x00,0x11,0x10,0x11,0x08,0x22,0x00,0x3F,0xFC,0x02,0x00,0x04,0x00,0x07,0xF8,
0x0A,0x08,0x09,0x08,0x11,0x10,0x10,0xA0,0x20,0x40,0x40,0xA0,0x03,0x18,0x1C,0x06,
/*-- 文字: 梢 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x10,0x20,0x11,0x24,0x10,0xA4,0x10,0xA8,0xFC,0x20,0x11,0xFC,0x31,0x04,0x39,0x04,
0x55,0xFC,0x51,0x04,0x91,0x04,0x11,0xFC,0x11,0x04,0x11,0x04,0x11,0x14,0x11,0x08,
/*-- 文字: , --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x10,0x00,0x20,0x00,0x00,0x00,
/*-- 文字: 都 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x08,0x00,0x08,0xBE,0x7E,0xA2,0x09,0x24,0x0A,0x24,0xFF,0xE8,0x08,0x24,0x10,0x24,
0x3F,0x22,0x61,0x22,0xA1,0x22,0x3F,0x34,0x21,0x28,0x21,0x20,0x3F,0x20,0x21,0x20,
/*-- 文字: 迷 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x40,0x22,0x48,0x11,0x48,0x11,0x50,0x00,0x40,0x07,0xFC,0xF0,0x40,0x10,0xE0,
0x11,0x50,0x12,0x48,0x14,0x44,0x10,0x40,0x10,0x40,0x28,0x00,0x47,0xFE,0x00,0x00,
/*-- 文字: 人 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x02,0x80,0x02,0x80,
0x04,0x40,0x04,0x40,0x08,0x20,0x08,0x20,0x10,0x10,0x20,0x08,0x40,0x04,0x80,0x02,
/*-- 文字: ; --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x30,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x10,0x00,0x20,0x00,0x00,0x00,
/*-- 文字: 盤 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x02,0x00,0x04,0x00,0x1F,0xF0,0x11,0x10,0x10,0x90,0xFF,0xFE,0x10,0x10,0x12,0x10,
0x21,0x50,0x40,0x20,0x3F,0xF8,0x24,0x48,0x24,0x48,0x24,0x48,0xFF,0xFE,0x00,0x00,
/*-- 文字: 你 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x08,0x80,0x08,0x80,0x08,0x80,0x11,0xFE,0x11,0x02,0x32,0x04,0x34,0x20,0x50,0x20,
0x91,0x28,0x11,0x24,0x12,0x24,0x12,0x22,0x14,0x22,0x10,0x20,0x10,0xA0,0x10,0x40,
/*-- 文字: 發 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x01,0x00,0x11,0x10,0x11,0x08,0x22,0x00,0x3F,0xFC,0x02,0x00,0x04,0x00,0x07,0xF8,
0x0A,0x08,0x09,0x08,0x11,0x10,0x10,0xA0,0x20,0x40,0x40,0xA0,0x03,0x18,0x1C,0x06,
/*-- 文字: , --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x10,0x00,0x20,0x00,0x00,0x00,
/*-- 文字: 將 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x08,0x80,0x08,0xF8,0x09,0x08,0x4A,0x10,0x28,0xA0,0x28,0x40,0x08,0x90,0x0B,0x10,
0x18,0x10,0x2B,0xFE,0xC8,0x10,0x09,0x10,0x08,0x90,0x08,0x10,0x08,0x50,0x08,0x20,
/*-- 文字: 你 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x08,0x80,0x08,0x80,0x08,0x80,0x11,0xFE,0x11,0x02,0x32,0x04,0x34,0x20,0x50,0x20,
0x91,0x28,0x11,0x24,0x12,0x24,0x12,0x22,0x14,0x22,0x10,0x20,0x10,0xA0,0x10,0x40,
/*-- 文字: 娶 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x7F,0x7C,0x22,0x44,0x3E,0x44,0x22,0x28,0x3E,0x10,0x23,0xA8,0xFE,0x44,
0x02,0x82,0x04,0x00,0xFF,0xFE,0x08,0x20,0x1C,0x40,0x03,0x80,0x0C,0x70,0x70,0x08,
/*-- 文字: 。 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x18,0x00,0x24,0x00,0x24,0x00,0x18,0x00,0x00,0x00,0x00,0x00,
};
void LCDdelay(uint t);
void CheckState();
void write_com(uchar cmdcode);
void init_lcd();
void write_data(uchar LCDDispdata);
void Wrt_lwd(uint *dstr, uchar Pages, uchar Cols);
void Wrt_wds(uchar *sstr, uint bg, uchar id, uchar Pages, uchar Cols);
void Wrt_chr(uchar id, uchar cht, uchar Pages, uchar Cols);
void chrScrn(uchar cht);
void SltWd(uchar *dstr, uchar *sor, uchar id);
void HzTwd(uint *dtr, uchar *csr);
void HzTny(uint *dtr, uint *dsr);
void HzTnR(uint *dtr, uint *dsr);
#endif
六,點擊構建工程按鈕,編譯工程。(如下圖7所示)
7.png (180.9 KB, 下載次數: 81)
下載附件
2020-5-19 23:58 上傳
圖7
七,點擊窗口左下方仿真按鈕,可見lcd12864屏上信息顯示在屏。 (如下圖8,9,10所示)
8.png (293.75 KB, 下載次數: 79)
下載附件
2020-5-19 23:58 上傳
圖8
9.png (223.16 KB, 下載次數: 83)
下載附件
2020-5-19 23:58 上傳
圖9
10.png (307.16 KB, 下載次數: 88)
下載附件
2020-5-19 23:58 上傳
圖10
八,選擇release,點擊構建工程按鈕,編譯工程生成Hex文件。(如下圖11所示)
11.png (179.65 KB, 下載次數: 79)
下載附件
2020-5-19 23:58 上傳
圖11
九, 系列的001-003虛擬仿真與開發板對應已證明:虛擬仿真程序對于開發板有效,之后不再➕上下載到開發板的介紹。
附件Proteus8.9 VSM Studio Keil編譯器仿真AT89C51RD2系列017_lcd12864橫屏在已安裝Proteus8.9的計算機文件夾中打開即可
需要進一步了解,請加入QQ群:976235464
|