01.c

来自「PIC18F4580 UART通讯程序」· C语言 代码 · 共 98 行

C
98
字号
/*
使用UART进行接收
仿真使用4M频率

*/

#include<PIC18.h>
#include"lib.h"

#define uint unsigned int
#define uchar unsigned char
#define ulong unsigned long

void delay(uint);

void device_init(void);
void port_init(void);

void interrupt highints(void);

bit ledflag=0;

/*
延时函数
*/
void delay(uint i)
{
 while(i--);
      
 }


void interrupt highints(void)
{
 uchar c;
 while(RCIF)
{
 c=RCREG;//由于接收是双缓冲结构,所以读的时候读两次,第二次才是需要的值
 if(c=='\b')
	{
 	uart_sendchar('\b');
     uart_sendchar(' ');
     uart_sendchar('\b');
    }
 else if(c=='\r')
  {
    uart_sendchar('\r');
    uart_sendchar('\n');
  }
 else if(c=='0')
    {
     ledflag=0;
    uart_sendchar(c);
    }
 else 
   { 
   ledflag=1;
   uart_sendchar(c);
   }
  RCIF=0;
 }
}

void port_init(void)
{
 PORTA=0XFF;
 TRISA=0Xff;

 PORTB=0XFF;
 TRISB=0Xff;

 PORTC=0XFF;//
 TRISC=0X86;//1001 0111
 
 PORTD=0xff;
 TRISD=0xfe;//

 
 }

void device_init(void)
{
 port_init();
 uart_init(4000000,9600);
 WDTCON=0x00;//禁止看门狗
 }

void main(void)
{
delay(1000);//启动延时
 device_init();

while(1)  
 RD0=ledflag;


}

⌨️ 快捷键说明

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