tasmod
- 23rd January 2012, 15:33
OK, this is the test code. Just trying to reproduce characters.
The IN/OUTS ADC etc are there but there's no code to run them in this version.
The ADCON1 register is setup and the LCD displays one line but I need to study up the rest TRIS etc.
'************************************************* ***************
'* Name : *
'* Author : Rob Lane *
'* Notice : *
'* : *
'* Date : 13/01/2012 *
'* Version : 1.0 *
'* Notes : Using 16f819 *
'* *
'************************************************* ***************
LCD_DB4 VAR PORTB.4
LCD_DB5 VAR PORTB.5
LCD_DB6 VAR PORTB.2
LCD_DB7 VAR PORTB.7
LCD_RS VAR PORTA.2
LCD_E VAR PORTA.3
LCD_Lines CON 2 ' # of Lines on LCD, 1 or 2 (Note: use 2 for 4 lines)
LCD_DATAUS CON 50 ' Data delay time in us
LCD_COMMANDUS CON 2000 ' Command delay time in us
clear
' Define ADCIN parameters
Define ADC_BITS 10 ' Set number of bits in result
Define ADC_CLOCK 0 ' Set clock source (Fosc/2)
Define ADC_SAMPLEUS 50 ' Set sampling time in uS
INCLUDE "LCD_AnyPin.pbp" ; *** Include MUST be AFTER LCD Pin assignments ****
'setup the custom characters
LCDOUT $FE,$40,$01,$01,$01,$01,$01,$01,$01,$01 ' Cust Char #0
LCDOUT $FE,$48,$1F,$11,$11,$11,$11,$11,$11,$11 ' Cust Char #1
LCDOUT $FE,$50,$1F,$10,$10,$10,$10,$10,$10,$1F ' Cust Char #2
LCDOUT $FE,$58,$01,$01,$01,$01,$01,$01,$01,$1F ' Cust Char #3
LCDOUT $FE,$60,$1F,$11,$11,$11,$11,$11,$11,$1F ' Cust Char #4
LCDOUT $FE,$68,$11,$11,$11,$11,$11,$11,$11,$1F ' Cust Char #5
LCDOUT $FE,$70,$1F,$01,$01,$01,$01,$01,$01,$1F ' Cust Char #6
LCDOUT $FE,$78,$1F,$01,$01,$01,$01,$01,$01,$01 ' Cust Char #7
'setup the THICKER custom characters
'LCDOUT $FE,$40,$03,$03,$03,$03,$03,$03,$03,$03 ' Cust Char #0
'LCDOUT $FE,$48,$1F,$1F,$1B,$1B,$1B,$1B,$1B,$1B ' Cust Char #1
'LCDOUT $FE,$50,$1F,$1F,$18,$18,$18,$18,$1F,$1F ' Cust Char #2
'LCDOUT $FE,$58,$03,$03,$03,$03,$03,$03,$1F,$1F ' Cust Char #3
'LCDOUT $FE,$60,$1F,$1F,$1B,$1B,$1B,$1B,$1F,$1F ' Cust Char #4
'LCDOUT $FE,$68,$1B,$1B,$1B,$1B,$1B,$1B,$1F,$1F ' Cust Char #5
'LCDOUT $FE,$70,$1F,$1F,$03,$03,$03,$03,$1F,$1F ' Cust Char #6
'LCDOUT $FE,$78,$1F,$1F,$03,$03,$03,$03,$03,$03 ' Cust Char #7
nPos var byte
nDig var byte
in_count var word
tr_out var word
batt_volt VAR BYTE
batt_adc var porta.0
freq_in var portb.6
freq_lockout var portb.3
'TRISA=%10001101
'TRISB=%01000000
'ADCON0=%00000000
ADCON1=%10001110
LOW PortB.0 ;r/w lcd line
'CONFIGURE DISPLAY
pause 1000
ln1 con $80
ln2 con $C0
CS con 1
pause 500
LCDOUT $FE,1
lcdout $fe, CS ' Clear screen
main:
nDig=1 : npos=0 : gosub displaydigit
nDig=2 : npos=1 : gosub displaydigit
nDig=3 : npos=2 : gosub displaydigit
nDig=4 : npos=3 : gosub displaydigit
lcdout $FE,$80+6,"Test"
goto main
displaydigit:
if ndig=0 then gosub zero
if ndig=1 then gosub One
if ndig=2 then gosub Two
if ndig=3 then gosub Three
if ndig=4 then gosub Four
if ndig=5 then gosub Five
if ndig=6 then gosub Six
if ndig=7 then gosub Seven
if ndig=8 then gosub Eight
if ndig=9 then gosub nine
return
Zero:
LCDOUT $FE,$80+nPos,1
LCDOUT $FE,$C0+nPos,5
return
One:
LCDOUT $FE,$80+nPos,0
LCDOUT $FE,$C0+nPos,0
return
Two:
LCDOUT $FE,$80+nPos,7
LCDOUT $FE,$C0+nPos,2
return
Three:
LCDOUT $FE,$80+nPos,6
LCDOUT $FE,$C0+nPos,3
return
Four:
LCDOUT $FE,$80+nPos,5
LCDOUT $FE,$C0+nPos,0
return
Five:
LCDOUT $FE,$80+nPos,2
LCDOUT $FE,$C0+nPos,3
return
Six:
LCDOUT $FE,$80+nPos,2
LCDOUT $FE,$C0+nPos,5
return
Seven:
LCDOUT $FE,$80+nPos,7
LCDOUT $FE,$C0+nPos,0
return
Eight:
LCDOUT $FE,$80+nPos,4
LCDOUT $FE,$C0+nPos,5
return
Nine:
LCDOUT $FE,$80+nPos,4
LCDOUT $FE,$C0+nPos,3
return
end
Powered by vBulletin® Version 4.1.7 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.