外部中断与定时器中断实验

已知单片机晶振频率为12MHZ,自行选取定时/计数器,定时/计数器工作方式自选,编写程序,使P1.7端输出周期为0.5ms方波。

解题思路:
假设方波信号的占空比为50%,已知条件可以得,机器周期为1us,所以决定采用T0定时,工作方式0,已知输出周期为0.5ms,则每定时0.25ms计数使P1.7输出求反。计算的次数为0.25/1us=250次。
则计数初值:X=8192-250=7942=1F06=1111100000110,(13位,低八位有三位不用)即TH0=F8,TL0=06。

C语言:

#include <reg52.h>
sbit P11=P1^7;
void exint() interrupt 0
{
    TR0=1;
}

void time0int() interrupt 1
{
    TL0=0X06;
    TH0=0XF8;
    P11=!P11;
}

void main()
{
    SP=0X60;
    TMOD=0X00;
    TL0=0X06;
    TH0=0XF8;
    TR0=1;
    ET0=1;
    EA=1;
    while(1)
    {
        ;
    }
}

汇编语言:

ORG 0000H
LJMP    MAIN
ORG 0000H
LJMP    INTOP
ORG 000BH
LJMP    T0P
ORG 0030H
MAIN:   MOV SP,#60H
        MOV TMOD,#00H
        MOV TH1,#0F8H
        MOV TL1,#006H
        SETB ET0
        SETB TR0
        SETB EA
HERE: SJMP  HERE
INTOP: SETB TR1
T0P:    MOV TL0,#006H
        MOV TH0,#0F8H 
        CPL P1.7                
        END

附上仿真图:
这里写图片描述

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 单片机外部中断定时器中断是常见的中断方式。外部中断是指在单片机运行时,由外部设备或元件引起的中断,例如外部触发器、按键等。当外部设备引起中断时,单片机会暂停正在执行的程序,转而执行外部中断服务程序。定时器中断是指单片机内部的计时器到达设定的时间后,引起的中断。当定时器中断发生时,单片机会暂停正在执行的程序,转而执行定时器中断服务程序。 在单片机编程中,外部中断定时器中断常用于处理实时性要求较高的任务,例如按键检测、定时采样等。这些任务需要在单片机运行的同时,能够及时响应外部事件,并进行相应的处理。外部中断定时器中断的使用,能够大大提高单片机的实时性和处理能力,提高系统的稳定性和可靠性。 ### 回答2: 单片机外部中断是指当单片机外部发生特定事件时,通过外部信号触发中断,将CPU从正常运行状态切换到中断服务程序的一种机制。外部中断可以用于处理紧急事件或实时响应的需要。例如,当按下一个按钮时,可以通过配置单片机外部中断来检测到按钮状态的改变并触发一个中断,进行相关的操作。 定时器中断是指通过定时器计数到达一个预设的值时,会触发中断请求,使CPU跳转到中断服务程序进行相应的操作。定时器中断用于实现时间精确控制、周期性任务的执行、定时触发事件等应用场景。例如,可以通过定时器中断来实现LED灯的闪烁,每隔一定时间切换LED的亮灭状态。 外部中断定时器中断在工作原理上有一些区别。外部中断需要监测外部引脚的电平变化,当检测到外部信号的变化时,触发中断。而定时器中断则需要设置定时器的初值和计数方式,当定时器计数到达预设值时,触发中断。 两者在应用上也分别有各自的优势。外部中断适用于对外部信号实时响应的场景,如按键检测、外部传感器触发等;而定时器中断适用于周期性任务的管理,如定时采样、定时触发等。在实际应用中,根据具体需求的不同,可以选择合适的中断方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值