找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5274|回復: 3
打印 上一主題 下一主題
收起左側

求大神幫我看下為什么定時器1進不去中斷

[復制鏈接]
跳轉到指定樓層
樓主
ID:163125 發(fā)表于 2017-4-6 15:43 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
求大神幫我看下,STC15w408as,這樣寫的程序led燈根本就不亮,interrupt 3該成interrupt 1就好用,已經(jīng)調試好幾天了,還是沒有辦法,跪求��!

#include <reg52.h>
sfr P5=0xC8;
sfr AUXR=0x8e;     //串口輔助寄存器
sbit LCD_RST=P2^0;
sbit LCD_CE=P2^1;
sbit LCD_DC=P2^2;
sbit relay2=P2^3;
sbit scl=P2^4;    //iic時鐘信號口
sbit sda=P2^5;    //iic數(shù)據(jù)信號口
sbit CS5460_reset=P2^6;
sbit beep = P2 ^ 7;
sbit key1 = P5 ^ 4;
sbit key2=P3^1;
sbit Int0=P3^2;          //時鐘中斷信號口
sbit Int1=P3^3;          //能量中斷口
sbit key3=P3^6;
sbit key4=P3^7;
sbit CS5460_CS=P1^2;
sbit LEDb=P1^6;
sbit LEDr=P1^7;
sbit relay=P5^5;
sbit BL=P1^0;
sbit dian=P3^2;
void tm1_isr() interrupt 3
{
   LEDr=!LEDr;
}  
void main ()
{
   EA=1;                                         //總中斷打開
//  INT_CLKO=0x10;         //INT2 INT3中斷允許
    AUXR = 0x01;                //定時器時鐘1T模式
        TMOD = 0x00;           //設置定時器為模式0(16位自動重裝載)
        TF0=0;TF1=0;                                //清除TF1標志                         //T0計數(shù)器
//        TL0 = 0xcd;   
        TL1 = 0xcd;
//        TH0 = 0xd4;        
        TH1 = 0xd4;      //T0裝數(shù)        
//        ET0 = 1;   
        ET1 = 1;             //使能定時器0中
//        TR0 = 1;   
        TR1 = 1;
        key1=1;key2=1;
  beep=1;LEDb=0;LEDr=0;     
        while(1);
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關帖子

回復

使用道具 舉報

沙發(fā)
ID:185795 發(fā)表于 2017-4-6 15:49 | 只看該作者
那個時鐘的程序不是應該寫在另外的函數(shù)里面,而不是main函數(shù)里面嗎?
就像這個最簡單的時鐘程序一樣,你看看能不能幫到你
#include "reg52.h"                         //此文件中定義了單片機的一些特殊功能寄存器

typedef unsigned int u16;          //對數(shù)據(jù)類型進行聲明定義
typedef unsigned char u8;

sbit led=P2^0;         //定義P20口是led


/*******************************************************************************
* 函 數(shù) 名         : Timer0Init
* 函數(shù)功能                   : 定時器0初始化
* 輸    入         : 無
* 輸    出         : 無
*******************************************************************************/
void Timer0Init()
{
        TMOD|=0X01;//選擇為定時器0模式,工作方式1,僅用TR0打開啟動。

        TH0=0XFC;        //給定時器賦初值,定時1ms
        TL0=0X18;       
        ET0=1;//打開定時器0中斷允許
        EA=1;//打開總中斷
        TR0=1;//打開定時器                       
}

void main()
{       
        Timer0Init();  //定時器0初始化
        while(1);               
}

/*******************************************************************************
* 函 數(shù) 名         : void Timer0() interrupt 1
* 函數(shù)功能                   : 定時器0中斷函數(shù)
* 輸    入         : 無
* 輸    出         : 無
*******************************************************************************/
void Timer0() interrupt 1
{
        static u16 i;
        TH0=0XFC;        //給定時器賦初值,定時1ms
        TL0=0X18;
        i++;
        if(i==1000)
        {
                i=0;
                led=~led;       
        }       
}

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:146949 發(fā)表于 2017-4-6 16:19 | 只看該作者
void tm0_isr() interrupt 1 using 1
void tm1_isr() interrupt 3 using 1
void t2int() interrupt 12
STC15W408AS只有T0和T2定時器,“void tm1_isr() interrupt 3”這是T1定時器,硬件沒有T1所以不會運行。
回復

使用道具 舉報

地板
ID:123289 發(fā)表于 2017-4-6 19:08 | 只看該作者
通用法則:
1、研讀IC手冊,查證IC有無此功能。
2、調試運行程序時,中斷一下,查證相關寄存器中的數(shù)據(jù)是否滿足手冊上所注明該項功能。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表