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

📄 ejem_37.c

📁 Varios ejemplos para utilizar la PIC 16F876 en assembrer y CCS
💻 C
字号:
//								EJEMPLO 37
//						Autor: Mikel Etxebarria
//			(c) Ingenier韆 de Microsistemas Programados S.L.
//						www.microcontroladores.com
//								Bilbao 2006
//
//El m骴ulo USART. Recepci髇 as韓crona. 
//
//El m骴ulo USART de los dispositivos PIC16F87X incorpora el hardware necesario para implemen-
//tar comunicaci髇 serie as韓crona full-duplex o sincrona half-duplex. En este 鷏timo caso el
//USART se puede comportar como Master o Slave.
//
//En el ejemplo se provoca una interrupci髇 cada vez que se recibe un car醕ter v韆 serie. El
//programa de tratamiento visualiza, sobre los leds del laboratorio conectados a la Puerta B,
//el c骴igo binario del car醕ter recibido. Igualmente retransmite el car醕ter recibido, a 
//modo de ECO.
	
#include <16f876A.h>

//Ajusta los valores de la palabra de configuraci髇 durante el ensamblaje:
//Protecci髇 de c骴igo y datos=OFF, LVP=OFF, WDT=OFF y OSC=XT

#fuses NOPROTECT,NOCPD,NOLVP,NOWDT,XT

// Con estas directivas las funciones "input" y "output_bit" no reprograman
// el pin de la puerta cada vez que son utilizadas. Si no se indica el
// modo fast_io se asume por defecto standard_io el cual reprograma el pin
// siempre antes de ser utilizadas estas funciones.

#use fast_io (B)
#use fast_io (C)
#use delay(clock=4000000)

//Habilita las funciones RS232, velocidad a 9600 baudios

#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

#int_rda	//Vector de interrupci髇 al recibir por el UART

//Funci髇 de tratamiento de la interrupci髇 al recibir

tratamiento()
{	
	int	dato;	//Variable para almacena el dato recibido
	dato=getc();	//Lee el dato recibido
	output_b(dato);	//Lo saca por la puerta B
	putc(dato);		//Lo transmite v韆 RS232	
}	
	
main()
{  	
	output_b(0x00);		//Borra las salidas
	set_tris_b(0x00);	//Puerta B salida
	set_tris_c(0b10111111);	//RC7/Rx entrada, RC6/Tx salida
	enable_interrupts(INT_RDA);	//Activa interrupci髇 en la recepci髇
	enable_interrupts(global);	//Habilita interrupciones
	
	while(1)
	{	

	}
}	

⌨️ 快捷键说明

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