I wrote you a counter, here is the code, would you like fries and a coke?
Code:
@ __config _INTRC_OSC_NOCLKOUT & _WDT_ON & _PWRTE_ON & _MCLRE_OFF &_CP_OFF & _BODEN_OFF & _LVP_OFF
DEFINE OSC 4
SDO Var PortB.4
SCLK Var PortB.5
DLE Var PortB.7
EECON1 = 7
B0 Var WORD
B1 Var byte
D1 Var byte
D10 Var byte
D100 Var Byte
D1000 Var Byte
ONES Var Byte
TENS Var Byte
HUNS Var Byte
THOUS Var Byte
'WPUA = %00110001
'ANSEL = 0 ' FOR USE IN 16F690
'ANSELH = 0
CCP1CON = 0
'CM1CON0 = 0
'CM2CON0 = 0
CMCON = 7 ' Disable comparators 16F648A
OPTION_REG = 0 '16f628a
'OPTION_REG = %00111000 ' set for 16f690
data @0,252,96,218,242,102,182,190,224,254,246
Pause 10
PORTB = 0
PORTA = 0
TRISB = %00000000 ' lower 4 pins outputs
TRISA = %00000001 ' RA2 = TMR0 clock input
Main:
count portA.0,100,b1
B0 = B0+B1 'STORE THE RESULTS BETWEEN COUNTER LOOPS
If B0 >= 9999 then B0 = 0
D1 = b0 DIG 0 ' Load Thousands Digit
Read D1, ONES ' Convert and Load Thousands Variable
d10 = B0 DIG 1 ' Load Hundreds Digit
READ D10,TENS ' Convert and Load Hundreds Variable
D100 = B0 DIG 2 ' Load Tens Digit
READ D100,HUNS ' Convert and Load Tens Variable
D1000 = B0 DIG 3 ' Load Ones Digit
READ D1000,THOUS ' Convert and Load Ones Variable
Shiftout SDO,SCLK,4,[ONES\8,TENS\8,HUNS\8,THOUS\8] ' Send digits to display module 0
PAUSE 10
HIGH PORTB.7
pulsout DLE, 125
pause 12
Goto MAIN
end
Bookmarks