mcs51单片机的主频为12MHz的晶振采用定时器1产生2ms的定时中断

在线等。急

又一个需要此类程序的,好吧,再给你发一份


此程序利用LED作为指示的,你可以随意修改


别且所有语句都加了注释,方便你学习研究


原来我用的是定时器 0,特为你改成了定时器 1,感觉不错记得采纳哦!


/***************************************************************************/

#include <reg51.h> //51单片机通用头文件

sbit LED=P2^0; //LED端口定义

int n; //建立一个变量,用于计数

/***************************************************************************/

void main(void)//主函数

{

     TMOD=0x10; //定时器 0 工作方式 1

     TH1=(65536-1000)/256; //定时器 高四位 初值

     TL1=(65536-1000)%256; //定时器 低四位 初值

     EA=1; //开总中断

     ET1=1; //开定时器 0 中断

     TR1=1; //启动定时器 0

     while(1); //主循环

}

/***************************************************************************/

void int1() interrupt 3 //定时器中断

{

     TH1=(65536-1000)/256; //定时器 高四位 初值

     TL1=(65536-1000)%256; //定时器 低四位 初值

     n++; //计数用变量 累加

     if(n>200) //如果达到2ms

     {

         n=0; //计数用变量 清零

         LED = ~LED; //对LED进行位取反

     }

}

/***************************************************************************/

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-16
什么时候要哦追问

现在。急

追答

那来不及了。。
帮顶吧

追问

好吧。谢谢了。

追答

别客气