Truncated match.
PICList
Thread
'Re; reading pusbuttons'
1997\10\17@142000
by
Steve Smith
|
part 0 13549 bytes content-type:text/plainIn a message dated 17/10/97 11:59:04, spam_OUTMAILER-DAEMONTakeThisOuT
ns2.x-link.ml.org (Mail
Delivery Subsystem) writes:
<<
In a message dated 16/10/97 05:11:42, you write:
<< What is the best way to sense a push button press? I am multiplexing the
PORTB data lines as a data bus and using PORTA as chip select as shown
to me by Steve Smith. Will the below circuit work?
>>
In the circuit I sent The HC244 for the inputs is scanned once every 10mS
and
if button is down for three scans then it is valid Check out the debounce
routiene by Scott Dattalo its on his website
www.interstice.com/~sdattalo/technical/software/pic/debounce.html
This will debounce a whole 8 bits and you can loose the flip flop just
continue scanning the input register.
Also if you are working at 4Mhz you can do lots between reading an input
buffer to get keys every 10mS The section to read keys will take less than
10uS
movlw b'11111111' ;Set port b to input.
Tris port_b
movlw b'00000111' ;Select an input buffer by seting b,4 address is
b,0,1,2
movwf port_a
movfw port_b ;Read port B
movlw b'00010111' ;Deselect input buffer turn off hc138
The read needs only take 1uS to open the 244 and read the key status just do
it every 10mS
software should be able to handle it all If you want send mail and I will
return a chunk of code for '84 that works in that circuit also attached are
the LCD handlers for that module.
Cheers Steve.......
some software extracts fo the board
CONOFF EQU B'00010000' ; CONTROL PORT OFF STATE
;---------------PORT ASSIGNMENTS A IS ALWAYS OUTPUT--------
;---------------B IS BIDIRECTIONAL AND HAS ASSESS TO-------
;---------------UP TO 64 IO LINES VIA 138------------------
CON EQU PORTA ; PORT A IS CONTROL
DTA EQU PORTB ; PORT B IS DATA
;---------------138 LOCATION ASSIGNMENTS------------------
OUT1 EQU B'00000000' ; OUTPUTS 0-7
OUT2 EQU B'00000001' ; OUTPUTS 8-15
OUT3 EQU B'00000010' ; OUTPUTS 15-23
OUT4 EQU B'00000011' ; OUTPUTS 16-29 AND BUZZER AND LCD CONT
INP1 EQU B'00000100' ; INPUTS 0-7
INP2 EQU B'00000101' ; INPUTS 8-15
INP3 EQU B'00000110' ; INPUTS 16-23
INP4 EQU B'00000111' ; INPUTS 24-29 AND TEST SW AND CONT SW
;************* LCD FUNCTIONS ******************************
;---------------LCD TEXT OUTPUTER-----------
STRING
MOVWF STRNUM ; SAVE STRING NUMBER
MOVLW b'11111111' ; NEEDS TO BE FF BEFORE ENTERING STRING
MOVWF TABOFF ; SAVE IN CHR COUNTER
MOVLW LCDRS ; SET TO DATA
CALL LCD_TXT ; DO IT
DOSTR PAGE1 ; SET PAGE MARKER
CALL CALLSTR ; GET STRING CHARTER POINTED TO IN TABOFF
PAGE0 ; RESET PAGE MARKER
MOVWF LCDCH ; SAVE CHAR
ANDLW B'01111111' ; MASK END BIT (END OF STRING MARKER)
CALL LCD_OUT
BTFSS LCDCH,7 ; CHECK LAST
GOTO DOSTR ; NOT FINISHED DO SOME MORE
RETLW 0 ; CONTINUE PROGRAM
;--------------LCDRS-----------------------------------------------
LCD_RS
MOVLW BUZ ; LCD IN CONTROL MODE NO BUZ
LCD_TXT MOVWF DTA ; INFO ON PORT
MOVLW OUT4 ; SELECT ADDRESS
ADDLW CONOFF ; ADD THE OFF LOCATION TO PORT LOCATION
MOVWF CON ; SET CONTROL PORT
BCF IOEN ; CLOCK DATA OUT
BSF IOEN ; RETURN TO NON SELECTED
RETLW 0 ; EXIT
;---------------LCD PAUSE------------------
LCD_OUT
MOVWF DTA ; PUT LCD CONTROL DATA ON BUS
BSF LCDEN ; Lcd enable HIGH
BCF LCDEN ; Lcd enable LOW ; SEND IT
MOVLW .19 ; DELAY FOR LCD TO CATCH UP
CALL SHORT ; DO TIME
RETLW 0 ; EXIT
;--------------LCD CLEAR DISPLAY-----------------------------------
LCDCLR
CALL LCD_RS ; CONTROL MODE
MOVLW 01h ; CLEAR DISPLAY
CALL LCD_OUT ; SHORT TIME DELAY
MOVLW .5 ; TIME FOR LCD TO CATCH UP
CALL LONG ; DO TIME
RETLW 0 ; EXIT
;--------------LCD LINE 1 SELECT---------------------------------
L1
CALL LCD_RS ; CONTROL MODE
MOVLW B'10000000' ; LINE 1 SET
GOTO LCD_OUT ; SHORT TIME DELAY
;--------------LCD LINE 2 SELECT---------------------------------
L2
CALL LCD_RS ; CONTROL MODE
MOVLW B'11000000' ; LINE 2 SET
GOTO LCD_OUT ; SHORT TIME DELAY
;-------------LCD BACK 1 SPACE----------------------------------
BACK1
CALL LCD_RS ; CONTROL MODE
MOVLW B'00010000' ; BACK ONE SPACE
GOTO LCD_OUT ; SHORT TIME DELAY
;------------LCD LINE 2 POS 12----------------------------------
L1_8
CALL LCD_RS ; CONTROL MODE
MOVLW B'10001000' ; LINE 1 POS 8
GOTO LCD_OUT ; SHORT TIME DELAY
;------------LCD LINE 2 POS 8------------------------------------
L2_8
CALL LCD_RS ; CONTROL MODE
MOVLW B'11001000' ; LINE 2 POS 8
GOTO LCD_OUT ; SHORT TIME DELAY
;------------CUSOR BLINK-----------------------------------------
BLINK
CALL LCD_RS ; CONTROL MODE
MOVLW B'00001110' ; CURSOR BLINK
GOTO LCD_OUT ; SHORT TIME DELAY
;------------CURSOR NORMAL---------------------------------------
NO_BLINK
CALL LCD_RS ; CONTROL MODE
MOVLW B'00001100' ; CURSOR NORMAL
GOTO LCD_OUT ; SHORT TIME DELAY
;-------------LCD INSERT SPACE W CONTAINS NUMBER OF-------------
SPACE_0
MOVWF GP3 ; SAVE NUMBER OF SPACES
SPACE_1 MOVLW .10 ; SPACE LOCATION
CALL STRING ; GO DO IT
DECFSZ GP3,F ; FINISHED
GOTO SPACE_1 ; DO SOME MORE
RETLW 0 ; EXIT
;************* END LCD FUNCTIONS ************************
>>
---------------------
Forwarded message:
From: .....MAILER-DAEMONKILLspam
@spam@ns2.x-link.ml.org (Mail Delivery Subsystem)
To: XYGAX
KILLspamAOL.COM
Date: 97-10-17 07:59:04 EDT
The original message was received at Fri, 17 Oct 1997 08:56:43 +0200 (SAT)
from wcpes.x-link.ml.org [163.195.20.11]
----- The following addresses had permanent fatal errors -----
<.....bserfonteinKILLspam
.....tbh.wcape.co.za>
----- Transcript of session follows -----
550 <EraseMEbserfonteinspam_OUT
TakeThisOuTtbh.wcape.co.za>... Host unknown (Name server:
tbh.wcape.co.za: host not found)
In a message dated 16/10/97 05:11:42, you write:
<< What is the best way to sense a push button press? I am multiplexing the
PORTB data lines as a data bus and using PORTA as chip select as shown
to me by Steve Smith. Will the below circuit work?
>>
In the circuit I sent The HC244 for the inputs is scanned once every 10mS and
if button is down for three scans then it is valid Check out the debounce
routiene by Scott Dattalo its on his website
www.interstice.com/~sdattalo/technical/software/pic/debounce.html
This will debounce a whole 8 bits and you can loose the flip flop just
continue scanning the input register.
Also if you are working at 4Mhz you can do lots between reading an input
buffer to get keys every 10mS The section to read keys will take less than
10uS
movlw b'11111111' ;Set port b to input.
Tris port_b
movlw b'00000111' ;Select an input buffer by seting b,4 address is
b,0,1,2
movwf port_a
movfw port_b ;Read port B
movlw b'00010111' ;Deselect input buffer turn off hc138
The read needs only take 1uS to open the 244 and read the key status just do
it every 10mS
software should be able to handle it all If you want send mail and I will
return a chunk of code for '84 that works in that circuit also attached are
the LCD handlers for that module.
Cheers Steve.......
some software extracts fo the board
CONOFF EQU B'00010000' ; CONTROL PORT OFF STATE
;---------------PORT ASSIGNMENTS A IS ALWAYS OUTPUT--------
;---------------B IS BIDIRECTIONAL AND HAS ASSESS TO-------
;---------------UP TO 64 IO LINES VIA 138------------------
CON EQU PORTA ; PORT A IS CONTROL
DTA EQU PORTB ; PORT B IS DATA
;---------------138 LOCATION ASSIGNMENTS------------------
OUT1 EQU B'00000000' ; OUTPUTS 0-7
OUT2 EQU B'00000001' ; OUTPUTS 8-15
OUT3 EQU B'00000010' ; OUTPUTS 15-23
OUT4 EQU B'00000011' ; OUTPUTS 16-29 AND BUZZER AND LCD CONT
INP1 EQU B'00000100' ; INPUTS 0-7
INP2 EQU B'00000101' ; INPUTS 8-15
INP3 EQU B'00000110' ; INPUTS 16-23
INP4 EQU B'00000111' ; INPUTS 24-29 AND TEST SW AND CONT SW
;************* LCD FUNCTIONS ******************************
;---------------LCD TEXT OUTPUTER-----------
STRING
MOVWF STRNUM ; SAVE STRING NUMBER
MOVLW b'11111111' ; NEEDS TO BE FF BEFORE ENTERING STRING
MOVWF TABOFF ; SAVE IN CHR COUNTER
MOVLW LCDRS ; SET TO DATA
CALL LCD_TXT ; DO IT
DOSTR PAGE1 ; SET PAGE MARKER
CALL CALLSTR ; GET STRING CHARTER POINTED TO IN TABOFF
PAGE0 ; RESET PAGE MARKER
MOVWF LCDCH ; SAVE CHAR
ANDLW B'01111111' ; MASK END BIT (END OF STRING MARKER)
CALL LCD_OUT
BTFSS LCDCH,7 ; CHECK LAST
GOTO DOSTR ; NOT FINISHED DO SOME MORE
RETLW 0 ; CONTINUE PROGRAM
;--------------LCDRS-----------------------------------------------
LCD_RS
MOVLW BUZ ; LCD IN CONTROL MODE NO BUZ
LCD_TXT MOVWF DTA ; INFO ON PORT
MOVLW OUT4 ; SELECT ADDRESS
ADDLW CONOFF ; ADD THE OFF LOCATION TO PORT LOCATION
MOVWF CON ; SET CONTROL PORT
BCF IOEN ; CLOCK DATA OUT
BSF IOEN ; RETURN TO NON SELECTED
RETLW 0 ; EXIT
;---------------LCD PAUSE------------------
LCD_OUT
MOVWF DTA ; PUT LCD CONTROL DATA ON BUS
BSF LCDEN ; Lcd enable HIGH
BCF LCDEN ; Lcd enable LOW ; SEND IT
MOVLW .19 ; DELAY FOR LCD TO CATCH UP
CALL SHORT ; DO TIME
RETLW 0 ; EXIT
;--------------LCD CLEAR DISPLAY-----------------------------------
LCDCLR
CALL LCD_RS ; CONTROL MODE
MOVLW 01h ; CLEAR DISPLAY
CALL LCD_OUT ; SHORT TIME DELAY
MOVLW .5 ; TIME FOR LCD TO CATCH UP
CALL LONG ; DO TIME
RETLW 0 ; EXIT
;--------------LCD LINE 1 SELECT---------------------------------
L1
CALL LCD_RS ; CONTROL MODE
MOVLW B'10000000' ; LINE 1 SET
GOTO LCD_OUT ; SHORT TIME DELAY
;--------------LCD LINE 2 SELECT---------------------------------
L2
CALL LCD_RS ; CONTROL MODE
MOVLW B'11000000' ; LINE 2 SET
GOTO LCD_OUT ; SHORT TIME DELAY
;-------------LCD BACK 1 SPACE----------------------------------
BACK1
CALL LCD_RS ; CONTROL MODE
MOVLW B'00010000' ; BACK ONE SPACE
GOTO LCD_OUT ; SHORT TIME DELAY
;------------LCD LINE 2 POS 12----------------------------------
L1_8
CALL LCD_RS ; CONTROL MODE
MOVLW B'10001000' ; LINE 1 POS 8
GOTO LCD_OUT ; SHORT TIME DELAY
;------------LCD LINE 2 POS 8------------------------------------
L2_8
CALL LCD_RS ; CONTROL MODE
MOVLW B'11001000' ; LINE 2 POS 8
GOTO LCD_OUT ; SHORT TIME DELAY
;------------CUSOR BLINK-----------------------------------------
BLINK
CALL LCD_RS ; CONTROL MODE
MOVLW B'00001110' ; CURSOR BLINK
GOTO LCD_OUT ; SHORT TIME DELAY
;------------CURSOR NORMAL---------------------------------------
NO_BLINK
CALL LCD_RS ; CONTROL MODE
MOVLW B'00001100' ; CURSOR NORMAL
GOTO LCD_OUT ; SHORT TIME DELAY
;-------------LCD INSERT SPACE W CONTAINS NUMBER OF-------------
SPACE_0
MOVWF GP3 ; SAVE NUMBER OF SPACES
SPACE_1 MOVLW .10 ; SPACE LOCATION
CALL STRING ; GO DO IT
DECFSZ GP3,F ; FINISHED
GOTO SPACE_1 ; DO SOME MORE
RETLW 0 ; EXIT
;************* END LCD FUNCTIONS ************************
Content-ID: <0_28158_877111347
spam_OUTemout01.mail.aol.com.5035>
>
Content-type: text/plain;
name="returned.dat"
Reporting-MTA: dns; ns2.x-link.ml.org
Received-From-MTA: DNS; wcpes.x-link.ml.org
Arrival-Date: Fri, 17 Oct 1997 08:56:43 +0200 (SAT)
Final-Recipient: RFC822; @spam@bserfonteinKILLspam
tbh.wcape.co.za
Action: failed
Status: 5.1.2
Remote-MTA: DNS; tbh.wcape.co.za
Last-Attempt-Date: Fri, 17 Oct 1997 08:56:44 +0200 (SAT)
More... (looser matching)
- Last day of these posts
- In 1997
, 1998 only
- Today
- New search...