1602液晶屏资料和STC89C52 资料
lcd1602中文资料
在日常生活中,我们对液晶显示器并不陌生。
液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用(zhuānyòng)符号和图形。
在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。
发光管和LED数码管比较常用,软硬件都比较简单,在前面章节已经介绍过,在此不作介绍,本章重点介绍字符型液晶显示器的应用。
在单片机系统中应用晶液显示器作为输出器件有以下几个(jǐ ɡè)优点:显示(xiǎnshì)质量高由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。
因此(yīncǐ),液晶显示器画质高且不会闪烁。
数字式接口(jiē kǒu)液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。
体积小、重量轻液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。
功耗低相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。
10.8.1 液晶显示简介①液晶显示原理液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。
液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。
②液晶显示器的分类液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。
除了黑白显示外,液晶显示器还有多灰度有彩色显示等。
如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(Simple Matrix)和主动矩阵驱动(Active Matrix)三种。
③液晶显示器各种图形的显示原理:线段的显示点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。
1602液晶资料
1602液晶资料一、介绍1602液晶是一种常见的字符型液晶显示器,可以显示16列2行共32个字符。
它采用了液晶显示技术,使得显示效果更加清晰、稳定。
1602液晶广泛应用于各种嵌入式系统、电子设备以及 DIY 项目中。
本文将介绍1602液晶的基本原理、接口定义、使用方法以及常见应用场景。
二、基本原理1602液晶的基本原理是利用液晶分子的取向和电场作用的变化来改变光的透过与反射。
它由1602个独立的像素(80列×2行)组成,每个像素有一个电极对和一个液晶分子,液晶分子的取向可以通过施加电场来改变。
1602液晶由背光源、液晶面板、驱动电路和控制电路等组成,背光源提供背光使得字符能够显示在显示器上。
三、接口定义1602液晶显示器通常通过并行接口与主控单元进行通信,下面是1602液晶的常用接口定义:•DB0-DB7:并行数据接口,用于传输数据与指令。
•RS:指令/数据选择信号,用于控制将数据写入显示器还是发送给控制器.•R/W:读/写选择信号,用于选择进行读操作或写操作。
•E:使能信号,用于控制读写操作的时序。
•VSS:地线,用于提供电流的回路。
•VDD:电源正极,提供1602液晶的工作电源。
•V0:液晶偏置电压,通过该电压设置液晶显示的对比度。
•A:背光灯电源正极,提供背光灯的工作电源。
•K:背光灯电源负极,提供背光灯工作电流的回路。
四、使用方法使用1602液晶显示器需要以下步骤:1.连接电路:根据接口定义,将1602液晶与主控单元进行正确的连接。
注意接线的准确性,以免引起电路故障。
2.初始化:在使用1602液晶之前,需要对其进行初始化。
初始化的过程一般包括设置显示模式、清屏以及设置光标位置等。
3.写入数据:通过并行接口将想要显示的数据或指令传输给1602液晶,可以显示各种字符、数字、符号等。
4.控制显示:通过指令设置1602液晶的显示方式,包括光标显示、光标闪烁、显示开关等。
5.清屏:清除1602液晶的显示内容,可以使用指令或者写入空格字符来实现。
LCD1602的中文资料
(1)1602LCD主要技术参数显示容量为16×2个字符;芯片工作电压为4.5~5.5V;工作电流为2.0mA(5.0V);模块最佳工作电压为5.0V;字符尺寸为2.95×4.35(W×H)mm。
(2)接口,信号说明1602LCD采用标准的14引脚(无背光)或16引脚(带背光)接口,各引脚接口说明见表1602液晶接口引脚定义编号符号引脚说明编号符号引脚说明1VSS电源地9D2Date I/O2VDD电源正极10D3Date I/O3VL液晶显示偏压信号11D4Date I/O4RS数据/命令选择端(V/L)12D5Date I/O5R/W读/写选择端(H/L)13D6Date I/O6E使能信号14D7Date I/O7D0Date I/O15BLA背光源正极8D1Date I/O16BLK背光源负极1、2组电源一组是模块的电源一组是背光板的电源均为5V供电。
2、VL是调节对比度的引脚调节此脚上的电压可以改变黑白对比度3、RS是很多液晶上都有的引脚是命令/数据选择引脚该脚电平为高时表示将进行数据操作;为低时表示进行命令操作。
4、RW也是很多液晶上都有的引脚是读写选择端该脚电平为高是表示要对液晶进行读操作;为低时表示要进行写操作。
5、E同样很多液晶模块有此引脚通常在总线上信号稳定后给一正脉冲通知把数据读走,在此脚为高电平的时候总线不允许变化。
6、D0—D7 8位双向并行总线,用来传送命令和数据。
7、BLA是背光源正极,BLK是背光源负极。
与单片机的连接方式,如图9所示图7 1602与单片机的连接方式图(3)控制器接口说明基本操作时序见表基本操作时序读状态输入RS=L,R/W=H,E=H输出D0~D7=状态字输出无写指令输入RS=L,R/W=L,D0~D7=指令码,E=高脉冲读数据输入RS=H,R/W=H,E=H输出D0~D7=数据写数据输入RS=H,R/W=L,D0~D7=数据,E=输出无高脉冲对此液晶操作主要有以下几种方法。
1602液晶
1602液晶1602液晶是一种常用的液晶显示模块,它是基于蓝色背光的字符型液晶显示器。
该显示模块由一块16列2行的液晶和一个控制芯片组成,能够显示32个字符。
它广泛应用于各种电子设备,如数字电子秤、温湿度计、计时器等。
1602液晶具有显示效果清晰、功耗低、驱动方式简单等特点。
它采用了反射式的LCD技术,配合背光源进行光学调节,能够在不同的环境光照条件下显示清晰。
同时,1602液晶还具有较低的功耗,适用于需要长时间显示文字内容的应用。
它的驱动方式也相对简单,只需通过控制芯片发送指令和数据即可实现文字的显示。
在1602液晶的控制芯片中,有一个上升沿触发的自动读写功能,可以简化控制电路,减少外接元件。
另外,该芯片还具备多种显示模式和字符设置的功能,可以满足不同需求。
1602液晶模块的引脚布局合理,使用起来比较方便。
一般来说,其中的15个数字引脚分别是:VSS、VDD、VO、RS、R/W、E、D0~D7。
通过这些引脚,可以与单片机等设备进行连接,并实现对液晶的控制。
为了方便使用,一些供应商还会在1602液晶模块中加入一个IIC 接口转换电路,使得其可以通过IIC总线与其他设备通信。
这样一来,就不需要繁琐的接线,只需通过串行通信即可实现与其他设备的数据交互。
这样的设计更加灵活,适用于一些对数据传输速度要求较高的场景。
然而,需要注意的是,1602液晶模块本身不具备自动换行和滚屏的功能,因此在使用时需要通过程序控制来实现。
另外,虽然1602液晶模块可以显示字符,但对于图形等更复杂的显示内容则无能为力。
因此,在一些需要显示更丰富信息的应用中,可能需要其他类型的显示模块来替代。
总之,1602液晶是一种常见的液晶显示模块,具备显示效果清晰、功耗低、驱动方式简单等优点。
它能够满足一些基本的显示需求,适用于各种电子设备。
但需要注意的是,它在一些功能方面还存在一定的限制。
随着技术的不断发展,未来可能会出现更先进、功能更完善的显示模块。
(完整版)1602液晶资料
1602字符液晶简介工业字符型液晶,能够同时显示16x02即32个字符。
(16列2行)注:为了表示的方便,后文皆以1表示高电平,0表示低电平。
管脚功能引脚说明1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,其中:引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
注:关于E=H脉冲——开始时初始化E为0,然后置E为1,再清0.busy flag(DB7):在此位为被清除为0时,LCD将无法再处理其他的指令要求。
这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A"。
因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如’A’.以下是1602的16进制ASCII码表:(图片打开是大图)读的时候,先读上面那列,再读左边那行,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。
1602通过D0~D7的8位数据端传输数据和指令。
显示模式设置:(初始化)0011 1000 [0x38]设置16×2显示,5×7点阵,8位数据接口;显示开关及光标设置:(初始化)0000 1DCB D显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)0000 01NS N=1(读或写一个字符后地址指针加1 &光标加1),N=0(读或写一个字符后地址指针减1 &光标减1),S=1 且 N=1 (当写一个字符后,整屏显示左移)s=0 当写一个字符后,整屏显示不移动数据指针设置:数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)其他设置:01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。
1602液晶显示器资料
1602液晶显示器资料字符液晶在实际的产品中运用的也比较多了,前几天留意了一下,发现宿舍门前的自动售水机就是采用的1602液晶进行显示的。
而且对于单片机的学习而言,掌握1602的用法是每一个学习者必然要经历的过程。
在此,我将使用1602过程中遇到的问题以及感受记录下来,希望能够给初学者带来一点指导,少走一点弯路。
所谓1602是指显示的内容为16*2,即可以显示两行,每行16个字符。
目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。
1602液晶的正面(绿色背光,黑色字体)1602液晶背面(绿色背光,黑色字体)另一种1602液晶模块,显示屏是蓝色背光白色字体字符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,引脚定义如下表所示:HD44780内置了DDRAM、CGROM和CGRAM。
DDRAM就是显示数据RAM,用来寄存待显示的字符代码。
共80个字节,其地址和屏幕的对应关系如下表:也就是说想要在LCD1602屏幕的第一行第一列显示一个"A"字,就要向DDRAM的00H地址写入“A”字的代码就行了。
但具体的写入是要按LCD模块的指令格式来进行的,后面我会说到的。
那么一行可有40个地址呀?是的,在1602中我们就用前16个就行了。
第二行也一样用前16个地址。
对应如下:DDRAM地址与显示位置的对应关系(事实上我们往DDRAM里的00H地址处送一个数据,譬如0x31(数字1的代码)并不能显示1出来。
这是一个令初学者很容易出错的地方,原因就是如果你要想在DDRAM的00H 地址处显示数据,则必须将00H加上80H,即80H,若要在DDRAM的01H处显示数据,则必须将01H加上80H即81H。
1602液晶资料
1602液晶资料介绍1602液晶是一种常见的字符型液晶显示模块,它具有两行、每行16个字符的显示能力。
由于其简单易用的特点,1602液晶广泛应用于各种嵌入式系统和电子设备中。
在本文档中,将介绍1602液晶的主要特性、技术规格以及使用方法,并提供一些常见问题的解答。
技术规格•显示模式: 2行16字符•字符尺寸: 5x8 点阵•工作电压: 5V•控制芯片: HD44780 或兼容芯片•接口类型: 并行接口•提供背光功能引脚定义1602液晶模块一般使用16个引脚进行连接,其中包括数据线、控制线和背光线。
以下是常用引脚的定义:•VSS: 电源接地•VDD: 电源正极•VO: 对比度调节•RS: 命令/数据选择•RW: 读/写选择•E: 使能端•D0-D7: 数据线•A: 背光阳极•K: 背光阴极使用方法下面介绍使用1602液晶的基本步骤:1.连接引脚:将1602液晶的引脚与你的控制器或其他设备连接。
确保引脚连接正确,并检查电源连接。
2.初始化液晶:在使用液晶前,需要进行初始化操作。
这一步骤一般包括设置显示模式、光标模式和清屏等。
3.发送数据:使用你的控制器发送字符和命令到1602液晶。
根据需要,可以显示特定的字符、字符串或其他控制命令。
4.控制光标:如果需要控制光标的位置,可以发送相应的命令来移动光标。
5.清屏:当需要清除屏幕内容时,发送清屏命令即可清空显示区域。
示例代码以下示例代码演示了如何使用Arduino控制1602液晶显示模块:```cpp #include <LiquidCrystal.h>// 初始化液晶对象 LiquidCrystal lcd(12, 11, 5, 4, 3, 2);void setup() { // 设置液晶的列数和行数 lcd.begin(16, 2);// 在第一行显示文本 lcd.print(。
1602lcd
1602lcd1602液晶显示屏简介1602液晶显示屏是一种经典的字符型液晶显示屏,常用于各种电子设备中的信息显示。
它由两行共16列的字符组成,每个字符可以显示5x8个像素点。
1602液晶显示屏具有低功耗、高对比度、可视角度广等特点,在电子设备中有着广泛的应用。
1602液晶显示屏的构造与原理1602液晶显示屏由液晶面板、背光源、驱动电路等组成。
液晶面板是整个显示屏的核心部件,它由一系列排列有序的液晶单元组成。
每个液晶单元由ITO电极和液晶材料组成,通过驱动电路来控制液晶单元的工作状态。
背光源是1602液晶显示屏的亮度来源,常用的背光源有白色LED灯,其亮度可以通过控制电流来调节。
背光源位于液晶面板的背面,可以提供背光照射到液晶面板上,使得字符显示清晰可见。
驱动电路是用来控制液晶单元的工作状态的重要部分。
它接收来自控制器发送的信号,根据信号来控制液晶单元的开关,从而实现“点亮”或“熄灭”像素点。
通过控制不同的液晶单元,可以实现显示不同的字符和图形。
1602液晶显示屏的应用领域1602液晶显示屏在各种电子设备中广泛应用。
它常用于计算器、电子钟表、温度计、电子秤、电子游戏机等各种消费电子产品中的信息显示。
此外,它还被广泛应用于工业控制、仪器仪表、智能家居等领域。
在工业控制中,1602液晶显示屏可以用来显示各种参数、状态和报警信息。
例如,可以显示压力值、温度值、流量值等,以便操作员及时了解设备的工作情况。
在仪器仪表领域,1602液晶显示屏可以用来显示各种测量值和状态信息。
例如,可以显示电压值、电流值、频率值等,以方便用户对仪器仪表进行操作和监测。
在智能家居领域,1602液晶显示屏可以用来显示各种控制界面和信息提示。
例如,可以显示室内温度、湿度、灯光状态等,以方便用户对家居设备进行控制和操作。
总结1602液晶显示屏是一种常用的字符型液晶显示屏,具有低功耗、高对比度、可视角度广等优点,广泛应用于各种电子设备中的信息显示。
lcd1602中文资料讲课讲稿
l c d1602中文资料1602LCD液晶显示器(资料)1.1602字符型LCD简介字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。
下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。
一般1602字符型液晶显示器实物如图1:图1.1602字符型液晶显示器实物图2. 1602LCD的基本参数及引脚功能1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图2所示:图2. 1602LCD尺寸图1602LCD主要技术参数:显示容量:16×2个字符芯片工作电压:4.5—5.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.95×4.35(W×H)mm引脚功能说明1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表3所示:表3表3引脚接口说明表第1脚:VSS为地电源。
第2脚:VDD接5V正电源。
第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平表3表4控制命令表1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。
指令2:光标复位,光标返回到地址00H。
指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。
STC89C52单片机实验---DS18B20的1602显示
这是一个利用1602液晶显示温度和蜂鸣器报警的函数;使用的测温器件是单总线DS18B20;#include<reg52.h>#include<intrins.h>#include<math.h>#define uchar unsigned char#define uint unsigned intsbit dula=P2^6; //数码管的段选sbit wela=P2^7; //数码管的位选sbit RW=P1^1; //1602sbit RS=P1^0; //1602sbit LCDEN=P2^5;sbit DS=P2^2; //DS18B20的总线sbit FM=P2^3; //蜂鸣器void delayUs(){_nop_();//微秒级的延时}void delayMs(uint a) //毫秒级的延时。
{uint i,j;for(i=a;i>0;i--)for(j=100;j>0;j--);}void writecom(uchar com) //向1602写命令;{RS=0;P0=com;LCDEN=1;delayUs();LCDEN=0;delayMs(1);}void writedat(uchar dat) //写数据。
P0=dat;LCDEN=1;delayUs();LCDEN=0;delayMs(1);}void init() // 1602初始化{RW=0;dula=0;wela=0;writecom(0x38);writecom(0x0c);writecom(0x06);writecom(0x01);}void writeString(uchar *str) //向1602写字符串。
{uchar length;uchar i=0;do{length=1+i;i++;} while(str[i]);for(i=length;i>0;i--){writedat(str[length-i]);}}int DSinit() //DS18B20的初始化{uint i;DS=0;i=100;while(i>0) i--;while(i>0) i--;while(DS) //检验是否初始化成功{i++;if(i>40000)return 0;}return 1;}void DSwait(){uint i;while(DS);while(~DS);i=4;while(i>0) i--;}bit readbit() //读一个比特{uint i;bit b;DS=0;i++;DS=1;i++;i++;b=DS;i=8;while(i>0) i--;return b;}uchar readbyte()// 利用前面的函数读一个字节{uint i;uchar j,dat;dat=0;for(i=0;i<8;i++){j=readbit();//赋值给最低位dat=(j<<7)|(dat>>1);//每位放到高位;return dat;}void writebyte(uchar dat)//写一个字节;{uint i;uchar j;bit b;for(j=0;j<8;j++){b=dat&0x01;dat>>=1;if(b){DS=0;i++;i++;i++;DS=1;i=8;while(i>0)i--;}else{DS=0;i=8;while(i>0)i--;DS=1;i++;i++;}}}void sendChangecom(){DSinit();DSwait();delayMs(1);writebyte(0xcc);writebyte(0x44);void sendReadcom(){DSinit();DSwait();delayMs(1);writebyte(0xcc);writebyte(0xbe);}int getTmpvalue(){uint tmpvalue;int value;float t;uchar low,high;sendReadcom();low=readbyte();high=readbyte();tmpvalue=high,tmpvalue<<=8;tmpvalue|=low;value = tmpvalue;t=value*0.0625;value=t*100+(value>0?0.5:-0.5); return value;}void display(int v){int count;char datas[]={0,0,0,0,0,0};uint tmp=abs(v);datas[0]=tmp/10000;datas[1]=tmp%10000/1000;datas[2]=tmp%1000/100;datas[3]=tmp%100/10;datas[4]=tmp%10;{writedat('-');}else{writedat('+');}if(datas[0]!=0)writedat('0'+datas[0]);for(count = 1;count!=5;count++){writedat('0'+datas[count]);if(count==2)writedat('.');}}void warning(int x){if((x/100)>26){ delayMs(100);FM=~FM;delayMs(100);}}void main(){char table[]="WENDU:";while(!DSinit());init();P1=0x00;writecom(0x80);sendChangecom();writeString(table );while(1){delayMs(1000);writecom(0xc0);delayMs(850);warning(getTmpvalue());sendChangecom();}}。
基于DS18B20STC89C52单片机LCD1602液晶显示测温系统C程序完整版
基于ds18b20 STC89c52单片机测温系统LCD1602液晶显示(C程序完整版)温度传感器的种类众多,在应用与高精度、高可靠性的场合时DALLAS(达拉斯)公司生产的DS18B20温度传感器当仁不让。
超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,使得DS18B20更受欢迎。
对于我们普通的电子爱好者来说,DS18B20的优势更是我们学习单片机技术和开发温度相关的小产品的不二选择。
了解其工作原理和应用可以拓宽您对单片机开发的思路。
如果要更全的资料请搜索“完整的ds18b20中文资料.pdf“。
DS18B20的主要特征:…全数字温度转换及输出。
…先进的单总线数据通信。
…最高12位分辨率,精度可达土0.5摄氏度。
…12位分辨率时的最大工作周期为750毫秒。
…可选择寄生工作方式。
…检测温度范围为–55°C ~+125°C (–67°F ~+257°F)…内置EEPROM,限温报警功能。
…64位光刻ROM,内置产品序列号,方便多机挂接。
…多样封装形式,适应不同硬件系统。
DS18B20引脚功能:·GND 电压地·DQ单数据总线·VDD电源电压·NC空引脚DS18B20工作原理及应用:DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。
其一个工作周期可分为两个部分,即温度检测和数据处理。
在讲解其工作流程之前我们有必要了解18B20的内部存储器资源。
18B20共有2种形态的存储器资源,它们分别是:1>ROM只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56的位的CRC码(冗余校验)。
数据在出产时设置不由用户更改。
DS18B20共64位ROM。
2>RAM数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。
利用STC89C52单片机控制LCD1602
//液晶显示中文-版本0.0//作者:pcdian//定义液晶的一些功能位//RS 为数据、指令寄存器选择位//RW 为读写选择位//E 为使能位RS BIT p2.5RW BIT P2.6E BIT P2.7ORG 0000HSJMP STARTORG 000BHLJMP Timer_ITORG 0030HSTART:MOV SP,#60HMOV TMOD,#01HMOV TH0,#0A6HMOV TL0,#00HSETB EASETB ET0CLR TR0MAIN:MOV P0,#01H //清屏ACALL ENABLEMOV P0,#38H //显示模式设置为16字*2行ACALL ENABLEMOV P0,#0CH //不显示光标ACALL ENABLEMOV P0,#06H //显示方向正向且屏不移动ACALL ENABLEDISPLAY:ACALL DISPLAY_C0//我MOV P0,#80HACALL ENABLEMOV P0,#00HACALL WRITEMOV P0,#81HACALL ENABLEMOV P0,#01HACALL WRITEMOV P0,#82HACALL ENABLEMOV P0,#02HACALL WRITEMOV P0,#0C0HACALL ENABLEMOV P0,#03HACALL WRITEMOV P0,#0C1HACALL ENABLEMOV P0,#04HACALL WRITEMOV P0,#0C2HACALL ENABLEMOV P0,#05HACALL WRITELCALL DELAY1SMOV P0,#01HACALL ENABLEACALL DISPLAY_C1//们MOV P0,#83HACALL ENABLEMOV P0,#00HACALL WRITEMOV P0,#84HACALL ENABLEMOV P0,#01HACALL WRITEMOV P0,#85HACALL ENABLEMOV P0,#02HACALL WRITEMOV P0,#0C3HACALL ENABLEMOV P0,#03HACALL WRITEMOV P0,#0C4HACALL ENABLEACALL WRITEMOV P0,#0C5HACALL ENABLEMOV P0,#05HACALL WRITELCALL DELAY1SMOV P0,#01HACALL ENABLEACALL DISPLAY_C2//的MOV P0,#86HACALL ENABLEMOV P0,#00HACALL WRITEMOV P0,#87HACALL ENABLEMOV P0,#01HACALL WRITEMOV P0,#88HACALL ENABLEMOV P0,#02HACALL WRITEMOV P0,#0C6HACALL ENABLEMOV P0,#03HACALL WRITEACALL ENABLEMOV P0,#04HACALL WRITEMOV P0,#0C8HACALL ENABLEMOV P0,#05HACALL WRITELCALL DELAY1SMOV P0,#01HACALL ENABLEACALL DISPLAY_C3//0MOV P0,#89HACALL ENABLEMOV P0,#00HACALL WRITEMOV P0,#8AHACALL ENABLEMOV P0,#01HACALL WRITEMOV P0,#0C9HACALL ENABLEMOV P0,#02HACALL WRITEMOV P0,#0CAHACALL ENABLEMOV P0,#03HLCALL DELAY1SMOV P0,#01HACALL ENABLEACALL DISPLAY_C4//7MOV P0,#8BHACALL ENABLEMOV P0,#00HACALL WRITEMOV P0,#8CHACALL ENABLEMOV P0,#01HACALL WRITEMOV P0,#0CBHACALL ENABLEMOV P0,#02HACALL WRITEMOV P0,#0CCHACALL ENABLEMOV P0,#03HACALL WRITE//3MOV P0,#8DHACALL ENABLEMOV P0,#04HACALL WRITEMOV P0,#8EHACALL ENABLEMOV P0,#05HACALL WRITEMOV P0,#0CDHACALL ENABLEMOV P0,#06HACALL WRITEMOV P0,#0CEHACALL ENABLEMOV P0,#07HACALL WRITELCALL DELAY1SMOV P0,#01HACALL ENABLELJMP DISPLAY DISPLAY_C0:MOV DPTR,#TAB0MOV R2,#48ACALL DISPLAY_CRET DISPLAY_C1:MOV DPTR,#TAB1MOV R2,#48ACALL DISPLAY_CRET DISPLAY_C2:MOV DPTR,#TAB2MOV R2,#48ACALL DISPLAY_CRET DISPLAY_C3:MOV DPTR,#TAB3MOV R2,#32ACALL DISPLAY_CRET DISPLAY_C4:MOV DPTR,#TAB4MOV R2,#64ACALL DISPLAY_CRETDISPLAY_C:MOV P0,#40HACALL ENABLEMOV R3,#0DISPLAY_CC:MOV A,R3MOVC A,@A+DPTRMOV P0,ALCALL WRITEINC R3DJNZ R2,DISPLAY_CCRETENABLE:CLR RSCLR RWCLR EACALL DELAYSETB ERETWRITE:SETB RSCLR RWCLR EACALL DELAYSETB ERETDELAY1S:SETB TR0CJNE R0,#20,DELAY1SCLR TR0MOV R0,#0RETDELAY:MOV R5,#08HL1:MOV R4,#0FAHL0:DJNZ R4,L0DJNZ R5,L1RETTimer_IT:MOV TH0,#0A6HMOV TL0,#00HINC R0RETITAB0: //我DB 0x00,0x07,0x01,0x01,0x01,0x1F,0x01,0x01 DB 0x19,0x01,0x01,0x01,0x01,0x1F,0x01,0x01 DB 0x00,0x08,0x04,0x04,0x00,0x1F,0x00,0x04 DB 0x01,0x07,0x19,0x01,0x01,0x01,0x05,0x02 DB 0x18,0x00,0x00,0x01,0x06,0x00,0x00,0x00 DB 0x14,0x18,0x10,0x08,0x09,0x05,0x03,0x01TAB1: //们DB 0x01,0x01,0x02,0x02,0x06,0x04,0x0c,0x14 DB 0x08,0x04,0x06,0x04,0x10,0x10,0x10,0x10 DB 0x00,0x00,0x1e,0x02,0x02,0x02,0x02,0x02 DB 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00 DB 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00 DB 0x02,0x02,0x02,0x02,0x02,0x0a,0x04,0x00TAB2: //的DB 0x02,0x02,0x04,0x0f,0x08,0x08,0x08,0x0f DB 0x02,0x02,0x02,0x13,0x14,0x14,0x18,0x12DB 0x00,0x00,0x00,0x1e,0x02,0x02,0x02,0x02DB 0x08,0x08,0x08,0x08,0x0f,0x08,0x08,0x00DB 0x11,0x11,0x10,0x10,0x10,0x10,0x00,0x00DB 0x02,0x12,0x12,0x02,0x02,0x14,0x08,0x00TAB3: //0DB 0x00,0x00,0x03,0x04,0x08,0x08,0x08,0x08DB 0x00,0x00,0x18,0x04,0x02,0x02,0x02,0X02DB 0x08,0x08,0x08,0x08,0x04,0x03,0x00,0x00DB 0x02,0x02,0x02,0x02,0x04,0x18,0x00,0x00TAB4: //7DB 0x00,0x00,0x0F,0x0F,0x00,0x00,0x00,0x00DB 0x00,0x00,0x1E,0x1E,0x06,0x06,0x06,0X06DB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00DB 0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x00//3DB 0x00,0x00,0x0F,0x0F,0x00,0x00,0x00,0x0FDB 0x00,0x00,0x1E,0x1E,0x06,0x06,0x06,0X1EDB 0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00,0x00DB 0x1E,0x06,0x06,0x06,0x1E,0x1E,0x00,0x00END四、总结:虽然LCD1602可以利用自建字符显示中文,但最多不能超过8个字符位。
STC89C52+DS12C887+1602液晶引脚连接以及C程序(DOC)
nian=nm;//还原nian的值
nian1=0;//禁止液晶的刷新
}
if(nm!=nian)//如果nian的值发生了改变
{
if(nm%4==0)//改变前是闰年
{
xq=xq+2;//星期加二
}
if(nm%4!=0)//改变前是平年
{
xq=xq+1;//星期加一
}
xqsd(xq);//设定一下星期的值
xq=5;
else if(a==-3)
xq=4;
else if(a==-4)
xq=3;
else if(a==-5)
xq=2;
else if(a==-6)
xq=1;
ri1=1;
}
void fmq()//蜂鸣器小小的响一下函数
{
fm=0;
ys(100);
fm=1;
}
void lcdsd(uchar temp)//设定子函数
{
if(a==8)
xq=1;
else if(a==9)
xq=2;
else if(a==10)
xq=3;
else if(a==11)
xq=4;
else if(a==12)
xq=5;
else if(a==13)
xq=6;
else if(a==0)
xq=7;
else if(a==-1)
xq=6;
else if(a==-2)
hh=ri;//记录ri的初值
ri++;//ri加一
if((zz[yue]==0)&&(ri==31)==1)//当小月ri被加到了31时,还原ri的值
STC89C52中文资料
STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
另外STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
[1]1. 增强型8051单片机,6 时钟/机器周期和12 时钟/机器周期可以任意选择,指令代码完全兼容传统8051.[2]2. 工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V 单片机)3.工作频率范围:0~40MHz,相当于普通8051 的0~80MHz,实际工作频率可达48MHz4. 用户应用程序空间为8K字节5. 片上集成512 字节RAM6. 通用I/O 口(32 个),复位后为:P0/P1/P2/P3 是准双向口/弱上拉,P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O 口用时,需加上拉电阻。
7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片8. 具有EEPROM 功能9. 共3 个16 位定时器/计数器。
[教学]1602中文资料
[教学]1602中文资料LCD1602中文资料一一:液晶显示器各种图形的显示原理线段的显示:点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。
例如屏的第一行的亮暗由RM区的000H——00H的16字节的内容决定,当(000H)=H时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3H)=H时,则屏幕的右下角显示一条短亮线;当(000H)=H,(001H)=00H,(002H)=00H,……(00EH)=00H,(00H)=00H 时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。
这就是LCD显示的基本原理。
字符的显示用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。
这样一来就组成某个字符。
但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RM 对应的地址,设立光标,在此送上该字符对应的代码即可。
汉字的显示汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、3、5……右边为2、4、6……根据在LCD上开始显示的行列号及每行的列数可找出显示RM 对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节……直到32B显示完就可以LCD上得到一个完整汉字二:1602字符型LCD简介1?字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常,16*2,20*2和40*2行等的模块。
1602液晶屏资料和STC89C52-资料
ADC0809(1)IN0~IN7——8路模拟输入,通过3根地址译码线ADD A、ADD B、ADD C来选通一路。
(2)D7~D0——A/D转换后的数据输出端,为三态可控输出,故可直接和微处理器数据线连接。
8位排列顺序是D7为最高位,D0为最低位。
(3)ADD A、ADD B、ADD C——模拟通道选择地址信号,ADD A为低位,ADD C为高位。
地址信号与选中通道对应关系如表11.3所示。
(4)V R(+)、V R(-)——正、负参考电压输入端,用于提供片内DAC电阻网络的基准电压。
在单极性输入时,V R(+)=5V,V R(-)=0V;双极性输入时,V R(+)、V R(-)分别接正、负极性的参考电压。
图11.20 ADC0808/0809外部引脚图地址选中通道ADD C ADD B ADD A0 0 0 0 1 1 1 1 011111111IN0IN1IN2IN3IN4IN5IN6IN7(5)ALE——地址锁存允许信号,高电平有效。
当此信号有效时,A、B、C三位地址信号被锁存,译码选通对应模拟通道。
在使用时,该信号常和START信号连在一起,以便同时锁存通道地址和启动A/D转换。
(6)START——A/D转换启动信号,正脉冲有效。
加于该端的脉冲的上升沿使逐次逼近寄存器清零,下降沿开始A/D转换。
如正在进行转换时又接到新的启动脉冲,则原来的转换进程被中止,重新从头开始转换。
(7)EOC——转换结束信号,高电平有效。
该信号在A/D转换过程中为低电平,其余时间为高电平。
该信号可作为被CPU查询的状态信号,也可作为对CPU的中断请求信号。
在需要对某个模拟量不断采样、转换的情况下,EOC也可作为启动信号反馈接到START端,但在刚加电时需由外电路第一次启动。
(8)OE——输出允许信号,高电平有效。
当微处理器送出该信号时,ADC0808/0809的输出三态门被打开,使转换结果通过数据总线被读走。
在中断工作方式下,该信号往往是CPU发出的中断请求响应信号。
stc89c52详细资料
1、STC89C52单片机,支持USB口或者是串口两种下载程序方式不用另买烧写器编程器等产品可以方便的烧写程序到单片机里.2、USB供电系统,直接插接到电脑USB口即可提供电源,不需另接直流电源。
3、8位LED发光二极管(做跑马灯实验交通灯实验)。
4、8位数码管(可做数码管的静态和动态扫描显示实验如0-24秒(NBA进攻时间)计数器实验18B20温度检测实验4X4矩阵键盘扫描等都可以用数码管显示)。
5、计数器实验,如0-24秒(NBA进攻时间到,蜂鸣器报警,数码管清零),还可以做00-60秒表,00-99跑马灯等。
6、4*4矩阵键盘(熟悉矩阵键盘编码、解码扫描原理可作为人机输入接口编写按键输入程序)7、蜂鸣器(做单片机发声实验播放音乐实验报警实验等声响实验)8、DS18B20温度传感器,(一线式总线元件实验)。
9、AT24C08外部EEPROM存储芯片(IIC总线元件实验)10、SPI串行实时时钟DS1302(熟悉SPI总线用DS1302可以做一个万年历电子时钟比定时器做的精确)11、MAX232芯片RS232通讯接口(可以做为与计算机通迅的接口同时也可做为STC单片机下载程序的接口及仿真调试的接口)12、字符液晶1602LCD接口采用接插件方式方便插拔(可显示两行每行16个共计32任意ASCII码字符它的功能应用比数码管丰富很多显示的信息量更大。
13、图形点阵液晶12864接口采用接插件方式方便插拔(可显示任意汉字和图形是目前单片机图文显示最常用的显示器件我们实验板支持带字库的12864液晶开发程序更方便12864液晶不随板附赠需单独购买我们成本价65元提供带字库的支持对比度调节12864蓝屏高级液晶)14、为方便大家更换晶体振荡器(单片机“超频”)特别采用了镀金晶体插座,做实验时需要不同晶振频率时可很方便的插拔更换(我们随板赠送三个不同频率的晶振11.0592MHZ、12MHZ、24MHZ各一个最大程度上满足了学习者的需要)15、ISP下载接口(保留了并口ISP下载线或者其他的兼容ISP下载线,如果有并口的电脑可以对AT89S51 AT89SS52 单片机直接编程。
1602液晶显示器资料
E脉宽(高电平) PWEN 地址设置时间 (RS,R/W,E) tAS 地址保持时间 数据设置时间 数据保持时间 tAH tDSW tH
tEr,tEf Vdd=5V±5% -
- 25 - - -
Vss=0V Ta=25℃
ns
10 40 10
8、 直流特性
9、引脚描述
引脚 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 名称 Vss Vdd Vo RS R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 LED+ 方向 ---I I I I/O I/O I/O I/O I/O I/O I/O I/O -说明 电源地(0V) 电源电压(+5V) LCD驱动电压(可调,一般 为0.8V) RS=0,选择指令寄存 器;RS=1,选择数据寄存器
指令码: RS R/W DB7 DB6
DB5
DB4
DB3
DB2
DB1
DB0
0 0 1 ADD6 ADD5 ADD4 ADD3 ADD2 ADD1 ADD0 DDRAM 地址设置指令设置DDRAM 地址指针,它将DDRAM 存储显示字 符的字符码的首地址ADD6~ADD0送入AC中,于是显示字符的字符码就 可以写入DDRAM 中或者从DDRAM 中读出;值得一提的是:在LCD 显 示屏一行显示方式下,DDRAM 的地址范围为:00H~4FH;两行显示方 式下,DDRAM的地址范围为:第一行00H~27H,第二行40H~67H。 9) Read busy flag and address 读忙标志BF和AC 指令码: RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0 当RS=0 和R/W=1 时,在E 信号高电平的作用下,BF和AC6~AC0被 读到数据总线DB7~DB0的相应位; BF:内部操作忙标志,BF=1,表示模块正在进行内部操作,此时模块 不接收任何外部指令和数据,直到BF=0为止; AC6~AC0:地址计数器AC 内的当前内容,由于地址计数器AC 被 CGROM、CGRAM和DDRAM的公用指针,因此当前AC 内容所指区域由前 一条指令操作区域决定;同时,只有BF=0 时,送到DB7~DB0 的数 据AC6~AC0才有效。 10)Write data to CGRAM or DDRAM 写数据到CGRAM或DDRAM 指令码: RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 1 0 D7 D6 D5 D4 D3 D2 D1 D0 写数据到CGRAM 或DDRAM 指令,是将用户自定义字符的字模数据写到 已经设置好的CGRAM 的地址中,或者是将欲显示字符的字符码写 到DDRAM 中;欲写入的数据D7~D0 首先暂存在DR 中,再由模块的 内部操作自动写入地址指针所指定的CGRAM 单元或者DDRAM单元中。 11) Read data from CGRAM or DDRAM 从CGRAM或DDRAM中读 数据 指令码: RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 1 1 D7 D6 D5 D4 D3 D2 D1 D0
1602液晶资料
1602液晶资料蓝底白字标准型16X2液晶显示字符模块(背光/蓝屏)1602采用标准的16脚接口,其中:第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15脚:背光电源正极第16脚:背光电源负极1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表1所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
以下是在液晶模块的第二行第一个字符的位置显示字母“A”的程序:ORG0000HRSEQUP3.7;确定具体硬件的连接方式RWEQUP3.6;确定具体硬件的连接方式EEQUP3.5;确定具体硬件的连接方式MOVP1,#00000001B;清屏并光标复位ACALLENABLE;调用写入命令子程序MOVP1,#00111000B;设置显示模式:8位2行5x7点阵ACALLENABLE;调用写入命令子程序MOVP1,#00001111B;显示器开、光标开、光标允许闪烁ACALLENABLE;调用写入命令子程序MOVP1,#00000110B;文字不动,光标自动右移ACALLENABLE;调用写入命令子程序MOVP1,#0C0H;写入显示起始地址(第二行第一个位置)ACALLENABLE;调用写入命令子程序MOVP1,#01000001B;字母A的代码SETBRS;RS=1CLRRW;RW=0;准备写入数据CLRE;E=0;执行显示命令ACALLDELAY;判断液晶模块是否忙?SETBE;E=1;显示完成,程序停车AJMP$ENABLE:CLRRS;写入控制命令的子程序CLRRWCLREACALLDELAYSETBERETDELAY:MOVP1,#0FFH;判断液晶显示器是否忙的子程序CLRRSSETBRWCLRENOPSETBEJBP1.7,DELAY;如果P1.7为高电平表示忙就循环等待RETEND程序在开始时对液晶模块功能进行了初始化设置,约定了显示格式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ADC0809(1)IN0~IN7——8路模拟输入,通过3根地址译码线ADD A、ADD B、ADD C来选通一路。
(2)D7~D0——A/D转换后的数据输出端,为三态可控输出,故可直接和微处理器数据线连接。
8位排列顺序是D7为最高位,D0为最低位。
(3)ADD A、ADD B、ADD C——模拟通道选择地址信号,ADD A为低位,ADD C为高位。
地址信号与选中通道对应关系如表11.3所示。
(4)V R(+)、V R(-)——正、负参考电压输入端,用于提供片内DAC电阻网络的基准电压。
在单极性输入时,V R(+)=5V,V R(-)=0V;双极性输入时,V R(+)、V R(-)分别接正、负极性的参考电压。
图11.20 ADC0808/0809外部引脚图(5)ALE——地址锁存允许信号,高电平有效。
当此信号有效时,A、B、C三位地址信号被锁存,译码选通对应模拟通道。
在使用时,该信号常和START信号连在一起,以便同时锁存通道地址和启动A/D转换。
(6)START——A/D转换启动信号,正脉冲有效。
加于该端的脉冲的上升沿使逐次逼近寄存器清零,下降沿开始A/D转换。
如正在进行转换时又接到新的启动脉冲,则原来的转换进程被中止,重新从头开始转换。
(7)EOC——转换结束信号,高电平有效。
该信号在A/D转换过程中为低电平,其余时间为高电平。
该信号可作为被CPU查询的状态信号,也可作为对CPU的中断请求信号。
在需要对某个模拟量不断采样、转换的情况下,EOC也可作为启动信号反馈接到START端,但在刚加电时需由外电路第一次启动。
(8)OE——输出允许信号,高电平有效。
当微处理器送出该信号时,ADC0808/0809的输出三态门被打开,使转换结果通过数据总线被读走。
在中断工作方式下,该信号往往是CPU发出的中断请求响应信号。
3) 工作时序与使用说明ADC 0808/0809的工作时序如图11.21所示。
当通道选择地址有效时,ALE信号一出现,地址便马上被锁存,这时转换启动信号紧随ALE之后(或与ALE同时)出现。
START的上升沿将逐次逼近寄存器SAR复位,在该上升沿之后的2μs加8个时钟周期内(不定),EOC信号将变低电平,以指示转换操作正在进行中,直到转换完成后EOC 再变高电平。
微处理器收到变为高电平的EOC信号后,便立即送出OE信号,打开三态门,读取转换结果。
图11.21 ADC 0808/0809工作时序模拟输入通道的选择可以相对于转换开始操作独立地进行(当然,不能在转换过程中进行),然而通常是把通道选择和启动转换结合起来完成(因为ADC0808/0809的时间特性允许这样做)。
这样可以用一条写指令既选择模拟通道又启动转换。
在与微机接口时,输入通道的选择可有两种方法,一种是通过地址总线选择,一种是通过数据总线选择。
如用EOC信号去产生中断请求,要特别注意EOC的变低相对于启动信号有2μs+8个时钟周期的延迟,要设法使它不致产生虚假的中断请求。
为此,最好利用EOC上升沿产生中断请求,而不是靠高电平产生中断请求。
2.3.3 ADC0809应用说明:1)ADC0809内部带有输出锁存器,可以与8031直接相连。
2)初始化时,使ST和OE信号全为低电平。
3)送要转换的哪一通道的地址到A,B,C端口上。
4)在ST端给出一个至少有100ns宽的正脉冲信号。
5)是否转换完毕,我们根据EOC信号来判断。
6)当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。
液晶显示简介①液晶显示原理液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。
液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。
②液晶显示器的分类液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。
除了黑白显示外,液晶显示器还有多灰度有彩色显示等。
如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(Simple Matrix)和主动矩阵驱动(Active Matrix)三种。
③液晶显示器各种图形的显示原理:线段的显示点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。
例如屏的第一行的亮暗由RAM区的000H——00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。
这就是LCD显示的基本原理。
字符的显示用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。
这样一来就组成某个字符。
但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。
汉字的显示汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、3、5……右边为2、4、6……根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节……直到32B显示完就可以LCD上得到一个完整汉字。
1602字符型LCD简介字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。
下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。
一般1602字符型液晶显示器实物如1602LCD的基本参数及引脚功能1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下所示:1602LCD主要技术参数:显示容量:16×2个字符芯片工作电压:4.5—5.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.95×4.35(W×H)mm引脚功能说明1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表10-13所示:编号符号引脚说明编号符号引脚说明1 VSS 电源地9 D2 数据2 VDD 电源正极10 D3 数据3 VL 液晶显示偏压11 D4 数据4 RS 数据/命令选择12 D5 数据5 R/W 读/写选择13 D6 数据6 E 使能信号14 D7 数据7 D0 数据15 BLA 背光源正极8 D1 数据16 BLK 背光源负极表10-13:引脚接口说明表第1脚:VSS为地电源。
第2脚:VDD接5V正电源。
第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15脚:背光源正极。
第16脚:背光源负极。
1602LCD的指令说明及时序1602液晶模块内部的控制器共有11条控制指令,如表10-14所示:序号指令RSR/WD7 D6 D5 D4 D3 D2 D1 D01 清显示0 0 0 0 0 0 0 0 0 12 光标返回0 0 0 0 0 0 0 0 1 *3 置输入模式0 0 0 0 0 0 0 1I/DS4 显示开/关控制0 0 0 0 0 0 1 D C B5 光标或字符移位0 0 0 0 0 1S/CR/L* *6 置功能0 0 0 0 1 DL N F * *7 置字符发生存贮器地址0 0 0 1字符发生存贮器地址8 置数据存贮器地址0 0 1 显示数据存贮器地址9 读忙标志或地址0 1 BF 计数器地址10 写数到CGRAM或DDRAM)1 0要写的数据内容11 从CGRAM或DDRAM读数1 1读出的数据内容表10-14:控制命令表1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。
指令2:光标复位,光标返回到地址00H。
指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效。
指令4:显示开关控制。
D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。
指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
指令7:字符发生器RAM地址设置。
指令8:DDRAM地址设置。
指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:写数据。
指令11:读数据。
3.1.1AT89S52介绍高性能8位单片机AT89S52 是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。