⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 file4.c

📁 单片机学习系统附的实验源代码
💻 C
字号:
//内部定时器实验
//现象 P1.0 一秒钟一次的闪烁


#include <8051.h>

#define OSCILLATOR 12000000                        // 定义晶振频率
#define TIMER0_RELOAD_VALUE -(OSCILLATOR/12/1000)    // 定时器 1ms 定时 的初值
 
static long data milliSeconds;                     // 毫秒数

void ClockIrqHandler (void) interrupt 1 using 3;   // 定义定时器T0中断服务程序

// 下面是定时器T0的中断服务程序
void ClockIrqHandler (void) interrupt 1 using 3 {
  TL0 = TIMER0_RELOAD_VALUE%256;
  TH0 = TIMER0_RELOAD_VALUE/256;

  milliSeconds++;
  
}

void main()
{

    P1 = 255;             //关闭LED显示
    P0 = 0;               //关闭数码显示
    P2 = 255;             //
    P3_7 = 0;             //关闭蜂鸣器
    milliSeconds = 0;    

   TR0=1;                 // 停止定时器T0的运行

   TL0 = TIMER0_RELOAD_VALUE&0xff; //初值
   TH0 = TIMER0_RELOAD_VALUE>>8;   //初值


   TMOD = 0;               // 定时器工作在方式0
   ET0=1;                  // 允许定时器T0中断
   EA =1;                  // 中断总允许
   TR0=1;                  // 开始定时器T0
   
  while(1)                 // 设置一个无限制循环
 {       

   if(milliSeconds ==1000)
    { 
        P1_0 =~P1_0;       // 翻转 P1.0 显示每秒
        milliSeconds = 0;  // 到了一秒钟以后,需要把这里清空,重新计数
    }	
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -