Loading...
Showing posts with label SSD. Show all posts
Showing posts with label SSD. Show all posts

Wednesday, November 18, 2015

Programmable Digital Seven Segment Timer Circuit - 16F628

Programmable Digital Timer Circuit
Seven Segment Timer


A timer is a specialized type of clock for measuring time intervals. By function, timers can be categorized to two main types. Those are Counts upwards and counts downward.

Timers originally designed to fulfill a need in industry for a means of keeping time on certain devices. Originally, these timers were mechanical devices and used clockwork mechanisms as a means of keeping a regular time. The invention of two electromechanical timer designs allowed for more precise time measurement. The first uses the principle of heat expansion to increase the temperature of a metal finger made of two different metals with differing rates of thermal expansion. As electric current flows through the metal, it begins to heat and one side expands more quickly than the other does, which in turn, moves the electrical contact away from an electrical switch contact. The second uses a small AC motor, which turns at a predetermined rate due to the application of an alternating current.

Finally, digital timers invented. Digital logic circuits are now so cheap that it has become a better investment to buy a digital timer than a mechanical or electromechanical timer. Individual timers implemented with single chip circuits.

This is a very simple adjustable digital timer circuit based on the PIC16F628A microcontroller and it can be programmed to schedule the on and off operation of an electrical appliance. This timer consists of three parts: power supply, control circuit and display. Working voltage of the circuit is 5v - 12v. It depends on the relay voltage. If you use 5v relay then you can omitted the LM7805 regulator IC and apply 5v directly. Otherwise, you have to use regulator IC and apply suitable voltage according to the relay voltage. The schematic is very simple and accurate of the circuit is very good. PIC use its internal oscillator.

Programmable Digital SSD Timer Circuit - PIC16F628A
Programmable Digital Timer Schematic


There are two versions of hex file are available. Those are "4dg_tmr_min.hex" and "4dg_tmr_hr.hex". The first file for the minute timer. It display minutes and seconds. Adjustable time is 1 second to 60 minutes. Other hex file for hourly timer and its adjustable time is 1 minute to 24 hours. This will display hours and minutes on the seven segments.

Configuration

If the time runs too fast or too slow, you can able to adjust the speed by changing the value of Eeprom address 0. Default value is 44 (0x2c). Typical value is 59 (0x3B). Maximum is 255 (0xFF). In repeat mode delay time before restart the timer, determine by value of Eeprom address 3. Default value is 10 (0x0A). Maximum is 255 (0xFF). See below picture for more details.

Programmable Digital Timer Circuit configuration
Eeprom Configuration

Operation of the timer

This circuit uses 5 push buttons to control the their functions.
  • START/PAUSE: When the timer is on, the device is in pause condition even the switch was in closed position. Pressing this button, you can switch between the start and pause timer.
  • FOR/BACKWARD: This allows you to select counter mode. Either upwards or count down.
  • REPEAT: When the timer reaches 00:00, it starts again from previous value you set.
  • LEFT/RIGHT: This allows you to change values on display. The selected digit is incremented by pressing those buttons and values on the display are stored to the Eeprom.

Now connect device you want to operate, through the relay. Set the desired time using left and right buttons and press start. When the timer reaches 00:00, relay will activate.

Friday, November 6, 2015

Digital Seven Segment Speedometer Circuit - 16F628

speedometer1
Speedometer

How Electronic Speedometers Work

In Electronic speedometer, small magnets attached to the vehicle's rotating drive shaft sweep past tiny magnetic sensors (either reed switches or Hall-effect sensors) positioned nearby. Each time the magnets pass the sensors, they generate a brief pulse of electric current. An electronic circuit counts how quickly the pulses arrive and converts this into a speed, displayed electronically on the display. Since the circuit is measuring the number of wheel rotations, it can also keep a count of how far you have traveled, doubling-up as an odometer (distance-measuring meter). Electronic speedometers can also display speeds with analog pointers and dials, just like traditional eddy-current speedos: in that case, the electronic circuit drives a highly controllable electric motor (called a stepper motor) that rotates the pointer through an appropriate angle. Electronic speedometers are more reliable and compact than mechanical ones and the motion sensors can be any distance from the display that shows you your speed, making them suitable for any kind of vehicle!


