Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
02/27/07 14:27
Read: times


 
Msg Score: +1
 +1 Good Answer/Helpful
#133813 - possible solutions
Responding to: ???'s previous message
This is a professional forum for everybody, and some people don't appreciate abbreviations.

The following could cause a reset:

A damaged 8051 processor. My first one I worked with had the serial port directly connected. I mixed TXD and RXD up, and what I didn't realize unil later is that I directly fed 12V into the TXD/RXD line, and for that chip, accessing the serial port causes a reset.

Shorted Externals. For example, if you directly ground a port pin, and you make that port high, depending on the 8051, a reset might happen, and that port might be damaged. Also, if you made a circuit that you attach to the 8051 and that circuit produces a short across the power lines when that circuit is connected to an 8051 and the 8051 activates it.

Deliberate Jumps. Any "jump" instruction (including those with comparison) that references to address 0, whether a label is there or not, will cause a partial software reset, however, the values will not be destroyed.

RST pin. If RST is tied high then the processor is reset. Check to make sure this pin is set low for your system to work. If you don't have it already, tie a 10K resistor between the RST pin and ground. This ensures that the default value of reset is LOW instead of FLOAT. In TTL, Float defaults to high.

Bad power. If your power wires are overly exposed and they touch every now and then, you notice resets. If you are in an area experiencing constant blackouts from your hydro company and you use an AC adapter, you notice resets.

No ending. The 8051 system has a program counter which keeps on incrementing until a jump/call related instruction changes it. So if you put in code without any jumps, then your 8051 system will constantly processes 65536 bytes of code, where some of them may be unpredictable. What you need to do to end the program is make an endless loop. For example, use "ajmp $".

List of 4 messages in thread
TopicAuthorDate
microcotroller reset problem in softeware            01/01/70 00:00      
   Obviously not            01/01/70 00:00      
   do you regularily insult your friends            01/01/70 00:00      
   possible solutions            01/01/70 00:00      

Back to Subject List