单片机中断程序大全
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TL0=(65536-46083)%256;//定时器T0的高8位重新赋初值
}
//
#include<>//包含51单片机寄存器定义的头文件
sbit D1=P2A0;//将D1位定义为引脚
}
TF0=0;//计数器溢出后,将TF0清0
//
#include<>//包含51单片机寄存器定义的头文件sbit D1=P2A0;//将D1位定义为引脚
/**************************************************************函数功能:主函数
**************************************************************/void main(void)
//
#include<>//包含51单片机寄存器定义的头文件
/**************************************************************函数功能:主函数
void main(void)
{
//EA=1;//
//ETO=1;//
TMOD=OxO1;//
开总中断
寄存器
{
Countor++;//中断次数自加1if(Countor==2O)//若累计满2O次,即计时满1s{
D1=~D1;//按位取反操作,将引脚输出电平取反
Countor=0;//将Countor清0,重新从0开始计数}
TH0=(65536-46083)/256;//定时器T0的高8位重新赋初值
函数功能:定时器TO的中断服务程序
**************************************************************/
void TimeO(void) interrupt1using O//“interrupt”声明函数为中断服务
函数
//其后的1为定时器TO的中断编号;0表示使用第0组工作
{
EA=1;//
ETO=1;//
TMOD=OxO1;//
THO=(65536-46O83)/256;//
TLO=(65536-46O83)%256;//
TRO=1;//
while(1)//无限循环等待中断
}
/**************************************************************函数功能:定时器TO的中断服务程序
定时器TO中断允许
使用定时器TO的模式1
TH0=(65536-46083)/256;//定时器TO的高8位赋初值
TL0=(65536-46083)%256;//定时器TO的高8位赋初值
TR0=1;//启动定时器T0
TF0=0;
P2=0xff;
while(1)//无限循环等待查询{
while(TF0==0)
TF0=0;
P2=~P2;
TH0=(65536-46083)/256;//定时器T0的高8位赋初值
TL0=(65536-46083)%256;//定时器T0的高8位赋初值
}
}
#include<>//包含51单片机寄存器定义的头文件
sbit sou nd=P3^7;//将sou nd位定义为引脚
/**************************************************************函数功能:主函数
unsigned char Countor; //设置全局变量,储存定时器TO中断次数
/**************************************************************
函数功能:主函数
void main(void)
{
EA=1;//
ET0=1;//
TMOD=0x01;//
TH0=(65536-46083)/256;//
TL0=(65536-46083)%256;//
TR0=1;//
Countor=O;//从O开始累计中断次数
while(1)//无限循环等待中断
} /**************************************************************
**************************************************************/
while(1)//无限循环等待查询
{
while(TFΒιβλιοθήκη Baidu==0)//如果未计满就等待
{
if(S==0)//按键S按下接地,电平为0
P仁TL0;//计数器TL0加1后送P1口显示
**************************************************************/
void TimeO(void) interrupt1using O//“interrupt”声明函数为中断服务
函数
//其后的1为定时器TO的中断编号;0表示使用第0组工作
寄存器
{
D1=~D1;//按位取反操作,将引脚输出电平取反
TH0=(65536-46083)/256;//定时器TO的高8位重新赋初值
TL0=(65536-46083)%256;//定时器TO的高8位重新赋初值
}
//
#include<>//包含51单片机寄存器定义的头文件
sbit D1=P2A0;//将D1位定义为引脚
}
//
#include<>//包含51单片机寄存器定义的头文件
sbit D1=P2A0;//将D1位定义为引脚
}
TF0=0;//计数器溢出后,将TF0清0
//
#include<>//包含51单片机寄存器定义的头文件sbit D1=P2A0;//将D1位定义为引脚
/**************************************************************函数功能:主函数
**************************************************************/void main(void)
//
#include<>//包含51单片机寄存器定义的头文件
/**************************************************************函数功能:主函数
void main(void)
{
//EA=1;//
//ETO=1;//
TMOD=OxO1;//
开总中断
寄存器
{
Countor++;//中断次数自加1if(Countor==2O)//若累计满2O次,即计时满1s{
D1=~D1;//按位取反操作,将引脚输出电平取反
Countor=0;//将Countor清0,重新从0开始计数}
TH0=(65536-46083)/256;//定时器T0的高8位重新赋初值
函数功能:定时器TO的中断服务程序
**************************************************************/
void TimeO(void) interrupt1using O//“interrupt”声明函数为中断服务
函数
//其后的1为定时器TO的中断编号;0表示使用第0组工作
{
EA=1;//
ETO=1;//
TMOD=OxO1;//
THO=(65536-46O83)/256;//
TLO=(65536-46O83)%256;//
TRO=1;//
while(1)//无限循环等待中断
}
/**************************************************************函数功能:定时器TO的中断服务程序
定时器TO中断允许
使用定时器TO的模式1
TH0=(65536-46083)/256;//定时器TO的高8位赋初值
TL0=(65536-46083)%256;//定时器TO的高8位赋初值
TR0=1;//启动定时器T0
TF0=0;
P2=0xff;
while(1)//无限循环等待查询{
while(TF0==0)
TF0=0;
P2=~P2;
TH0=(65536-46083)/256;//定时器T0的高8位赋初值
TL0=(65536-46083)%256;//定时器T0的高8位赋初值
}
}
#include<>//包含51单片机寄存器定义的头文件
sbit sou nd=P3^7;//将sou nd位定义为引脚
/**************************************************************函数功能:主函数
unsigned char Countor; //设置全局变量,储存定时器TO中断次数
/**************************************************************
函数功能:主函数
void main(void)
{
EA=1;//
ET0=1;//
TMOD=0x01;//
TH0=(65536-46083)/256;//
TL0=(65536-46083)%256;//
TR0=1;//
Countor=O;//从O开始累计中断次数
while(1)//无限循环等待中断
} /**************************************************************
**************************************************************/
while(1)//无限循环等待查询
{
while(TFΒιβλιοθήκη Baidu==0)//如果未计满就等待
{
if(S==0)//按键S按下接地,电平为0
P仁TL0;//计数器TL0加1后送P1口显示
**************************************************************/
void TimeO(void) interrupt1using O//“interrupt”声明函数为中断服务
函数
//其后的1为定时器TO的中断编号;0表示使用第0组工作
寄存器
{
D1=~D1;//按位取反操作,将引脚输出电平取反
TH0=(65536-46083)/256;//定时器TO的高8位重新赋初值
TL0=(65536-46083)%256;//定时器TO的高8位重新赋初值
}
//
#include<>//包含51单片机寄存器定义的头文件
sbit D1=P2A0;//将D1位定义为引脚