electronic speedometer
1. A magnet connected to one of the wheels rotates at high speed.

2. Every time it makes one complete revolution, it passes a magnetic sensor and the field from the magnet triggers the sensor.

3. A circuit translates them into your instantaneous speed and distance traveled.

4. A digital display displaying the speed and distance.


Here I will show you how to build simple yet accurate digital speedometer circuit using just a single IC, seven segments and a few external passive components. The design can be used for all vehicles for indicating their speeds.

ssd speedometer circuit
Speedometer Circuit

The main component of this circuit is PIC16F628A. It count signals receive to RA4, then calculate speed and display it on seven segment. A Reed switch used to sense the speed. If the brightness of seven segments is too much, add 220 – 330 Ohms resistors between PORTB and the display. There are two version of hex files are available. In v1 micro-controller use its internal oscillator and v2 used external 4MHz oscillator.

Measure the radius of the wheel and enter it to Eeprom address 0x00. Default value for radius is 30cm (0x1E). You can change update interval by changing the value of Eeprom address 0x01. Default value is 20 (0x14). To increase the sensitivity in this circuit I used two magnets.


speedometer eeprom settings
Eeprom Settings


Maximum Speed is 999 Kmh
Maximum Radius is 255 cm
Supply voltage is 5v


speedometer connection
Circuit Connection

Tuesday, November 11, 2014

Seven Segment Simple Digital Clock Circuit - 16F628

Simple Clock circuit
Clock Schematic

This is a very simple clock circuit. The only IC used in this circuit was 16F628A pic micro-controller. This IC is very cheap and you can get it from any electronic spare parts shop. Four common cathode seven segment displays used to display time. We cannot get much accurate time using this. However, we can able to get reasonable accurate if we calibrate this circuit correctly. You can calibrate this clock by changing value of ‘Drift’. The ‘Drift’ variable is use to set calibration and it value should be in 0 to 255. In my code, value of ‘Drift’ is 198 and that is not the perfect value for it. You can get 0.5Hz frequency from RB7 if your ‘Drift’ value is correct.

Totally four buttons are used in this circuit and RESET button is optional. Min and Hour buttons used to update time and Mode button change the display mode. Two display modes are available. At the beginning, it will show hour and minutes on display. You can view seconds by pressing Mode button. Please replace NOT gate with NPN transistors such as BC547 and put 1k-10k resistors for base before connect with micro-controller.

MikroC used as programming language but you can easily convert it to MikroC pro or any other language. Because the code very simple. Micro-controller is running by its internal clock at 4MHz.The project files can be downloading from below with Source files, Proteus and Hex file.

Saturday, November 8, 2014

DS1307 Real Time Seven Segment Alarm Clock Circuit - 16F88

Updates
  • 31/01/2016 - Added: Hourly chime restriction function
  • 27/10/2019 - Fixed: Hourly chime delay error (v3)
  • 27/10/2019 - Fixed: Auto mode data showing time increased (v3)

DS1307 Alarm Clock
Alarm Clock

This is the newest clock I made using DS1307 real time clock IC. Not like other clock circuits I posted, this clock circuit built in all necessary function such as hourly chime, alarm, time drift correction, etc. In addition, it also include temperature sensor as optional function.

This clock has eight display modes (including standby mode).
  • Mode 1 – Display Seconds
  • Mode 2 – Display Time
  • Mode 3 – Display Date
  • Mode 4 – Display Year
  • Mode 5 – Display Alarm
  • Mode 6 – Display Temperature
  • Mode 7 – Show Time, Date and Temperature continuously
  • Mode 8 – Stand By Mode

