专栏中心

EEPW首页 > 专栏 > 张明峰书例子5-3

张明峰书例子5-3

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

代码

list p=16f877
	#include<p16f877.inc>
__CONFIG(_CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF& _CPD_OFF);

	CBLOCK 0X20
keyFIFO:8
keyPutPtr
keyGetPtr
	endc

	cblock	0x70
w_temp
status_temp
pclath_temp
fsr_temp
	endc

	org 0x0000
	nop
	goto main

	org 0x004
	movwf w_temp
	movf STATUS,W
	MOVWF status_temp
	movf  PCLATH,W
	MOVWF	pclath_temp
	movf	FSR,W
	MOVWF	fsr_temp
	
	pagesel   $
	banksel	INTCON
	BTFSC	INTCON,RBIF
	GOTO RBCHG_INT

EndOfInt
	movf	fsr_temp,w
	movwf	FSR
	MOVF    pclath_temp,w
	movwf	PCLATH
	MOVF    status_temp,w
	movwf	STATUS
	SWAPF	w_temp,f
	swapf	w_temp,w
	retfie

RBCHG_INT
	MOVF	PORTB,W
	andlw	b'11110000'
	xorlw	b'11110000'
	skpnz
	goto	_rbIntEnd
	movlw	b'00001110'
	movwf PORTB

_keyScan
	goto $+1
	goto $+1
	movf	PORTB,W
	XORLW	b'11111111'
	skpnz
	GOTO	_rbIntEnd
	andlw	b'11110000'
	skpz
	goto	_keyFound
	setc
	rlf		PORTB,f
	goto	_keyScan

_keyFound
	bankisel keyFIFO
	MOVLW 	keyFIFO&0xff
	addwf	keyPutPtr,w
	movwf	FSR
	MOVF	PORTB,W
	MOVWF	INDF
	incf	keyPutPtr,f
	movlw	0x07
	andwf   keyPutPtr,f

_rbIntEnd
	clrf 	PORTB
	MOVF	PORTB,w
	bcf 	INTCON,RBIF
	GOTO	EndOfInt

main
	banksel	TRISB
	MOVLW 	B'11110000'
	MOVWF	TRISB
	MOVLW 	B'00000000'
	MOVWF	TRISC
	BCF		OPTION_REG,NOT_RBPU
	BANKSEL	PORTB
	CLRF	keyGetPtr
	CLRF	keyPutPtr
	CLRF	PORTB
	CLRF	INTCON
	BSF		INTCON,RBIE
	BSF		INTCON,GIE
mainLoop
	call	KeyBoard
	
	goto	mainLoop

KeyBoard
	banksel	keyGetPtr
	movf	keyGetPtr,w
	xorwf	keyPutPtr,w
	skpnz
	return
	bankisel	keyFIFO
	MOVLW		keyFIFO&0XFF
	addwf	keyGetPtr,w
	movwf	FSR
	incf	keyGetPtr,f
	movlw	0x07
	andwf	keyGetPtr,f
	movf	INDF,w
	BANKSEL	PORTC
	MOVWF	PORTC
	return

	end	

运行效果图

3.jpg按下7键,显示如下0xee

1698803704099.jpg按下4键,显示如下0xed

1699338553706.jpg按下1键,显示如下0xeb

1699404093871.jpg

按下0键,显示如下0xd7

1699404105914.jpg

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

关键词: PIC

相关推荐

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

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

嵌入式系统 2017-10-21

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

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

嵌入式系统 2017-10-20

PIC典型应用资料

AVR,C51和PIC单片机比较

嵌入式系统 2018-02-07

K149资料和原理图

资源下载 2007-12-16

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

Microchip PIC24F32KA304超低功耗16位单片机

PIC16F97+eV1527解码源程序

模拟技术 2018-08-01

基于PIC16F87X的电子油门的控制

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

嵌入式系统 2018-09-12

16位语言函数工具库

Microchip超低功耗LCD单片机PIC18F87K90

UPS设计参考.pdf

资源下载 2007-12-16

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

嵌入式系统 2018-03-09

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

嵌入式系统 2018-01-18

PIC单片机选型指南

资源下载 2007-02-09

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

更多 培训课堂
更多 焦点
更多 视频

技术专区