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

📄 jie.c

📁 一个遥控器的程序
💻 C
字号:
#include <reg922.h>
#include <intrins.h>
#define uchar unsigned char
sbit BB=P1^2;                           //测试灯
sbit KEY=P0^0;                           //键盘中断
sbit OUT=P0^1;                          //动作键
sbit  LED=P0^2;
sbit RXD=P1^1;
bit  sing;
const uchar data BRGR1_DATA=0x00;      //波特率设为1200bit/s
const uchar data BRGR0_DATA=0x0e; 

void delay(uchar i);
void UART_Ini();
void INT_Ini();
void KEY_Ini(); 
void LedFlash(uchar i);
void BBFlash(uchar i);


void main() 
{ 

  INT_Ini();                //端口初始化:P0,P1口均设为准双向口

  DIVM=100;					//分频 
  BBFlash(200); 
  delay(1);
  BBFlash(200); 
  delay(1);
  BBFlash(200);       
  UART_Ini();               //串口初始化:
  OUT=1;                    ////////////////////////              
  KEY_Ini();				//键盘中断设置
  EA=1; 					//开总中断
  sing=1;
  while(1) 
  {     
     WDCON=0xe0;               //关闭看门狗WDRUN,完全掉电PCON=0x23;没有关WDT
     _nop_();
     _nop_();
     _nop_();
     _nop_();
     AUXR1|=0x80;               //置位CLKLP以降低功耗
     PCONA=0xff; 
     if(sing==1)
     { 
//		  INT_Ini();
          sing=0;
          PCON|=0x03;
     }   
  }
}

void key_int() interrupt 7 
{
   EA=0;
   EKBI=0;
   PCONA=0xfd;
   while(!RI);
   RI=0;
      if(SBUF==0x55)
      {
         OUT=0;
         BBFlash(200);
         delay(3);           
      } 

      if(SBUF==0xAA)
      {
         OUT=1;
         BBFlash(200);
         delay(1);
         BBFlash(200);
         delay(3);  
      }
//   KBCON=0x02;                      //相同电平产生中断      
   KBCON=0x00;
   EKBI=1;
   EA=1;
   sing=1; 
}

void delay(uchar i)              
{
    uchar k;
    for(;i;i--)
    {
       for(k=0;k<250;k++)             //延时1毫秒
       {
                _nop_();
				_nop_();
				_nop_();     
				_nop_();
                _nop_();
                _nop_();
				_nop_();
				_nop_();     

       }

    }
}


/**************************************
* 名称:     UART_Ini()
* 功能:     UART初始化,波特率1200bps
**************************************/

void UART_Ini()
{   
    SCON=0x40;                      //串口模式1
    SSTAT=0x00;
    REN=1;
    BRGCON=0;
    BRGR1=BRGR1_DATA;
    BRGR0=BRGR0_DATA;     
    BRGCON=3;                       //启动UART的波特率发生器
}


void  INT_Ini()                       //端口初始化
{
  P0M1=0x00; 
  P0M2=0x00; 
  P1M1=0x00;
  P1M2=0x00;
//  P0 = 0xfe;
//  P1 = 0xfd;
}

void KEY_Ini()
{
  KBPATN=0x00;                   //设置匹配条件            
  KBCON=0x00;                    //设置为相等中断
  KBMASK=0x01;
  EKBI=1;                    	//使能键盘中断位

//相同电平产生中断
/*
  KBPATN=0x01;                   //设置匹配条件            
  KBCON=0x02;                    //设置为相等中断
  KBMASK=0x01;
  EKBI=1;
*/   
}
void BBFlash(uchar i)
{
	uchar k;
	for(k=0;k<i;k++)
	{
        BB=~BB;                             //蜂鸣器响一下
        BB=~BB;
        BB=~BB;
	}
} 

⌨️ 快捷键说明

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