uart_inc.c

来自「菜鸟,详细NRF24E1运用,程序,电路」· C语言 代码 · 共 148 行

C
148
字号

#include "reg24le1.h"
#include "app.h"
void io_config(void)
{
	EA = 0;

	// CLK
	CLKCTRL = 0x28;			// Clock sourced by XCOSC16M  	
	CLKLFCTRL = 0x01; 		// RCOSC32K 
	
	delayx(50);	

	// RTC		
	OPMCON = 0x00; 

   	RTC2CMP0 = 0x00;
	RTC2CMP1 = 0x80; 
								  
	RTC2CON = 0x07;						

	WUOPC1 = 0x00;
	WUOPC0 = 0x00;

	WUCON = 0xEB;


	// TIMER
	TMOD |= 0x01;                     // Timer0: Mode 0, 13-bit timer
  	TF0 = 0;                          // Timer0: interrupt flag clear
  	ET0 = 1;                          // Timer0: interrupt enable
  	TCON = 0;                         // Timer0: run control
  	TR0 = 0;                          // Timer0: stop timer 
	
	TH0 = 0xFA;
	TL0 = 0xCA;	
	
	// IO
	ADCCON1 = 0x00;
	ADCCON2 = 0x00;
	ADCCON3 = 0x00;
	COMPCON = 0x00; 
	PWMCON = 0x00;

	P0 = 0; 
	P1 = 0;
	P0DIR = 0x00;
	P1DIR = 0x00; 
 
}

void uart_init(void)
{

	P0DIR &= 0xF7;				// P03 (TxD) is output
  	P0DIR |= 0x10;     			// P04 (RxD) is input 
	P0|=0x18;	 
		
	S0CON = 0x50;  
   	PCON |= 0x80; 				// SMOD = 1
  	WDCON |= 0x80;   			// Select internal baud rate generator 
	 	
    S0RELL = 0xF3;              // BAUD_38K4
  	S0RELH = 0x03;		  	 
  	//ES0 = 1;

}

void send(unsigned char tmp)
{
S0BUF=tmp;
while(!TI0);
TI0=0;
}

void puts(unsigned char *s)
{
unsigned char *cs=s;
 while(*cs!='\0')
  {
  send(*cs++);
  }
}

unsigned char getch(void)
{
unsigned char tmp;

if(RI0)
{
   RI0=0;
   tmp=S0BUF;
   return tmp;
}
else
return  false;

}

void delayx(int x)
{
int da,db;
 for(da=100;da>0;da--)
   for(db=0;db<x;db++)
    {
	;
	}
}


/*主函数部分*/

code const unsigned char test_string[]="this is a test string from le1 uart! ";

void main(void)
{
unsigned char tmp=0,flag=0;
unsigned int  num=0;
io_config();
uart_init();
delayx(100);
puts(test_string);
while(1)
 {

if(RI0==1)
{  
   tmp=S0BUF;
   RI0=0;
   S0BUF=tmp;
   while(!TI0);
   TI0=0;
}

num++;
if(num<2000)
flag=1;
else
flag=0;
num%=10000;
LED0=flag;		

 }

}


⌨️ 快捷键说明

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