MCS-51单片机中断系统与I/O口详解

需积分: 10 0 下载量 64 浏览量 更新于2024-08-22 收藏 673KB PPT 举报
"EA:中断总允许位。-单片机入门包含中断" 在单片机领域,中断系统是实现实时处理和多任务的关键机制。中断允许位EA(External Interrupt Allow)是控制整个单片机中断系统开启或关闭的全局开关。当EA设置为0时,CPU会屏蔽所有中断,即使其他中断源有中断请求,CPU也不会响应。这意味着在此状态下,单片机将不会中断当前执行的任务,除非EA被重新设置为1。 EA=1时,虽然开启了中断系统,但中断是否真正发生还要看各个中断源对应的中断允许控制位。例如,串行口中断允许位ES、定时/计数器T1的溢出中断允许位ET1等。这些控制位允许用户进一步精细化管理中断,可以根据需要开启或关闭特定的中断服务。 ES是用于控制串行口中断的,当串行口有数据接收或发送完成等事件发生时,如果ES=1,则CPU会响应串行中断,执行相应的中断服务程序。反之,如果ES=0,串行口的中断请求将被忽略,串行口操作将按照正常的轮询方式执行。 ET1则是控制定时器/计数器T1溢出中断的。当ET1=1,T1在溢出时可以触发中断,允许CPU处理定时或计数事件。而ET1=0时,即使T1溢出,也不会产生中断,定时器/计数器T1将按照无中断模式工作。 MCS-51系列单片机具有四个8位的双向并行I/O口,即P0、P1、P2和P3。这些端口具有不同的特性和用途。P0口除了作为一般的I/O口使用,还可以作为地址/数据线的低8位,通过ALE(Address Latch Enable)信号分时复用。然而,P0口作为一个真正的双向口,需要外部上拉电阻来支持其作为输入时的高电平状态。 P1口是标准的I/O口,具有内部上拉电阻,可以直接驱动4个LSTTL负载。P2口在通常情况下用作高位地址线,但也可作为通用I/O口,此时多路转换电路MUX连接至锁存器的Q端。P3口则具有第二功能,某些引脚除了作为I/O口外,还兼有控制总线的功能,如提供部分控制信号。 P3口的第二功能在输出时需要确保锁存器置“1”,以确保信号通路畅通。当作为输入使用时,为了正确读取数据,必须先向相应端口写入“1”,这是因为P1到P3是准双向口,需要先将输入缓冲器拉高,以避免读取到上一次的输出状态。 单片机的中断管理和I/O口的使用是理解和应用单片机的基础。通过理解EA、ES、ET1等中断允许位以及P0到P3端口的工作原理,可以更好地设计和调试单片机系统,实现高效、可靠的实时处理。

-- Logs begin at Thu 2023-07-13 00:44:15 CST, end at Thu 2023-07-13 00:53:06 CST. -- Jul 13 00:48:25 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f systemd[1]: Starting Docker Application Container Engine... Jul 13 00:48:25 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f dockerd[215]: time="2023-07-13T00:48:25.388440905+08:00" level=info msg="Starting up" Jul 13 00:48:25 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f dockerd[215]: time="2023-07-13T00:48:25.405370737+08:00" level=error msg="failed to mount overlay: invalid argument" storage-driver=overlay2 Jul 13 00:48:25 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f dockerd[215]: time="2023-07-13T00:48:25.408339784+08:00" level=info msg="Loading containers: start." Jul 13 00:48:25 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f dockerd[215]: time="2023-07-13T00:48:25.409506558+08:00" level=warning msg="Running modprobe bridge br_netfilter failed with message: , error: exit status 1" Jul 13 00:48:25 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f dockerd[215]: time="2023-07-13T00:48:25.411850508+08:00" level=info msg="unable to detect if iptables supports xlock: 'iptables --wait -L -n': `iptables v1.4.21: can't initialize iptables table `filter': Permission denied (you must be root)\nPerhaps iptables or your kernel needs to be upgraded.`" error="exit status 3" Jul 13 00:48:25 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f dockerd[215]: time="2023-07-13T00:48:25.425371913+08:00" level=info msg="stopping event stream following graceful shutdown" error="<nil>" module=libcontainerd namespace=moby Jul 13 00:48:25 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f dockerd[215]: failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: iptables failed: iptables -t nat -N DOCKER: iptables v1.4.21: can't initialize iptables table `nat': Permission denied (you must be root)

2023-07-13 上传

Jul 13 00:48:29 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f systemd[1]: Unit docker.service entered Jul 13 00:48:29 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f systemd[1]: docker.service failed. Jul 13 00:48:32 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f systemd[1]: docker.service holdoff time Jul 13 00:48:32 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f systemd[1]: Stopped Docker Application C -- Subject: Unit docker.service has finished shutting down -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit docker.service has finished shutting down. Jul 13 00:48:32 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f systemd[1]: start request repeated too q Jul 13 00:48:32 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f systemd[1]: Failed to start Docker Appli -- Subject: Unit docker.service has failed -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit docker.service has failed. -- -- The result is failed. Jul 13 00:48:32 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f systemd[1]: Unit docker.service entered Jul 13 00:48:32 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f systemd[1]: docker.service failed. Jul 13 00:50:01 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f systemd[1]: Started Session 1145949 of u -- Subject: Unit session-1145949.scope has finished start-up -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit session-1145949.scope has finished starting up. -- -- The start-up result is done. Jul 13 00:50:01 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f CROND[308]: (root) CMD (/usr/lib64/sa/sa

2023-07-13 上传
2023-07-13 上传