文档库 最新最全的文档下载
当前位置:文档库 › (完整版)Protues仿真12864液晶显示

(完整版)Protues仿真12864液晶显示

(完整版)Protues仿真12864液晶显示
(完整版)Protues仿真12864液晶显示

Protues仿真液晶显示

目录

1 LCD12864简介1

2 LCD12864显示原理6

2.1汉字和英文显示原理6

2.2图形显示7

2.3应用说明8

2.4指令描述9

3软件仿真12

3.1汉字显示12

3.2图形显示17

3.3同时显示多个汉字23

3.4向上滚动显示29

4小结38

1LCD12864简介

ST7920类这种控制器带中文字库,为用户免除了编制字库的麻烦,该控制器的液晶还支持画图方式。该类液晶支持68时序8位和4位并口以及串口。

<2)KS0108类这种控制器指令简单,不带字库。支持68时序8位并口。

<3)T6963C类这种控制器功能强大,带西文字库。有文本和图形两种显示方式。

有文本和图形两个图层,并且支持两个图层的叠加显示。支持80时序8位并口。

<4)COG类常见的控制器有S6B0724和ST7565,这两个控制器指令兼容。支持68时序8位并口,80时序8位并口和串口。COG类液晶的特点是结构轻便,成本低。

ST7920 GND VCC V0 RS R/W E DB0-DB7 PSB RES VOUT BLA BLK KS0108 GND VCC V0 RS R/W E DB0-DB7 CS1 CS2 RES VOUT BLA BLK

S6B0724 GND VCC RS WR RD CS DB0-DB7 RES BLA BLK

此触发器是用于模块屏幕显示开和关的控制。DFF=1为开显示

DDF的状态是指令DISPLAY ON/OFF和RST信号控制的。

5.XY地址计数器

XY地址计数器是一个9位计数器。高3位是X地址计数器,低6位为Y地址计数器,X Y地址计数器实际上是作为DDRAM的地址指针,X地址计数器为DDRAM的页指针,Y地址计数器为DDRAM的Y地址指针。

X地址计数器是没有记数功能的,只能用指令设置。

Y地址计数器具有循环记数功能,各显示数据写入后,Y地址自动加1,Y地址指针从0到63。

6.显示数据RAM

DDRAM是存储图形显示数据的。数据为1表示显示选择,数据为0表示显示非选择。DDRAM与地址和显示位置的关系见DDRAM地址表。

7.Z地址计数器

Z地址计数器是一个6位计数器,此计数器具备循环记数功能,它是用于显示行扫描同步。当一行扫描完成,此地址计数器自动加1,指向下一行扫描数据,RST复位后Z地址计数器为0。

Z地址计数器可以用指令DISPLAY START LINE预置。因此,显示屏幕的起始行就由此指令控制,即DDRAM的数据从哪一行开始显示在屏幕的第一行。此模块的DDRAM 共64行,屏幕可以循环滚动显示64行。

12864LCD的指令系统

模块控制芯片提供两套控制命令,基本指令和扩充指令如下:

指令表1:

指令表2:

备注:当IC1在接受指令前,微处理器必须先确认其内部处于非忙碌状态,即读取BF 标志时,BF需为零,方可接受新的指令。如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延长一段较长的时间,即是等待前一个指令确实执行完成。

2、字符显示

带中文字库的128X64-0402B每屏可显示4行8列共32个16×16点阵的汉字,每个显示RAM可显示1个中文字符或2个16×8点阵全高ASCII码字符,即每屏最多可实现32个中文字符或64个ASCII码字符的显示。带中文字库的128X64-0402B内部提供128×2字节的字符显示RAM缓冲区

90H91H92H93H94H95H96H97H 88H89H8AH8BH8CH8DH8EH8FH 98H99H9AH9BH9CH9DH9EH9FH

2 LCD12864显示原理

2.1汉字和英文显示原理

在数字电路中,所有的数据都是以0和1保存的,对LCD控制器进行不同的数据操作,可以得到不同的结果。对于显示英文操作,因为英文字母种类很少,只需要8位<一字节)即可。而对于中文,常用却有6000以上,于是我们的DOS前辈想了一个办法,就是将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。而剩下的低128位则留给英文字符使用,即英文的内码。

那么,得到了汉字的内码后,还仅是一组数字,那又如何在屏幕上去显示呢?这就涉及到文字的字模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形状,如英文的'A'在字模的记载方式如图1所示:

图1 “A”字模图

而中文的“你”在字模中的记载却如图2所示:

图2 “你”字模图

根据芯片的不同取模的方式不同,有多种取模方式:单色点阵液晶字模,横向取模,字节正序,单色点阵液晶字模,横向取模,字节倒序,单色点阵液晶字模,纵向取模,字节正序,单色点阵液晶字模,纵向取模,字节倒序等等。

2.2图形显示

