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

📄 final.c

📁 用单片机控制电话报警的简单程序 在keil7.0编写
💻 C
字号:
#include<stdio.h>
#include<c8051f020.h>
sbit tel_switch=P0^3;/*tel_switch是电话的总开关*/
sbit tel_dail=P0^2;/*tel_dail是电话的重播按键控制端*/
void initial(void);/*tel_swtich,tel_dail,以及中断控制寄存器和中断标志寄存器的初始化*/
void delay(void);/*延时程序,大约延时0.6s左右,因为暂时不知道系统时钟*/
void dail(void);/*拨号程序,实质是控制重播的完成*/
void main()
{
  initial();
  while(1)/*等待外部中断0,来自p3_2口*/
  {;}
}
void initial()
{
  tel_switch=0;/*电话机的总开关关闭*/
  printf("initial:tel_switch is closed\n");/*无用*/
  tel_dail=0;/*重播功能未接通*/
  printf("initial:tel_dail is colsed\n");/*无用*/
  IE=0x81;/*开启所有中断,开启外部中断0*/
  TCON=0x01;/*外部中断0为脉冲中断,由高变低*/
}
void extern0_isr() interrupt 0
{
  tel_switch=1;/*打开电话总的开关*/
  delay();/*延时一段时间*/
  dail();/*拨打电话*/
}
void delay()/*延时程序,大约为0.6s左右*/
{
  unsigned char i,j;
  i=1000;
  while(i--)
  {
    for(j=0;j<600;j++){;}
  }
}
void dail()
{
  tel_dail=1;/*开启重播*/
  printf("tel_dail is opened!\n");/*无用*/
  delay();/*延时一段时间*/
  tel_dail=0;/*停止重播*/
  printf("tel_switch is closed!\n");
  TMOD=0x01;/*计数器1的工作方式为1,16位计数*/
  TH0=0;/*高8位为0*/
  TL0=0;/*低8位为0*/
  TR0=1;/*开启计数*/
  for(;;)
  {
    if(TF0)/*计数溢出*/
    {
      tel_switch=0;printf("tel_switch is closed!\n");/*关闭整个电话的总开关*/
    }
  }
}

⌨️ 快捷键说明

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