ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:1.76MB ,
资源ID:5583120      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5583120.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(LCD1602液晶显示器设计文档格式.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

LCD1602液晶显示器设计文档格式.docx

1、I/D=1:数据读写操作后,AC 自加一;I/D=0:数据读写操作后,AC 自减一;S=1:数据读写操作,画面平移;S=0:数据读写操作,画面不动;(4)显示开关控制设置显示、光标和闪烁开关。D 表示显示开关,D=1 为开,D=0 为关;C 表示光标开关,C=1 为开,C=0 为关;B 表示闪烁开关,B=1 为开,B=0 为关。(5)光标、画面位移光标、画面移动。S/C=1 画面移动一个字符位;S/C=0 光标移动一个字符位;R/L=1:右移;R/L=0 左移。(6)功能设置工作方式设置(初始化指令)。DL=1,8 位数据接口;DL=0,4 位数据接口;N=1,两行显示;N=0,一行显示;F=

2、1,5*10 点阵显示;F=0,5*7 点阵显示。(7)CGRAM 地址设置设置CGRAM 地址,A5A0=03FH。(8)DDRAM 地址设置设置DDRAM 地址。N=0,一行显示A6A0=04FH;N=1 两行显示,首行A6A0=02FH,次行A6A0=4067H。(9)读BF 及AC 值读忙BF 和地址计数器AC 的值。BF=1:忙,BF=0:准备好。此时AC 值意义为最近一次地址设置(CGRAM 或DDRAM)定义。(10)写数据根据最近设置的地址性质,数据写入CGRAM 或DDRAM 中。(11)读数据根据最近设置的地址性质,从CGRAM 或DDRAM 数据读出。 IIC 总线IIC

3、 总线是PHILIPS 公司推出的两线式串行总线。用于连接微控制器及其外围设备。IIC 总线产生于在80 年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。2.2.1 IIC 总线的特点(1) 只要求两条总线线路 一条串行数据线 SDA 一条串行时钟线SCL。 (2) 每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机从机关系软件设定地址;主机可以作为主发送器或主机接收器。(3)

4、 它是一个真正的多主机总线,如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁防止数据被破坏。(4) 串行的 8 位双向数据传输位速率在标准模式下可达 100kbit/s 快速模式下可达 400kbit/s 高速模式下可达4Mbit/s 。(5) 片上的滤波器可以滤去总线数据线上的毛刺波保证数据完整。(6) 连接到相同总线的IC 数量只受到总线的最大电容400pF 限制。2.2.2 IIC 协议总线信号时序(1)数据的有效性SDA 线上的数据必须在时钟的高电平周期保持稳定数据线的高或低电平状态只有在 SCL 线的时钟信号是低电平时才能改变。如图 IIC 总线的位传输所示。图 IIC总线

5、的为传输(2)起始和停止条件在 IIC 总线中 唯一出现的是被定义为起始(S)和停止(P )条件(见图)的情况。其中一种情况是在 SCL 线是高电平时,SDA 线从高电平向低电平切换,这个情况表示起始条件。当 SCL 是高电平时 SDA 线由低电平向高电平切换表示停止条件。起始和停止条件一般由主机产生,总线在起始条件后被认为处于忙的状态。在停止条件的某段时间后,总线被认为再次处于空闲状态。如果产生重复起始(Sr)条件而不产生停止条件,总线会一直处于忙的状态,此时的起始条件(S)和重复起始(Sr)条件在功能上是一样的。因此在本文档的剩余部分,符号(S)将作为一个通用的术语既表示起始条件又表示重复

6、起始条件,除非有特别声明的(Sr)。如果连接到总线的器件合并了必要的接口硬件,那么用它们检测起始和停止条件十分简便。但是,没有这种接口的微控制器在每个时钟周期至少要采样 SDA 线两次来判别有没有发生电平切换。图起始和停止条件(3)总线空闲状态SDA 和SCL 两条信号线都处于高电平,即总线上所有的器件都释放总线,两条信号线各自的上拉电阻把电平拉高。(4)数据传输与应答信号ACK发送到SDA 线上的数据必须是8 位的。每次传输可以发送的数据不受限制。每个字节后必须在时钟的第9 个脉冲期间释放数据总线(SDA 为高),由接收器发送一个ACK(把数据总线的电平拉低)来表示数据成功接收。如图 IIC

7、 总线响应。图总线响应 首先传输的是数据的最高位(MSB)。如果从机要完成一些其他功能后(例如一个内部中断服务程序)才能接收或发送下一个完整的数据字节,可以使时钟SCL 保持低电平迫使主机进入等待状态。当从机准备好接收下一个数据字节并释放时钟线SCL 后,数据传输继续。如图 IIC 总线数据传输所示。图总线数据传输2.2.3 IIC 总线器件寻址方式IIC 总线上的器件是共用总线的,因此,主器件在进行数据传输前要选择通信的从器件,即进行总线寻址。总线上的所有器件都有唯一的地址,由器件地址和引脚地址两部分构成,共7 位。引脚地址由IIC 总线外围器件的地址引脚(A2、A1、A0)决定的。数据的传

8、输遵循如图 完整的数据传送所示,在起始条件之后,发送一个7 位的从机地址,紧接着第8 位是数据方向(R/ W),0-表示发送数据(写),1-表示接收数据(读)。数据传输一般由主机产生的停止位(P)终止。但是如果主机仍希望在总线上通讯,它可以产生重复起始条件(Sr),和寻址另一个从机,而不是首先产生一个停止条件。在这种传输中,可能有不同的读/写格式结合。如图 IIC 总线完整的数据传输。图 IIC总线的数据传输 系统电路图系统的电路图如 所示: 图 系统电路图运行状况如图:图 运行状态第三章 软件设计系统框图本课题的程序设计是在C 语言的基础之上的,可分为两大模块,分别是:(1)IIC 协议;(

9、2)LCD 显示。程序总体框图如图 所示:图 总程序框图LCD 显示程序框图如图 所示:图显示程序框图 程序清单(一)#include#define uint unsigned int #define uchar unsigned char uchar code display_1=good morning;uchar code display_2=miss yousbit lcden=P34;sbit lcdrs=P35;/sbit lcdrw=P36;uchar num;uint i=0;void delayms(uint z) uint x,y; for(x=z;x0;x-) for(y

10、=110;yy-);void write_com(uchar com) lcdrs=0; lcden=0; P0=com; delayms(5); lcden=1;void write_data(uchar date) lcdrs=1; P0=date;void init() write_com(0x38); write_com(0x0f); write_com(0x06); write_com(0x01);void main() init(); /lcdrw=0; write_com(0x80+0x1a); while(display_1i!=0) write_data(display_1i

11、); i+; delayms(5); write_com(0x80+0x5f); for(num=0;num10;num+) write_data(display_2num);16; write_com(0x18); delayms(100); while(1);(二)/* File:* 功能:向LCD输出HelloWorld*/#include #define rs (18)#define rw (19)#define en (110)#define busy (17)uint8 txt=HelloWorld* 名称:ChkBusy()检查总线是否忙void ChkBusy() IODIR=

