<TABLE> <S> <C>
<PAGE>
<ARTICLE> 5
<LEGEND>
THIS SCHEDULE CONTAINS SUMMARY FINANCIAL INFORMATION EXTRACTED FROM THE ANNUAL
AUDITED FINANCIAL STATEMENT AND IS QUALIFIED IN ITS ENTIRETY BY REFERENCE TO
SUCH FINANCIAL STATEMENTS.
</LEGEND>
<S> <C> <C>
<PERIOD-TYPE> YEAR YEAR
<FISCAL-YEAR-END> MAY-31-2000 MAY-31-1999
<PERIOD-START> JUN-01-1999 JUN-01-1998
<PERIOD-END> MAY-31-2000 MAY-31-1999
<CASH> 265,265 0
<SECURITIES> 0 0
<RECEIVABLES> 344,173 0
<ALLOWANCES> (10,000) 0
<INVENTORY> 459,434 0
<CURRENT-ASSETS> 1,081,519 0
<PP&E> 724,042 0
<DEPRECIATION> (682,526) 0
<TOTAL-ASSETS> 1,157,123 0
<CURRENT-LIABILITIES> 281,245 0
<BONDS> 0 0
0 0
0 0
<COMMON> 2,383,385 0
<OTHER-SE> (1,507,507) 0
<TOTAL-LIABILITY-AND-EQUITY> 1,157,123 0
<SALES> 1,925,738 1,432,373
<TOTAL-REVENUES> 1,943,955 1,455,879
<CGS> (1,122,775) (962,234)
<TOTAL-COSTS> (1,883,573) (1,756,202)
<OTHER-EXPENSES> 0 0
<LOSS-PROVISION> 0 0
<INTEREST-EXPENSE> 0 0
<INCOME-PRETAX> 60,382 (300,323)
<INCOME-TAX> (800) (800)
<INCOME-CONTINUING> 59,582 (301,123)
<DISCONTINUED> 0 0
<EXTRAORDINARY> 0 0
<CHANGES> 0 0
<NET-INCOME> 59,582 (301,123)
<EPS-BASIC> 0.04 (0.21)
<EPS-DILUTED> 0.04 (0.21)
</TABLE>