8255应用研究毕业论文2.doc
《8255应用研究毕业论文2.doc》由会员分享,可在线阅读,更多相关《8255应用研究毕业论文2.doc(28页珍藏版)》请在冰点文库上搜索。
绵阳师范学院
本科生毕业设计(设计)
题目8255应用研究
专业电子信息科学与技术
院系物理与电子工程学院
学号0709410114
姓名
指导教师讲师
答辩时间2011年5月
论文工作时间:
2010年12月至2011年4月
论文题目来源:
国家自然科学基金项目
编号:
四川省自然科学研究项目
编号:
校级自然科学研究项目
编号:
8255应用研究
学生:
郑国海
指导教师:
郭辛
摘要:
随着电子技术的迅猛发展,电路越来越复杂,这使得一些低端单片机因其有限的接口不能胜任复杂的外围电路。
这时我们就要对单片机I/O口进行扩展。
最常用的就是INTEL公司的8255A芯片。
该芯片性能稳定,功能多,价格合理,已经广泛应用到各个领域。
本研究主要研究8255对51单片机I/O口扩展功能。
本设计采用stc89c52单片机作为主控芯片,通过74hc573锁存,再传给8255。
这样可以通过编程实现对单片机I/O口的扩展。
再由8255的PA、PB、PC口作为I/O口,从而实现对lcd1602液晶和矩阵键盘的控制。
关键词:
液晶、51单片机、键盘、I/O口
ResearchonApplicationof8255
Undergraduate:
ZhengGuohai
Supervisor:
GuoXin
Abstract:
Withtherapiddevelopmentofelectronictechnology,single-chipmicroprocessor(SCM)cannotmeettheneedofcomplexcircuitsbecauseofitslimitinterfaces.Inthiscase,somemicrocontrollerI/Oportforexpansionwouldbeuse.ThemostcommonistheIntelCompany's8255Achip.Thechipperformsstably,function,lowcost,andhasbeenwidelyappliedinvariousfields.TheI/OportexpansionforC51hasbeenstudiedinthispaper.
WithSTC89c52beingitsmicrocontroller,dataaresentto8255AviaLatch,74hc573inthedesign.Portexpansioncanbeachievedbyprogram.Andthendatafrom8255thePA,PB,PCportasI/Oports,enablecontrolliquidcrystaldisplay(LCD)andkeyboard.
朗读
显示对应的拉丁字符的拼音
Keywords:
LCD;SCM;Keyboard;I/OPort
目录
绪论 1
1单片机概述 2
1.1单片机的应用领域 2
1.2单片机的发展趋势 2
2设计方案及单片机的选型 3
2.1系统设计方案 3
2.2单片机选型及其介绍 3
38255对单片机I/O口扩展 6
3.18255工作方式及扩展原理 6
3.2单片机与8255接口电路 8
4锁存芯片选择及功能 9
4.1锁存芯片选择 9
4.274LS573功能介绍 9
5LCD1602显示原理 10
6矩阵键盘及键盘电路 11
7系统软件设计 12
7.1软件设计思路 12
7.2软件调试 15
结论 16
参考文献 17
致谢 16
附录1 19
附录2(程序清单) 20
绵阳师范学院2011届本科设计(论文)
绪论
随着科技的飞速发展,电子系统变得越来越复杂。
传统的51单片机的32个I/O口已经远远不能胜任工业控制,以及一些电子产品的外围电路控制。
所以本文介绍了一种简单实用的方法扩展单片机I/O口。
用一片51单片机,一片74hc574锁存芯片,还有8255以及一些简单的外围电路便可以实现对单片机I/O口进行扩展。
扩展口8255的PA、PB、PC口可以当单片机的8位I/O口用。
但是这是需要对地址及数据进行锁存,可以通过对单片机写软件进行实现。
数据锁存可以用74ls373也可以用74hc573,都是D-Q锁存芯片,功能也都相同,由于管教分布不一样。
74ls373是输入输出有交叉的,而74hc573输入和输出不交叉,这样给电路设计带来很多方便。
因此本课题锁存芯片采用74hc574的电路,使电路更加简单。
本设计主要原理是由stc89c52单片机作CPU,通过74hc573锁存数据,再传给8255的COM口。
通过设置8255端口地址,达到控制8255的PA、PB、PC口的读写,这样就可以实现对单片机I/O口的扩展。
8255的A0、A1接到74hc573的输出端。
其中片选端CS低电平有效,REST接地。
其中8255选择方式0,其控制线WR,RD分别于单片机对应口相连。
本课题主要研究8255芯片对单片机I/O口的扩展功能,以及矩阵键盘和液晶的应用。
1 单片机概述[2][4][5][6]
1.1单片机的应用领域[2]
单片机常常作为电子产品,智能仪器的核心,相当于人的大脑。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:
[2]
1。
在智能仪器仪表上的应用
单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。
采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。
例如精密的测量设备(功率计,示波器,各种分析仪)。
2.在工业控制中的应用
用单片机可以构成形式多样的控制系统、数据采集系统。
例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。
3.在家用电器中的应用
可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。
4.在计算机网络和通信领域中的应用
现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。
5.单片机在医用设备领域中的应用
单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。
此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。
1.2单片机的发展趋势[4][6]
世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。
纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:
1.低功耗CMOS化
MCS-51系列的8031推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。
象80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。
CMOS虽然功耗较低,但由于其物理特征决定其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于在要求低功耗象电池供电的应用场合。
所以这种工艺将是今后一段时期单片机发展的主要途径。
2.微型单片化
现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。
甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。
3.主流与多品种共存[6]
虽然单片机的品种繁多,各具特色,但仍以80C51为核心的单片机最常用,兼容其结构和指令系统的有PHILIPS公司的产品,ATMEL公司的产品和中国台湾的Winbond系列单片机。
所以C8051为核心的单片机占据了半壁江山。
而Microchip公司的PIC精简指令集(RISC)也有着强劲的发展势头,中国台湾的HOLTEK公司近年的单片机产量与日俱增,与其低价质优的优势,占据一定的市场分额。
在一定的时期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补,相辅相成、共同发展的道路。
2设计方案及单片机选型
2.1设计方案
采用8255扩展单片机I/O口,用stc89c52单片机作为主控芯片,通过74hc573锁存,再传给8255。
这样可以通过编程实现对单片机I/O口的扩展。
通过锁存后再把数据传给8255,从而实现PA、PB、PC口作为I/O口的功能。
本系统设计框图见图2-1:
锁存芯片
8255
键盘液晶
单片机
图2-1系统框图
2.1单片机的选型及其介绍[2][6]
在系统的设计中,选择合适的系统核心器件就成为能否成功完成设计任务的关键。
选择好合适的单片机可以最大地简化单片机应用系统,而且功能优异,可靠性好,成本低廉,具有较强的竞争力。
目前,市面上的单片机不仅种类繁多,而且在性能方面也各有所长。
一般来说,选择单片机需要考虑以下几个方面:
(1)单片机的基本性能参数。
例如指令执行速度,程序存储器容量,I/O引脚数量等。
(2)单片机的增强功能。
例如看门狗、多指针、双串口等。
(3)单片机的存储介质。
对于程序存储器来说,Flash存储器和OTP(一次性可编程)存储器相比较,最好是Flash存储器。
(4)芯片的封装形式。
如DIP(双列直插)封装,PLCC(PLCC有对应插座)封装及表面贴附等。
(5)芯片工作温度范围符合工业级、军工级还是商业级。
如果设计户外产品,必须选用工业级。
(6)芯片的功耗。
比如设计并口加密狗时,信号线取电只能提供几mA的电流,选用STC单片机就是因为它能满足低功耗的要求。
(7)供货渠道是否畅通、价格是否低廉。
(8)技术支持网站的速度如何,资料是否丰富。
包括芯片手册,应用指南,设计方案,范例程序等。
(9)芯片保密性能好、单片机的抗干扰性能好。
图2-2STC89C52芯片引脚及功能
STC89系列单片机是MCS-51系列单片机的派生产品。
比AT89S51单片机性能更稳定,保密性更好。
它在指令系统、硬件结构和片内资源上与标准8052单片机完全兼容,DIP40封装系列与8051为pin-to-pin兼容。
STC89系列单片机高速(最高时钟频率90MHz),低功耗,在系统/在应用可编程(ISP,IAP),不占用户资源。
根据本系统的实际情况,选择STC89C52单片机,引脚见图2-1。
其引脚定义及其功能为:
VCC:
供电电压。
GND:
接地。
P0口:
P0口是为一组个8位漏级开路双向I/O口,也即地址数据总线复用口。
作为输出口用时,每位可驱动8个TTL逻辑门电路,对端口写“1”时可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲级可驱动4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在Flash编程和程序校验期间,P1口接收低8位地址。
P2口:
P2口为一个带有内部上拉电阻的8位双向I/O口,P2口输出缓冲级可驱动4个TTL逻辑门电路。
当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,P3口:
P3口是一组带有8个内部上拉电阻的双向I/O口,P3口输出缓冲级可驱动4个TTL逻辑门电路。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRT0位(地址8EH)可打开或关闭该功能。
DISRT0位在缺省为RESET时输出高电平,呈打开状态。
ALE/PROG(————)当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低8位字节。
在Flash编程期间,此引脚用于输入编程脉冲。
当不访问外部存储器时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当访问外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出,可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN(————):
程序存储允许输出的是外部程序存储器的选通信号。
当AT89S51由外部程序存储器取指令或数据时,每个机器周期两次PSEN(————)有效,即输出两个脉冲。
但在访问外部数据存储器时,这两次有效的PSEN(————)信号将不出现。
EA(——)/Vpp:
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
需注意到是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
当EA端接高电平(接Vcc端),CPU则执行内部程序存储器中的指令。
在Flash编程期间,该引脚加上+12V的编程电压Vpp。
XTAL1:
振荡器反相放大器及内部时钟发生器的输入端。
XTAL2:
振荡器反相放大器的输出端。
因此本设计采用时钟频率为11.0592MHZ,采用STC89C52单片机,外加按键复位电路构成一个单片机最小系统。
为了使本设计简单且稳定采用usb供电,因此省去了电源电路部分。
图2-2为单片机最小系统原理图。
图2-3单片机最小系统
38255对单片机IO口扩展[5][8][9][12][13][14]
3.18255工作方式及扩展原理[5][8][9][12]
8255是单片机应用系统中广泛采用的可编程外部IO口,扩展芯片。
它有3个8位并行IO口,每个口可以有3种工作方式。
其中的WR\是写信号输入端,RD\是读信号输入端,A1A0用于决定端口的地址。
1.8255是一个通用可编程并行I/O接口芯片,引脚定义如图3-1所示。
[12]
(1)8255有3个8位并行I/O端口,端口A,B,C均可以工作在输入或输出方式;
(2)两组控制电路分别控制3个端口,A组控制端口A和端口C的高4位,B组控制电路控制端口B端口C的低4位;
(3)具有数据总线缓冲器,可以方便地与单片机数据总线连接;
(4)端口A,B,C通过内部数据总线与数据总线缓冲器连接,即各端口通过数据端口与单片机交互信息;
(5)提供读/写控制逻辑,可以很方便地通过MOVX反映令完成对其各端口的操作。
图3-18255引脚图
2.8255的功能
(1)数据端口A,B,C
端口A:
一个8位数据输出锁存/缓冲器,一个8位数据输入锁存器;
端口B:
一个8位数据输出锁存/缓冲器,一个8位数据输入锁存器;
端口C:
一个8位数据输出锁存/缓冲器,一个8位数据输入锁存器。
3个端口都可以作为数据输入式输出端口,但是不同的端口有不同的工作方式。
除一般输入/输出方式外,端口A还可以工作在双向方式、握手联络方式,端口B可以工作在握手联络方式;而端口C可以作为控制或状态信号的端口,为端口A和B提供握手联络信号,并且端口C还可工作在按位置位/复位方式。
本设计中,只将其作为最基本的I/O口使用。
(2)读/写和控制逻辑
读/写和控制逻辑直接与单片机的控制总线及地址总线相连接,8255的A0,A1及与地址总线连接,而和与单片机的和信号连接。
8255有如下相关的控制信号。
:
片选信号,低电平时,8255被选口;
:
读信号,低电平有效,该信号有效时可以读取8255的端口数据或状态信息;
:
写信号,低电平有效,该信号有效时可以向8255写入控制字式向端口写数据;
RESET:
复位信号,高电平有效,只有复位后8255才能接收单片机对其进行的初始化。
(3)端口地址的确定
8255的地址由其引脚,A1,A0决定,端口选择如表所示。
表3-18255端口选择
3.8255的控制字、状态字和工作方式
(1)8255的控制字
8255有两种控制字,它们决定了8255的工作方式。
方式控制字
D7:
D7=1,是方式控制字标志。
D6和D5:
确定A口工作方式,D6D5=00,A口工作在方式0;D6D5=01,A口工作在方式1;D6D5=10,A口工作在方式2。
D4:
确定A口的数据传输方向,D4=1,A口输入;D4=0,A口输出。
D3:
确定C口的PC7~PC4的数据传输方向,D3=1,PC7~PC4输入;D3=0,PC7~PC4输出。
D2:
确定B口的数据传输方向,D2=1,B口输入;D2=0,B口输出。
D0:
确定C口的PC3~PC0的数据传输方向,D0=1,PC3~PC0输入;D0=0,PC3~PC0输出。
(2)按位复位/置位控制字
D7:
D7=0,是按位复位/置位,控制字标志。
D6,D5,D4:
没有定义。
D3,D2,D1:
选择C口中的某一位,3位组成8个状态,000~111分别代表选择PC0~PC7。
D0:
置1、清零标志,D0=1,将D3D2D1选择位置1;D0=0,将D3D2D1选择位清零。
(3)8255的状态字[12]
8255没有专门的状态字,当端口A、端口B工作于方式1或方式时,端口C为它们提供握手联络信号,读端口C,可以得到有关端口的工作状态信息。
端口工作于方式0时,没有相应的状态信息。
状态字与工作方式密切相关。
(4)8255工作方式
由8255的方式控制字可知,8255有3种工作方式,并且不同的端口有不同的工作方式。
端口A可以工作在方式0、方式1和方式2,端口B可以工作在方式0和方式1,端口C只能工作在方式0。
本设计中只选用8255的方式0,即基本的输入/输出方式,3个端口互不影响,可以分别设置为输入或输出。
3.2单片机与8255的接口电路[13][14]
8255与单片机的接口电路如图3-2所示。
单片机的P0口通过74ls573锁存后再与8255的D0-D7口相接,从而实现多单片机P0口扩展功能。
这样单片机就多了3组I/O口,因此在一些复杂的系统中常用这种方法。
其中rest为复位信号,输入,高电平有效,当它有效时所有内部寄存器清零,三个数据端口均被设置为输入方式。
所以这里rest端口就不接悬空,否则将无法扩展。
CS为片选信号,输入低电平有效,只有当它有效时8255才会被单片机选中。
这里接到74ls573的Q2口。
和分别和单片机的和相连,分别为读信号和写信号。
8255与单片机的连接电路见图3-2
图3-28255与单片机的连接电路
4 锁存芯片的选择及功能[13][14]
4.1锁存芯片选择[13][14]
市场上8位的锁存芯片很多。
比较常用的有74ls373和74ls573。
都是D型锁存器,逻辑完全相同,管脚排列不同。
表面上看起来选择哪款芯片没有影响,但是由于74ls373输入输出是交叉排列,这样会导致电路连接起来比较复杂。
对于单面板或者多孔板焊接时难免会很困难,同时也降低了系统的可靠性。
且74ls573价格适中,性能稳定,应用已经很成熟。
因此选择74ls573作为锁存芯片。
4.274LS573功能介绍[13][14]
74LS573的八个锁存器都是透明的D型锁存器,当使能(G)为高时,Q输出将随数据(D)输入而变。
当使能为低时,输出将锁存在已建立的数据电平上。
输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。
这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。
特别适用于缓冲寄存器,I/O通道,双向总线驱动器和工作寄存器。
5 LCD1602显示原理[14]
字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样。
本设计选用的是16脚液晶,显示容量为16X2字符,共工作电压为4.5-5.5V,工作电流为20mA,模块最佳工作电压为5V。
其详细接口信号说明见表5-1
表5-1
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
DATAI/O
2
VDD
电源正极
10
D3
DATAI/O
3
VL
液晶显示偏压信号
11
D4
DATAI/O
4
RS
数据命令选择端
12
D5
DATAI/O
5
R/W
读写选择端
13
D6
DATAI/O
6
E
DATAI/O
14
D7
DATAI/O
7
DO
DATAI/O
15
BLA
背光源正极
8
D1
DATAI/O
16
BLK
背光源负极
操作时序:
1:
读状态:
输入:
RS=0,RW=1,E=1
2:
写指令:
输入:
RS=0,RW