找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1370|回复: 9
打印 上一主题 下一主题
收起左侧

求助观察单片机中断函数是否执行?

[复制链接]
跳转到指定楼层
楼主
本人设计单片机串口通讯的电路,代码很简单,在中断函数中放了一个指示灯,观察中断函数有没有运行,这个指示灯没亮,主函数中的指示灯是亮的,这样中断函数是不是没有执行,请各位老师帮看一下,谢谢。

#include        "15W4KxxS4.H"

typedef unsigned char uchar;
typedef unsigned int uint;

void IO_init()
{
  P1M1 = 0x00;        P1M0 = 0x00;
        P2M1 = 0x00;        P2M0 = 0xFF;
        P3M1 = 0x00;        P3M0 = 0xFE;
        P1 = 0xFF ;
        P2 = 0x00 ;
        P3 = 0x00 ;
}        

sbit p33 = P3^3 ;
sbit p22 = P2^2 ;
sbit p23 = P2^3 ;

void Serial_Init()
{
    TMOD = 0x20;    //
    TH1 = 0xdc;        //
    TL1 = 0xdc;        //
    TR1 = 1;        //
    REN = 1;        //
    SM0 = 0;        //
    SM1 = 1;        //
    EA = 1;            //
    ES = 1;            //
}

void ser() interrupt 4        //
{
    RI = 0 ;//
          TI = 0 ;
    p33 = 1 ;  //指示灯,观察中断函数是否执行
}


void main()
{
    IO_init();
    Serial_Init();

    while(1)
    {
       SBUF = 0xff ;
                         p23 = 1 ;  //指示灯
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:752974 发表于 2021-1-26 15:42 | 只看该作者
中断中的LED不亮说明中断没有发生。主函数中的指示灯跟中断没有关系,开机就亮的。

评分

参与人数 1黑币 +30 收起 理由
zjgeser + 30

查看全部评分

回复

使用道具 举报

板凳
ID:95120 发表于 2021-1-26 15:53 | 只看该作者
是的,中断没有发生,不知道怎么回事,代码试了好多。

回复

使用道具 举报

地板
ID:748788 发表于 2021-1-26 16:19 | 只看该作者
注意看红圈中的内容
回复

使用道具 举报

5#
ID:752974 发表于 2021-1-26 16:32 | 只看该作者
那就好好检查串口和波特率初始化。
回复

使用道具 举报

6#
ID:95120 发表于 2021-1-26 16:58 | 只看该作者
    TMOD = 0x20;    //
          AUXR &= 0xbf;                //¶¨ê±Æ÷1ê±ÖóÎaFosc/12,¼′12T
          AUXR &= 0xfe;                //′®¿ú1Ñ¡Ôñ¶¨ê±Æ÷1Îa2¨ìØÂê·¢éúÆ÷
    TH1 = 0xfd;        //
    TL1 = 0xfd;        //
    TR1 = 1;        //
    REN = 1;        //
    SM0 = 0;        //
    SM1 = 1;        //
    EA = 1;            //
    ES = 1;            //

就是不行,唉
回复

使用道具 举报

7#
ID:95120 发表于 2021-1-26 17:19 | 只看该作者
    TMOD = 0x20;    //
    AUXR &= 0xdf;                //定时器1时钟为Fosc/12,即12T
    AUXR &= 0xfe;                //串口1选择定时器1为波特率发生器
          
    TH1 = 0xfd;        //
    TL1 = 0xfd;        //
    TR1 = 1;        //
    REN = 1;        //
    PCON = 0x00 ;  //SMOD = 0 ;
    SM0 = 0;        //
    SM1 = 1;        //
    EA = 1;            //
    ES = 1;            //
实在找不出错误了。难过
回复

使用道具 举报

8#
ID:95120 发表于 2021-1-26 17:26 | 只看该作者
谢谢wwh2382 ,我再看看
回复

使用道具 举报

9#
ID:95120 发表于 2021-1-26 17:36 | 只看该作者
搞好了,谢谢4楼的大师,谢谢各位师傅,谢谢,改成定时器2就可以了。
回复

使用道具 举报

10#
ID:390416 发表于 2021-1-26 18:34 | 只看该作者
STC单片机串口发送 不需要while死等 串口接收执行软件复位 http://www.51hei.com/bbs/dpj-200927-1.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表