专栏中心

EEPW首页 > 专栏 > 张明锋书例子8-3

张明锋书例子8-3

发布人:chen3bing 时间:2024-05-17 来源:工程师 发布文章

例子8-2代码从略

例子8-3代码

#include<p16f877.inc>

	cblock 0X20
txBuff	:8
txPtr
txCount
rxBuff	:8
putPtr
getPtr
	endc

w_temp		equ 0x40
status_temp equ 0x41
pch_temp	equ 0x42
fsr_temp	equ 0x43

	org 0x000
	goto main
	org 0x004
	movwf	w_temp
	movf	STATUS,W
	CLRF	STATUS
	MOVWF	status_temp
	movf	PCLATH,W
	MOVWF	pch_temp
	movf	FSR,W
	MOVWF	fsr_temp
	;clrf	PCLATH
ChkRxInt
	banksel	PIR1
	BTFSS	PIR1,RCIF
	GOTO	ChkTxInt
_RdRxFIFO
	btfsc	RCSTA,FERR
	GOTO	_FERR_pro
	movlw	rxBuff
	movwf	FSR
	MOVF	putPtr,w
	addwf	FSR,f
	movf	RCREG,W
	MOVWF	INDF
	INCF	putPtr,f
	MOVLW	.7
	ANDWF	putPtr,f
	btfsc	PIR1,RCIF
	GOTO	_RdRxFIFO
	BTFSS	RCSTA,OERR
	GOTO	EndOfInt

_OERR_pro
	bcf		RCSTA,CREN
	BSF		RCSTA,CREN
	GOTO	EndOfInt

_FERR_pro
	MOVF	RCREG,W
	GOTO	EndOfInt

ChkTxInt
	banksel	PIE1
	BTFSS	PIE1,TXIE
	GOTO	EndOfInt
	bcf		STATUS,RP0
	BTFSS	PIR1,TXIF
	GOTO	EndOfInt

	movlw	txBuff
	movwf	FSR
	MOVF	txPtr,w
	addwf	FSR,f
	movf	INDF,W
	MOVWF	TXREG
	INCF	txPtr,f
	decfsz	txCount,f
	goto	EndOfInt

	bsf		STATUS,RP0
	BCF		PIE1,TXIE
	BCF		STATUS,RP0
	GOTO	EndOfInt

EndOfInt
	clrf	STATUS
	MOVF	fsr_temp,w
	movwf	FSR
	MOVF	pch_temp,w
	movwf	PCLATH
	MOVF	status_temp,w
	movwf	STATUS
	SWAPF	w_temp,f
	SWAPF	w_temp,w
	RETFIE

	org 0x200
main
	banksel	TXSTA
	MOVLW	B'00100100'
	MOVWF	TXSTA
	MOVLW	.25
	MOVWF	SPBRG
	CLRF	PIE1
	BSF		PIE1,RCIE
	CLRF	STATUS
	CLRF	txCount
	clrf	getPtr
	clrf	putPtr
	movlw	b'10010000'
	movwf	RCSTA
	CLRF	INTCON
	BSF		INTCON,PEIE
	BSF		INTCON,GIE
Loop
	call	Check_Data
	goto	Loop

Check_Data
	clrf	STATUS
	MOVF	txCount,w
	skpz
	return
	movf	getPtr,w
	xorwf	putPtr,w
	skpnz
	return

	movlw	rxBuff
	movwf	FSR
	MOVF	getPtr,w
	addwf	FSR,F
	INCF	getPtr,F
	MOVLW	.7
	ADDWF	getPtr,f
	movf	INDF,w
	movwf	txBuff+0
	movlw	' '
	movwf	txBuff+1
	movlw	'1'
	movwf	txBuff+2	
	movlw	'2'
	movwf	txBuff+3	
	movlw	'3'
	movwf	txBuff+4	
	movlw	'4'
	movwf	txBuff+5
	movlw	0x0d
	movwf	txBuff+6	
	movlw	0x0a
	movwf	txBuff+7
	movlw	.8
	movwf	txCount
	clrf	txPtr
	bsf		STATUS,RP0
	BSF		PIE1,TXIE
	BCF		STATUS,RP0
	RETURN

	END

效果图

1710053087542.jpg从图中可以看出,第二个单片机有时候回送的是0x55,有时候则不是。不知何故。

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词: PIC

相关推荐

AVR,C51和PIC单片机比较

嵌入式系统 2018-02-07

51/STM32/MSP430/STC/TMS/PIC/AVR,七大主流单片机最全面对比

嵌入式系统 2018-01-18

Microchip PIC24F32KA304超低功耗16位单片机

一种实用的PIC编程器的设计

嵌入式系统 2018-09-12

PIC18F2455/2550/4455/4550之通用串行总线USB

Microchip低成本带CAN控制器的单片机PIC18F66K80

UPS设计参考.pdf

资源下载 2007-12-16

基于PIC16F87X的电子油门的控制

Microchip超低功耗LCD单片机PIC18F87K90

51、PIC、AVR、16、32-BIT系列单片机区别与特点

嵌入式系统 2017-10-20

如何使用Microchip MAPS选择适合你的PIC® MCU

通俗易懂讲PIC单片机:从一窍不通到入门进步

嵌入式系统 2018-03-09

PIC16F97+eV1527解码源程序

模拟技术 2018-08-01

16位语言函数工具库

K149资料和原理图

资源下载 2007-12-16

Microchip PIC24FJ256DA210开发板在图形显示上的应用

PIC单片机选型指南

资源下载 2007-02-09

PIC典型应用资料

51、AVR、PIC、MSP430、ARM五大单片机全解析

嵌入式系统 2017-10-21
更多 培训课堂
更多 焦点
更多 视频

技术专区