先设垂直地址再设水平地址(连续写入两个字节的资料来完成垂直与水平的坐标地址> 垂直地址范围 AC5...AC0

水平地址范围AC3…AC0

绘图RAM 的地址计数器自动加一,当水平地址=0FH 时会重新设为00H

但并不会对垂直地址做进位自动加一,故当连续写入多笔资料时,程序需自行判断垂直地址是否需重新设定。GDRAM的坐标地址与资料排列顺序如下图:

2.3应用说明

用带中文字库的128X64显示模块时应注意以下几点:

①欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入中文字符编码。

②显示ASCII字符过程与显示中文字符过程相同。不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加1指向下一个字符位置,否则,显示的字符中将会有一个空ASCII字符位置。

③当字符编码为2字节时,应先写入高位字节,再写入低位字节。

④模块在接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取BF标志时BF需为“0”,方可接受新的指令。如果在送出一个指令前不检查BF标志,则在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前一个指令确定执行完成。指令执行的时间请参考指令表中的指令执行时间说明。

⑤“RE”为基本指令集与扩充指令集的选择控制位。当变更“RE”后,以后的指令集将维持在最后的状态,除非再次变更“RE”位,否则使用相同指令集时,无需每次均重设“RE”位。

2.4指令描述

1、显示开/关设置

CODE:

功能:设置屏幕显示开/关。 DB0=H,开显示;DB0=L,关显示。不影响显示RAM(DD RAM>中的内容。

2、设置显示起始行

CODE:

功能:执行该命令后,所设置的行将显示在屏幕的第一行。显示起始行是由Z地址计数器控制的,该命令自动将A0-A5位地址送入Z地址计数器,起始地址可以是0-63范围内任意一行。Z地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完一行后自动加一。

3、设置页地址

CODE:

功能:执行本指令后,下面的读写操作将在指定页内,直到重新设置。页地址就是DD RAM 的行地址,页地址存储在X地址计数器中,A2-A0可表示8页,读写数据对页地址没有影响,除本指令可改变页地址外,复位信号(RST>可把页地址计数器内容清零。

DD RAM地址映像表

Y 地址

4、设置列地址

CODE:

功能: DD RAM 的列地址存储在Y地址计数器中,读写数据对列地址有影响,在对DD RAM进行读写操作后,Y地址自动加一。

5、状态检测

CODE:

功能:读忙信号标志位(BF>、复位标志位(RST>以及显示状态位(ON/OFF>。

BF=H:内部正在执行操作; BF=L:空闲状态。

RST=H:正处于复位初始化状态; RST=L:正常状态。

ON/OFF=H:表示显示关

闭; ON/OFF=L:表示显示开。

6、写显示数据

CODE:

功能:写数据到DD RAM,DD RAM是存储图形显示数据的,写指令执行后Y地址计数器自动加1。D7-D0位数据为1表示显示,数据为0表示不显示。写数据到DD RAM前,要先执行“设置页地址”及“设置列地址”命令。

7、读显示数据

CODE:

功能:从DD RAM读数据,读指令执行后Y地址计数器自动加1。从DD RAM读数据前要先执行“设置页地址” 及“设置列地址”命令。

8、屏幕显示与DD RAM地址映射关系

Line 6 1/0 1/0 1/0 1/0 ………… 1/0 1/0 1/0 DB6 Line 7 1/0 1/0 1/0 1/0 ………… 1/0 1/0 1/0 DB7

…………

…………

…………

X=7 Line60 1/0 1/0 1/0 1/0 ………… 1/0 1/0 1/0 DB4 Line61 1/0 1/0 1/0 1/0 ………… 1/0 1/0 1/0 DB5 Line62 1/0 1/0 1/0 1/0 ………… 1/0 1/0 1/0 DB6 Line63 1/0 1/0 1/0 1/0 ………… 1/0 1/0 1/0 DB7

3软件仿真

3.1汉字显示

在Protues软件中选择所需元件,搭建的电路图如图1所示。

图1 仿真硬件原理图

将编写的代码烧写到单片机里,运行液晶显示不正常,如图2所示。

图2 运行图

开始我还以为是程序问题,把程序看了又看,改了又改,显示结果还是一样。后来问了下张勇生,出现这种情况的原因是P0口没接上拉电阻。因为P0口是开漏的,不管它的驱动能力多大,相当于它是没有电源的,需要外部的电路提供,绝大多数情况下P0口是必需加上拉电阻的。接上拉电阻后,重新运行这下运行正常了,如图3所示。

图3正常显示

代码如下所示:

#include

#define LCDLCDDisp_On 0x3f

#define Page_Add 0xb8//页地址

#define LCDCol_Add 0x40//列地址

#define Start_Line 0xC0//行地址

/*****液晶显示器的端口定义*****/

#define data_ora P0 /*液晶数据总线*/

sbit LCDMcs=P2^1 。 /*片选1*/

sbit LCDScs=P2^2 。 /*片选2*/

sbit RESET=P2^3 。 /*复位信号*/

sbit LCDDi=P2^4 。 /*数据/指令选择*/

sbit LCDRW=P2^5 。 /*读/写选择*/

sbit LCDEnable=P2^6 。 /*读/写使能*/

char code Hz_xu[]=

{

/*------------------------------------------------------------------------------

源文件 / 文字 : F:\LD测试仪\液晶\字模提取+排版软件\液晶字模提取\图例\wo.bmp

宽×高<像素): 16×

字模格式/大小 : 单色点阵液晶字模,纵向取模,字节倒序/32字节

数据转换日期 : 2018-7-28 17:10:17

------------------------------------------------------------------------------*/

0x40,0x42,0xCC,0x00,0x00,0x40,0x30,0x1E,0x10,0xF0,0x10,0x10,0x18,0x10,0x00,0x00,

0x00,0x00,0x3F,0x10,0x08,0x01,0x01,0x01,0x01,0x7F,0x01,0x01,0x01,0x01,0x00,0x00

}。

char code Hz_ping[]=

{

/*------------------------------------------------------------------------------

源文件 / 文字 : F:\LD测试仪\液晶\字模提取+排版软件\液晶字模提取\图例\ping.bmp萍宽×高<像素): 16×16

字模格式/大小 : 单色点阵液晶字模,纵向取模,字节倒序/32字节

数据转换日期 : 2018-7-29 8:46:30

------------------------------------------------------------------------------*/

0x00,0xC8,0x28,0x58,0x08,0x0C,0xBE,0x28,0x28,0xE8,0x3E,0x28,0xA8,0x2C,0x08,0x00, 0x00,0x08,0x09,0x7E,0x01,0x04,0x04,0x05,0x04,0x7F,0x04,0x05,0x04,0x06,0x04,0x00

}。

/****************************************************************************函数功能:LCD延时程序

入口参数:t

出口参数:

****************************************************************************/ void LCDdelay(unsigned int t>

{

unsigned int i,j。

for(i=0。i

for(j=0。j<10。j++>。

/****************************************************************************状态检查,LCD是否忙

*****************************************************************************/ void CheckState(>

{

unsigned char dat,DATA。//状态信息<判断是否忙)

LCDDi=0。 // 数据\指令选择,D/I

LCDRW=1。 //R/W="H" ,E="H"数据被读到DB7∽DB0

do

{

DATA=0x00。

LCDEnable=1。//EN下降源

LCDdelay(2>。//延时

dat=DATA。

LCDEnable=0。

dat=0x80 & dat。 //仅当第7位为0时才可操作(判别busy信号>

}

while(!(dat==0x00>>。

}

/*****************************************************************************函数功能:写命令到LCD程序,RS(DI>=L,RW=L,EN=H,即来一个脉冲写一次

入口参数:cmdcode

出口参数:

*****************************************************************************/ void write_com(unsigned char cmdcode>

{

CheckState(>。//检测LCD是否忙

LCDDi=0。

LCDRW=0。

P0=cmdcode。

LCDdelay(2>。

LCDEnable=1。

LCDdelay(2>。

LCDEnable=0。

}

/*****************************************************************************函数功能:LCD初始化程序

入口参数:

出口参数:

*****************************************************************************/ void init_lcd(>

{

LCDdelay(100>。

LCDMcs=1。//刚开始关闭两屏

LCDdelay(100>。

write_com(LCDLCDDisp_Off>。 //写初始化命令

write_com(Page_Add+0>。

write_com(Start_Line+0>。

write_com(LCDCol_Add+0>。

write_com(LCDLCDDisp_On>。

}

/*****************************************************************************函数功能:写数据到LCD程序,RS(DI>=H,RW=L,EN=H,即来一个脉冲写一次

入口参数:LCDDispdata

出口参数:

*****************************************************************************/ void write_data(unsigned char LCDDispdata>

{

CheckState(>。//检测LCD是否忙

LCDDi=1。

LCDRW=0。

P0=LCDDispdata。

LCDdelay(2>。

LCDEnable=1。

LCDdelay(2>。

LCDEnable=0。

}

/*****************************************************************************函数功能:清除LCD内存程序

入口参数:pag,col,hzk

出口参数:

*****************************************************************************/ void Clr_Scr(>

{

unsigned char j,k。

LCDMcs=0。 //左、右屏均开显示

LCDScs=0。

write_com(Page_Add+0>。

write_com(LCDCol_Add+0>。

for(k=0。k<8。k++>//控制页数0-7,共8页

{

write_com(Page_Add+k>。 //每页每页进行写

for(j=0。j<64。j++> //每页最多可写32个中文文字或64个ASCII字符

{

write_com(LCDCol_Add+j>。

write_data(0x00>。//控制列数0-63,共64列,写点内容,列地址自动加1

}

}

/*****************************************************************************函数功能:指定位置显示汉字16*16程序

入口参数:page,column,hzk

出口参数:

*****************************************************************************/ void hz_LCDDisp16(unsigned char page,unsigned char column, unsigned char code *hzk>

{

unsigned char j=0,i=0。

for(j=0。j<2。j++>

{

write_com(Page_Add+page+j>。

write_com(LCDCol_Add+column>。

for(i=0。i<16。i++>

write_data(hzk[16*j+i]>。

}

}

void main(>

{

init_lcd(>。

Clr_Scr(>。

LCDMcs=0。 //左屏开显示

LCDScs=1。

hz_LCDDisp16(0,48,Hz_xu>。// Hz_Wo为某个汉字的首地址

LCDMcs=1。 //右屏开显示

LCDScs=0。

hz_LCDDisp16(0,0,Hz_ping>。

while(1>

{

}

}

3.2图形显示

我选了一张128x64的图片在字模软件中生产相应的C代码,将C代码写入到程序中。

因为液晶由两个控制芯片来控制,所以有片选信号端口CS1和CS2。我在字体显示程序中把改了显示那一块的代码,主程序中改了片选信号。开始同时将左右屏都开了,显示事,左右屏同时显示一样的图形,并且显示的图形不完整。主程序中显示部分的程序不对,我想了后,将主程序中程序改了一下,先开左屏调用左屏显示函数,在关左屏开右屏调用右屏显示函数。最后显示成功。如图4所示。

图4 图形显示

代码如下所示:

#include

#define LCDLCDDisp_Off 0x3e

#define LCDLCDDisp_On 0x3f

#define Page_Add 0xb8//ye

#define LCDCol_Add 0x40//lie

#define Start_Line 0xC0//hang

/*****液晶显示器的端口定义*****/

#define data_ora P0 /*液晶数据总线*/

sbit LCDMcs=P2^1 。 /*片选1*/

sbit LCDScs=P2^2 。 /*片选2*/

sbit RESET=P2^3 。 /*复位信号*/

sbit LCDDi=P2^4 。 /*数据/指令选择*/

sbit LCDRW=P2^5 。 /*读/写选择*/

sbit LCDEnable=P2^6 。 /*读/写使能*/

char code Hz[]=

{

/*------------------------------------------------------------------------------

源文件 / 文字 : F:\LD测试仪\液晶\字模提取+排版软件\液晶字模提取\图例\yema.bmp萍宽×高<像素): 128×64

字模格式/大小 : 单色点阵液晶字模,纵向取模,字节倒序/1024字节

数据转换日期 : 2018-7-29 9:09:37

------------------------------------------------------------------------------*/

0x00,0x40,0x20,0x10,0x08,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x06,0x0F,0x0F,0x07,0x0F,0x0F,0x0F,0xCF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xDD,0x9F,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF0,0x78,0xF8,0xF0,0xE0,0xC0,0xC0,0x80, 0xC0,0xE0,0xE0,0xF0,0xFC,0xFE,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFD,0x3B,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x20,0x80, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0xFF,0xFC,0x9C,0x3C,0x3D,0x3F,0x7F,0xFD,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF9,0xE1,0xC3,0x87, 0x05,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFE,0xE3,0xF1, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x1F,0x1F,0x78,0xF0,0x00,0x00,0x00,0x01,

0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFE,0xFE,0xFC,0xF8,0xF0,0xE0,0x80,0x80,0x80,0xC0,0xE0,0xFF,0xDF,0x7F,0x1F, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1F,0x7F,0xFF,0xFF,0xEF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x1F,0x07,0xBF,0xFF,0x3F,0x1F,0x05,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,

0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x0E,0x0E,0x0E,0x1F,0x1F,0x07,0x9F,0xFF,

0xFF,0x7B,0x61,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x18,0x18,0x1C,0x1E,0x07,0x03,0x01,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

}。

/****************************************************************************函数功能:LCD延时程序

入口参数:t

出口参数:

****************************************************************************/ void LCDdelay(unsigned int t>

{

unsigned int i,j。

for(i=0。i

for(j=0。j<10。j++>。

}

/****************************************************************************状态检查,LCD是否忙

*****************************************************************************/ void CheckState(>

{

unsigned char dat,DATA。//状态信息<判断是否忙)

LCDDi=0。 // 数据\指令选择,D/I

LCDRW=1。 //R/W="H" ,E="H"数据被读到DB7∽DB0

do

{

DATA=0x00。

LCDEnable=1。//EN下降源

LCDdelay(2>。//延时

dat=DATA。

LCDEnable=0。

dat=0x80 & dat。 //仅当第7位为0时才可操作(判别busy信号>

}

12864液晶显示图片原理(完整版)

51单片机综合学习 12864液晶原理分析1 辛勤学习了好几天,终于对12864液晶有了些初步了解~没有视频教程学起来真有些累,基本上内部程序写入顺序都是根据程序自我变动,然后逆向反推出原理…… 芯片:YM12864R P-1 控制芯片:ST7920A带中文字库 初步小结: 1、控制芯片不同,寄存器定义会不同 2、显示方式有并行和串行,程序不同 3、含字库芯片显示字符时不必对字符取模了 4、对芯片的结构地址一定要理解清楚

5、显示汉字时液晶芯片写入数据的顺序(即显示的顺序)要清楚 6、显示图片时液晶芯片写入数据的顺序(即显示的顺序)要清楚 7、显示汉字时的二级单元(一级为八位数据写入单元)要清楚 8、显示图片时的二级单元(一级为八位数据写入单元)要清楚 12864点阵液晶显示模块(LCM)就是由128*64个液晶显示点组成的一个128列*64行的阵列。每个显示点对应一位二进制数,1表示亮,0表示灭。存储这些点阵信息的RAM称为显示数据存储器。要显示某个图形或汉字就是将相应的点阵信息写入

到相应的存储单元中。图形或汉字的点阵信息由自己设计,问题的关键就是显示点在液晶屏上的位置(行和列)与其在存储器中的地址之间的关系。由于多数液晶显示模块的驱动电路是由一片行驱动器和两片列驱动器构成,所以12864液晶屏实际上是由左右两块独立的64*64液晶屏拼接而成,每半屏有一个512*8 bits显示数据RAM。左右半屏驱动电路及存储器分别由片选信号CS1和CS2选择。显示点在64*64液晶屏上的位置由行号(line,0~63)与列号(column,0~63)确定。512*8 bits RAM中某个存储单元的地址由页地址(Xpage,0~7)和列地址(Yaddress,0~63)确定。每个存储单元存储8个液晶点的显示信息。

纯水机控制电路Protues仿真

摘要 在科学技术飞速发展的21世纪里,电子智能家居产业获得了迅速发展。很多智能电器设备都趋于智能化、人性化,这些电器设备大部分都含有CPU控制器也有可能是单片机。单片机以其高可靠性、高性价比、低电压、低功耗等一系列优势,近几年得到迅猛发展和大范围推广,普遍应用于工业控制系统、办公设备、交通出行、日常消费类产物和玩具等。并且已经深入到各行业发展的各个环节以及人民日常生活的各个方面,如车间流水线控制、交通出行记录仪等。 智能家居的发展最得力于各种传感器技术的发展,传感器的发明解决了对被测对象的某一特定信息实施无人自动监测或检出功能,并能让其使用特定方式转化成与之对应的可接受信号源的元器件。智能家居最主要就是减少人工投入,但能更加准确的服务于人们的日常生活。 纯水机控制面板系统利用单片机系统进行控制,实时传感器进行监控,外加信号传输电路和显示电路。深度分析了纯水机的工作原理,这次毕业设计也阐述了单片机设计的优点与缺点,从而更加充分体现出用单片机能使小家电实用便携、操作简单的长处。 这次设计选用的Protues仿真软件是Labcenter公司设计出的集电子电路分析、电路仿真系统于一体的软件。市面上有许多款电子仿真软件,像WEB软件、Multisim仿真软件等。虽然这些软件都简单实用,但是它们不能与单片机进行很好的配合。而PROTEUS软件就可以和单片机完美的结合,实现单片机及其电路的各种功能。因此选择了PROTEUS软件。 关键词:单片机;传感器;纯水机;Protues仿真

ABSTRACT In the rapid development of science and technology in twenty-first Century, the smart home industry has been rapid development. Many intelligent electrical appliances tend to be intelligent, humane, most of these electrical appliances are contained in the CPU controller may also be a single chip. Single chip microcomputer to the high reliability, high price, low voltage, low power consumption, and a series of advantages, in recent years obtained rapid development and promotion of a wide range, widely used in industrial control system, office equipment, transportation, daily consumption class products and toys etc.. And has penetrated into all aspects of the development of various industries and people's daily lives, such as workshop assembly line control, traffic travel, etc.. The development of smart home the most effective in the development of sensor technology, sensor of the invention solves the a particular information of an object to be measured in the implementation of unmanned automatic monitoring or detection function, and can make the use a specific way into corresponding acceptable signal source components. Smart home is the most important is to reduce labor input, but can be more accurate service to people's daily life. The pure water machine control panel system is controlled by a single chip microcomputer system, a real-time sensor is monitored, an external signal transmission circuit and a display circuit are used. Depth analysis of the principle of pure water machine, the graduation design also describes the single-chip design of the advantages and disadvantages, and thus more fully reflect with single chip to enable the strengths of small household electrical appliances, portable and practical, simple operation. This design chooses the Protues simulation software is the software which the Labcenter company designs the collection electronic circuit analysis, the circuit simulation system in one body. There are many electronic simulation software on the market, such as WEB software, Multisim simulation software, etc.. Although these software are simple and practical, but they can not be a good match with the microcontroller. And PROTEUS software can and the perfect combination of SCM, the realization of the various functions of SCM and its circuit. So select the

12864点阵型液晶显示屏的基本原理与使用方法(很详细)

12864点阵型液晶显示屏的基本原理与使用方法(很详细) 点阵LCD的显示原理 在数字电路中,所有的数据都是以0和1保存的,对LCD控制器进行不同的数据操作,可以得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需要8位(一字节)即可。而对于中文,常用却有6000以上,于是我们的DOS前辈想了一个办法,就是将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。而剩下的低128位则留给英文字符使用,即英文的内码。 那么,得到了汉字的内码后,还仅是一组数字,那又如何在屏幕上去显示呢?这就涉及到文字的字模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形状,如英文的'A'在字模的记载方式如图1所示: 图1“A”字模图 而中文的“你”在字模中的记载却如图2所示:

图2“你”字模图 12864点阵型LCD简介 12864是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×64全点阵液晶显示器组成。可完成图形显示,也可以显示8×4个(16×16点阵)汉字。 管脚号管脚名称LEVER管脚功能描述 1VSS0电源地 2VDD+5.0V电源电压 3V0-液晶显示器驱动电压 4D/I(RS)H/L D/I=“H”,表示DB7∽DB0为显示数据 D/I=“L”,表示DB7∽DB0为显示指令数据5R/W H/L R/W=“H”,E=“H”数据被读到DB7∽DB0 R/W=“L”,E=“H→L”数据被写到IR或DR 6E H/L R/W=“L”,E信号下降沿锁存DB7∽DB0 R/W=“H”,E=“H”DDRAM数据读到DB7∽DB0 7DB0H/L数据线 8DB1H/L数据线 9DB2H/L数据线 10DB3H/L数据线 11DB4H/L数据线 12DB5H/L数据线 13DB6H/L数据线 14DB7H/L数据线 15CS1H/L H:选择芯片(右半屏)信号 16CS2H/L H:选择芯片(左半屏)信号 17RET H/L复位信号,低电平复位

proteus数电仿真电路应用

p r o t e u s数电仿真电路 应用 SANY标准化小组 #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#

实验9 555定时器应用电路设计 一、实验目的: 1.了解555定时器的工作原理。 2.学会分析555电路所构成的几种应用电路工作原理。 3.熟悉掌握EDA软件工具Multisim的设计仿真测试应用。 二、实验设备及材料: 仿真计算机及软件Proteus 。 附:集成电路555管脚排列图 三、实验原理: 555电路是一种常见的集模拟与数字功能于一体的集成电路。只要适当配接少量 的元件,即可构成时基振荡、单稳触发等脉冲产生和变换的电路,其内部原理图如图 1所示,其中(1)脚接地,(2)脚触发输入,(3)脚输出,(4)脚复位,(5)脚控制电压, (6)脚阈值输入,(7)脚放电端,(8)脚电源。 图1 555集成电路功能如表1所示。 表1: 注:1.(5)脚通过小电容接地。 2.*栏对CMOS 555电路略有不同。 图2是555振荡电路,从理论上我们可以得出: 振荡周期: C R R T ?+=)2(7.021 (1) 高电平宽度: C R R t W ?+=)(7.021 ..........................…….....2 占空比: q =2 1212R R R R ++............................................…......3 图2 图3 图3为555单稳触发电路,我们可以得出(3)脚输出高电平宽度为: RC t W 1.1= (4) 四、计算机仿真实验内容及步骤、结果: 1. 时基振荡发生器: (1). 单击电子仿真软Proteus 基本界面左侧左列真实元件工具条按钮,然后 点击图4中所示的P 按钮,会弹出图5所示的对话框,在对话框keywords 中输入 ne555就可以找到555器件了 图4 图5 低* × × 低 导通

玩转12864液晶(1)--显示字符

在我们常用的人机交互显示界面中,除了数码管,LED,以及我们之前已经提到的LCD1602之外,还有一种液晶屏用的比较多。相信接触过单片机的朋友都知道了,那就是12864液晶。顾名思义,12864表示其横向可以显示128个点,纵向可以显示64个点。我们常用的12864液晶模块中有带字库的,也有不带字库的,其控制芯片也有很多种,如KS0108 T6963,ST7920等等。在这里我们以ST7920为主控芯片的12864液晶屏来学习如何去驱动它。(液晶屏采用金鹏的OCMJ4X8C) 关于这个液晶屏的更多信息,请参考它的DATASHEET,附件中有下载。 我们先来了解一下它的并行连接情况。 下面是电路连接图

从上面的图可以看出,液晶模块和单片机的连接除了P0口的8位并行数据线之外,还有RS,RW,E等几根线。其中R/S是指令和数据寄存器的选择控制线(串行模式下为片选),R/W 是读写控制线(串行模式下是数据线),E是使能线(串行模式下为时钟线)。 通过这几根控制线和数据线,再结合它的时序图,我们就可以编写出相应的驱动程序啦。 看看并行模式下的写时序图:

根据这个时序图,我们就可以写出写数据或者写命令到LCD12864液晶的子程序。 读时序图如下: 根据这个时序图我们就可以从LCD12864液晶模块内部RAM中读出相应的数据,我们的忙检测函数就是根据这个时序图写出来的。以及后面章节中讲的画点函数等都要用到读时序。有了这两个时序图,然后我们再看看OCMJ4X8C的相关指令集,就可以编写出驱动程序了。这里要注意的是指令集分为基本指令集和扩充指令集,其中扩充指令集主要是与绘图相关,在此后的章节中会有相应的介绍。 下面让我们根据这些编写出它的驱动程序吧。 我的硬件测试条件为:STC89C516(11.0592MHz) + OCMJ4X8C 实际显示效果图片如下: 程序部分如下,请结合液晶模块的DATASHEET看程序,这样能够更加快速的弄懂程序的流程。大致有如下几个函数:写数据,写指令,忙检测,初始化,指定地址显示字符串等等。[p][/p] #include "reg52.h" #include "intrins.h" sbit io_LCD12864_RS = P1^0 ;

12864LCD液晶显示原理及使用方法

12864LCD液晶显示原理及使用方法 液晶简介 液晶是一种在一定温度范围内呈现既不同于固态液态又不同于气态的特殊物质态,它既具有各向异性的晶体所特有的双折射性又具有液体的流动性液晶显示器件(英文的简写为LCD)就是利用液晶态物质的液晶分子排列状态在电场中改变而调制外界光的被动型显示器件。 点阵式图形液晶显示屏是 LCD 的一种能够动态显示图形汉字以及各种符号信息为各种电子产品提供了友好的人机界面点阵式图形液晶显示屏的主要特点如下(这些特点也就是LCD 的特点):工作电压低、微功耗、体积小、可视面积大、无电磁辐射、数字接口、寿命长等特点。 12864LCD是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×64 全点阵液晶显示器组成。可完成图形显示,也可以显示8×4 个(16×16 点阵)汉字或者显示16×4个(8×16 点阵)ASCII码。分为两种,带字库的和不带字库的。不带字库的LCD需要自己提供字库字模,此时可以根据个人喜好设置各种字体显示风格,设计上较为灵活。带字库的LCD提供字库字模,但是只能显示GB2312的宋体。各有优缺点,根据不同应用场景灵活选择。其液晶模块原理图如下所示。 12864LCD点阵图形液晶模块原理框图 下面给出了其应用连接电路,分别介绍其各引脚的功能和作用。 如下表所示:12864LCD 的引脚说明 管脚号管脚名称LEVER 管脚功能描述 1GND 0 电源地 2VCC+5.0V 电源电压 3VLCD - 液晶显示器驱动电压 4RS (D/I) H/LD/I=“H”,表示DB7∽DB0 为显示数据 D/I=“L”,表示DB7∽DB0 为显示指令数据5R/W H/L R/W=“H”,E=“H”数据被读到DB7∽DB0 R/W=“L”,E=“H→L”数据被写到IR 或DR 6EN H/L R/W=“L”,E 信号下降沿锁存DB7∽DB0

Proteus在模拟电路中仿真应用

Proteus在模拟电路中仿真应用Proteus在很多人接触都是因为她可以对单片机进行仿真,其实她在模拟电路方面仿真能力也很强大。下面对几个模块方面的典型带那路进行阐述。 第1部分模拟信号运算电路仿真 1.0 运放初体验 运算,顾名思义,正是数学上常见的加减乘除以及积分微分等,这里的运算电路,也就是用电路来实现这些运算的功能。而运算的核心就是输入和输出之间的关系,而这些关系具体在模拟电路当中都是通过运算放大器实现的。运算放大器的符号如图1所示。 同相输入端, 输出信号不反相 反相输入端, 输出信号反相 输入端 图1 运算放大器符号 运算器都工作在线性区,故进行计算离不开工作在线性区的“虚短”和“虚断”这两个基本特点。与之对应的,在Proteus中常常用到的放大器有如图2几种。 3 2 1 4 1 1 U1:A TL074 3 2 6 7 415 U5 TL071 3 2 6 7 415 U6 741图2 Proteus中几种常见放大器 上面几种都是有源放大器件,我们还经常用到理想无源器件,如图4所示,它的位置在“Category”—“Operational Amplifiers”—“OPAMP”。

图4 理想无源放大器件的位置 1.1 比例运算电路与加法器 这种运算电路是最基本的,其他电路都可以由它进行演变。 (1)反相比例运算电路,顾名思义,信号从反相输入端进入,如图5所示。 RF 10K R1 2K Volts -5.00 R1(1) 图5 反相比例运算电路 由“虚断”“虚短”可知:f o i 1 *R u u R =- 我们仿真的值:11(1)1 ,2,10i f U R V R K R K ====,

LCD12864图形液晶并口显示

LCD12864图形液晶并口显示 【教学引入】 液晶屏,在生活中很常见,我们常见的液晶显示器,如电脑的显示器,电视机,手机等等。 液晶屏在生活中已得到了普遍应用,它显示个各种各样的画面。 【教学目标】 1、掌握LCD12864液晶屏的用法; 2、编写LCD12864液晶屏的指令代码; 【知识目标】 1、掌握LCD12864液晶屏的用法; 2、掌握LCD12864液晶屏指令代码; 【教学准备】 电脑、Proteus、Keil 【教学方法】 教法:讲授法、讨论法 学法:练习法、探究法 【教学课时】 四课时 【教学过程】 一、12864液晶介绍 (1)12864是128*64点阵液晶模块的点阵数简称,业界约定俗成的简称。12864点阵的屏显成本相对较低,适用于各类仪器,小型设备的显示领域。12864M汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。

12864引脚说明 查阅“12864M.PDF”12864M液晶显示模块技术手册——四、用户指令集 1、指令表1:(RE=0:基本指令表),如下图,讲解了12864的基本指令集和扩充指令集。

当模块在接受指令前,微处理器必须先确认模块内部处于非忙碌状态,即读取BF标志时BF需为0。“RE”为基本指令集与扩充指令集的选择控制位元,往后的指令集将维持在最后的状态。 当选择G=0 :绘图显示OFF,汉字显示的时,12864屏只能显示8X4=32个汉字,下面是汉字显示的坐标

二、12864液晶屏驱动电路 AT89C52的P0口连接12864的并行数据口,RP1为P0口的上拉排阻。 三、52代码编写 (1)打开keil uVision4,建立一个新的工程,工程名为"12864 graphic LCD parallel display",保存类型*.uvproj,单片机型号AT89C52。在工程中添加12864 graphic LCD parallel display.c文件,如下图

12864显示图形

看到工具箱旁边那个LCD12864很久没用了(当初买回来用的时候只是简单地测试了一下),于是萌生了重新写一次接口程序的想法(而且这次要给它加个图片显示的功能),好,说做就做,就用Atmega16和ICCAVR来做吧,最近这MCU和平台用得比较熟练。 马上从书堆里把当初打印出来的中文datasheet给翻了出来,依葫芦画瓢地写了个初始化程序。好,OK。编译通过。于是又写了一个可以自定义从XY坐标值开始输出显示的函数,再次编译,也通过,OK。于是呼马上写了四行简单的字符烧到单片机上试了一下,嘿嘿,一次通过。如下图: 后来在进一步测试的时候也出了点小问题。就是我是使用USBISP烧写器把程序烧写进AVR的(此时实验板由USBISP烧写器供电),想要实现从第一行的第一个字符开始连续显示"0123456789"。刚烧写完程序后能看到LCD12864上正常显示"0123456789",但是把烧写器从实验板上断开连接,单独用USB给实验板供电的时候,LCD的第一行只是显示"123456789",第一个字符消失了……,左思右想地弄了一个多小时后,终于把问题给解决了,就是把初始化程序的延时适当增加了些,真是奇怪。刚开始一直想不通为什么在烧写器供电的情况下就正常显示,而换到USB供电后就出了问题。后来再想想,估计是跟供电有关。在使用USBISP烧写器供电的时候,LCD的背光灯明显比用USB供电的时候来得亮,而且对比度也高很多,看来是因为换到USB供电后,供电不怎么充足,以至于LCD在上电初始化的时候花上了更多的时间去初始化(因为供电低了,功率小了,跑起来有点力不从心,用的时间就久了嘛……我是觉得可以这样去理解的 接下来呢,就到了有点难度的画图了。当初刚买到12864的时候只是简单测试了字符显示功能,除了因为画图还不需要用到,另外一个原因就是那datasheet上关于画图那部分的内容不怎么看得懂…。现在重新拿起来看,依然一头雾水……。马上上网百度了一下“12864 7920 显示图片”,看到了不少的例子程序,可是……就是没看到有关于这部分功能实现的详细思路和讲解……下载下来的那些程序,基本上没注释,不是说晦涩难懂,但是至少看起来一团糟,让人家不想继续看下去……于是还是硬着头皮去啃那datasheet。上面对于画图这部分的内容是这样讲解的:

LCD12864液晶显示模块(中文资料)

FYD12864液晶中文显示模块

(一) (一)概述 (3) (二)(二)外形尺寸 1 方框图 (3) 2 外型尺寸图 (4) (三)(三)模块的接口 (4) (四)(四)硬件说明 (5) (五) 指令说明 (7) (五)(五)读写操作时序 (8) (六)(六)交流参数 (11) (七)(七)软件初始化过程 (12) (八)(八)应用举例 (13) (九)(九)附录 1半宽字符表 (20) 2 汉字字符表 (21) 一、概述 FYD12864-0402B是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。 基本特性: ●●低电源电压(VDD:+3.0--+5.5V)

●●显示分辨率:128×64点 ●●内置汉字字库,提供8192个16×16点阵汉字(简繁体可选) ●●内置 128个16×8点阵字符 ●●2MHZ时钟频率 ●●显示方式:STN、半透、正显 ●●驱动方式:1/32DUTY,1/5BIAS ●●视角方向:6点 ●●背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10 ●●通讯方式:串行、并口可选 ●●内置DC-DC转换电路,无需外加负压 ●●无需片选信号,简化软件设计 ●●工作温度: 0℃ - +55℃ ,存储温度: -20℃ - +60℃ 二、方框图 3、外形尺寸图

protues 仿真简单步骤

Protues 仿真简单步骤一:编程 仿真的首先要有自己的程序,根据你的程序以及你要达到的目的才可以选择硬件,进行protues仿真,每个人的课题不一样,程序就自己搞定(你懂得)。老师要求是汇编语言,如果你的程序是c语言的,请致电魏钦玉,他会教你如何用keil 软件生成所需源文件,电话自己找。 二:软件安装 你的电脑里一定有protues软件吧,如果没有的话在我们班级群里说一下,我们班很多人都会给你的,软件安装自己百度就可以了,有一定的步骤,一步一步来就可以了。软件安装好之后是英文版的,如果你想汉化也可以,百度安装步骤里有说明,找我们班同学也可以,建议使用英语版的,与国际接轨。。。 三:线路图 A:打开ISIS 7 Professional,找到自己需要的所有原件 在软件左侧有一个工具栏, 第一个黑色的箭头是selection mode,是选 泽模式,第二个箭头是component mode, 是组件模式,就是我们选择元器件的工具,

点击之后,你会看见两个字母P 和L, 单机字母P 会弹出一个窗口,keyword是搜索用 找到自己的元器件后,单机可以在右侧看见元器件的具体信息,点击ok或者双击元器件即可添加,找出自己的所有元器件即可做下一步(温馨提示:里面的有些元器件比较难区分,选择的时候谨慎一些,比如选择显示器,共阴极和共阳极比较容易混淆) 另外:power和ground是在左侧的工具栏里选择的,左侧工具栏里有一个terminals mode 工具,点击之后会出现如图所示页面,同选择元器件一样选择power或者ground即可 B:元器件的布置 元器件如何布置就要看个人喜好了,这里讲一下相关的一些 工具应用 首先是你选择元器件的字母P 左侧有几个旋转按钮,点击元 器件后课看见元器件是如何放置的,竖直或者水平,按旋转 按钮可改变状态,点击元器件之后,在软件主页面上单击左 键可以预览,再次点击左键可以确定位置,左键单击软件主 页面上的元器件,再双击右键可以删除,或者单击右键再选择 delete 。元器件的位置自己安排得当就可以,

在12864显示任意图片及参考程序

用12864显示单色图片 首先介绍本12864液晶显示器: 型号:QC12864B 因为单片机读取的是数据,而不是直接的图片。得将图片进行取模,图片应该是单色图片,像素128*64。 下面我为大家介绍个实例。 ①、在电脑附件画图,首先设置属性

开始画图 保存文件,注意格式: ②、然后进行取模。

③、编程: #include #define uchar unsigned char #define uint unsigned int //宏定义 #define lcd P2 //数据端口 sbit rs=P1^2; //指令/数据选择信号 sbit rw=P1^1; //读写选择信号 sbit e=P1^0; //使能端 sbit psb=P1^3; //串并选择端,高电平为并行,低电平为串行 uchar code ai[]={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0xC0,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0xCE,0x00,0x00,0x00,0x00,0x00,0x01,0xC1,0xE0,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xC7,0x00,0x00,0x00,0x00,0x00,0x03,0x31,0xC0,0x00,0x00,0x00, 0x00,0x00,0x00,0x0E,0xC0,0x00,0x00,0x00,0x00,0x00,0x03,0x9B,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x1F,0xC0,0x00,0x00,0x00,0x00,0x00,0x01,0x82,0x08,0x00,0x00,0x00, 0x00,0x00,0x00,0x78,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFC,0x00,0x00,0x00, 0x00,0x00,0x00,0xF8,0xEF,0x00,0x00,0x00,0x00,0x00,0x1B,0xFC,0x1E,0x00,0x00,0x00, 0x00,0x00,0x00,0x18,0xFE,0x00,0x00,0x00,0x00,0x00,0x1E,0x60,0x38,0x00,0x00,0x00, 0x00,0x00,0x00,0x1F,0xE0,0x00,0x00,0x00,0x00,0x00,0x38,0x70,0x20,0x00,0x00,0x00,

Proteus电路仿真常用符号

有两种方法,可以从器件列表中选择,也可以直接搜索,搜索方法直接键入关键字就可以,比如电阻是RES,电容是CAP等,下面给你列出一些常用的。 AND 与门 ANTENNA 天线 BA TTERY 直流电源 BELL 铃,钟 BVC 同轴电缆接插件 BRIDEG 1 整流桥(二极管) BRIDEG 2 整流桥(集成块) BUFFER 缓冲器 BUZZER 蜂鸣器 CAP 电容 CAPACITOR 电容 CAPACITOR POL 有极性电容 CAPV AR 可调电容 CIRCUIT BREAKER 熔断丝 COAX 同轴电缆 CON 插口 CRYSTAL 晶体整荡器 DB 并行插口 DIODE 二极管 DIODE SCHOTTKY 稳压二极管 DIODE VARACTOR 变容二极管 DPY_3-SEG 3段LED DPY_7-SEG 7段LED DPY_7-SEG_DP 7段LED(带小数点) ELECTRO 电解电容 FUSE 熔断器 INDUCTOR 电感 INDUCTOR IRON 带铁芯电感 INDUCTOR3 可调电感 JFET N N沟道场效应管 JFET P P沟道场效应管 LAMP 灯泡 LAMP NEDN 起辉器 LED 发光二极管 METER 仪表 MICROPHONE 麦克风 MOSFET MOS管 MOTOR AC 交流电机 MOTOR SERVO 伺服电机 NAND 与非门 NOR 或非门 NOT 非门

NPN NPN三极管 NPN-PHOTO 感光三极管 OPAMP 运放 OR 或门 PHOTO 感光二极管 PNP 三极管 NPN DAR NPN三极管 PNP DAR PNP三极管 POT 滑线变阻器 PELAY-DPDT 双刀双掷继电器 RES1.2 电阻 RES3.4 可变电阻 RESISTOR BRIDGE ? 桥式电阻 RESPACK ? 电阻 SCR 晶闸管 PLUG ? 插头 PLUG AC FEMALE 三相交流插头 SOCKET ? 插座 SOURCE CURRENT 电流源 SOURCE VOLTAGE 电压源 SPEAKER 扬声器 SW ? 开关 SW-DPDY ? 双刀双掷开关 SW-SPST ? 单刀单掷开关 SW-PB 按钮 THERMISTOR 电热调节器 TRANS1 变压器 TRANS2 可调变压器 TRIAC ? 三端双向可控硅 TRIODE ? 三极真空管 V ARISTOR 变阻器 ZENER ? 齐纳二极管 DPY_7-SEG_DP 数码管 SW-PB 开关 元件名称中文名说明 7407 驱动门 1N914 二极管 74Ls00 与非门 74LS04 非门 74LS08 与门 74LS390 TTL 双十进制计数器 7SEG 4针BCD-LED 输出从0-9 对应于4根线的BCD码7SEG 3-8译码器电路 BCD-7SEG转换电路

Protues对放大电路的仿真

Protues对放大电路的仿真 摘要运用Protues仿真软件,通过对单管共射放大电路的仿真,详细描述了Protues仿真软件的使用方法。 关键词Protues;放大电路;仿真操作 Proteus 软件具有强大的调试功能和软硬件相结合的仿真系统,多用来调试单片机程序和仿真单片机外围器件的工作情况,一般情况下该仿真软件学习和单片机课程是同时开设的,同学们往往因为对软件不熟悉,而仿真不出应有的效果,学习积极性受到挫折。为了使同学们提前熟悉Proteus 软件的环境,我们在电子技术部分就开始使用该软件进行仿真,为今后单片机电路仿真做好准备。 1 原理图的绘制 1)新建一个设计 选择工具栏里的“”按钮,然后单击“文件”选择“文件另存为”,在弹出的对话框中选择一个路径,并在文件名框输入“单管共射放大电路”,再单击保存即完成一个电路设计。 2)元件的选取 首先选择“器件和仪器工具栏”的“”图标如图1所示,然后单击“ ”按钮,弹出“Pick Devices”窗口如图2所示。这时我们可以在关键词中输入要选择的元件的类型名称,在结果中就可以看到想要的相应类型元件,根据电路所需的具体型号在结果中双击该元件,即可将该元件添加到“DEVICE”栏目下。有些元件名称我们不熟悉,可以参考Protues 的元件库中英文对照表来进行选择。对于电源和地,需要左键单击“”按钮,这时在左侧元件列表中就会看到电源“POWER”和地线“GROUND”可供选取。正弦交流信号的选取,左键单击:“”,然后从元件列表中选择“SINE”即可。 3)元件的放置 isis操作页面的中右侧是搭建硬件电路系统原理图和显示系统运行状态的区域。点击已选好的“元件列表”中的元件,在工作区的任意位置点击左键就可将该元件放入工作区内,注意元件之间要留出一定距离,以方便连线。 4)元件的编辑 有些元件在放置完成后,由于元件方向或位置需要调整,这时需要按下工具栏中的“”按钮,在绘图区选中(单击或框选)需要编辑的元件,对其进行移动、旋转或复制操作。

12864LCD液晶显示屏中文资料

12864LCD液晶显示屏中文资料 一、概述 二、带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。 三、基本特性: (1)、低电源电压(VDD:+3.0--+5.5V)(2)、显示分辨率:128×64点(3)、内置汉字字库,提供8192个16×16点阵汉字(简繁体可选) (4)、内置 128个16×8点阵字符(5)、2MHZ时钟频率(6)、显示方式:STN、半透、正显(7)、驱动方式:1/32DUTY,1/5BIAS (8)、视角方向:6点(9)、背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10 (10)、通讯方式:串行、并口可选(11)、内置DC-DC转换电路,无需外加负压(12)、无需片选信号,简化软件设计(13)、工作温度: 0℃ - +55℃ ,存储温度: -20℃ - +60℃ 模块接口说明: *注释1:如在实际应用中仅使用串口通讯模式,可将PSB接固定低电平,也可以将模块上的J8和“GND”用焊锡短接。 *注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。 *注释3:如背光和模块共用一个电源,可以将模块上的JA、JK用焊锡短接。 2.2并行接口

LCD12864字符显示

/******************************************************** LCD12864字符显示 ********************************************************/ #include #include #include #include #define uchar unsigned char #define uint unsigned int //宏定义 /*****LCD接口定义*****/ sbit LCD_RS = P2^0; //1:输入数据;0:输入命令 sbit LCD_RW = P2^1; //1:读数据0:写数据 sbit LCD_EN = P2^2; //LCM使能端 //sbit LCD_PSB = P2^3; //串并口选择1:并口模式; 0:串口模式; #define LCD_DATA P1 //LCD总线端口 /*****LCD功能初始化指令*****/ #define CLEAR_SCREEN 0x01 //清屏指令:清屏且AC值为00H #define AC_INIT 0x02 //将AC设置为00H。且游标移到原点位置 #define CURSE_ADD 0x06 //设定游标移到方向及图像整体移动方向(默认游标右移,图像整体不动) #define FUN_MODE 0x30 //工作模式:8位基本指令集 #define DISPLAY_ON 0x0c //显示开,显示游标,且游标位置反白 #define DISPLAY_OFF 0x08 //显示关 #define CURSE_DIR 0x14 //游标向右移动:AC=AC+1 #define SET_CG_AC 0x40 //设置AC,范围为:00H~3FH #define SET_DD_AC 0x80 /*****汉字地址表*****/ uchar code addr_tab[]={ //便于根据汉字坐标求出地址 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,//第一行汉字位置 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,//第二行汉字位置 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,//第三行汉字位置 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,//第四行汉字位置 }; /*****n(ms)延时子程序*****/ void delayms(uint t) //约延时n(ms) { uint i; while(t--) { for(i=0;i<150;i++);

数电课设--带proteus仿真的电子秒表设计

沈阳工业大学 课程设计 课程:数电课程设计题目:电子秒表 专业班级: 通信工程1003班

学号: 100404308、309、315 学生姓名: 张路、刘智佳、吴开来 指导教师: 赵柏山 完成时间: 2013年6月25日 目录 第1章设计要求 ............................. 第2章设计方案 ............................. 第3章总电路设计思路................... 第4章分解电路的设计及说明........ 第5章电路的仿真.......................... 第6章设计总结及心得体会............

参考文献: ...................................... 附录:.............................................. 第1章设计要求 结合数字逻辑电路知识,设计或分析下述功能电路,利用Proteus软件对电路进行功能仿真,并基于仿真结果对电路进行功能改进。给出仿真机及分析过程及结果。 设计参数:

1.设计可控的计数器(定时器)、分频器、键去抖电路和动态扫描显示电路; 2.设计系统顶层电路; 3.进行功能仿真和时序仿真; 4.对仿真结果进行分析,确认仿真结果达到了设计要求: 1.分析设计要求,明确性能指标。必须仔细分析课题要求、性能、指标及应用环境等,广开思路,构思出各种总体方案,绘制结构框图。 2.确定合理的结构方案,对各种方案进行比较,以电路的先进性、结构的繁简、成本的高低及制作的难易等方面作综合比较并考虑器件的来源,敲定可行方案。 3.设计各单元电路。总体方案化整为零,分解成若干子系统或单元电路,逐个设计。

12864液晶显示程序(图案+文字)

#include sbit LCD12864_RS = P2^0; //RS控制引脚 sbit LCD12864_RW = P2^1; //RW控制引脚 sbit LCD12864_EN = P2^2; //EN控制引脚 sbit LCD12864_PSB = P2^3; //模式选择引脚,ST7920控制器,1为8位并行接口,0为串行接口 #define LCDPORT P0//数据引脚 void LCD12864_Init(void); //LCD12864初始化函数 void LCD12864_WriteInfomation(unsigned char ucData,bit bComOrData); //向LCD12864写入数据,bComOrData为1时写入的是数据,0时写入的是命令 void LCD12864_CheckBusy(void);//忙检测函数 void LCD12864_DisplayImage(unsigned char code *ucImage); void Delay(unsigned int uiCount); unsigned char code ucPic1[]={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x06,0x30,0x01,0xE0,0x00,0x00,0x2A,0x00,0x00,0xD8,0x00,0x00,0x00,0x00,0x00, 0x00,0x0F,0x7B,0x63,0xE0,0x00,0x00,0x22,0x00,0x01,0x24,0x00,0x00,0x00,0x00,0x00, 0x00,0x0F,0xFB,0x63,0x07,0x34,0x00,0x14,0x00,0x01,0x04,0x00,0x00,0x00,0x00,0x00, 0x00,0x0D,0xDB,0x63,0x01,0xBC,0x00,0x08,0x00,0x00,0x88,0x00,0x00,0x00,0x00,0x00, 0x00,0x0C,0x1B,0x63,0x07,0xB0,0x00,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x00,0x00, 0x00,0x0C,0x1B,0x63,0xED,0xB0,0xDB,0x00,0x01,0x00,0x20,0x00,0x00,0x00,0x00,0x00, 0x00,0x0C,0x19,0xE1,0xE7,0xB0,0xDB,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0C,0x19,0xE1,0xE7,0xB0,0xDB,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x05,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x0A,0x80,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0A,0x00,0x00,0xFF,0xF8,0xE0,0x05,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x06,0xC0,0x15,0x00,0x1F,0xFF,0xFF,0xC0,0x02,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x09,0x20,0x11,0x00,0xFB,0xFF,0xE1,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x08,0x20,0x0A,0x03,0x9F,0x00,0x9E,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x04,0x40,0x04,0x0E,0x70,0x00,0x81,0xC7,0x80,0x01,0x40,0x00,0x00,0x00,0x00, 0x00,0x02,0x80,0x00,0x1D,0x80,0x00,0xE0,0x61,0xE0,0x02,0xA0,0x00,0x00,0x00,0x00, 0x00,0x01,0x00,0x00,0x77,0x9F,0xFC,0xF0,0x18,0xF8,0x02,0x20,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0xDF,0x00,0x00,0xF3,0x0C,0x3C,0x01,0x40,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x03,0x9E,0x00,0x00,0xF8,0x06,0x1E,0x00,0x80,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x07,0x0E,0x30,0x01,0xFC,0x7F,0x07,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x07,0x0E,0x30,0x01,0xFC,0x7F,0x07,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x7E,0xFF,0xFF,0xFF,0xFF,0xFF,0x83,0xC0,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x0F,0xFD,0xFF,0xFF,0xFF,0xFF,0xFC,0x01,0xF0,0x00,0x00,0x00,0x00,0x00,

相关文档
相关文档 最新文档