DS1307 Alarm Clock
DS1307 Alarm Clock

This PIC project uses PIC16F88 micro-controller, DS1307 Real Time Clock, LM35 temperature sensor, and SSD-5461AG common cathode seven segment display. (If you cannot find that display then use four common cathode seven segment displays).

The PIC16F88 used its internal oscillator and it runs at 8MHz. We can reduce cost and complexity of circuit and can save micro-controller’s pin by using internal oscillator.RA0 and RA1 configured as digital and analogue alternatively to drive seven segment and read voltage of LM35.

The DS1307 (RTC) Real Time Clock is an 8-pin device using an I2C interface. It has eight read/write registers that store the information. This IC will do the timekeeping and it not only keeps track of time but also the date and the day of the week. DS1307 RTC is fully Binary Coded Decimal (BCD) clock/calendar. Therefore, the data read from DS1307 should be converted to BCD format. The most important is the Clock Halt Bit (CH), which is, bit 7 of address 0. This is the register that controls 'seconds' and the CH bit has to be preserved otherwise the chip stops the clock. Writing zero to this bit resets the CH bit so that the clock runs. So when the first usage we must set ‘seconds’. Otherwise clock fail to run.

DS1307 Alarm Clock circuit
Alarm Clock's Internal

Time Setting

Using MODE button you can change the display mode and the current status will save to Eeprom.
SET button can be used for edit the time, date, alarm etc. When you pressed the SET button, clock entered to the Edit mode and two displays will turn off. You can be able to edit values on other display by pressing UP and DOWN buttons. To edit turn off displays value pressed SET button again. Press the SET button again to return clock to normal mode. If the clock is in normal mode UP button also can used to change the time format (12hr or 24hr) and DOWN button can used to turn on or off alarm.

When time changed to 12hr mode LED will indicate the AM/PM status. Alarm on will indicated by the decimal point of last seven segment display. If you wish, you can also connect separate LED for it.

Error correction

Surprisingly making an accurate 32kHz oscillator is a difficult. This is because low speed oscillator drivers are designed for low power operation. That means high impedance and therefore low current, which makes the driver extremely sensitive to noise (or any nearby signals, which can capacitive couple to the crystal wire). Because that when using DS1307 we cannot get accurate time. Therefore, I added simple error correction mechanism for this clock

First, set the clock to current time (time of computer or internet) and keep it run up-to 24 hours.
After 24 hours, check the time of clock with time of computer. If time is drift, check how many seconds are drifted..?  (Use clock mode 1 to view seconds)

E.g. 1:  PC time:  16:30:00 Clock time:  16:30:05
+5 seconds drifted. So we have to reduce time.

I used Eeprom (2) to store this values and default value is 30 (0x1E).  See the Eeprom figure.
Now simply overwrite it with 25 (0x19). You must use hex values for it.

E.g. 2:  PC time:  16:30:00 Clock time:  16:29:58
-2 seconds drifted. So we have to increase time.
Overwrite Eeprom (2) value with 32 (0x20).

Hourly Chime Restriction

You can able to stop hourly chime function for specific time period using this setting. Device Eeprom address 6 and 7 use for this. default values are 0x00 and 0x18 (0 and 24)

Eeprom(6) ≤ Chime Restriction < Eeprom(7)

Eg: Stop Chime from 21.00 to 6.00
Eeprom(6) = 0x06 and Eeprom(7) = 0x15
6 ≤ Chime Restriction < 21

Eeprom of 16F88
Eeprom of 16F88

Wednesday, August 27, 2014

Scrolling Seven Segment Display Circuit - 16F628

Scrolling Seven Segment Display preview
Preview

Many electronic hobbyists are very much interested about build scrolling displays. Most of the time this circuits used matrix displays. However, its cost is high and almost complex to build. Therefore, I try to build a scrolling displays circuit using the seven segments displays because these are cheaper than matrix displays and we can be easily build circuit. This circuit is very simple.

