单片机最小应用系统设计报告指导老师:学生:学号:机电工程学院年月日目录一、设计题目 (3)二、设计内容与要求 (3)三、设计目的意义 (3)四、系统硬件电路图 (3)五、程序流程图与源程序 (4)六、系统功能分析与说明 (6)七、设计体会 (11)八、参考文献 (12)一、设计题目8255并行口扩展控制系统设计。
利用单片机AT89S51控制实现8255的PB口输出数据等于PA口输入数据。
二、设计内容与要求(1)利用单片机AT89S51与8255A设计一个扩展控制系统设计。
(3)要求使用的元器件数目最少,电路尽可能简单。
(4)电源电压为+5V。
三、设计目的意义1、通过8255并行口扩展控制,进一步熟悉和掌握单片机的结构及工作原理,加深对单片机理论知识的理解;2、掌握单片机内部功能模块的应用;3、掌握单片机的接口及相关外围芯片的特性、使用与控制方法;4、掌握单片机的编程方法,调试方法;5、掌握单片机应用系统的构建和使用,为以后设计和实现单片机应用系统打下良好的基础。
四、系统硬件电路图(2) PCB图如下:图2:PCB图五、程序流程图与源程序5.1 程序流程图图3:程序流程图5.2 源程序#include <AT89x51.H>#define RD P0_3#define WR P3_7#define A0 P0_0#define A1 P0_1#define REST P3_6#define CS P0_2void main(void){unsigned char get_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是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(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次)ISP Flash ROM·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。
表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做数据传输。