找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 24485|回复: 0
打印 上一主题 下一主题
收起左侧

Proteus8.9 VSM Studio Keil编译器仿真AT89C51RD2系列018_lcd12864竖屏

[复制链接]
跳转到指定楼层
楼主
本帖最后由 kaillen 于 2020-5-20 13:39 编辑

一,打开文件(可以随文下载放置在文档中打开)。(如下图1所示)

图1

二,调整原理图大小,适合可视,另存工程文件。(如下图2,3,4所示)

图2


图3


图4

三,点击Source Code标签。(如下图5所示)

图5

四,编辑main.c 代码如Proteus8.9 VSM Studio Keil编译器仿真AT89C51RD2系列018_lcd12864竖屏 (如下图6所示)

图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

七,点击窗口左下方仿真按钮,可见lcd12864屏上信息显示在屏。 (如下图8,9,10所示)

图8


图9

图10


八,选择release,点击构建工程按钮,编译工程生成Hex文件。(如下图11所示)

图11

九, 系列的001-003虚拟仿真与开发板对应已证明:虚拟仿真程序对于开发板有效,之后不再➕上下载到开发板的介绍。

附件Proteus8.9 VSM Studio Keil编译器仿真AT89C51RD2系列018_lcd12864竖屏在已安装Proteus8.9的计算机文件夹中打开即可
需要进一步了解,请加入QQ群:976235464


Keil_AT89C51RD2_018_lcd12864竖屏_02pt.rar

147.3 KB, 下载次数: 9, 下载积分: 黑币 -5

在已安装Proteus8.9的计算机文件夹中打开即可

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表