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

📄 ejem_37.asm

📁 Varios ejemplos para utilizar la PIC 16F876 en assembrer y CCS
💻 ASM
字号:
;								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.

		List	p=16F876A		;Tipo de procesador
		include	"P16F876A.INC"	;Definiciones de registros internos

;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

			__config _CP_OFF&_CPD_OFF&_LVP_OFF&_WDT_OFF&_XT_OSC

			org	0x00		;Vector de RESET	
			goto	Inicio
			org	0x04		;Vector de interrupci髇
			goto	Inter
			org	0x05

;********************************************************************************************
;Tx_Dato: Transmite v韆 serie el dato presente en el reg. W

Tx_Dato			bcf		PIR1,TXIF	;Restaura el flag del transmisor
				movwf	TXREG		;Almacena el byte a transmitir
				bsf		STATUS,RP0
Tx_Dato_Wait	btfss	TXSTA,TRMT	;Byte transmitido ??
				goto	Tx_Dato_Wait;No, esperar
				bcf		STATUS,RP0
				return				;Si

;******************************************************************************************
;Tratamiento de la interrupci髇

Inter			btfss	PIR1,RCIF	;Ha sido interrupci髇 en la recepci髇 ??
				retfie				;No, falsa interrupci髇
				bcf		PIR1,RCIF	;Si, restaurar el flag de interrupci髇
				movf	RCREG,W		;Lee el dato recibido
				movwf	PORTB		;Lo saca por la puerta B
				call	Tx_Dato		;Lo retransmite a modo de eco
				retfie

;*******************************************************************************************
;Programa principal

Inicio	     	clrf	PORTC		
				clrf	PORTB
				bsf		STATUS,RP0	;Selecciona banco 1
				clrf	PORTB		;Puerta B salida
				movlw	b'10111111'
				movwf	TRISC		;RC7/Rx entrada, RC6/Tx salida	
				movlw	b'00100100'	
				movwf	TXSTA		;TX en On, modo as韓crono con 8 bits y alta velocidad
				movlw	.25
				movwf	SPBRG		;9600 baudios con Fosc=4MHz
				bsf		PIE1,RCIE	;Habilita interrupci髇 en la recepci髇
				bcf		STATUS,RP0	;Selecciona banco 0
		
				movlw	b'10010000'
				movwf	RCSTA		;USART en On, recepci髇 cont韓ua
				bsf		INTCON,PEIE	;Activa interrupci髇 de perif閞icos
				bsf		INTCON,GIE	;Activa interrupciones

Loop			nop
				goto	Loop

				end					;Fin del programa fuente

⌨️ 快捷键说明

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