单片机51汇编中断实验:定时器与外部中断控制LED

需积分: 9 4 下载量 15 浏览量 更新于2024-08-02 1 收藏 181KB DOC 举报
"该实验是关于单片机MCS-51的汇编语言多重中断综合应用,旨在结合内部和外部中断、定时器以及I/O口功能,通过LED流水灯控制来展示中断处理机制。实验内容包括利用定时器实现1s间隔的LED左移或右移,以及外部中断触发时改变LED控制模式。硬件部分涉及AT89C51单片机、时钟电路、复位电路、外部中断按钮、LED阵列和数码管显示。软件设计涉及定时器设置、中断服务子程序和不同的LED显示模式。" 在单片机MCS-51的汇编语言编程中,多重中断是关键概念,它允许系统同时处理多个中断请求。在这个实验中,主要涉及到两种中断:定时器中断和外部中断。定时器中断是通过设置定时器T0工作在方式1来实现的,这种方式下,定时器溢出后会产生中断,通过设置TCON寄存器的TF0位来启用中断。定时初值的计算基于系统的时钟频率和所需的定时时间,以确保准确的中断周期。 外部中断则由外部信号(如按钮)触发,通常连接到单片机的INT0引脚。在实验中,每次外部中断发生,都会改变LED的控制模式。为了处理这两个中断,需要配置中断向量,确保中断服务程序能够正确响应。中断向量是中断处理程序的地址,当发生中断时,CPU会跳转到这个地址执行相应的代码。 软件设计中,首先设置定时器中断,使其每50ms溢出一次,然后通过循环20次达到1s的定时效果。外部中断的优先级高于定时器中断,当外部中断发生时,中断服务程序会记录中断次数并根据次数改变LED的显示模式。实验中提到了三种LED控制模式,包括从低位到高位的左移和右移,以及其他特定模式。 流程图展示了程序的主要执行路径,从主程序开始,通过中断服务子程序来处理定时器和外部中断事件。主程序可能包含初始化设置、主循环以及LED状态的更新。中断服务子程序则负责处理中断事件,如清除中断标志、更新LED模式等。 通过这个实验,学生可以深入理解MCS-51单片机的中断系统、定时器的使用以及如何通过I/O口控制外部设备。同时,对于硬件部分,了解了时钟电路、复位电路、输入输出模块的设计,以及如何利用锁存器和数码管实现显示功能。这个综合实验对于提升单片机开发和嵌入式系统设计的能力大有裨益。