智能车制作
标题:
中断
[打印本页]
作者:
juejiang
时间:
2010-1-18 08:55
标题:
中断
#include <AT89X51.H> // 头文件
#define uchar unsigned char
uchar deda=0; // 5mS计数单元清零
uchar sec=0; // 秒单元清零
void init_timer(); // 声明定时函数
void sc(); // 声明输出函数
//--------------------------------------------------- 主函数 ----------------------------------------------
main()
{
init_timer(); // 调用定时函数
while(1) // 无限循环
{
sc ( ) ; // 调用输出函数
}
}
//--------------------------------------------------- 定时函数 ---------------------------------------------
void init_timer()
{
TMOD=0x01; // 设置定时器T0工作模式1
TH0=-(4800/256); // 加载高字节计数初值
TL0=-(4800%256); // 加载低字节计数初值
IE=0x82; // 启用定时器T0中断产生
TR0=1; // 启动定时器T0开始计时
}
//---------------------------------------------- 中断服务函数 --------------------------------------------
void T0_srv(void) interrupt 1
{
TH0=-(4800/256); // 重置定时器计时初始值
TL0=-(4800%256);
deda++; // 计数单元deda 值递增
}
//------------------------------------------------- 输出模块 -----------------------------------------------
void sc ( )
{
if(deda>=200){sec++;deda=0;} // 中断200次秒加1,deda清0
if(sec==30){P1_0=~P1_0;sec=0;} // 满30次后,反相输出1次,清0
}
这里的中断时怎么使用的!!!请大侠指点,就是不明白这个中断什么时候执行,是定时器的时间到了之后中断就执行吗?
作者:
天恒
时间:
2010-1-21 15:56
只是产生PWM,可控制占空比。是定时器的时间到了就执行的。
作者:
qicai
时间:
2010-2-7 18:36
这不是飞思卡尔的程序吧
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2