单片机c语言1602怎么接线,lcd1602中文资料分享:lcd1602接线图_lcd1602与单片机连接图 - 全文...

lcd1602液晶屏在很懂工业产品上都有应用,LCD1602能够能够同时显示32个字符,价格便宜,编程简单而且稳定可靠。lcd1602液晶屏是一种图形点阵显示器,显示原理简单易懂,都是液晶屏内部的液晶材料变化而显示不同的字符,因为液晶是具有流动特性的物质,所以只需外加很微小的力量即可使液晶分子运动,以最常见普遍的向列型液晶为例,液晶分子可轻易的借着电场作用使得液晶分子转向,由于液晶的光轴与其分子轴相当一致,故可借此产生光学效果,而当加于液晶的电场移除消失时,液晶将借着其本身的弹性及黏性,液晶分子将十分迅速的回撤消来未加电场前的状态。

lcd1602液晶屏就是通过电压来改变填充在两块平行板之间的液晶材料内部分子的排列状况,以达到遮光和透光的目的来显示深浅不一,错落有致的图象,而且只要在两块平板间再加上三元色的滤光层,就可实现显示彩色图象。

86fe7e0a43493ded2842c29d77f2c72f.png

lcd1602中文资料---LCD1602液晶屏特点

a. 显示质量高

由于1602LCD每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,画质高且不会闪烁。

b. 数字式接口

1602液晶屏都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。

c. 体积小、重量轻

1602液晶模块通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示屏要轻得多。

d. 功耗低

相对而言,1602液晶显示屏的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示屏要少得多。

液晶显示模块LCD1602的内部结构可以分成三部分:一为LCD控制器,二为LCD驱动器,三为LCD显示装备。

838f2341cd7949a653a355142784e93f.png

3c4e85458b02fd83b720c972144e1400.png

lcd1602中文资料---lcd1602接线图

在了解LCD1602接线图之前,我们先看看LCD1602的引脚定义图。

1脚:VSS为接地;

2脚:VDD接5V电源VCC;

3脚:VO为液晶显示器对比度调整;VO是液晶显示的偏压信号,可接10K的3296精密电位器。或同样阻值的RM065/RM063蓝白可调电阻。

56bcfe6228bf409b0ffb60d94fb4d765.png

4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器;

5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据;

6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令;

7~14脚:D0~D7为8位双向数据线;

15脚:背光电源正极;

16脚:背光电源负极。

31b20c8f213edd6e8e244f522677b3ab.png

6ca442f73283b841606941b51eb6a9d0.png

LCD1602液晶显示模块可以和单片机AT89C51直接接口接线:

2a08aa21a8f6812d33b5bd0ced5f3264.png

也可以按照下图显示的电路图接线即可,需要说明的是在这个电路图中,LCD的第三脚VEE没有接,这个脚是控制屏幕对比度的。可以将电位器的两端分别接VCC和GND,中间端接LCD的第三脚。

74e6a338d6b4d556e8554305baf80e43.png

lcd1602中文资料---1602LCD主要技术参数

显示容量:16×2个字符 ;芯片工作电压:4.5—5.5V ;工作电流:2.0mA(5.0V) ;模块最佳工作电压:5.0V ;字符尺寸:2.95×4.35(W×H)mm。

LCD1602的基本操作分为四种:

1. 读状态:输入RS=0,RW=1,E=高脉冲。输出:D0—D7为状态字。

2. 读数据:输入RS=1,RW=1,E=高脉冲。输出:D0—D7为数据。

3. 写命令:输入RS=0,RW=0,E=高脉冲。输出:无。

4. 写数据:输入RS=1,RW=0,E=高脉冲。输出:无。

时序时间参数表:

22905984186db27e69322d6b006669dc.png

4daec82808fcfe83c44312f603290022.png

lcd1602中文资料----lcd1602与单片机连接图

LCD1602如何接单片机了?给大家分享一个LCD1602接单片机原理PCB图如下:

a25f523d14611a13cc59feaa92fdda7b.png

代码如下:

#include《reg52.h》 //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

#include《intrins.h》

sbit RS = P2^4; //定义端口

sbit RW = P2^5;