To build this circuit I used PIC16F628A micro-controller and four common cathode seven segment displays. To save micro controller's pin and reduce the cost I used internal oscillator. Massage on ‘scrl_txt’ array will run continuously. You can change the length by changing the value of ‘scrl_len’ according to your text.

A seven-segment LED display is an special arrangement of 7 LED elements to form a rectangular shape using two vertical segments on each side with one horizontal segment on the top, middle, and bottom. By individually turning the segments on or off, numbers from zero to nine and some letters can be display, but we cannot display all characters. However, it is possible to display all the numbers and many characters. See below picture to recognized how seven segment displayed characters.

Seven Segment Characters
Seven Segment Characters

In this picture, you can see some characters like K, M, V, W, X and Z cannot displayed properly. If you need to display all the characters then you need to use 14 or 16 segment displays instead of seven segments. To use this type of display you need to modify the firmware and circuit.

Scrolling Seven Segment Display circuit
Schematic Diagram of Circuit

In Proteus diagram, I used NOT gates to connect the Seven Segment and micro controller. However, in practical you have to use NPN transistor such as 2SC1815 or transistor array IC such as ULN2003 instead of NOT gates. When you are using transistor do not forget to add resistor 1k-10k between micro-controller and base of transistor.

Saturday, April 26, 2014

4 Digit Seven Segment Up Counter Circuit - 16F628

In the past I posted a counter and timer circuit and it is used two seven segment displays to display number and it can only count 0-99. you can see it from here. This circuit was developed version of it.

This project shows cheap and accurate up counter and it can count up to 9999 and then it will start from 0. For this circuit i used PIC16F628A micro-controller and four common cathode seven segment displays. Any 7-Segment displays will work in this circuit. You need to identify the pin-out of any display you use. In Proteus schematic i used NOT gate for reduce CPU usage while simulating and you need to replace that NOT gate with NPN transistors such as BC547 and do not connect transistor's base directly with PORTA (A0-A3). Put a 1k-10k resistor for base of each transistor.

4 Digit Seven Segment Counter circuit
Schematic diagram of 4 digit up counter

Operation of Circuit

  • To start counting simply press the 'Count' button and every time you pressed that button the number will increase one by one and displayed on the seven segment displays. if you need to automatic counting, it is also possible to connect this pin with pulse generator.
  • Pressed 'Clear' button to clear the display and start from zero.
  • 'Reset' button is optional and you can omitted it. but you must add pull-up resistor. otherwise device will reset continuously. 'Reset' button is useful when the circuit was stuck or not responded.

The main problem of counter circuit was contact bounce. The contact bounce is a common problem with mechanical switches. When the contacts strike together, their momentum and elasticity act together to cause bounce. The result is a rapidly pulsed electrical current instead of a clean transition from zero to full current. It mostly occurs due to vibrations, slight rough spots and dirt between contacts. This effect is usually unnoticeable when using these components in everyday life because the bounce happens too fast to affect most equipment. However, it causes problems in some analog and logic circuits that respond fast enough to misinterpret on/off pulses as a data stream. Anyway, the whole process doesn’t last long (a few micro or milliseconds), but long enough to be registered by the microcontroller. When only a push-button is used as a counter signal source, errors occur in almost 100% of cases!

To prevent contact bounce I added some extra code. so we can get error less counting from this circuit. When you pressed and hold the Count button this circuit wont count.

PIC16F628A pin
PIC16F628A Datasheet


