单片机控制继电器实现开关状态显示_第1页
单片机控制继电器实现开关状态显示_第2页
单片机控制继电器实现开关状态显示_第3页
单片机控制继电器实现开关状态显示_第4页
单片机控制继电器实现开关状态显示_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

...wd......wd......wd...桂林电子科技大学单片机最小应用系统设计报告指导教师:吴兆华学生:王竣民机电工程学院单片机最小应用系统设计报告目录一、设计题目3二、设计内容与要求3三、设计目的意义3四、系统硬件电路图3五、程序流程图与源程序55.1流程图55.2源程序55.2.1程序设计思想55.2.2源程序清单5六、系统功能分析与说明66.1系统主要组成局部66.1.1单片机最小系统局部66.1.2可编程的并行接口芯片8255A76.1.3输入输出局部76.2可编程的并行接口8255A接口电路局部86.2.18255A的引脚86.2.28255A的内部构造96.2.38255A的工作方式106.2.48255A的控制字126.3开关状态的读入与显示局部146.4指示灯显示局部146.5电路板的制作146.5.1PCB图的制作156.5.2电路板的腐蚀、钻孔和元器件的焊接166.6系统连线说明分析16七、设计体会17八、参考文献18一、设计题目可编程的并行接口芯片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> #defineucharunsignedchar #defineuintunsignedint #defineCOM8255XBYTE[0x0300]/*命令口地址*/ #definePA8255XBYTE[0x0000]/*口A*/ #definePB8255XBYTE[0x0100]/*口B*/ voiddelay200ms(void)/*延时函数*/ {unsignedchari,j,k; for(i=5;i>0;i--) for(j=132;j>0;j--) for(k=150;k>0;k--); } voiddelay1s(void) {unsignedchari,j,k; for(i=10;i>0;i--) for(j=132;j>0;j--) for(k=150;k>0;k--); } voidmain(void)/*主函数*/{ ucharm; delay200ms(); COM8255=0x90; /*确定A,B口工作方式,A口输入,B口输出*/ while(1) { delay200ms(); m=PA8255; /*单片机读入8255A口开关信号*/P1=m; /*中间信号,便于调试*/ PB8255=m; /*将读入信号显示到8255B口的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.18255A的引脚图38255引脚图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.28255A的内部构造8255A由3个数据输入/输出端口、二个工作方式控制电路、一个读/写控制逻辑电路和一个总线数据缓冲器组成,其内部构造如图4所示。图48255内部构造〔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所示。表18255端口读/写操作表A1A0/RD/WR/CS工作状态010010010010A口数据→数据总线B口数据→数据总线C口数据→数据总线01011100100100100总线数据→A口总线数据→B口总线数据→C口总线数据→控制字存放器××11××××1010110数据总线→三态非法状态数据总线→三态6.2.38255A的工作方式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时基本一样。如果这时端口A要按无条件传送方式来使用,C口的这些位仍然是保存作为状态位。但是这时的端口A并没有全部占用端口C的状态联络线,端口B在方式1时所需要的状态联络线仍然可以被B口所使用,所以,端口B此时可以设置为方式1,也可以设置为方式0。端口C可在选择方式1或方式2工作的情况下作为联络信号使用,其联络信号分布情况见表2,其中空白的位置表示这些位此时没有用于联络线,仍然还可以用于一般的输入/输出操作。各种联络信号的含义如下:表28255A方式1和方式2时C口的联络信号C口的位方式1方式2输入输出输入输出PC7/OBFA/OBFAPC6/ACKA/ACKAPC5IBFAIBFAPC4/STBA/STBAPC3INTRAINTRAINTRAINTRAPC2/STBB/ACKBPC1IBFB/OBFBPC0INTRBINTRB用于输入的联络信号的意义:/STB8:选通脉冲输入,低电平有效。当外设送来/STB信号时,输入数据装入8255的锁存器。IBF:输入缓冲器满,高电平有效,输出信号。IBF=1时,表示数据已经装入锁存器,可作为状态信号。INTR:中断请求信号,高电平有效,是在IBF为高时变为有效,用来向CPU申请中断。/OBF:输出,低电平有效,输出缓冲器满信号。当CPU把一数据写入8255A锁存器后有效,可用来通知外设开场承受信号。/ACK:输入,低电平有效,外设响应信号。当外设取走并已经处理完8255A的数据后发出响应信号。如果需要,可以通过软件使C口对应于/STB或/OBF的相应位的置位/复位,来实现8255A对外联络信号的置位和复位。6.2.48255A的控制字8255A作为可编程器件,其工作方式通过软件来选择,并且对于C端口也可以通过软件对其中的每一位进展置位或复位,以便更好地实现控制功能,共用到两种控制字:〔1〕工作方式控制字8255A的三个端口工作于什么方式,使输入还是输出,都由工作方式字来控制。8255A工作方式的格式见图5所示。其中D7=1是方式控制字的特征位。在方式1和方式2工作时,对C口的定义都不影响作为联络信号使用的各位的功能,但未作为联络信号使用的位仍可以用于工作方式控制字中的D0或D3口来定义。图58255方式控制字的各位定义〔2〕端口C置位复位控制字C口的各可以通过控制字来使之置位或复位,以实现某些控制功能。控制字的格式见图6所示。D7=0时控制字的特征位。每次只能对C口中的一位置位或复位。这两个控制字都应该写入8255A的控制存放器〔A1A0=11〕,由于两个控制字各有自己的特征标志〔D7为1或为0〕,因此它们写入控制字的顺序可以任意,并且可以在需要的时候,随时对C口的位置位或复位图6端口C按位置位/复位控制字6.3开关状态的读入与显示局部6.3.1硬件电路图〔见图7所示〕图7驱动电路图6.4指示灯显示局部输入信号由8个开关提供,信号的输出采用8个发光二极管显示,相应的信号灯对应相应的开关,用共阴极的连接方法,输入高电平导通。电源上电显示局部用一个1K的电阻串联一个发光二极管来显示,灯亮表示有电,反之,那么电路板没电。6.5电路板的制作6.5.1PCB图的制作采用了PROTELDXP电路绘图软件进展原理图和PCB图的制作,首先,安装此软件,安装完成后,翻开该软件,新建工程〔DOCUMENT〕文件,而以后所建设的原理图文件〔*.SCH〕、PCB文件〔*.PCB〕及生成的网路文件〔*.NET〕都在此工程内。建设原理图文件时,首先,调用库文件中常用的元器件库文件〔MISCELLANEOUSDEVICES.LIB〕可以调入常用的电阻、电容、开关、晶振、继电器等常用的电器元件,通过ADD/REMOVE按钮可以调入库文件〔以INTEL为开头的库文件〕,从而调入8255A和80S51芯片以及其它电子元件。原理图建设后,再生成网路图,这一步骤只要通过DESIGNCREATENETLISTS即可生成网络图。建设PCB图,首先应按照原理图的要求认真准确地填好每一个电器元件的封装,系统没有封装的,必须根据实物画出特别元件的封装,而且,注意元器件的管脚号必须与封装的管脚号一样〔比方说,三极管发元器件的管脚是B、E、C,而封装库中的管脚却是1、2、3,必须改变其中之一,使两者一致〕,否那么出错,生成的PCB图不正确。通过检查PCB图,如果没有元器件丧失、管脚丧失和网络连接正确便可以合理地布线,最终生成和覆铜板尺寸一致的PCB图。最终生成的PCB图如图9所示。图9PCB电路图6.5.2电路板的腐蚀、钻孔和元器件的焊接将生成好的PCB图,用电熨斗印刷在基板上,再用FECL3进展腐蚀、钻孔、焊接相对应的元器件。便完成了电路板的制作。6.6系统连线说明分析根据题目要求实现8255的A口读入开关信号,8255的B口显示信号,电路相对简单,所以8255A采用了工作方式0无条件的输入和输出方式,直接将单片机的相关信号线和8255A的对应端相对接即可完成片外芯片的扩展。现在再简要说明一下数据总线、控制总线和地址总线的建设情况。数据总线。将单片机的P0口的8个引脚分别和8255A的8个地址总线接口D0口到D7口相连。地址总线。将单片机的P2.1口和P2.0口分别和8255A的A1和A0相连,即可。/CS(片选信号)联结到P2.2,这时只要通过改变P2.1和P2.2口的值,即可改变输出地址,从而向8255A控制字端口写控制字,或者选择PA和PB进展输入和输出控制。控制总线。只要将单片机的/WR和/RD的引脚分别和8255A的/WR和/RD相连接,RST端口和8255A的REST端口相连接,即可完成控制总线的建设。CPU会根据不同的指令识别,进展控制读/写信号的选通。由于8255A复位时,各个端口自动保持方式0的工作方式,必须重新写入控制字信息和各个端口的工作方式,查阅相关资料,了解到8255的复位时间比51的复位时间略长,所以在同时给两个芯片复位后,经一段延时后再向8255写入控制字等数据。七、设计体会1、通过此次单片机最小系统的应用开发,增加了我对电路控制专业的兴趣,尤其是通过单片机进展自动控制方面,在设计及单片机最小系统中,我既掌握了新知识〔主要是8255A可编程的并行口芯片的应用〕,又加深了对所学过的知识认识〔主要是编程指令的灵活应用、单片机最小系统的理解和PROTELDXP软件的灵活使用〕,还提高了自己的分析问题和解决问题的能力和方法〔主要是在调试程序时8255A的控制上〕,最后提高了动手能力〔主要是在电路板的制作上面〕,尤为可贵的是学会了查阅相关的资料,并进展独立的原理图设计,电路板的制作和程序的独立调整,以及出现问题时候,独立思考分析解决问题的能力。虽然很辛苦,但是最终能够到达设计课题的要求。2、本次设计突破的核心是8255A的控制局部。因为8255A在单片机复位的时候,始终保持高电平,就把8255A的控制字及三个端口限制在无条件输入输出方式和各个端口均高电平状态,这样就不能从CPU正确地读取信号和进展传输数据,作者在通过逐路检查自制的电路板的各

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论