Part review – 4541 CMOS programmable timer

Hello readers!

Today we are going to examine the 4541 CMOS programmable timer IC. The main function of this chip is to act as a monostable timer. You are probably thinking one of two things – “what is a monostable timer?” or “why didn’t he use a 555 timer instead?”. A monostable timer is a timer that once activated sets an output high for a specified period of time, then stops waiting to be told to start again.  If you are not up to speed on the 555, have a look at my extensive review.

Although the 555 is cheap, easy to use and makes a popular timer, I have found that trying to get an exact time interval out of it somewhat difficult due to capacitor tolerance, so after some poking around found this IC and thought “Hmm – what have we here?”. So as always, let’s say hello:


As you can see this is a 14-pin package by Texas Instruments. It is also available in various surface-mount options. It is also currently available from FairchildNXP, ON Semi, and ST Micro. Note that this is a CMOS semiconductor, and that you should practice good anti-static precautions when handling it. Futhermore, when designing it into your circuit, don’t leave any pins floating – that is not connected to +5V or ground; unless specified by the data sheet. Here is the data sheet from ON Semiconductor.

This IC is interesting in that it contains a timer that can count to one of four values: 2^8, 2^10, 2^13, and 2^16. That is: 256, 1024, 8192 and 65536. With wiring you select which value to count to, and also the action to take whilst counting and once finished. This is quite easy, by connecting various pins to either GND or +5V. The following table from the data sheet details this:


And here are the pinouts:

The speed of the counting (the frequency) is determined by a simple RC circuit. For more information on RC circuits, please visit this post. You can calculate the frequency using the following formula:

There are two external resistors used in the circuit – Rtc and Rs. Rs needs to be as close as possible to twice the value of Rtc. Try and use 1% tolerance metal-film resistors for accuracy, and a small value capacitor. Also remember to take note of the restrictions printed next to the formula above.

Before examining a demonstration circuit, I would like to show you how to calculate your timing duration. As you can see from the formula above, calculating the frequency is easy enough. Once you have a value for f, (the number of counts per second) divide this into the count value less one power you have wired the chip. That is, if you have wired the chip up for 2^16, divide your frequency into 2^15.

For example, my demonstration circuit has Rtc as 10k ohm, Ctc as 10 nF, and Rs as 20k ohm; and the chip is wired for 2^16 count. Remember to convert your values back to base units. So resistance in ohms, and capacitance in farads. Remember that 1 microfarad is 1×10-6 farads. So my frequency is:


So my timing duration will be 2^15 divided by 4347.826 Hz (result from above) which is  7.536 seconds give or take a fraction of a second. To make these calculations easier, there is a spreadsheet you can download here. For example:


Here is my demonstration monstable circuit. Once the power has been turned on the counter starts, and once finished the LED is lit. Or if the circuit already has power, the reset button SW1 is pressed to start counting. You can see that pins 12 and 13 are high to enable counting to 2^16; pin 6 is low unless the button is pressed; and pin 9 is low which keeps the LED off while counting.


And my demonstration laid out (I really do make everything I write about):


 Easily done. Although this IC has been around for a long time, and many other products have superseded it, the 4541 can still be quite useful. For example, an Arduino system might need to trigger a motor, light, or something to runfor a period of time whilst doing something else. Unfortunately (thankfully?) Arduino cannot multi-task sketches, so this is where the 4541 can be useful. You only need to use a digitalWrite() to send a pulse to pin 6 of your timer circuit, and then the sketch can carry on, while the timer does its job and turns something on or off for a specified period of time.

Well I hope you found this part review interesting, and helped you think of something new to make. And if you made it this far – check out my new book “Arduino Workshop” from No Starch Press.

In the meanwhile have fun and keep checking into Why not follow things on twitterGoogle+, subscribe  for email updates or RSS using the links on the right-hand column? And join our friendly Google Group – dedicated to the projects and related items on this website. Sign up – it’s free, helpful to each other –  and we can all learn something.

6 thoughts on “Part review – 4541 CMOS programmable timer

  1. Mitch Davis

    Nice article, thank you. Not sure I see the point of using 1% resistors if the capacitor that goes with it is, at best, 5% tolerance.

    1. John Boxall

      Hello, thanks for leaving your thoughts. Yes, true – no real need for 1%. It’s more of a personal habit to specify them, and this came through in the article.

      1. Mitch Davis

        But thank you for writing the article, please write more!

        For me, by the time it would take me to find a 4541, and design it into the circuit, and debug it, then wish I hadn’t used hardware when it doesn’t work quite right in the end product, I start wishing I’d worked out how to get some small simultaneous action going in the Arduino.

        Yes, you can’t multiplex sketches, but you can still fiddle around with the timers and have interrupts trigger the calling of isolated routines. The advantage of doing that is your behaviour is defined in software, and, to within a few cycles, is accurate.

        Another idea is to look at a small timeslicer for the Arduino. The “Aiko” framework has one that’s easy to use.

      2. John Boxall

        Hi Mitch
        Thanks for your feedback. You’re right about using it with Arduino. Lately I have been looking into doing things the 20th century way, which explains some of these part reviews. Will have a look into the Aiko group as well.

  2. David Seal

    Love the article. Very helpful. There are other reasons to use the 4541, though. Number 1: it is far cheaper than a PIC, both in actual costs, time and support components. 2: It uses very little power compared to most PIC’s. This is very important if it is battery powered, and/or if the time out interval is on the order of hours. 3. It operates fine, with very little drift, right down to 3 volts and below, depending on the make. Again, important in applications where the voltage available may fluctuate, no need for power-hungery voltage regulator..

  3. Dario

    John, i would like to make a question a little bit out of this post topic. This is the thing, i’ve been doing a source of alarm clock with an arduino (UNO) and a DS1307, and to generate the alarm noise i was using an ne555 and a buzzer, the point is that this introduces too much noise, so i wonder if i use this ic it will introduce less noise that the ne555?

Comments are closed.