1. 程式人生 > >定時器/計數器0之定時器

定時器/計數器0之定時器

.com 函數調用 wid 延時 mod main images .cn cnblogs

/*
效果說明:
      定時器中斷:通過單片機計數使程序執行
      一秒中斷一次,中斷發生時高四位亮一秒,中斷發生後又回到主程序

*/
  
#include <reg51.h>
#include <stdio.h>
unsigned int i;
void delay()//延時子函數
{
   i=1000000;
   while(i--);//執行一次大概要一毫秒 這裏給它一秒就是中斷發生時高四位亮一秒
  }
 
//中斷初始化
void zhongduan1()
{
   ET0 = 1;//啟動計數器中斷開關
   EA = 1;//總開關
   /*
   定時器的核心在這
   
*/ TMOD = 0x09; TH0 = 0x0D8; TL0 = 0x0F0; TR0 = 1;//啟動定時器 } void main()//主函數 { zhongduan1();//中斷初始化 while(1)//while死循環,主程序一直執行,也就是點亮低四位一直亮,中斷發生時就跳出執行中斷函數程序,中斷發生後又回到主程序 { P0 = 0xf0;//點亮低四位 } } //中斷程序 也就是中斷後要執行的程序 void zhongduan() interrupt 1 { i++; if(i == 10)//讓中斷函數再循環10再執行其程序
{ i = 0; P0 = ~0xf0;//高四位亮 delay();//延時子函數調用 變現為中斷發生時所要執行程序的時間 TH0 = 0x0D8; TL0 = 0x0F0; } }

技術分享

技術分享

定時器/計數器0之定時器