************************************************
名称:定时器0中断实验
功能:定时器0中断,LED左移1位
网址:www.weijay.com
***************************************************/
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
uchar Status=0xFE; //初始状态
uchar num=5;
//定时器0中断程序
void Time0Int() interrupt 1{
TH0=0x00;//重载初值
TL0=0x00;
num--;
if(num==0){
Status=_crol_(Status,1); //循环左移1位
num=5;
}
}
//主程序
main(){
TMOD=0x01;//定时器方式1
EA=1;//开总中断
ET0=1;//允许T0中断
TH0=0x00;//定时器初值
TL0=0x00;
TR0=1;//启动T0
while(1){
P0=Status;
}
}
/**************************************************
名称:蜂鸣器报警实验
功能:蜂鸣器发出报警声
网址:www.weijay.com
***************************************************/
#include <reg52.h>
#define uchar unsigned char
uchar frq;
sbit SPK=P3^7;//蜂鸣器连在P3.7
//延时程序
void DelayMs(uchar ms){
uchar i;
while(ms--){
for(i=0;i<125;i++);
}
}
//定时器0中断程序
void TimeInt() interrupt 1{
TH0=0xFE;
TL0=frq;
SPK=~SPK;
}
//主函数
main(){
TMOD=0x01;
TH0=0x00;
TL0=0xFF;
TR0=1;
ET0=1;
EA=1;
while(1){
frq++;
DelayMs(1);
}
}
这两个实验的THO和TLO对定时器设定时初始值是根据什么设定的,都是蜂鸣器为什么设定的值会不同,回答的好的奖励100分