当前位置:文档之家› 单片机控制继电器实现开关状态显示

单片机控制继电器实现开关状态显示

桂林电子科技大学单片机最小应用系统设计报告指导老师:吴兆华学生:王竣民机电工程学院单片机最小应用系统设计报告目录一、设计题目 (3)二、设计容与要求 (3)三、设计目的意义 (3)四、系统硬件电路图 (3)五、程序流程图与源程序 (5)5.1流程图 (5)5.2源程序 (5)5.2.1程序设计思想 (5)5.2.2源程序清单 (5)六、系统功能分析与说明 (7)6.1系统主要组成部分 (7)6.1.1 单片机最小系统部分 (7)6.1.2 可编程的并行接口芯片8255A (8)6.1.3 输入输出部分 (8)6.2 可编程的并行接口8255A接口电路部分 (9)6.2.1 8255A的引脚 (9)6.2.2 8255A的部结构 (10)6.2.3 8255A的工作方式 (11)6.2.4 8255A的控制字 (13)6.3 开关状态的读入与显示部分 (15)6.4 指示灯显示部分 (15)6.5 电路板的制作 (16)6.5.1 PCB图的制作 (16)6.5.2 电路板的腐蚀、钻孔和元器件的焊接 (17)6.6 系统连线说明分析 (17)七、设计体会 (18)八、参考文献 (19)一、设计题目可编程的并行接口芯片8255A控制继电器实现开关状态显示控制。

采用AT89S51单片机读取外部(8255的A口)的开关信号并将相应的信号通过8255的B口用LED 显示出来端口。

二、设计容与要求用8051单片机和8255读取开关状态并显示开关状态。

用8255的A口接8个开关,B口接8个发光二极管,读取开关状态后,将状态通过8个发光二极管显示出来。

三、设计目的意义1、掌握单片机扩展外部数据存储器的方法。

2、掌握可编程的并行接口芯片8255A与单片机的硬件接口电路、8255A部结构及其编程方法。

3、掌握单片机的最小系统的设计。

4、掌握电路板的设计与制作。

5、了解程序编写与调试的方法和技巧。

6、综合掌握所学的单片机指令系统和硬件接口电路知识,进行简单的最小系统开发。

四、系统硬件电路图系统硬件图(图1)包括单片机最小系统(复位电路、晶振电路和相关的控制信号)、外部扩展芯片8255A部分、外电路接通显示部分、及电源显示部分。

设计硬件电路图时,其基本思想:先通过万能板搭建试验平台,将编好的程序下载到51中,等可以达到预期要求后,最后在PROTEL中设计原理图与PCB,做出电路板。

图1 系统硬件图五、程序流程图与源程序5.1流程图5.2源程序5.2.1程序设计思想单片机通入电源后,一直让单片机对8255的A口进行采集,将8255的A口的开关信号送入8255的B口,原因是8255的B口要时时显示开关的通与段的状态。

5.2.2源程序清单#include<reg51.h>#include<absacc.h>#define uchar unsigned char#define uint unsigned int#define COM8255 XBYTE[0x0300] /*命令口地址*/#define PA8255 XBYTE[0x0000] /*口A*/#define PB8255 XBYTE[0x0100] /*口B*/void delay200ms(void) /*延时函数*/{ unsigned char i,j,k;for(i=5;i>0;i--)for(j=132;j>0;j--)for(k=150;k>0;k--);}void delay1s(void){ unsigned char i,j,k;for(i=10;i>0;i--)for(j=132;j>0;j--)for(k=150;k>0;k--);}void main(void) /*主函数*/ {uchar m;delay200ms();COM8255=0x90; /*确定A,B口工作方式,A口输入,B口输出*/ while(1){delay200ms();m=PA8255; /*单片机读入8255 A口开关信号*/P1=m; /*中间信号,便于调试*/PB8255=m; /*将读入信号显示到8255 B口的LED上*/}}六、系统功能分析与说明6.1系统主要组成部分6.1.1 单片机最小系统部分(1)单片机的最小系统部分包括晶振电路、复位电路、主电源引脚Vss和Vcc、控制引脚/EA。

(2)晶振电路为单片机正常工作时提供的时钟信号,由两个30pf的无极性电容和晶体压电瓷片组成外部振荡电路,把单片机的XTAL1(19)和XTAL2(18)分别接到外晶体的两端,使电容的另外一端接地就完成了单片机的晶振电路部分的设计,硬件图见图2晶振电路所示。

(3)复位电路,当振荡器正常工作时,在单片机的复位引脚(9)连续保持出现两个机器周期以上的高电平时,就会使单片机复位。

AT89S51单片机复位电路主要有上电复手动复位和自动复位两种,在本次试验中我采用手动复位。

按键手动复位的工作原理是:当按下按键时,电源对外接电容进行充电,使RST端为高电平,复位键松开后,电容通过部下拉电阻放电,逐渐使RST端恢复低电平。

具体电路见图2复位电路。

图2 手动复位电路主电源引脚Vss(20)接地,Vcc(40)正常操作时接+5V电源。

控制引脚/EA(31),当/EA保持高电平时,访问部程序存储器(4KB),当PC值超过0FFFH时,将自动转向执行外部程序存储器中的程序。

当/EA接低电平时,则只访问外部程序存储器(从0000H开始),不管单片机部是否有程序存储器。