sbit EN = P2^6;

#define RS_CLR RS=0

#define RS_SET RS=1

#define RW_CLR RW=0

#define RW_SET RW=1

#define EN_CLR EN=0

#define EN_SET EN=1

#define DataPort P0

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

uS延时函数,含有输入参数 unsigned char t,无返回值

unsigned char 是定义无符号字符变量,其值的范围是

0~255 这里使用晶振12M,精确延时请使用汇编,大致延时

长度如下 T=tx2+5 uS

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

void DelayUs2x(unsigned char t)

{

while(--t);

}

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

mS延时函数,含有输入参数 unsigned char t,无返回值

unsigned char 是定义无符号字符变量,其值的范围是

0~255 这里使用晶振12M,精确延时请使用汇编

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

void DelayMs(unsigned char t)

{

while(t--)

{

//大致延时1mS

DelayUs2x(245);

DelayUs2x(245);

}

}

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

判忙函数

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

bit LCD_Check_Busy(void)

{

DataPort= 0xFF;

RS_CLR;

RW_SET;

EN_CLR;

_nop_();

EN_SET;

return (bit)(DataPort & 0x80);

}

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

写入命令函数

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

void LCD_Write_Com(unsigned char com)

{

// while(LCD_Check_Busy()); //忙则等待

DelayMs(5);

RS_CLR;

RW_CLR;

EN_SET;

DataPort= com;

_nop_();

EN_CLR;

}

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

写入数据函数

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

void LCD_Write_Data(unsigned char Data)

{

//while(LCD_Check_Busy()); //忙则等待

DelayMs(5);

RS_SET;

RW_CLR;

EN_SET;

DataPort= Data;

_nop_();

EN_CLR;

}

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

清屏函数

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

void LCD_Clear(void)

{

LCD_Write_Com(0x01);

DelayMs(5);

}

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

写入字符串函数

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

void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s)

{

if (y == 0)

{

LCD_Write_Com(0x80 + x); //表示第一行

}

else

{

LCD_Write_Com(0xC0 + x); //表示第二行

}

while (*s)

{

LCD_Write_Data( *s);

s ++;

}

}

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

写入字符函数

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

void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data)

{

if (y == 0)

{

LCD_Write_Com(0x80 + x);

}

else

{

LCD_Write_Com(0xC0 + x);

}

LCD_Write_Data( Data);

}

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

初始化函数

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

void LCD_Init(void)

{

LCD_Write_Com(0x38); /*显示模式设置*/

DelayMs(5);

LCD_Write_Com(0x38);

DelayMs(5);

LCD_Write_Com(0x38);

DelayMs(5);

LCD_Write_Com(0x38);

LCD_Write_Com(0x08); /*显示关闭*/

LCD_Write_Com(0x01); /*显示清屏*/

LCD_Write_Com(0x06); /*显示光标移动设置*/

DelayMs(5);

LCD_Write_Com(0x0C); /*显示开及光标设置*/

}

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

主函数[上面已经把显示功能封装好了,今后再写其他显示就直接调用]

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

void main(void)

{

LCD_Init();

LCD_Clear();//清屏

while (1)

{

LCD_Write_Char(7,0,‘o’);

LCD_Write_Char(8,0,‘k’);

LCD_Write_String(1,1,“www.doflye.net”);

while(1);

}

}

lcd1602中文资料-----LCD1602的3引脚VO怎么接

VO为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

LCD1602的VO引脚必须不能悬空,要连接一个滑动变阻器来调节的,当然LCD1602有多种型号,但是大多数的VO脚只有两种情况:一个是VO脚接18欧的下拉电阻接地,一个是接1k欧的电阻接地,当然,也可以接个滑动变阻器更好。

247cb0acf3de1d41cccf8dbe704242e7.png

71e34f0d3ad0cfa9db9e1f30371382d5.png

一般用上图,具体看看你LCD1602的技术手册说明VO引脚的具体情况

lcd1602与单片机连接图----实例解读