12、0x700; while(1) IOCLR=rs; IOSET=rw; IOSET=en; if(!(IOPIN & busy)break; IOCLR=en; IODIR=0x7ff;WrOp()写函数void WrOp(uint8 dat) ChkBusy(); IOCLR=rs; /全部清零 IOCLR=rw; IOCLR=0xff; /先清零 IOSET=dat; /再送数 IOSET=en; IOCLR=en;WrDat()写数据函数void WrDat(uint8 dat) IOSET=rs;lcd_init()lcd初始化函数void lcd_init(void) WrOp(0x

13、38); WrOp(0x06); /光标加1 WrOp(0x0c); /开显示DisText()显示文本函数void DisText(uint8 addr,uint8 *p) WrOp(addr); while(*p !)WrDat(*(p+);main()显示文本int main(void) lcd_init(); /设置为输出 IOCLR=0x7ff; DisText(0x86,txt);/*-文件信息-*文 件 名:*描 述: lpc210x(飞利浦的ARM)目标板特殊的代码,包括异常处理程序和目标板初始化程序* 每个工程应当具有这个文件的拷贝,用户根据程序的需要修改本文件。*注 意:本

14、文件必须以ARM(32位代码)方式编译,否则,必须更改和文件* 别的C代码不必使用ARM(32位代码)方式编译*/#define IN_TARGET/* 函数名称: IRQ_Exception* 功能描述: 中断异常处理程序,用户根据需要自己改变程序*void _irq IRQ_Exception(void) / 这一句替换为自己的代码 FIQ_Exception 快速中断异常处理程序,用户根据需要自己改变程序* void FIQ_Exception(void) TargetInit 目标板初始化代码,在需要的地方调用,根据需要改变 void TargetInit(void) /* 添加自己的

15、代码 */ TargetResetInit 调用main函数前目标板初始化代码,根据需要改变,不能删除 void TargetResetInit(void) /* 设置系统各部分时钟 */* PLLCON = 1;#if (Fcclk / 4) / Fpclk) = 1 VPBDIV = 0;#endif#if (Fcclk / 4) / Fpclk) = 2 VPBDIV = 2;#if (Fcclk / 4) / Fpclk) = 4 VPBDIV = 1;#if (Fcco / Fcclk) = 2 PLLCFG = (Fcclk / Fosc) - 1) | (0 5);#if (Fc

16、co / Fcclk) = 4 PLLCFG = (Fcclk / Fosc) - 1) | (1 #if (Fcco / Fcclk) = 8 PLLCFG = (Fcclk / Fosc) - 1) | (2 #if (Fcco / Fcclk) = 16 PLLCFG = (Fcclk / Fosc) - 1) | (3 PLLFEED = 0xaa; PLLFEED = 0x55; while(PLLSTAT & (1 10) = 0); PLLCON = 3;*/ /* 设置存储器加速模块 */ MAMCR = 2; /MAMCR 8u2 00MAM 功能被禁止、01MAM功能部分使

17、能、10MAM功能完全使能 /* MAMTIM 8u3 0000保留 0011一段时间内只有 1 个处理器时钟(cclk)用于 MAM 取指。 0102一段时间内只有2个处理器时钟(cclk)用于MAM取指。 0113一段时间内只有 3 个处理器时钟(cclk)用于 MAM 取指。 1004一段时间内只有4个处理器时钟(cclk)用于 MAM 取指。 1015一段时间内只有5 个处理器时钟(cclk)用于 MAM 取指。 1106一段时间内只有 6 个处理器时钟(cclk)用于 MAM 取指。 1117一段时间内只有7个处理器时钟(cclk)用于 MAM 取指。 */#if Fcclk MAMTIM = 1;#else MAMTIM = 2; MAMTIM = 3; /* 初始化VIC */ VICIntEnClr = 0xffffffff;/清所有中断使能,即关中断 VICVectAddr = 0;/默认向量地址寄存器 VICIntSelect = 0;/1:对应的中断请求分配为FIQ。0:对应的中断请求分配为IRQ。#pragma import(_use_no_semihosting_swi)#pragma import(_use_two_region_memory) int _rt_div0(int a) a = a; return 0

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2