本系统采用第一种接法,直接将/EA端接高电平。

6.1.2 可编程的并行接口芯片8255A(此部分见5.2可编程的并行接口8255A接口电路部分)6.1.3 输入输出部分本系统采用P0口作为和8255A的数据总线接口;用P2.0和P2.0口分别和8255A 的地址选通信号端A1和A0口相连,作为地址总线,直接将单片机的/WR(16)和/RD (17)及RST(9)与8255A的/WR(36)和/RD(5)及REST(35)相连作为控制总线。

单片机的P0口是8位的双向三态输入/输出接口。

它既可以作为地址/数据总线使用,又可以作为通用的I/O口使用。

当连接外部存储器时,P0口一方面作为8位数据输入/输出口,另一方面用来输出外部存储器的低8位地址,作为输出口时,输出漏极开路,驱动NMOS电路时应该接上拉电阻;作为输入口之前,应先向锁存器中写“1”,使输出的两个场效应管均关闭,引脚处于浮空状态,这样高阻输入,以保证读取引脚信号而不是读锁存器状态。

当P0口作为地址/数据总线时,就不能再把它作为通用的I/O口使用了。

由于本系统正是采用P0口作为数据总线使用,所以就不能把P0口作为通用的I/O口了。

6.2 可编程的并行接口8255A接口电路部分6.2.1 8255A的引脚图3 8255引脚图8255A具有40个引脚,采用双列直插封装形式,其引脚图如图3所示,各引脚的功能如下:D7~D0:三态双向数据引脚,与单片机的数据总线相连,用于CPU与各I/O之间的数据传输;PA7~PA0:A口输入/输出引脚;PB7~PB0:B口输入/输出引脚;PC7~PC0:C口输入/输出引脚;/CS:片选信号线,低电平有效,表示芯片被选中;/RD:读信号线,低电平有效,控制数据读出;/WR:写信号线,低电平有效,控制书局写入;RESET:复位信号线,高电平有效;A1、A0:地址线,输入三个端口和控制寄存器的地址。

6.2.2 8255A的部结构8255A由3个数据输入/输出端口、二个工作方式控制电路、一个读/写控制逻辑电路和一个总线数据缓冲器组成,其部结构如图4所示。

图4 8255部结构(1)端口A、B、CA口:具有8位数据输出锁存/缓冲器和一个8位数据输入锁存器;B口:具有一个8位数据输入/输出锁存/缓冲器和一个8位数据输入缓冲器;C口:具有一个8位数据输出锁存/缓冲器和一个8位数据输入缓冲器(不锁存);三个端口中A口和B口总是作为数据输入/输出端口,C口有时控制信号和状态信号的输入/输出端口。

(2)工作方式控制电路工作方式控制电路由两个,即A组控制电路和B组控制电路,分别控制A口和C 口上半部、B口和C口下半部。

工作方式控制电路根据控制字寄存器的容控制A组和B组的工作方式,也可根据控制字寄存器的容对C口按位进行操作。

(3)总线数据缓冲器总线数据缓冲器是一个三态双向8位缓冲器。

它的一端作为8255A与单片机的数据总线的接口,另一端与A口、B口、C口和控制字寄存器相连,作为单片机与I/O口和控制字寄存器之间的数据缓冲器。

读/写控制逻辑电路读/写控制逻辑电路输入的控制信号由/RD、/WR、RESET和A1、A0。

它根据这些信号控制I/O口及控制寄存器的读/写操作。

其中地址线A1、A0用来选择I/O口和控制寄存器,与读/写控制信号/RD和/WR构成各种工作状态,如表1-1所示。

6.2.3 8255A的工作方式8255A有3种工作方式,即工作方式0、工作方式1和工作方式2.。

(1)工作方式0工作方式0为基本输入/输出方式,其功能概括如下:具有二个8位端口(A口、B口)和二个4位端口(C口的上、下半部分);任意一个端口都可以设定为输入或输出,各端口的输入/输出状态可构成16种组合;数据输出全部锁存,输入不锁存。

在工作方式0状态下,A口、B口、和C口都作为I/O端口,没有设置控制/状态信号时,单片机可以通过访问外部数据存储器指令,对任一端进行读/写操作。

本系统要求CPU读取外部输入的开关信号,判断是哪一位的按键信号,然后,通过8255A的PB0、PB1端口输出,直接采用方式1无条件输入输出方式。

(2)工作方式1:选通输入输出方式端口A和端口B可以设置为这种工作方式,可以是选通的输入方式,或者是选通的输出方式。

当A口或B口设置为方式1时,由端口C的某些位固定地为端口A或端口B 提供联络信号或者状态信号,其中包括专门用于中断请求的信号,以便于8255A和外设之间,或者是8255A和CPU之间传送状态信息以及中断请求信号。

这种联络信号是由8255A部规定的,不是由使用者指定的。

方式1可以使用在查询方式的数据传送和中断方式的数据传送中。

(3)工作方式2:双向方式只有端口A可以选择这种方式,这时,端口A既可以输入也可以作为输出。

当然,这种双向的数据传送也不是同时进行,但可以是在这个时刻输入操作,在下一个时刻进行输出操作,而不需要对传送的方向重新设置。

端口A工作方式2时,仍然默认为时选通的输入/输出方式,即在C口种规定了输入和输出的状态信息,这些状态信息的位置和A口工作在方式1时基本相同。

相关主题