下面我们分享以一个实例。LCD1602的型号是16条引脚的HJ1602A;单片机最小系统(扩充了外部RAM 62256),采用STC89C52RC,晶振22.1184MHZ。以5×8点阵,16×2行,8位数据端口。首先在第一行显示“I love MCU!”,第二行显示“LCD1602 Test!”。延时一段时间,清屏。然后在第一行显示自定义字符:摄氏温标标志。第二行显示圆周率(pai)标志。再延时一段时间,清屏。最后在第一行显示“Welcome to my blog!”,显示方式是从屏幕右面移入,左面移出。周而复始。

e8e3fab6930abad60523ad1316e66c79.png

//File1

#ifndef __ZHANGTYPE_H__

#define __ZHANGTYPE_H__

#define uint8 unsigned char

#define uint16 unsigned short int

#define uint32 unsigned long int

#define int8 signed char

#define int16 signed short int

#define int32 signed long int

#define uint64 unsigned long long int

#define int64 signed long long int

#endif

//File2

#ifndef __FUN_H__

#define __FUN_H__

#include “ZhangType.h”

#include

void Delay(uint16 time);

#endif

//File3

#include “fun.h”

void Delay(uint16 TIme)

{

while(TIme--);

}

//File4

#ifndef __1602_H__

#define __1602_H__

#include

#include “ZhangType.h” //变量类型

#include “fun.h” //常用函数

#define SETMODE 0x38 //16*2显示,5*7点阵,8位数据接口

#define DISOPEN 0x0C //显示开,不显示光标,光标不闪烁

#define DISMODE 0x06 //读写字符后地址加1,屏显不移动

#define SETADDR 0x80 //设置数据地址指针初始值

#define CLEAR 0x01 //清屏,数据指针清零

#define RET 0x02 //回车,数据指针清零

#define PORT P2 //I/O口

sbit RS = P1^0;

sbit RW = P1^1;

sbit E = P1^2;

void Init1602(void); //初始化1602

void Write1602_Com(uint8 com); //写命令

void Write1602_Dat(uint8 dat); //写数据

void CheckBusy(void); //检查忙

void Write1602_One_Dat(uint8 X,uint8 Y,uint8 dat); //写一个数据

void Write1602_Str(uint8 addr,uint8 length,uint8 *pbuf); //写一个数据串

#endif//

//File5

#include “1602.h”

void Write1602_Com(uint8 com)

{

E=0;

RS=0; //命令

Delay(50); //延时

RW=0; //写

Delay(50);

PORT=com; //端口赋值

Delay(50);

E=1; //高脉冲

Delay(50);

E=0;

}

void Write1602_Dat(uint8 dat)

{

E=0;

RS=1; //数据

Delay(50); //延时

RW=0; //写

Delay(50);

PORT=dat; //端口赋值

Delay(50);

E=1; //高脉冲

Delay(50);

E=0;

}

void CheckBusy(void)

{

uint8 temp;

RS=0; //命令

RW=1; //读

E=0;

while(1)

{

PORT=0xFF; //端口为输入

E=1; //高脉冲

temp=PORT;

E=0;

if ((temp&0x80)==0) //检查BF位是否为0

break;

}

}

void Init1602(void)

{

Write1602_Com(SETMODE); //模式设置

Delay(500);

Write1602_Com(DISOPEN); //显示设置

Delay(500);

Write1602_Com(DISMODE); //显示模式

Delay(500);

Write1602_Com(CLEAR); //清屏

Delay(500);

}

void Write1602_One_Dat(uint8 x,uint8 y,uint8 dat)

{

x&=0x0f;

y&=0x01;

if(y)

x|=0x40;

x|=0x80;

Write1602_Com(x);

Write1602_Dat(dat);

}

void Write1602_Str(uint8 addr,uint8 length,uint8 *pbuf)