/******************************************************************************* 4 SSD Up Counter Copyright (C) 2015 Praneeth Kanishka This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses >> Email: scorpionzblog@gmail.com >> Web : http://scopionz.blogspot.com *******************************************************************************/ #define CLR PORTA.F4 #define ssd1 PORTA.F0 #define ssd2 PORTA.F1 #define ssd3 PORTA.F2 #define ssd4 PORTA.F3 void ssdecode(char i); int number=0; char digit1, digit2, digit3, digit4; char Loop=0; char key=0, last_key=0; void Delay_dis(){Delay_ms(5);} void main() { PCON.OSCF = 1; //4MHz CMCON |= 0x07; // Disable Comparators //INTCON = 0b10010000; TRISA = 0x10; TRISB = 0x01; PORTA = 0; PORTB = 0; Delay_ms(10); while(1){ if(!PORTB.F0) key=1; else {key=0; last_key=0;} if(key!=last_key) { if(++number>9999) number=0; last_key = key; } while(Loop <5) { ssdecode(digit1); //Display digit 1 ssd1 = 1; Delay_dis(); ssd1 = 0; ssdecode(digit2); //Display digit 2 if(number>9)ssd2 = 1; else ssd2 = 0; Delay_dis(); ssd2 = 0; ssdecode(digit3); //Display digit 3 if(number>99)ssd3 = 1; else ssd3 = 0; Delay_dis(); ssd3 = 0; ssdecode(digit4); //Display digit 3 if(number>999)ssd4 = 1; else ssd4 = 0; Delay_dis(); ssd4 = 0; Loop++; } Loop = 0; if(!CLR) number=0; digit1 = (number) %10; digit2 = (number/10) %10; digit3 = (number/100) %10; digit4 = (number/1000)%10; } } void ssdecode(char i) { switch (i) { case 0: PORTB = 0b01111110; break; case 1: PORTB = 0b00001100; break; case 2: PORTB = 0b10110110; break; case 3: PORTB = 0b10011110; break; case 4: PORTB = 0b11001100; break; case 5: PORTB = 0b11011010; break; case 6: PORTB = 0b11111010; break; case 7: PORTB = 0b00001110; break; case 8: PORTB = 0b11111110; break; case 9: PORTB = 0b11011110; break; } }

Sunday, March 3, 2013

DS1307 Real Time Seven Segment Clock Circuit - 16F88

DS1307 IC
DS1307 is a low power serial real time clock with full binary coded decimal (BCD) clock/calendar plus 56 bytes of NV SRAM (Non Volatile Static Random Access Memory). Data and Address are transferred serially through a bidirectional I2C bus.

The RTC provides year, month, date, hour, minute and second information. The end date of months is automatically adjusted for months fewer than 31 days including leap year compensation up to year 2100. It can operate either in 24-hour format or 12-hour format with AM/PM indicator.

DS1307 comes with built-in power sensing circuit which senses power failures and automatically switches to back up supply. We can provide a 3V CMOS Battery for that. The DS1307 RTC uses an external 32.768 kHz Crystal Oscillator and it does not requires any external resistors or capacitors to operate.

DS1307 Block Diagram
DS1307 Block Diagram

In this project, I used ds1307 as real time clock ic and PIC16f88 as micro-controller. To save micro-controller pins there are four input keys which are all connected to a single analogue input pin. This pin also drives one of the seven segment display LEDs so it has to be switched between input (to read the analogue voltage) and output (to drive the led). Each key pulls the analogue input to a different voltage level which you can easily read using the ADC (RA0).

DS1307 Real Time Clock circuit
Circuit Diagram

Set Time

Mode : Pressing mode button cycles the display showing 3 different data.

Mode 1 : Time only
Mode 2 : Seconds only
Mode 3 : Stand-by


Set : To change the value, set button must be pressed.

Set 1 :  Edit mode, show Minute
Set 2 :  Edit mode, show Hour
Set 3 :  Return to clock mode


Up and Down : After Pressing set button, you can change the values indicated on clock by using this buttons.

UP :  Values ++
In clock mode it will also change the 12/24Hr format.

Down :  Values --
In clock mode it will do nothing.

Clock Accuracy:

