new_alarm.c

来自「PIC18F252模拟警车的警报器,已调试通过,有中文说明,采用PICC编译,C」· C语言 代码 · 共 55 行

C
55
字号
#include <18F252.h>
#fuses HS, NOWDT, NOPROTECT //HS:使用外部晶振10MHz;
                            //NOWDT:不使用看门狗
                            //NOPROTECT程序不保护
#use delay(clock=10000000)  //使能内部函数delay_ms()和delay_us()
#define speaker  PIN_C5
#define SW0     PIN_B0
#define SW1     PIN_B1
#define SW2     PIN_B2
#define RL1   PIN_C7
#define RL2   PIN_C6

int   BIT_flag;
#bit flag0=BIT_flag.0
#bit flag1=BIT_flag.1
#bit key2_flag=BIT_flag.2

long int counter;
long int sound_lemgth;

//#include "C:\B\half_cycle_200ms.c"
//#include "C:\B\half_cycle_400ms.c"
//#include "C:\B\new_half_cycle_200ms.c"
#include "C:\B\alarm\TIMER1.C"

// 这个中断用来输出波形
#INT_TIMER1   //指定下面的函数是timer1的中断服务函数
void wave_timer()
 {if(flag1) wave_timer_60ms();
  if(~flag1) wave_timer_180ms();
}


void main()   {
  // int test;
   flag0=0;                         //初始化变量flag0给其赋初值0
   flag1=1;
   counter=0;
   sound_lemgth=0;

   setup_timer_1(T1_INTERNAL|T1_DIV_BY_1 );
                                    //初始化定时器1;
                                    //时钟源为内部指令时钟;
                                    //不用分频器,即每一指令时钟到来,T1计数一次;
   enable_interrupts(INT_TIMER1);   // timer1中断允许位置1;
   enable_interrupts(GLOBAL);       //开总中断允许位;
   do{delay_ms(100000);
      flag1=1;
     }while( input(SW0));
   do{
     flag1=0;
     delay_ms(100000);
    }while( ~input(SW0));
}

⌨️ 快捷键说明

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