fa she cheng xu.c

来自「一个遥控器的程序」· C语言 代码 · 共 151 行

C
151
字号
#include <reg922.h>
#include <intrins.h>
#define  uchar unsigned char
#define  uint  unsigned int

sbit key_kai = P0^0;
sbit key_guan= P0^1;
sbit TXD=P1^0;

const uchar data BRGR1_DATA=0x00;      //波特率设为1200bit/s
const uchar data BRGR0_DATA=0x0f;

void INT_Ini();
void UART_Ini();
void Send_Data_kai();
void delay(uchar i);

/*****************************************************
*名称:		Send_Data()
*功能:      程序初始化
* 入口参数:无
* 出口参数:无
* 注意:     
******************************************************/
void INT_Ini()
{
	P0M1=0x0F;
  	P0M2=0x00;
  	P1M1=0x00;
  	P1M2=0x00;
  	DIVM=100;

    AUXR1=0x80;                    //节省晶振功耗
    PCONA=0xfd;
    WDCON=0xe0;                 //关闭看门狗WDRUN,完全掉电PCON=0x23;没有关WDT
    _nop_();
    _nop_();	
}
/***************************************
* 名称:     UART_Ini()
* 功能:     UART初始化,波特率1200bit/s   
****************************************/

void UART_Ini()
{   
    SCON=0x40;                      //串口模式1,接收禁止
    PCON|=0x60;                     //SMOD0=1,SCON的位7作为FE,贞错误标志;关闭掉电检测
    BRGCON=0;
    BRGR1=BRGR1_DATA;
    BRGR0=BRGR0_DATA;     
    BRGCON=3;                       //启动UART的波特率发生器
}

/*********************************************
* 名称:     Send_Data_kai()
* 功能:     串口发送数据
* 入口参数:无
* 出口参数:无
* 注意:     此程序采用查询方式发送。
**********************************************/
void Send_Data_kai()
{ 
	uchar i; 
    for(i=0;i<30;i++)
    {
        SBUF=0X55;
        while(!TI);
        TI=0;
 //       SBUF=0X25;
 //       while(!TI);
 //       TI=0;        
    }   
       
}
		

/*********************************************
* 名称:     Send_Data_guan()
* 功能:     串口发送数据
* 入口参数:无
* 出口参数:无
* 注意:     此程序采用查询方式发送。
**********************************************/
void Send_Data_guan()
{ 
	uchar i;
    for(i=0;i<30;i++)
    {
        SBUF=0XAA;
        while(!TI);
        TI=0;
//        SBUF=0X25;
 //       while(!TI);
 //       TI=0;         
    }   
       
}
/***************************************************
* 名称:     delay(uchar i)
* 功能:     延时子程序,延时10MS
* 入口参数:i
* 出口参数:无
* 注意:     
****************************************************/
void delay(uchar i)              
{
    uchar k;
    for(;i;i--)
    {
       for(k=0;k<55;k++)             //延时1毫秒
       {
                _nop_();
				_nop_();  
       }
    }
}


/********************************************************
* 名称:     main()
* 功能:     主函数
* 入口参数:无
* 出口参数:无
* 注意:     
*********************************************************/
void main(void)
{
	INT_Ini();
	UART_Ini();
    delay(1);  
    while(1)
    {
    	if(key_kai)
    	{ 
    		delay(1);
        	if(key_kai)
        	{
        		Send_Data_kai();	
        	}
    	} 
    	if(key_guan)
    	{
        	delay(1);
        	if(key_guan)
        	{
            	Send_Data_guan();            
        	}
    	}
        
	}
}

⌨️ 快捷键说明

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