The accuracy of the clock is dependent upon the accuracy of the crystal and the accuracy of the match between the capacitive load of the oscillator circuit and the capacitive load for which the crystal was trimmed. Additional error will be added by crystal frequency drift caused by temperature shifts. External circuit noise coupled into the oscillator circuit may result in the clock running fast.

To ensure the crystal oscillates correctly you must ensure that;
  • Crystal uses 12.7pf load capacitance (correct crystal type).
  • The crystal is close to the IC.
  • The tracks are short.
  • The chip supply has lots of decoupling (capacitors from +5V to GND). e.g. A 100n and a 10n
  • There are no signal tracks near to the crystal.
  • For a PCB: It has a guard ring and a ground plane and away from digital signals.

DS1307 Datasheet
PIC16F88 Datasheet

PIC16F88 pin
Pin Connection


I Used mikroC for compile this project.
Also you can get PCF8583 version from here.

Saturday, March 2, 2013

PCF8583 Real Time Seven Segment Clock Circuit - 16F88

Basic Connection of PCF8583
Basic Connection of PCF8583
The PCF8583 is a clock and calendar chip based on a 2048 bit static CMOS RAM organized as 256words by 8 bits. Addresses and data are transferred serially via the two-line bidirectional I2C-bus.

The built-in word address register is incremented automatically after each written or read data byte. Address pin A0 is used for programming the hardware address, allowing the connection of two devices to the bus without additional hardware.

The built-in 32.768 kHz oscillator circuit and the first 8 bytes of the RAM are used for the clock, calendar, and counter functions. The next 8 bytes can be programmed as alarm registers or used as free RAM space. The remaining 240 bytes are free RAM locations.

Block diagram of PCF8583
Block diagram of PCF8583

Features:

  • I2C-bus interface operating supply voltage: 2.5 V to 6 V
  • Clock operating supply voltage 1.0 V to 6.0 V at 0 °C to +70 °C
  • 240 × 8-bit low-voltage RAM
  • Data retention voltage: 1.0 V to 6.0 V
  • Operating current (at fSCL = 0 Hz): max 50 μA
  • Clock function with four year calendar
  • Universal timer with alarm and overflow indication
  • 24 hour or 12 hour format
  • 32.768 kHz or 50 Hz time base
  • Serial input and output bus (I2C-bus)
  • Automatic word address incrementing
  • Programmable alarm, timer, and interrupt function
  • Slave addresses: A1h or A3h for reading, A0h or A2h for writing

PCF8583 Real Time Clock circuit
Circuit Diagram

This clock circuit is same as DS1307 - Real Time Clock. The only different is here I used PCF8583 RTC clock ic and change firmware. Because registers of DS1307 and PCF8583 are different.

To save micro-controller pins there are four input keys which are all connected to a single analogue input pin. This pin also drives one of the seven segment display LEDs so it has to be switched between input (to read the analogue voltage) and output (to drive the led). Each key pulls the analogue input to a different voltage level which you can easily read using the ADC (RA0).


Set Time:

Mode : Pressing mode button cycles the display showing 3 different data.

Mode 1 : Time only
Mode 2 : Seconds only
Mode 3 : Stand-by


Set : To change the value, set button must be pressed.

Set 1 :  Edit mode, show Minute
Set 2 :  Edit mode, show Hour
Set 3 :  Return to clock mode


Up and Down : After Pressing set button, you can change the values indicated on clock by using this buttons.

UP :  Values ++
In clock mode it will also change the 12/24Hr format.

Down :  Values --
In clock mode it will do nothing.

Quartz Frequency Adjustment:

By evaluating the average capacitance necessary for the application layout, a fixed capacitor can be used. The frequency is measured using the 1Hz signal available after power-on at the interrupt output (pin 7). The frequency tolerance depends on the quartz crystal tolerance, the capacitor tolerance and the device-to-device tolerance. Average deviations of 5 minutes per year are possible. See data sheet for more detail.

Use mikroC for compile.

PCF8583 Datasheet

PIC16F88 Datasheet