{

uint8 i;

Write1602_Com(addr);

for(i=0;i

{

Write1602_Dat(pbuf[i]);

}

}

//File6

*******************************************************

*名称:主文件(_main.c)

*功能:测试

*日期:2014/09/09

*******************************************************/

#include “1602.h”

#include “fun.h”

uint8 code hot[8]={ //摄氏温度字模

0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00

};

uint8 code pi[8]={

0x00,0x1f,0x0a,0x0a,0x0a,0x13,0x00,0x00 //pai

};

uint8 code strMCU[]=“I love MCU!”;

uint8 code strTest[]=“LCD1602 Test!”;

uint8 code blog[]=“Welcome to my blog!”;

uint8 i;

void main()

{

Init1602(); //初始化1602

//自定义CGRAM

Write1602_Str(0x40,8,hot); //摄氏温标

Write1602_Str(0x48,8,pi); //pai

Write1602_Str(0x80,strlen(strMCU),strMCU); //“I love MCU!”

Write1602_Str(0x80+0x40,strlen(strTest),strTest); //“LCD1602 Test!”

for(i=0;i《50;i++) //延时一段时间

Delay(10000);

Write1602_Com(CLEAR); //指令执行时间较长

Delay(500); //多加一些延时

for(i=0;i《16;i++)

Write1602_Dat(0);

Write1602_Com(0xc0); //设置DDRAM地址

for(i=0;i《16;i++)

Write1602_Dat(1);

for(i=0;i《50;i++) //延时一段时间

Delay(10000);

Write1602_Com(CLEAR); //指令执行时间较长

Delay(500); //多加一些延时

Write1602_Str(0x80+0x10,strlen(blog),blog); //写在显示之外

while(1)

{

Write1602_Com(0x18); //左移

for(i=0;i《20;i++) //延时

Delay(10000);

}

}

//####### THE END ######

lcd1602与单片机连接图----LCD1602与8051单片机接线图

下图是LCD1602与8051单片机的接口图,图中LCD1602的数据线与8051的P2口相连,RS与8051的P1.7相连,R/W与8051的P1.6相连,E端与8051的P1.5相连。编程在LCD显示器的第1行、第1列开始显示“HOW”,第2行、第5列开始显示“ARE YOU!”。

8ffdb97c1aab8b502a494f0aa5e26d27.png

LCD1602与8051单片机接线图

汇编语言程序:

RS BIT P1.7

RW BIT P1.6 E BIT P1.5 ORG 00H AJMP START

ORG 50H ;主程序

START: MOV SP,#50H ACALL INIT

MOV A,#10000000B ;写入显示缓冲区起始地址为第1行第1列 ACALL WC51R

MOV A,#‘H’ ;第1行第1列显示字母‘H’ ACALL WC51DDR MOV A,#‘O’ ;第1行第2列显示字母“O” ACALL WC51DDR MOV A,#‘W’ ;第1行第3列显示字母‘W’

ACALL WC51DDR

MOV A,#11000100B ;写入显示缓冲区起始地址为第2行第5列 ACALL WC51R

MOV A,#‘A’ ;第2行第5列显示字母‘A’ ACALL WC51DDR MOV A,#‘R’ ;第2行第6列显示字母‘R’ ACALL WC51DDR MOV A,#‘E’ ;第2行第7列显示字母‘E’ ACALL WC51DDR MOV A,#‘ ’ ;第2行第8列显示字母‘ ’ ACALL WC51DDR MOV A,#‘Y’

;第2行第9列显示字母‘Y’

ACALL WC51DDR

MOV A,#‘O’ ;第2行第10列显示字母‘O’ ACALL WC51DDR MOV A,#‘U’ ;第2行第11列显示字母‘U’ ACALL WC51DDR MOV A,#‘!’

;第2行第12列显示字母‘!’

ACALL WC51DDR LOOP: AJMP LOOP ;初始化子程序

INIT: MOV A,#00000001H ;清屏

ACALL WC51R MOV A,#00111000B ;使用8位数据,显示两行,使用5×7的字型 LCALL WC51R MOV A,#00001100B ;显示器开,光标关,字符不闪烁 LCALL WC51R MOV A,#00000110B

;字符不动,光标自动右移一格

LCALL WC51R RET ;检查忙子程序 F_BUSY:PUSH ACC ;保护现场

MOV P2,#0FFH CLR RS SETB RW WAIT: CLR E SETB E JB P2.7,WAIT

;忙,等待

POP ACC ;不忙,恢复现场

RET ;写入命令子程序 WC51R: ACALL F_BUSY CLR E CLR RS CLR RW SETB E MOV P2,ACC CLR E RET ;写入数据子程序 WC51DDR:ACALL F_BUSY CLR E SETB RS CLR RW SETB E MOV P2,ACC CLR E RET END

C语言编程:

#include 《reg51.h》

#define uchar unsigned char sbit RS=P1^7; sbit RW=P1^6; sbit E=P1^5;

void init(void);

void wc51r(uchar i); void wc51ddr(uchar i); void fbusy(void);

//主函数

void main() {

SP=0x50; init();

wc51r(0x80); //写入显示缓冲区起始地址为第1行第1列 wc51ddr(’H’); //第1行第1列显示字母’H’ wc51ddr(’O’); //第1行第2列显示字母’O’ wc51ddr (’W’); //第1行第3列显示字母’W’

wc51r(0xc4); //写入显示缓冲区起始地址为第2行第5列 wc51ddr(’A’); //第2行第5列显示字母’A’ wc51ddr(’R’); //第2行第6列显示字母’R’ wc51ddr(’E’); //第2行第7列显示字母’E’ wc51ddr(’ ’); //第2行第8列显示字母’ ’ wc51ddr(’Y’); //第2行第9列显示字母’Y’ wc51ddr(’O’); //第2行第10列显示字母’O’ wc51ddr(’U’); //第2行第11列显示字母’U’ wc51ddr(’!’); //第2行第11列显示字母’!’ while(1); }

//初始化函数 void init() {

wc51r(0x01); //清屏

wc51r(0x38); //使用8位数据,显示两行,使用5×7的字型 wc51r(0x0c); //显示器开,光标关,字符不闪烁 wc51r(0x06); //字符不动,光标自动右移一格 }

//检查忙函数 void fbusy() {

P2=0Xff;RS=0;RW=1; E=0; E=1;

while (P2&0x80){E=0;E=1;} //忙,等待 }

//写命令函数

void wc51r(uchar j) {

fbusy();

E=0;RS=0;RW=0; E=1; P2=j; E=0; }

//写数据函数

void wc51ddr(uchar j) {

fbusy();

E=0;RS=1;RW=0; E=1; P2=j; E=0; }

小编推荐阅读:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/426912.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

李代数笔记

下载:李代数笔记(20180906).pdf 犹记我曾经这篇博文中提到过Humphreys李代数是李代数的万恶之源。 这个笔记的证明都相对自然很多,不过不意味着这个笔记适合新手,因为这仅仅是用来复习的笔记,精简出最重要的内容而已,当…

access日期如何增加年数_如何为Access数据库表添加日期或时间戳

为了应用方便,您可能需要给数据库的每条记录都添加日期/时间戳,以便确定各个记录添加到数据库的时间。在Access数据库应用中,使用Now()函数能够轻松完成这个任务。本文将一步一步为您介绍整个添加过程,非常简单。本文所使用的Acce…

单片机 c语言 定义i o,【51单片机】普通I/O口模拟SPI口C语言程序

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼89C51系列单片机都不带SPI口,所在在这种情况下,我们可以模拟SPI口来现实我们要的功能,程序如下://-----------------------函数声明,变量定义--&am…

Python format 格式化函数

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。 基本语法是通过 {} 和 : 来代替以前的 % 。 format 函数可以接受不限个参数,位置可以不按顺序。 实例 “{} {}”.format(“hello”, “world”) # 不…

潭州课堂25班:Ph201805201 爬虫基础 第九课 图像处理- PIL (课堂笔记)

Python图像处理-Pillow 简介 Python传统的图像处理库PIL(Python Imaging Library ),可以说基本上是Python处理图像的标准库,功能强大,使用简单。 但是由于PIL不支持Python3,而且更新缓慢。所以有志愿者在PIL的基础上创建了一个分支…

linux 安装qq,如何安装linux版本QQ?

layout: pagetitle: linuxQQ发布description: linuxQQ安装tags:Linuxqqcategories: linux前文时光匆匆,随着时间流逝,已经来到了2019年,在这一年的1024程序员节这天,腾讯终于又发布了linux版的qq,说起来也是喜大普奔&a…

Python中range()函数的用法

1、函数原型:range(start, end, scan): 参数含义: start:计数从start开始。默认是从0开始。例如range(5)等价于range(0, 5); end:技术到end结束&a…

[SimplePlayer] 1. 从视频文件中提取图像

在开始之前,我们需要了解视频文件的格式。视频文件的格式众多,无法三言两语就能详细分析其结构,尽管如此,ffmpeg却很好地提取了各类视频文件的共同特性,并对其进行了抽象描述。 视频文件格式,统称为contain…

android glide 版本,Android Studio 第六十七期 - Android Glide3.7.0和3.8.0用法

一、前言:再优秀的开源库都有坑要填手上的项目使用的图片加载框架是:Universal-Image-Loader业务需要定制化的一些代码。Universal-Image-Loader 这个框架是一个非常经典好用的框架,唯一的问题是是作者很久之前就不再更新了。所以综合考虑下&…

实例21:python

#猴子吃桃问题:猴子第一天摘下若干个桃子, #当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半, #又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。 #到第10天早上想再吃时,见只…

thincmf 分页无法搜索_thinkcmf5 后台搜索分页保持分页条件

本文最后更新于2019-05-16,已超过 1年没有更新,如果文章内容、图片或者下载资源失效,请留言反馈,我会及时处理,谢谢!温馨提示:本文共568个字,读完预计2分钟。$where array();$keywo…

Python List insert()方法

Python 列表 描述 insert() 函数用于将指定对象插入列表的指定位置。 语法 insert()方法语法: list.insert(index, obj) 参数 • index – 对象 obj 需要插入的索引位置。 • obj – 要插入列表中的对象。 返回值 该方法没有返回值,但会在列表指定位置插…

android5.1 显示方向,Android5.1 Settings.apk定制显示选项

在Android5.0后,系统应用的目录结构发生了一些变化,以往/system/app/下直接是APK文件,目前是/system/app/应用名目录/应用apk类似这种目录结构。同时在Android5.1上反编译Settings.apk需要使用最新apktool_2.0.3来反编译,否则无法…

db2locate函数_DB2常用函数详解

VALUE函数语法:VALUE(EXPRESSION1,EXPRESSION2)VALUE函数是用返回一个非空的值,当其第一个参数非空,直接返回该参数的值,如果第一个参数为空,则返回第一个参数的值。eg:--表示如果T1.ID为空,则返回空串&…

实例22:python

#题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人, #乙队为x,y,z三人。已抽签决定比赛名单。 #有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。 #!/usr/bin/python -- c…

CF468B Two Sets

原题链接 DOWNLOAD AS PDF 题目大意 给出\(n\)个各不相同的数字,将它们分别放入\(A\)和\(B\)两个集合中,使它们满足: 若数字\(x\)在集合\(A\)中,那么数字\(a-x\)也在集合\(A\)中;若数字\(x\)在集合\(B\)中,…

windows c语言 redis,windows上使用VS2012 C++语言调用Redis的解决方案

最近我在VS2012上进行Redis开发遇到一些困扰. 编译Redis的lib库没问题。但是使用这些lib库就不太顺利了. 在网上查来查去也没解决。不过其实Redis的客户端项目RedisCli.vcxproj,就是一个最好的使用例子. 我把几个需要注意的地方贴出来注意事项1. 链接器->输入->忽略所有默…

plantuml 方法图_PlantUML 语法之时序图

plantUML 下载(含《plantUML语法指南手册》):http://plantuml.com/downloadVisual Studio Code 安装 plantUML 插件,在插件应用商店中搜索:PlantUML,点击安装即可。快捷键:Alt D 即可快速预览,Ctrl Shift…

运维实施面试题

记得不是很清楚了,大概回忆一下 1集线器,路由器。交换机的区别 术语解释   路由器:(Router)是连接因特网中各局域网、广域网的设备。在路由器中记录着路由表,它会根据信道的情况自动选择和设定路由&#…

CCF 201312-3 最大的矩形[比较简单]

问题描述 试题编号:201312-3试题名称:最大的矩形时间限制:1.0s内存限制:256.0MB问题描述: 问题描述在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩…