Can be a few things. 1) Check the shift solenoids on top of the transmission (front). Remove them and clean out the screens. This would mean your transmission fluid is over due for changing. 2) Maybe it's the Vehicle Speed Sensor (VSS), locate and change that. It's on top of the transmission back under the thermostat area. 3) It could be your Transmission Control Unit (TCU). It's under the floor carpet on your passenger side near the firewall. There is a metal plater covering your ECU and your TCU. The TCU is the smaller box. Remove it, open it and look for burnt items. If you're handy you can replace those items. If you are replacing the unit, make sure it is from a known good one and it matches your car exactly, ie: EX, LX, DX, SE, sport shift button present?, etc... on the circuit board.
Below is a picture of the TCU opened up, here are the transmission codes that your car can display if you are inclined to jump the OBD wire plug to get the reading.
1-Lock-up solenoid 'A' circuit open or shorted.
2-Lock-up solenoid 'B' circuit open or shorted.
3-Throttle Position Sensor circuit open or shorted.
4-Vehicle Speed Sensor open or shorted - No signal from speedometer.
5-Shift Lever Position Switch circuit shorted.
6-Shift Lever Position Switch circuit open.
7-Shift Solenoid 'A' circuit open or shorted.
8-Shift Solenoid 'B' circuit open or shorted.
9-Counter shaft or transmission speed pulse generator open or shorted.
10-Coolant Temperature Sensor open or shorted.
11-Engine RPM (Ignition coil signal) open or shorted.
12-(No code 12 used)
13-Main shaft speed pulse generator open or shorted.
14-Linear (line pressure control) solenoid open or shorted.
15-Kick down switch circuit shorted.