PIC16F88 pin
PIC16F88 Pin Connection

Saturday, August 18, 2012

PIC16F88 Seven Segment Digital Clock Circuit

In the beginning, I posted a clock that used PIC16F84A micro-controller. You can see it here. PIC16F84A is very old IC and it has very less functions. Therefore, today I post a developed version of that clock. It used PIC16F88 micro-controller. PIC16F88 built in many features such as large memory, internal oscillator, ADC and many more. In addition, we can use this IC for our future projects.

PIC16F88 Digital Clock preview
Preview

PIC16F88 Digital Clock in dot board
Circuit Created On Dot board

You can use big SSD or LEDs to build this but therefore you should add more transistors. Like this.

large display connection
for large display

Here I used 4 switches to control the clock.
  • SW1 – Edit / Enter
  • SW2 – Up Sec / Min
  • SW3 – Down Sec / Min
  • SW4 – 12Hr / 24Hr
  • SW5 – Reset

Click here for 1Hz Oscillator Circuits

1Hz Oscillator Circuits
Clock Circuits

PIC16F88 Datasheet

PIC16F88 Pin
16F88 Pin-out


Saturday, July 28, 2012

24Hr Digital Clock and Alarm Circuit Using Logic ICs - CD4017 CD4026

[Updated]
06/05/2018 - Added Month and Date Reset Feature


This is my first clock project, and used logic IC such as 4017, 4026 to build this clock circuit. Its include Date, Day, and Hourly alarm.See below picture.

Logic clock preview
Preview

It’s very complicated at first sight. But it is not. First of all you can build main circuit and check it work or not.If the circuit work fine, then add other parts step by step to the circuit.

If it’s not work check all component and connections are correct and also check Seven Segment Displays. In my circuit I used LEDs but it is possible to use Seven Segment Displays.
Add &transistors if you use LED or big Seven Segment Displays because this logic ICs can not handle large current. I connect this circuit with 6v backup battery to prevent time lost when the power is fail. In power failure displays are turned off but time is running using battery power.

Logic clock circuit
Full Circuit Diagram

1Hz Signal Generators

To generate 1Hz clock pulse for this circuit here I used circuit of a ordinary clock machine. you can buy a clock machine very cheap price at electronic shops or you can get it from old clock. In below picture you can see most common circuits of clock circuits. By giving power to this circuit we can able to get 1Hz output across the pins that are connected to coil (motor). (But actually we can get only 0.5Hz pulse in one pin. So get 1Hz we need to connect those pins by two diodes. you can see that in the diagram).

1hz signal generator circuit
Clock circuits

4017 decade counter (1-of-10)

CD4017 pin The count advances as the clock input becomes high (on the rising-edge). Each output Q0-Q9 goes high in turn as counting advances. For some functions (such as flash sequences) outputs may be combined using diodes.

 The reset input should be low (0V) for normal operation (counting 0-9). When high it resets the count to zero (Q0 high). This can be done manually with a switch between reset and +Vs and a 10k resistor between reset and 0V. Counting to less than 9 is achieved by connecting the relevant output (Q0-Q9) to reset, for example to count 0,1,2,3 connect Q4 to reset.

 The disable input should be low (0V) for normal operation. When high it disables counting so that clock pulses are ignored and the count is kept constant.

 The ÷10 output is high for counts 0-4 and low for 5-9, so it provides an output at 1/10 of the clock frequency. It can be used to drive the clock input of another 4017 (to count the tens).

4026 decade counter and 7-segment display driver

