<TABLE> <S> <C>
<PAGE>
<ARTICLE> 5
<S> <C>
<PERIOD-TYPE> YEAR
<FISCAL-YEAR-END> JUN-30-2000
<PERIOD-START> JUL-01-1999
<PERIOD-END> JUN-30-2000
<CASH> 3,161,045
<SECURITIES> 10,992,418
<RECEIVABLES> 2,847,797
<ALLOWANCES> 270,429
<INVENTORY> 1,199,873
<CURRENT-ASSETS> 16,505,309
<PP&E> 12,305,801
<DEPRECIATION> 6,049,756
<TOTAL-ASSETS> 27,220,061
<CURRENT-LIABILITIES> 4,486,712
<BONDS> 64,342
0
0
<COMMON> 49,417
<OTHER-SE> 22,937,251
<TOTAL-LIABILITY-AND-EQUITY> 27,220,061
<SALES> 17,701,863
<TOTAL-REVENUES> 17,701,863
<CGS> 5,044,052
<TOTAL-COSTS> 5,044,052
<OTHER-EXPENSES> 13,163,317
<LOSS-PROVISION> 103,923
<INTEREST-EXPENSE> 1,301
<INCOME-PRETAX> 395,404
<INCOME-TAX> 140,480
<INCOME-CONTINUING> 254,924
<DISCONTINUED> 0
<EXTRAORDINARY> 0
<CHANGES> 0
<NET-INCOME> 254,924
<EPS-BASIC> .05
<EPS-DILUTED> .05
</TABLE>