《2单片机IO口控制实验实验报告.docx》由会员分享,可在线阅读,更多相关《2单片机IO口控制实验实验报告.docx(22页珍藏版)》请在三一办公上搜索。
1、单片机IO口限制试验一、试验目的1、熟识MCS-51的I/O结构;2、驾驭MCS-51I/O的运用方法;3、驾驭MCS-51的中断机制。二、试验原理1、MCS-51单片机的硬件结构片内结构:、88XTA1.lPSENRESETXTA1.POP2程序存储器ROM/EPROM2、内部数据存储器(字节地址为00H0FH):7FH八用户RAM区.(堆栈、数据缓冲区)3OH2FHI2OH可住寻址区IFH18H第3组工作寄存器区17HIIOH第2组工作寄存器区OFHIO8H第1组工作宙存罂区07HIOOH第O组工作寄存器区3、SFR的名称与其分布:寄存二铮号名称宇卡地址位地址BB寄存器FOHF7HF0HA
2、(RAcc)累力口器EOHE7HE0HPSW程序状态字DOHD7HD0HEP中断优先级控制B8HBFHB8HP3P30BOHB7HB0HIE中断允许控制A8HAFHA8HP2P2AOHA7HA0HSBUF串行数据缓冲器99HSCON东行控制98H9FH98HPlPlO90H97H9OHTHl定酎器/计数器1(高字节)8DHTHO定时器/计数器0(高字卡)8CHT1.l定时器/计数锯1(低字节)8BHT1.O定时器/计数器Cl(低字节)8AHTMOD定时器/计数器方式控制89HTCON定时器/计数能控制88H8FH8SHPCON电源控制87HDPH数据指针高字中83HDP1.数据错针低字中82H
3、SP堆栈指针81HPOPOO80H87H80H4、I/O端口地址:接口名映像字节地址映像位地址PO80H80H87HPl90H90H97HP2AOHAOHA7HP3BOHBOHB7H5、PoP3端口功能总结:(I)POP3口都是并行I/O口,但PO口和P2口,还可用来构建系统的数据总线和地址总线,所以在电路中有一个MUX,以进行转换。而Pl口和P3口无构建系统的数据总线和地址总线的功能,因此,无MUX。PO口的MUX的一个输入端为“地址/数据”信号。P2口的MUX的一个输入信号为“地址”信号。(2)在4个口中只有Po口是一个真正的双向口,PIP3口都是准双向口。缘由:Po口作数据总线运用时,需
4、解决芯片内外的隔离问题,即只有在数据传送时芯片内外才接通;不进行数据传送时,芯片内外应处于隔离状态。为此,PO口的输出缓冲器应为三态门。PO口中输出三态门是由两只场效应管(FET)组成,所以是一个真正的双向口。PlP3口,上拉电阻代替PO口中的场效应管,输出缓冲器不是三态的一准双向口。(3)P3口的口线具有其次功能,为系统供应一些限制信号。因此P3口增加了其次功能限制逻辑。这是P3口与其它各口的不同之处。6、PO口结构与特点:PO口结构与运作1个输出锁存器,用于进行输出数据的锁存;2个三态输入缓冲器,分别用于锁存器和引脚数据的输入缓冲;1个多路开关MUX,它的一个输入来自锁存器,另一个输入是地
5、址/数据信号的反相输出。在限制信号的的限制下能实现对锁存器输出端和地址/数据线之间的切换;由两只场效应管组成的输出驱动电路。读引脚PO口的特点PO口是一个双功能的端口:地址/数据分时复用口和通用I/O口;具有高电平、低电平和高阻抗3种状态的I/O端口称为双向I/O端口。PO口作地址/数据总线复用口时,相当于一个真正的双向I/Oo而用作通用I/O口时,由于引脚上须要外接上拉电阻,端口不存在高阻(悬空)状态,此时PO口只是一个准双向口;为保证引脚上的信号能正确读入,在读入操作前应首先向锁存器写1;单片机复位后,锁存器自动被置1;一般状况下,假如PO口已作为地址/数据复用口时,就不能再用作通用I/O
6、口运用;PO口能驱动8个H1.负载。7、Pl的结构与特点:Pl口结构与运作一个数据输出锁存器,用于输出数据的锁存;两个三态输入缓冲器,BUFl用于读锁存器,BUF2用于读引脚;数据输出驱动电路,由场效应管VT和片内上拉电阻R组成。I房锁存器P1.X引脚写领存器Dpi.XQC1.锁存器读引脱JPl口的特点Pl口由于有内部上拉电阻,没有高阻抗输入状态,所以称为准双向口O作为输出口时,不须要再在片外拉接上拉电阻;Pl读引脚输入时,必需先向锁存器写入1,其原理与PO口相同;Pl口能驱动4个H1.负载。8、P2结构与特点:P2口结构与运作一个数据输出锁存器,用于输出数据的锁存;两个三态输入缓冲器,BUF
7、l用于读锁存器,BUF2用于读引脚;一个多路开关MUX,它的一个输入来自锁存器的Q端,另一个输入来自内部地址的高8位;数据输出驱动电路由非门M,场效应管VT和片内上拉电阻R组成。读引脚P2口的特点P2用作高8位地址输出线应用时,与PO输出的低8位地址一起构成16位的地址总线,可以寻址64KB地址空间。当P2口作高8位地址输出口时,其输出锁存器原锁存的内容保持不变。作为通用I/O运用时,P2为准双向口,功能与Pl口一样。P2能驱动4个H1.负载。9、P3结构与特点:P3结构组成一个数据输出锁存器,用于输出数据的锁存;3个三态输入缓冲器,BUFl用于读锁存器,BUF2、BUF3用于读引脚和其次功能
8、数据的缓冲输入;数据输出驱动电路,由与非门M,场效应管VT和片内上拉电阻R组成。P3口的特点P3口内部有上拉电阻,不存在高阻输入状态,是一个准双向口;P3作其次功能的输出/输入或作通用输入时,均需将相应的锁存器置1。实际应用中,由于复位后P3口锁存器自动置1,已满意其次功能运作条件,所以可以干脆进行其次功能操作;P3口的某位不作为其次功能运用时,则自动处于通用输出/输入口功能,可作为通用输出/输入口运用;作通用输出/输入口运用时,输入信号取自缓冲器BUF2的输出端,作其次功能运用时,输入信号取自缓冲器BUF3的输出端;P3口能驱动4个H1.负载。10、IO口锁存器操作:IO口锁存器值与IO口值
9、不肯定一样,应采纳读锁存器-修改-写锁存器来进行IO限制。表1常用读一修改一写指令助记符功徒实例AN1.逻辑与AN1.PlAOR1.逻粗或OR1.P2,8OHXR1.逻辑异或XR1.P3,BJBC测试位为m,跳转并清0JBCP1.01.abelCP1.位取反CP1.PSOINC1INCP2DEC减DECP2DJNZ减1结果如为。挑转DJNZPO,1.abelMOVPn,Y.C把进位送Pn钝存器的笫Y位MOVP3.0,CC1.RPn.Y清Pfl锁存器的第Y位C1.RP3.0SBTBPnY置Pn钺存器的第Y位SETBP3.0H、MCS-51的中断系统:单片机能与时地响应和处理单片机外部事务或内部事
10、务所提出的中断恳求。对事务的整个处理过程,称为中断处理(或中断服务)。中断服务程序12、五个中断恳求源:(I)INTO*外部中断恳求0,由引脚INT0*输入,中断恳求标记为IEOo(2)INT1*-外部中断恳求1,由引脚INTl*输入,中断恳求标记为IElo(3)定时器/计数器To溢出中断恳求,中断恳求标记为TFO。(4)定时器/计数器TI溢出中断恳求,中断恳求标记为TF1。(5)串行口中断恳求,中断恳求标记为Tl或R1.由特别功能寄存器TCON和SCON的相应位锁存。13、复位与中断入口地址表:入口地址功能(X)OOH复位操作后的程序入口地址0003H外部中断。的中断服务程序入口地址(X)O
11、BH定时器/计数器0溢出中断服务程序入口地址0013H外部中断I的中断服芬程序入H地址OOlBH定时器/计数器I溢出中断服务程序人口地址0023H串行1/()的中断服务程序入口地址002BH定时器/计数器2溢出中断服务程序人11地址14、MCS-51中断系统的结构:可两级嵌套。TXJ1.RXRl一源允许SCON中断标志PXOT0poTPXlIT-T.PTlIT0PS高级中断请求Pc1.-百然优先级俺_自然优先级Wk低级中断请求Pc5个中断恳求源;两个中断优先级,使件查询15、中断限制:a、中断允许寄存器IECPU对中断源的开放或屏蔽,由片内的中断允许寄存器IE限制。字节地址为A8H,可位寻址。
12、格式如下:D7D6D5D4D3D2DlDOIEEAESETlEXlETOEXO位地址AFHACHABHAAHA9HA8HIE对中断的开放和关闭为两级限制总的开关中断限制位EA(IE.7位):EA=O,全部中断恳求被屏蔽。EA=I,CPU开放中断,但五个中断源的中断恳求是否允许,还要由IE中的5个中断恳求允许限制位确定。IE中各位的功能如下:(1) EA:中断允许总限制位0:CPU屏蔽全部的中断恳求(CPU关中断);1:CPU开放全部中断(CPU开中断)。(2) ES:串行口中断允许位0:禁止串行口中断;1:允许串行口中断。(3) ET1:定时器/计数器Tl的溢出中断允许位(4) EXl:外部中
13、断1中断允许位(5) ETO:定时器/计数器TO的溢出中断允许位(6) EX0:外部中断0中断允许位。MCS-51复位后,IE清0,全部中断恳求被禁止。若使某一个中断源被允许中断,除了IE相应的位的被置“1”,还必需使EA位=1。变更IE的内容,可由位操作指令来实现,即:SETBbit;C1.Rbitob、中断优先级寄存器IP两个中断优先级,可实现两级中断嵌套。归纳为两条基本规则:(1)低优先级可被高优先级中断,反之则不能。(2)同级中断不会被它的同级中断源所中断。CPU执行主程序CPU执行低级中断服务程序CPU执行高级中断服务程序低级中断请求若CPU正在执行高优先级的中断,则不能被任何中断源
14、所中断。中断优先级寄存器IP,其字节地址为B8H。IP各个位的含义:(1) PS串行口中断优先级限制位1:高优先级中断;0:低优先级中断。(2) PTl定时器Tl中断优先级限制位1:高优先级中断;0:低优先级中断。(3) PXl外部中断1中断优先级限制位1:高优先级中断;0:低优先级中断。(4) PTO定时器TO中断优先级限制位1:高优先级中断;0:低优先级中断。(5) PXO外部中断0中断优先级限制位1:高优先级中断;0:低优先级中断。由软件可变更各中断源的中断优先级。D7D6D5D4D3D2DlDOIPPSPTlPXlPTOPXO位地址BCHBBHBAHB9HB8H16、INTo/1相关限
15、制位:IT0/IT1触发方式选择位0:低电平触发方式,TNTO/1低电平常IEOIE1=O,INT0/1高电平常IEOIEl=lo1:下降沿触发方式,检测到下降沿,则使IEOIE1=1.CPU相应中断后自动清除IEOIEloD7D6D5D4D3D2DlDOTFlTRlTFOTROIEl11lIEOITO三、试验内容(1)编写程序,用P1.(TP1.2连1.ED,查询拨盘开关SWl的状态来限制1.ED的亮和灭(P1.7口接SW1)。(2)编写程序,用P1.(TP1.2口连1.ED,用按键开关KEYl作为外部中断输入INTO限制1.ED的亮和灭。(每按一次按键1.ED状态取反一次)。四、prote
16、l电原理图1、2、五、程序流程图1、主程序流程图中断程序流程图设置中断限制寄存器中断允许等待中断1.ED点亮程序六、程序清单1、ORG8000H;硬件仿真程序1.JMPMainORG80F0H;硬件仿真调试程序Main:JBPl.7,SET1.ED;按键没有按下时,跳转到SET1.EDC1.R1.ED:C1.RPl.OC1.RPl.1C1.RPl.2;P1.OP1.2清零SJMPMainSET1.ED:SETBP1.OSETBPl.1SETBPl.2;P1.OP1.2置1SJMPMainEND2、ORG8000H1.JMPMainORG8003H1.JMPINTOORG8100HMain:C1
17、.RP1.0C1.RPl.1C1.RPl.2;跳转到中断服务程序;给1.ED一个初态,熄灭BACKl:JBP3.2,BACKl;等待Keyl中断进入,INTo引脚变低SETBTRO;为TO的启动做打算SETBITO;指定INTO为边沿触发方式SETBEXO;开放INTO中断SETBEA;开放CPU的中断SJMP$;等待中断ORG8200H;INTo中断服务程序INTO:CP1.Pl.0;1.ED状态取反一次CP1.Pl.1CP1.Pl.2RETIEND七、试验记录1、在keil环境下编辑汇编程序,且调试无差错。将程序下载到单片机后,程序运行顺当,实现了预期的功能,即随着开关SO的状态变更,1.
18、ED灯DO、DKD2点亮或熄灭。2、在keil环境下编辑汇编程序,且调试无差错。将程序下载到单片机后,程序运行顺当,实现了预期的功能,即每按一次按键SO,1.ED灯DO、DI、D2状态取反一次。八、试验分析本次试验较为简洁,进行的也很顺当,实现了预期的功能。在试验过程中也加深了对I/0口和外部中断尤其是INTO的理解。在中断试验中,进一步理解了中断服务程序的结构,即爱护现场、处理中断的程序、复原现场、中断返回。其中RETl的作用有两个,弹出PC和清除中断服务标记(给“优先级生效”触发器清零)。在编写服务中断程序时,有些地方须要留意:中断程序入口处的处理;在爱护现场和复原现场时可以关闭CPU中断,一面造成混乱。试验中也出现了一些问题,在原理图的设计上,1.ED缺少驱动电路,同时按键开关缺少下拉电阻,导致悬空,这些都是在以后的试验中值得留意的地方,须要改进。