CD4026 pin The count advances as the clock input becomes high (on the rising-edge). The outputs a-g go high to light the appropriate segments of a common-cathode 7-segment display as the count advances. The maximum output current is about 1mA with a 4.5V supply and 4mA with a 9V supply. This is sufficient to directly drive many 7-segment LED displays. The table below shows the segment sequence in detail.

 The reset input should be low (0V) for normal operation (counting 0-9). When high it resets the count to zero.

 The disable clock input should be low (0V) for normal operation. When high it disables counting so that clock pulses are ignored and the count is kept constant.

 The enable display input should be high (+Vs) for normal operation. When low it makes outputs a-g low, giving a blank display. The enable out follows this input but with a brief delay.

 The ÷10 output (h in table) is high for counts 0-4 and low for 5-9, so it provides an output at 1/10 of the clock frequency. It can be used to drive the clock input of another 4026 to provide multi digit counting.

cd4026 display chart
4026 display chart

CD4073 triple 3-input AND Gate

CD4073 internal
CD4073 pin

The 4073 has three separate 3-input AND gates which you can use independently.

Truth table

The truth table of each individual gate is:
C B A Output
0 0 0
0 0 1 0
0 1 0 0
0 1 1    0
0    0
1 0 0
1 1 0    0
1 1   1 1

where '0' represents a LOW voltage, and '1' represents a HIGH voltage.

Basic operation

You can investigate the behavior of a single 3-input AND gate using this circuit:

3-input AND gate operation
The inputs of the gate must be connected, either to LOW or to HIGH, and must not be left open circuit. This is the function of the input switches with their pull-down resistors. To avoid loading the output of the gate, a transistor switch indicator circuit should be used. It is good practice with CMOS circuits to insert a decoupling capacitor, 47µF or 100µF, across the power supply. (This helps to prevent the transfer of spikes along the power supply rails.)

UM348X

UM348X  pin
The UM348X series is a mask-ROM-programmed multi instruction melody generator, implemented in the CMOS technology. They are designed to play the melody according to the previously programmed information and capable of generating 16 songs with 3 instrument sounds, the piano, the origin and the mandolin.

The devices also included a per-amplifier which provide simple interface to the driver circuit. The UM348X series is intended for applications such as toys, door bells, music boxes, melody clock/timers and telephones


Month and Date Reset

Month and Date Reset Circuit
Month and Reset Circuit
This is a newly added circuit and use 16F628A micro-controller. you have to program it before use. the purposes of this circuit are show month and reset date according to the month. Ex: Jan 31, Feb 28, Etc. PIC use its internal oscillator and circuit is very simple. To save pins, Month shows binary format.
Ex: 1=0001, 2=0010, 3=0011, etc.
For power supply and more details please refer device datasheet. 


Code

/******************************************************************************* Month and Date Reset - 16F628A Copyright (C) 2014 Praneeth Kanishka This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses >> Email: scorpionzblog@gmail.com >> Web : http://scopionz.blogspot.com *******************************************************************************/ int count=1, month=1, date=1; const char day_month[] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; // Interrupt Service Routine (ISR) void interrupt() { if (INTCON.INTF) // Check for interrupt { PORTA.F2=1; count=count+1; delay_ms(5); PORTA.F2=0; if(count>day_month[month]) { count=1; if(++month>12) month=1; PORTA.F3=1; Delay_ms(5); PORTA.F3=0; PORTA.F2=1; Delay_ms(5); PORTA.F2=0; } PORTB = month<< 0x07="" a0="" clear="" cmcon="" comparators="" delay_ms="" disable="" flag="" if="" intcon.intf="0;" intcon="0b10010000;" interrupt="" interrupts="" main="" month="" nable="" option_reg.intedg="0;" pcon.oscf="1;" porta.f2="0;" porta="0x00;" portb="month<<4;" rb0="" trisa="0x03;" trisb="0x01;" void="" while="" z="">12) month=1; PORTB = month<< count="" delay_ms="" if=""> day_month[month]) { count=1; PORTA.F3=1; Delay_ms(5); PORTA.F3=0; } PORTA.F2=1; Delay_ms(50); PORTA.F2=0; Delay_ms(400); } } }

 

on line

Labels

Recent comment

Visitors

Free counters!
Copyright © 2012 - Scorpionz™.,All rights reserved | Powered by Blogger