片机8255并行口扩展控制系统设计.docx
- 文档编号:23822283
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:14
- 大小:98.74KB
片机8255并行口扩展控制系统设计.docx
《片机8255并行口扩展控制系统设计.docx》由会员分享,可在线阅读,更多相关《片机8255并行口扩展控制系统设计.docx(14页珍藏版)》请在冰豆网上搜索。
片机8255并行口扩展控制系统设计
单片机最小应用系统
设
计
报
告
指导老师:
学生:
学号:
机电工程学院
年月日
一、设计题目3
二、设计内容与要求3
三、设计目的意义3
四、系统硬件电路图3
五、程序流程图与源程序4
六、系统功能分析与说明6
七、设计体会12
八、参考文献13
一、设计题目
8255并行口扩展控制系统设计。
利用单片机AT89S51控制实现8255的PB口输出数据等于PA口输入数据。
二、设计内容与要求
(1)利用单片机AT89S51与8255A设计一个扩展控制系统设计。
(3)要求使用的元器件数目最少,电路尽可能简单。
(4)电源电压为+5V。
三、设计目的意义
1、通过8255并行口扩展控制,进一步熟悉和掌握单片机的结构及工作原理,加深对单片机理论知识的理解;
2、掌握单片机内部功能模块的应用;
3、掌握单片机的接口及相关外围芯片的特性、使用与控制方法;
4、掌握单片机的编程方法,调试方法;
5、掌握单片机应用系统的构建和使用,为以后设计和实现单片机应用系统打下良好的基础。
四、系统硬件电路图
(1)8255并行口扩展控制硬件电路原理图如下:
图1:
电路原理图
(2)PCB图如下:
图2:
PCB图
五、程序流程图与源程序
5.1程序流程图
图3:
程序流程图
5.2源程序
#include
#defineRDP0_3
#defineWRP3_7
#defineA0P0_0
#defineA1P0_1
#defineRESTP3_6
#defineCSP0_2
voidmain(void)
{
unsignedcharget_data;
CS=0;
REST=1;
REST=0;
RD=1;
P2=0x90;
A0=1;
A1=1;
WR=0;
WR=1;
/////////////////////////////////////////以前是初始化
P2=0xff;
A0=0;
A1=0;
WR=0;
WR=1;
P2=0xff;
while
(1)
{
A0=0;
A1=0;
RD=0;
get_data=P2;
RD=1;
P2=get_data;
A0=1;
A1=0;
WR=0;
WR=1;
P2=0xff;
}
}
六、系统功能分析与说明
6.1总体功能实现说明
本次设计单片机采用AT89S51,它是一种低功耗、高性能的8位CMOS微控制器。
片内含有4KB的存储器(EPEROM),与8031引脚和指令系统完全兼容。
89S51的VCC接+5V,VSS接地。
复位引脚RESET外接RC电路和复位开关,可以实现人工复位。
本系统采用按键电平复位,如硬件图所示。
XTAL1和XTAL2引脚外接12MHZ晶振和两个30PF的电容。
一般,单片机系统中高集成度芯片的电源端都应并联虑波电容,但此系统中只需扩展一个8255并对发光二极管进行控制,而不需要精确控制,所以没有接虑波电容。
从系统实际运行情况看,没有接虑波电容未对系统稳定性造成影响。
89S51单片机中,没有单独的地址总线和数据总线,而是和P0口和P2口公用的:
P0口分时地作为低8位地址线和8位数据线用,P2口则作为高8位地址线用。
所以有16条地址线和8条数据线,但要注意,他们不是独立的总线,而是和I/O端口合用的。
本系统是扩展8255,用到了89S51的P2口作为低8位地址线和数据线,高8位地址则由P0口控制,P0.0接在8255的A0上,P0.1接在A1上,8255的片选由P0.2控制。
本系统中要求实现8255的PB口输出数据等于PA口输入数据,我的做法是:
在PA口接上开关,控制高低电平的变化;PB口则接上发光二极管,通过发光二极管的亮灭情况可知PB口的输出状态以及PA输入状态,从而达到系统的要求。
为了很好地保护发光二极管,在每个发光二极管的回路上接上限流电阻,大小为1K,PA口的排阻大小为10K。
当按下PA口的开关时,PB口相应的发光二极管将亮起。
本设计可用于抢答器设计等领域。
6.2功能介绍
(1)ATM89S51主要功能特性:
图4:
MCS-51单片机的基本结构
AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:
40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
主要功能特性:
·兼容MCS-51指令系统
·32个双向I/O口
·2个16位可编程定时/计数器
·全双工UART串行中断口线
·2个外部中断源
·中断唤醒省电模式
·看门狗(WDT)电路
·灵活的ISP字节和分页编程
·4k可反复擦写(>1000次)ISPFlashROM
·4.5-5.5V工作电压
·时钟频率0-33MHz
·128x8bit内部RAM
·低功耗空闲和省电模式
·3级加密位
·软件设置空闲和省电功能
·双数据寄存器指针
(2)89S51的并行接口
89S51单片机有4个8位的并行接口,记作P0、Pl、P2和P3,共32根I/O线。
每个口主要由四部分构成:
端口锁存器、输入缓冲器、输出驱动器和引至芯片外的端口引脚。
它们都是双向通道,每一条I/O线都能独立地用作输入或输出。
作输出时数据可以锁存,作输入时数据可以缓冲。
但这四个通道的功能不完全相同。
P0口和P2口内部各有一个2选1的选择器,受内部控制信号的控制,在如图位置则是处在I/O口工作方式。
四个接口在进行I/O方式时,特性基本相同:
①作为输出口用时,内部带锁存器,故可以直接和外设相连、不必外加锁存器。
②作为输入口用时,有两种工作方式,即所谓读端口和读引脚。
读端口时实际上并不从外部读人数据,而只是把端口锁存器中的内容读人到内部总线,经过某种运算和变换后,再写回到端口锁存器。
属于这类操作的指令很多,加对端口内容取反等等。
而读引脚时才真正地把外部的数据读入到内部总线。
逻辑图中各有两个输入缓冲器,CPU根据不同的指令,分别发出“读端口”或“读引脚”信号,以完成两种不同的读操作。
③在端口作为外部输入线,也就是读引脚时,要先通过指令,把端口锁存器置l,然后再实行读引脚操作,否则就可能读人出错。
若不先对端口置1,端口锁存器中原来状态有可能为0,加到输出驱动场效应管栅极的信号为l,该场效应管就导通,对地呈现低阻抗。
这时即使引脚上访入的是1信号,也会因端口的低阻抗而使信号变低,使得外加的1信号读人后不一定是1。
若先执行置1操作,则可以驱动场效应管截止,引脚信号直接加到三态缓冲器,实现正确的读入。
由于在输入操作时还必须附加一个准备动作,所以这类I/O口被称为“推双向”口。
这四个接口特性上的差别主要是P0、P2和P3都还有第二功能,而P1口则只能用作I/O口。
89S51的芯片引脚中没有专门的地址总线和数据总线
,在向外扩展存贮器和接口时,由P2口输出地址总线的高8位A15-A8,由P0口输出地址总线的低8位A7-A0,同时对P0口采用了总线复用技术,P0口又兼作8位双向数据总线D7-D0,即由P0口分时输出低8位地址或输人/输出8位数据,在不作总线扩展用时,P0口和P2口可以作为普通I/O口使用。
P0口作为低8位地址总线和8位数据总线用时,内部控制信号使MUX开关倒向上端,从而使地址/数据信号通过输出驱动器输出。
当向外部存贮器读写时,P0口就用作低8位地址和数据总线用。
这时P0口是一个真正的双向口.P2口还可以作为高8位地址总线用,同样通过Mux开关的倒换来完成。
P2在外部存贮器读写时(地址大于FFH)作高8位地址线用。
P3口的每一位都有各自的第二功能,见表2。
通道位
第二功能
注释
P3.0
RXD
串行输入口
P3.1
TXD
串行输出口
P3.2
INT0
外部中断0输入
P3.3
INT1
外部中断1输入
P3.4
T0
计数器0计数输入
P3.5
T1
计数器1计数输入
P3.6
WR
外部数据RAM写选通信号
P3.7
RD
外部数据RAM读选通信号
表2:
通道P3的第二功能
四个接口的负载能力也不相同。
P1、P2、P3口都能驱动三个LSTTLl,并且不需外加电阻就能直接驱动MOS电路。
P0口在驱动TTL电路时能带八个略TTL门,但驱动MOS电路时若作为地址/数据总线,可以直接驱动,而作为I/O口时,格外接上拉电阻(电阻接vcc),才能驱动MOS电路.
(3)发光二级管的基本原理说明
发光二极管(LED)是用半导体材料制作的正向偏置的PN结二极管.其发光机理是当在PN结两端注入正向电流时,注入的非平衡载流子(电子-空穴对)在扩散过程中复合发光,这种发射过程主要对应光的自发发射过程.发光二极管具有可靠性较高,室温下连续工作时间长、光功率-电流线性度好等显著优点,而且由于此项技术已经发展得比较成熟,所以其价格非常便宜.因此在一些简易的光纤传感器的设计中,如果LED能够胜任,选用它作为光源即可大大降低整个传感器的成本.然而LED的发光机理决定了它存在着很多的不足,如输出功率小、发射角大、谱线宽、响应速度低等.因此,在一些需要功率高、调制速率快、单色性好的光源的传感器设计中,就不得不以提高成本为代价,选用其它更高性能的光源.
(4)8255特性
①一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口。
②具有24个可编程设置的I/O口,即使3组8位的I/O口为PA口,PB口和PC口。
它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3)。
A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定。
(5)8255引脚功能
RESET:
复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:
芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输。
RD:
读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:
写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。
D0~D7:
三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
PA0~PA7:
端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
PB0~PB7:
端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
PC0~PC7:
端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
'
A0,A1:
地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器。
当A0=0,A1=0时,PA口被选择;
当A0=0,A1=1时,PB口被选择;
当A0=1,A1=0时,PC口被选择;
当A0=1,A1=1时,控制寄存器被选择。
七、设计体会
微机综合设计是对我们大学所学知识的总结和运用,对我们的综合能力有很大的帮助和提高。
随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
因为课程所学的都是理论知识,而从理论到实践是需要一定过程的,微机综合设计就是一次很好的锻炼机会对于我们这些以后可能从事控制行业的人来说有着举足轻重的作用。
时间过得很快,两周的微机综合设计就这样结束了。
之前我对自己没什么信心,总听别人说,做电路板容易调电路板才是真正烦人的事,还没开始我就担心自己不能顺利完成,不过我还是对自己说了,在学校这样一个好的平台,这样一个小小任务都完成不了那以后走上工作岗位了我还能有什么作为。
经过师兄们的辅导之后我信心倍增,相信只要自己努力了肯定会有收获的,况且在我们之前那么多师兄师姐也都走过去了,我又不比别人差,肯定能顺利完成任务的。
回顾起此次单片机课程设计,至今我仍感慨颇多。
的确,从选题到确定所用的元器件,从理论到实践,在整整两个星期里,可以说得是酸甜苦辣啊,但是我却真正从这次课设中学到很多很多的东西,经过这次课设不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有提过的知识。
经过这次课设让我更加注意到理论与实践相结合的重要性,虽然我在理论的学习中成绩很不错,但一到实践还是遇到很多困难,毕竟在这之前没有接触过这样的设计,所以说这次课程设计对我的意义重大。
这次设计要求每个人单独完成。
由于我选的题目接线比较复杂,如果用万用板来完成这次设计,那么板上的布线将会很复杂,也不美观,所以通过利用万用板是件之后我决定自己做一块PCB板。
之前没有学过怎样制作PCB板,所以刚开始的时候也是一头雾水。
经过师兄细心地指导,终于把制作PCB板的整个流程熟悉了一遍。
培养了自己动手能力之外,还让自己从中学习了很多新的知识。
当前期工作都完成之后就开始焊接元器件了,还没焊好之前总害怕自己做出来的板不能顺利工作。
等到把所有元器件都焊接完成之后,烧入程序一试,果真跟之前的预感一样:
系统不能正常工作。
最后发现单片机上的复位端口接错了,自己以为接上这条线之后系统应该能顺利工作了,没想到还是不行,这时有点着急了。
经过努力地找资料,最后发现8255的PA口要接上拉电阻,上拉一接上,系统终于能正常工作了。
通过自己的动手,亲身体验到了理论与实践真的有太大的差距,理论只是基础并不是全部。
在做板的过程中必须一直保持谨慎,因为一个小小的失误可能让你花费很长的时间去调试。
当你正为调不出结果而发愁时,一个小小的成功会给你带来无语伦比的喜悦,那种感觉真的很美妙。
这次课设对于我而言有着重要的意义,不仅丰富了知识,也提高了自己的动手能力。
在挫折与喜悦之中我得到了发展,这次课设必将在我的人生中留下美好的回忆。
八、参考文献
[1]赵全利.单片机原理及应用教程[M]机械工业出版社,2007.7
[2]李忠国,陈刚.单片机应用技能实训.北京:
人民邮电出版社,2006
[3]肖洪兵.跟我学用单片机.2版.北京:
北京航空航天大学出版社,2006
[4]吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用.北京:
清华大学出版社,2004
(注:
素材和资料部分来自网络,供参考。
请预览后才下载,期待你的好评与关注!
)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 8255 并行口 扩展 控制系统 设计