标题:
求大神帮我看下为什么定时器1进不去中断
[打印本页]
作者:
244141084
时间:
2017-4-6 15:43
标题:
求大神帮我看下为什么定时器1进不去中断
求大神帮我看下,STC15w408as,这样写的程序led灯根本就不亮,interrupt 3该成interrupt 1就好用,已经调试好几天了,还是没有办法,跪求!!
#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数据信号口
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计数器
// TL0 = 0xcd;
TL1 = 0xcd;
// TH0 = 0xd4;
TH1 = 0xd4; //T0装数
// ET0 = 1;
ET1 = 1; //使能定时器0中
// TR0 = 1;
TR1 = 1;
key1=1;key2=1;
beep=1;LEDb=0;LEDr=0;
while(1);
}
作者:
飞飞看
时间:
2017-4-6 15:49
那个时钟的程序不是应该写在另外的函数里面,而不是main函数里面吗?
就像这个最简单的时钟程序一样,你看看能不能帮到你
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
sbit led=P2^0; //定义P20口是led
/*******************************************************************************
* 函 数 名 : Timer0Init
* 函数功能 : 定时器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);
}
/*******************************************************************************
* 函 数 名 : void Timer0() interrupt 1
* 函数功能 : 定时器0中断函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void Timer0() interrupt 1
{
static u16 i;
TH0=0XFC; //给定时器赋初值,定时1ms
TL0=0X18;
i++;
if(i==1000)
{
i=0;
led=~led;
}
}
作者:
wosiyabo
时间:
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所以不会运行。
作者:
yzwzfyz
时间:
2017-4-6 19:08
通用法则:
1、研读IC手册,查证IC有无此功能。
2、调试运行程序时,中断一下,查证相关寄存器中的数据是否满足手册上所注明该项功能。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1