|  | 		
		        
                 
         A 
              complete dialing alarm the size of a pack of cigarettes.- its features will amaze you . . .
 
 
         This is the lowest 
      cost dialing alarm on the market and shows what can be done with an 8-pin 
      microcontroller. The complete circuit is shown below. You cannot 
      see all the features of this project by looking at the circuit - most of 
      them are contained in the program. So, read on and see what we have 
      included. . .    Click on the 5 
      red dots to see each section operating
 
		
		 
		   Dial Alarm-1 
      has a single input (although a number of sensors can be placed in 
      parallel on the same input line). The circuit requires a trigger pulse to 
      turn on a BC 557 transistor. This delivers power to the 
      microcontroller. The micro starts to execute the program and outputs a 
      high on GP2 to keep the "turn-on" circuit active. It also turns on the LED 
      in the opto-coupler and this causes the line to be "picked up" via a 
      high-gain Darlington transistor. The micro then dials two phone numbers 
      and executes a series of events to alert the called party of an intrusion. 
      The circuit also has a sensitive microphone with a high-gain amplifier. 
      This is connected to the phone line when the alarm is triggered. When 
      the first number is dialled, a Hee Haw signal is sent down the line to 
      alert the listener of an intrusion in the "target" area. Amplified audio 
      of the room is then passed down the line. This signal is clear enough to 
      detect conversations and/or movement in the target area and the listener 
      can determine the situation. A second number is then called and the 
      process is repeated. The two numbers are then called again and the alarm 
      closes down. Simple but brilliant. The flow Diagram for the 
      alarm is shown below:
  Dial Alarm-1 Flow 
      Diagram
 Use Dial Alarm-1 as a "Back-Up" AlarmThis alarm has been developed in 
      response to a number of recent large robberies reported in the 
      news. Robberies are a constantly increasing crime, but very few are 
      reported, unless they have a "twist." Recently, the robbers navigated the 
      conventional alarm system and broke into the night safe in the Manager's 
      office. The haul was quite significant and it's surprising such a large 
      amount of cash was kept on the premises. The weakest link in most 
      alarm systems are the PIR detectors, used to detect movement. It's a known 
      fact that they are very easy to foil. It's so easy we are forbidden to 
      print details of how to do it. But many thieves must be aware of the trick 
      and that's why a back-up system is essential.
 The cheapest back-up 
      system is the use of the phone line. I know what you are going to say. 
      Cutting the telephone line is an easy matter and offers little security. 
      But finding the line in a premises is
 not very easy and if there are 
      two or more incoming lines, it's difficult to know which is connected to 
      the dialler. Nothing is infallible, but for a lot less than $50 you can 
      build this project and have a back-up to protect your 
      property.
 The other advantage of our design is the "set and 
      forget feature." The alarm is designed to ring your mobile and if you keep 
      your phone beside you 24 hours a day, you can have this peace of mind, 
      whether you are in your office, factory, holiday house or quietly dining 
      at your favourite restaurant.
 You can protect any area where a 
      telephone line can be installed. This includes houses-under- construction 
      and outlying sheds.
 Talking Electronics has been producing 
      security devices for more than 15 years and this project is a culmination 
      of those years of experience.
 The high-sensitivity amplifier is our 
      development and comes from our highly successful Infinity Bug. This 
      device connects to the phone line anywhere in the world and when the 
      number is rung, the infinity
 bug answers the call and lets you listen 
      in to the activities in the room.  It's just like being there. We 
      have used the same circuit in this project. When it is activated, you can 
      easily work out if it has been triggered by staff, a family member or an 
      intruder.  At least it prevents 90% of false alarms and offers 
      enormous peace of mind.
 The secret lies in the placement of the 
      triggering device.  We have provided only one input (trigger input). 
      And there's a reason for this. The idea is to place the sensor near the 
      target area or on an actual device, near the microphone.
 For instance, 
      it you are protecting a house, a thief always goes to the main bedroom and 
      rummages through the drawers and cupboards. In this case a drawer that is 
      never used should be wired with a magnetic switch (reed switch) or a 
      movement detector such as a mercury switch.  These switches can be 
      housed in a plastic case for easy screwing to a wall or door and are very 
      reliable in operation. When the drawer is pulled out or the door opened, 
      the switch is activated.  If you are protecting a wall safe, the 
      switch is placed near the safe in a clipboard or picture so that when the 
      board or picture is moved, the alarm is activated.  If a room is to 
      be monitored, the switch is placed on the door so that when it is opened, 
      the alarm is activated.  If other valuables are being protected (such 
      as a VCR, scanner etc) a suggestion is to place a clipboard against the 
      item.  The idea is the clipboard has to be moved to get at the 
      "valuables." The clipboard contains a magnet and the switch is nearby. The 
      clipboard keeps the switch open (or closed) and when it is moved, the 
      alarm is activated.
 The ideal arrangement is to avoid touching the 
      clipboard, drawer, door or other "prop" during normal activities and this 
      keeps the alarm activated at all times.
 Another suitable trigger 
      device is a pressure mat.  This is something that can be avoided by 
      "those in the know" and you can monitor an area during your absence.  
      The alarm can be used for other things too. You can determine when your 
      business premises are opened up in the morning by placing a pressure mat 
      or reed switch on a door. The same can apply to a particular room in your 
      establishment.
 The purpose of this article is not only to produce 
      the worlds smallest dialling alarm but also show you how the program runs 
      so you can modify any of the routines to suit your own particular 
      requirements.
 The program can be re-written to dial only one number 
      for two rings then hang up, or three rings, then again after 2 minutes or 
      any combination to suit your requirements. Many mobile phones identify the 
      caller on the display and you can keep track of the exact time of arrival 
      and departure of different personnel.
 The alarm can be programmed to 
      monitor machinery and dial your mobile when a breakdown occurs. It can 
      monitor water level or even your mail box. The possibilities are unlimited 
      and it's just a matter of modifying the program to suit your own 
      needs.
 But before you change any of the program you have to 
      understand what the program does and be capable of changing the 
      instructions without upsetting the operation of the 
      alarm.
 Remember: A little knowledge is a dangerous thing.  
      Before doing any re-writing of the program you need to read our notes on 
      programming and carry out one small modification at a time.
 This 
      is really a very advanced project. The fact that is looks simple is the 
      power of the microcontroller. It's taking the place of at least 10 chips 
      in a normal alarm.
 Timing, tones and tunes have all been 
      converted to instructions of a program. And the advantage of a program is 
      the simplicity of alteration. A time-interval can be changed or a phone 
      number altered with a few lines of code. Even new features can be added 
      without the need for additional hardware. This project uses the '508A to 
      its maximum and shows what can be done with an 8-pin 
      microcontroller.  Before we go any further we must state that this 
      project cannot be connected to the public telephone system. Only approved 
      devices can be connected to the Public Phone System and any experimental 
      device must be approved for experimentation and connected via a "telephone 
      Line Separating Device." These are available from Altronic Imports for 
      approx $100.
 This is unfortunately the case and when we discuss 
      connecting the project "to the line," we are referring to an experimental 
      telephone system such as the one we have put together at Talking 
      Electronics, to test and develop projects such as these.
 See the 
      section "Testing The Project" on Page 2 for more details of the Test 
      Circuit. It consists of 27v derived from 9v batteries, a 12v relay, a 
      telephone and a socket, all in series. The 12v relay is included to limit 
      the current.
 
 THE CIRCUIT
 The 
      circuit consists of 6 building blocks.
 
 1. 
      THE TURN-ON CIRCUIT
 The project is connected to a 6v supply at all times and to 
      extend the battery life, the circuit turns off after use.  The 
      current drops to less than 1uA and the only components connecting the 
      battery to the project are the "turn-on" items.
 These consist of 
      a BC 557 transistor, 2M2 turn-off resistor, 100k bleed resistor, and the 
      top 100u electrolytic. The components to turn on the "turn-on" 
      circuit are the sensing device such as a reed switch or mercury switch, 
      the lower 100u electrolytic and 100k bleed resistor. The components 
      to keep the turn-on circuit ON, are the microcontroller, diode and 
      100k separating resistor.
 It sounds quite complicated but here's 
      how it works. The trigger device must be AC coupled to the project so 
      the alarm only carries out one alarm operation and resets.  If the 
      trigger device was directly coupled to the turn-on circuit, the project 
      would never turn off, even though we could design the
 program to carry 
      out only one dialing operation.
 The sensing device must only give 
      a TRIGGER PULSE to the circuit so it can reset after its operation, ready 
      for another trigger pulse.
 The only way to turn a reed switch 
      activation into a pulse is to AC couple it. To pass the signal through a 
      capacitor. This is what we mean by AC coupling - it means PULSE 
      COUPLING or NOT DIRECT COUPLING.
 The way the turn-on circuit 
      works is this: The top electrolytic is charged very quickly by connecting 
      its negative lead to the negative rail of the project.
 This 
      effectively charges the capacitor and supplies a voltage to the base of 
      the BC557 to turn it on.
 Energy from the electrolytic passes into 
      the base of the transistor and allows current to flow between collector 
      and emitter leads.
 This flow of current activates the rest of the 
      project. The microcontroller starts up and and the Watch-Dog Timer 
      resets the program to the beginning after about one second (if the program 
      did not start correctly) and takes over the job of turning on the BC 557, 
      by taking GP2 low via the diode and 100k resistor. This action keeps 
      the top 100u charged.
 Going back to the action of the tilt 
      switch; instead of taking the top 100u directly to the negative rail as 
      discussed above, it is taken to the negative rail via an uncharged 100u 
      and this is similar to a "piece of wire" when it is in a discharged 
      condition. It gets charged (to approx 3v) and the project turns 
      on.
 If the reed switch remains closed and the micro goes through 
      its set of operations and closes down,  the top 100u discharges while 
      the lower charges to 6v. This will take a long time but eventually the 
      transistor will turn off, even though the reed switch remains closed.
 When the reed switch opens, the circuit cannot be re-activated until 
      the lower 100u is discharged (or partially discharged) and this will take 
      a long time through the 100k across it (and the upper 
      100u).
 What an enormously complex operation for such a 
      simple circuit!
 At the end of an alarm-cycle the micro is placed in a 
      holing loop at Main8. To get the micro to re-start at address 000, the 
      chip must see a definite LOW. This will naturally occur when the project 
      is sitting for a long period of time, waiting for a trigger pulse. If you 
      are experimenting, make sure the rail voltage has been completely removed 
      before re-starting the project.
 
 2. THE TONE DETECTOR
 The simplest building block in the project is the 
      Tone Detector.  It is designed to detect any tone of about 500Hz on 
      the phone line such as a whistle or DTMF. When this tone is detected, the 
      alarm will turn off.  In this case the hardware does the 
      detection.
 The circuit amplifies the signal on the phone line 
      and this turns on a transistor. On the output of the transistor is a 4u7 
      electrolytic. It is charged via a 100k resistor. The stage sits with the 
      collector at rail voltage, due to the biasing components keeping the 
      transistor off. When a signal is delivered, the transistor turns on and 
      the collector goes low. This causes the electrolytic to get discharged via 
      the diode. At the same time, the electrolytic is getting charged via the 
      100k and if the frequency of the signal is rapid enough the electrolytic 
      will be fully discharged and this will be detected by the micro as a 
      LOW.
 Designing a project is a combination of good circuit and 
      good program design. This section is a typical example. Originally, the 
      signal was fed into the micro and a program detected the high's and low's. 
      This was very unreliable. By adding the diode and electrolytic, the 
      circuit does all the detection and the program only has to detect a high 
      or low. Much simpler to implement and guaranteed to work.
 
 3. 
      THE DTMF WAVE-SHAPING CIRCUIT
 Dialing a phone number is carried out by sending 
      a tone down the line. So that whistling can not carry out a dialing 
      operation, the telephone company decided to make the tone impossible to 
      produce "by accident."
 Each dialing tone consists of two frequencies, 
      sent at exactly the same time. These frequencies must be in the shape of a 
      sinewave as the detecting device "locks onto" each of the frequencies at 
      the same
 time and produces a very-fast result.  The only problem 
      is a micro can only produce a square wave.
 To convert a square 
      wave into a sinewave, we need a wave shaping circuit. In essence this 
      consists of charging and discharging a capacitor with a square wave and 
      "picking off" the waveform.
 The charging of a capacitor is 
      exponential but if we take the beginning of the curve and compare it to a 
      sinewave, the two match up fairly closely.
 That's what we 
      have done. We have charged a capacitor very quickly via a resistor so that 
      it is nearly fully charged and then we begin to discharge it. The result 
      is a fairly "peaky" sine wave. The waveform
 is picked off the capacitor 
      via a high value resistor and passed into a high impedance 
      emitter-follower circuit. The two tones are produced separately by the 
      micro and combined after wave-shaping. This reduces interference between 
      one waveform with the other.
 The component values have been especially 
      chosen to produce a high amplitude signal, as the emitter follower 
      transistor does not increase the amplitude, only the current-driving 
      capability into the phone
 line.
 THE CHOKE
 The choke has been placed in the emitter of the driver 
      transistor to have the maximum effect on the signal. When it was placed in 
      the collector, it had no noticeable improvement.
 The effect of a coil 
      (choke) is to "smooth out" the shape of a waveform. It does this by taking 
      some of the energy from a rising signal and delivering it during a fall in 
      amplitude. This makes the "peaky" waveform "rounded."
 The 
      coil actually produces a negative feedback on the circuit. You already 
      know that a rise or fall in amplitude on the base of a transistor will 
      create a fall or rise in the collector voltage.  Well, the same thing 
      happens if you keep the base fixed and raise or lower the voltage on the 
      emitter. The voltage on the collector rises or falls by a larger amount. 
      This is due to the gain of the transistor.
 The improvement made 
      by the choke increased the dialing accuracy from 80% to 100%.
 The 
      improvement in the waveshape could not be detected on a CRO so it's not 
      always possible to get test equipment to help you with a design. Sometimes 
      it's your knowledge of componentry that gets you through.
 Getting the 
      DTMF generator to work was one of the most difficult parts of this project 
      as the tone detectors at the exchange are very "exacting" and critical. To 
      improve the chances of instant recognition, we have included a crystal in 
      the circuit.
 Although we have generated the tones in the micro, 
      there are tone-generating chips and these have a 16 tone capability, with 
      only 12 tones used on the telephone keypad.  The additional 4 tones 
      are shown on the diagram below as A, B, C and D. The two symbol keys 
      are called "star" and "hash."
 The extra tones can be generated by the 
      program but are not needed in our situation. In the early days of DTMF, 
      the 4 extra tones were used by the telephone companies to route the calls 
      and create call-charges. The basis of defeating these charges was through 
      "blue boxes" held to the mouth-piece, while creating the extra tones. 
      Things have been tightened up since then.
  
  4. THE HIGH 
      GAIN AMPLIFIERThe 
      high gain amplifier is the two-transistor amplifier at the bottom of the 
      circuit. It is used to pick up sounds in the target area during an alarm 
      activation. It is directly coupled to the phone line via a bridge. 
      The bridge delivers the correct polarity to the circuit, irrespective of 
      the polarity of the phone line and the change in impedance of any of the 
      components connected to the phone line will result in a signal being sent 
      down the line. The output stage of the high-gain amplifier is one of these 
      components and it is biased ON via a 220k resistor. This turns it ON only 
      very slightly, so that the audio signal will drive it correctly. The 
      "load" for the transistor is all the other components connected in series 
      with the transistor and this includes the "holding-in" relay and any 
      isolating transformer at the exchange. The components across the 
      transistor do not form part of the "wanted" load and they actually reduce 
      the output. However they must be included as part of the DTMF section.
 So, we have a two-transistor high-gain amplifier. A 20mV signal 
      from the microphone will produce a 1,000mV signal on the collector of the 
      first transistor and this will be passed to the output transistor.
 The 
      amplitude of the waveform across the output transistor is about 2 
      -3v.
 The unusual layout of the circuit may be confusing. The 
      pre-amplifier section is powered from the 5v supply while the output 
      transistor is driven from the phone line.  Although the voltage on 
      one side of the 100n on the base of the output transistor is different to 
      the other side, this does not affect the operation of the circuit. It is 
      the AC signal through the 100n that is amplified by the buffer (output) 
      transistor and providing the negative rail of the pre-amplifier and the 
      emitter of the buffer transistor are fixed and rigid with reference to one 
      another, no motor-boating (instability) will occur.
 The audio 
      amplifier is gated "off" when the DTMF tone is sent down the line. The 
      supply for the pre-amplifier is obtained from an output of the micro and 
      this line goes high before the tone is transmitted. This charges the 47u 
      and the voltage across the BC 557 is very low. Without the ability to 
      amplify the audio in the target zone, the signal on the phone line will 
      not be upset when the DTMF is transmitted.
 
 5. THE OPTO-COUPLER
 The opto-coupler is the device that 
      does the job of a normal phone. In other words it "picks up the phone 
      line." The micro outputs a LOW on pin 5 (GP2) as soon as the program 
      is activated by the mercury switch and this keeps the "turn-on" circuit 
      activated. This line also goes to the opto-coupler and a LED in the 
      opto-coupler is also turned ON. The illumination of the LED turns on a 
      phototransistor inside the opto-coupler and the resistance between 
      collector and emitter leads of the photo-transistor is reduced and this 
      pulls the base of a Darlington transistor towards the positive 
      rail.
 The Opto-coupler can be connected directly to the phone 
      circuit but the transistor must be turned on much harder. This requires 
      the LED in the opto-coupler to be driven much harder and puts a very heavy 
      demand on the battery.
 At the conclusion of each "telephone call" 
      pin 5 goes HIGH and this is the same as "hanging up the phone." The 
      electrolytics in the "turn-on" circuit will keep the micro active during 
      the short period of time between phone calls.
 
 6. THE MICROCONTROLLER
 The heart of the project is the 
      microcontroller. It is an 8-pin chip with 5 input/output lines and one 
      output-only line.  The output lines change from low-to-high-to-low 
      very quickly and each line can deliver a maximum of 25mA.
 The 
      program inside the micro determines what happens on each of the lines and 
      the parts around the micro are merely interfacing components. In other 
      words they adapt or modify or amplify a signal to suit the micro or phone 
      line.
 The micro never stops "running" and it executes 
      instructions at the rate of one million per 
      second       (1 MIPS).
 You need to 
      understand PIC language to program the micro and Talking Electronics has 
      produced
 PIC 
      Programming pages on the web to help you develop a program.
 
 THE PHONE VOLTAGE
 Before designing any project for operation on the phone line, 
      you have to understand how the 50v line operates. It's not like a normal 
      50v power supply. You cannot simply design something for 50v and connect 
      it to the phone line.
 The phone line is actually a 50v battery 
      (actually slightly higher than 50v - about 52v. However some of the newer 
      phone systems deliver a voltage as low as 35 - 40v) with a 1k relay in 
      series with one line. When you short the two phone lines together, the 
      relay pulls in to indicate the handset has been lifted.  Under these 
      circumstances the current flowing through the line will be 50/1,000 = 
      50mA.  The relay will drop out at 15mA and so you can add devices to 
      the phone line until the current falls to about 15mA without the line 
      dropping out. It is best to keep the current high to prevent the line 
      dropping out.
  
 Most phones drop about 
      8 - 12v across them when they are working and this voltage can be used by 
      the phone for the amplifying circuits, tone generators etc. Our design has 
      a separate supply, however it could be designed to use the phone voltage, 
      if you wish. The 10v across the BC 337 audio output transistor gives the 
      transistor plenty of voltage for a good output waveform.  The 
      audio is sensitive enough to hear a clock ticking in the target 
      area.   CONNECTING MORE 
      INPUT DEVICESMore 
      than one trigger device can be fitted to the alarm provided they are 
      connected in parallel as shown in the diagram below.
  
 
         
         BUILDING THE PROJECTAll the components fit on to a PC board labelled 
      Dial Alarm-1. The placement of each component is clearly shown by 
      the overlay on the board and the only components requiring careful 
      attention are the opto-coupler and bridge.
 The opto-coupler has 
      line running down one side of the chip and when viewed from the top, with 
      the line towards you, pin one at the left.
 The chip may also have a dot 
      or dimple indicating pin 1 and/or a cut-out at one end.
 The 
      bridge has positive (+) and negative (-) marked on the top of the chip as 
      well as AC inputs indicated by squiggle lines.
 Don't get the BC 
      557 confused with the BC 547 or BC 338 transistor. They all look the same 
      and have the same pin-outs, but their function is different. The outside 
      case of the electret microphone must go to the negative rail. The 
      microphone can be fitted to a short length of twin lead or fine screened 
      microphones lead (as supplied in the kit) so it can be positioned near the 
      audio you wish to detect.
 Solder the 8-pin IC socket for the 
      microcontroller to the board so that the cut-out, covers the cut-out on 
      the board. This way the chip will always be fitted around the correct 
      way.
 The 4-core 
      telephone cable comes with 4-pin plugs crimped on each end. A 4-pin 
      modular telephone socket is soldered to the board.
 
  Click on the 5 
      red dots to see the circuit working
 
       
        
        
          |  |  
          | 
              
              
                | 3  
                  -  100R    1/4 watt 1  -  
                  470R        "
 1  
                  -  560R         
                  "
 1  -  
                  1k             
                  "
 1  -  
                  4k7            
                  "
 4  -  
                  10k          
                  "
 1  -  
                  22k          
                  "
 1  -  
                  47k          
                  "
 3  -  
                  100k         
                  "
 1  -  
                  220k         
                  "
 2  -  
                  1M           
                  "
 1  -  
                  2M2          
                  "
 2  -  18p ceramics
 1  -  22n 
                  ceramic
 1  -  33n ceramic
 1  -  47n 
                  ceramic
 2  -  100n ceramics
 2  -  1u 
                  25vw electrolytics
 1  -  4u7 25vw 
                  electrolytic
 1  -  47u 25vw 
                  electrolytic
 3  -  100u 16vw 
                  electrolytics
 1  -  4MHz crystal
 1  
                  -  electret microphone insert
 2  -  BC 547 
                  transistor or similar
 2  -  BC 557 transistor or 
                  similar
 1  -  BC 338 transistor or 
                  similar
 1  -  BD 679 transistor
 1  
                  -  1N4148 signal diode
 1  -  DF 04 
                  bridge
 1  -  4N25 opto-coupler
 1  -  
                  10mH choke
 1  -  6 pin IC socket
 1  
                  -  8 pin IC socket
 1  -  4-cell AA battery 
                  holder
 4  -  AA cells
 1  -  mercury 
                  tilt switch
 3m -  4-core telephone cable with 
                  plugs
 crimped on the ends
 2m - fine screened microphone 
                  lead
 3m  -  very fine solder
 1  -  
                  PIC12c508A (blank)
 1  -  Dial Alarm-1 
                  PC board
 |  |  TESTING THE 
      PROJECTThe project is 
      tested either on a 50v line or the Test Circuit shown in the 
      diagram below. The supply is three 9v batteries.
  
 It does not matter 
      which way around the phone or Dial Alarm-1is connected as both have a 
      diode bridge to accept either polarity. When the mercury switch is 
      activated, the alarm sends a Hee Haw tone down the line and this is 
      detected by listening to the line via another telephone connected in 
      series with the Dial Alarm-1 project, as shown in the diagram 
      above. The audio from the room is then sent down the line.  After 15 
      seconds the Hee Haw is produced again over the audio  and this is 
      repeated at a further 15 seconds. The project then closes down, waits a 
      few seconds then dials the second number and repeats the operation.  
      The two numbers are dialled again and the Alarm closes down.You can 
      repeat the sequence in the Test Circuit and during the listening period, 
      push any of the buttons on the phone to send a DTMF tone down the 
      line.
 The project will close down. The actual closing-down of the 
      circuit takes a while as the electrolytics in the shut-down circuit have 
      to "bleed" though high value resistors. The micro stays in a holding loop 
      during this process, with a CLRWDT instruction.
 If the input of 
      the alarm is connected to a reed or mercury switch on a door, the door 
      will have to be closed again to reset the tilt circuit.
 IF THE PROJECT 
      DOESN'T WORKIf the 
      project doesn't work you will have to go to one of the following 
      sections:
 
 1. The turn-on circuit.
 To test the 
      turn-on circuit, short between collector and emitter of the BC 557 
      transistor. The project will come on and operate.
 Put a 10k resistor on 
      jumper leads and connect it between the base of the BC 557 and ground. 
      This will turn the transistor on. If not, the transistor is faulty or it 
      is a BC547! If this works, take the jumper from the join of the two 
      electrolytics and ground. This will also turn the transistor on. If not, 
      the 100k
 may be open between the join of the electro's and the base of 
      the transistor or the top 100u may be very leaky and have a very low 
      resistance.
 Finally place a jumper lead across the tilt or reed 
      switch. If this doesn't work, the lower 100u may be open circuit. If it 
      does work the tilt or reed switch may be faulty.
 
 2. The tone detector amplifier
 The tone detector transistor is 
      normally gated off and the collector will be at rail voltage. At the same 
      time, the 4u7 electrolytic is fully charged via a 100k resistor. When a 
      signal is detected, the transistor turns on and discharges the 
      electrolytic. This is very easy to monitor via a multimeter on line 
      GP3.
 
 3. The DTMF Section.
 The quickest way to determine if this 
      section is working is to pick up the phone and activate the alarm, by 
      tilting the mercury switch.
 You will hear the DTMF tone being 
      sent down the line.
 If these tones are not heard, you can produce a 
      constant dual tone for say "0" by inserting the following instructions 
      into the program.
 Make sure they are removed after the testing is 
      complete.
 At the end of the SetUp routine 
      insert:
 
 MOVLW 
      057h
 MOVWF 16h
 MOVLW 03Dh
 MOVWF 14h
 GOTO DTMF1
 The third 
      last instruction in DTMF1 must be delineated i.e: ;DECFSZ 
      11h,1
 
 Placing a piezo 
      between pin 6 and ground will allow you to hear one of the tones and 
      between pin 7 and ground, the other tone.
 The tones will be produced 
      continuously and you can view them on a CRO and observe their waveshape 
      entering the phone line. To view one tone at a time, the micro can be 
      put into an old 8-pin
 socket, with one of the output pins missing - 
      this way none of the components have to be removed from the 
      board.
 
 4. The 
      Opto-Coupler
 To see if 
      the opto-coupler is "turning on," short between pins 4 and 5 with a jumper 
      lead. This will turn on the BD 679 transistor. If you also turn on the 
      TURN-ON circuit with a jumper lead between the join of the two 100u 
      electrolytics and ground, you will be able to hear the room-audio, through 
      the telephone. The opto-coupler is turned on by activating the LED between 
      pins 1 and 2. The illumination of the LED turns on a photo-sensitive 
      transistor between pins 5 and 4. The LED only needs a few milliamp to turn 
      on the transistor sufficiently to drive the BD 679 into saturation, as it 
      is a super-alpha device.
 The micro takes pin 5 low to turn on 
      both the "turn-on" circuit and LED in the opto-coupler, but you cannot do 
      this manually as you may damage the output line of the 
      micro.
 When the project is operating you can check the voltage 
      across the 560R resistor. This does not tell you very much except that if 
      it is about 3v, the LED inside the opto-coupler and micro are 
      (maybe)
 operating correctly.
 Check the voltage across the pins 
      4 and 5 of the opto-coupler. It should be about 2v. If it is higher than 
      5v, the opto-coupler is not being turned on enough. It could be 
      insufficient current through the LED or a faulty 
      opto-coupler.
 
 5. The High-Gain Audio 
      Amplifier
 The audio 
      amplifier consists of two stages. The pre-amplifier (the low-signal stage) 
      and the buffer stage (output stage).
 The pre-amplifier section 
      consists of a standard common-emitter amplifier with AC coupling 
      (capacitor coupling) to the microphone. It may look unusual because 
      it is a PNP stage. This has been done so that one of the lines from the 
      micro can be used to gate the audio amplifier OFF.
 You will need 
      either a CRO or an audio tracer to listen to or observe the signal from 
      the microphone through to the output transistor.
 Our circuit had a 
      gain of 50, with a 20mV signal (whistle) from the microphone producing 
      1,000mV (1v) signal into the base of the buffer stage, (output 
      stage).  The output transistor amplifies this to produce a signal of 
      about 3v on the phone line.  You will need a CRO to view the 
      waveforms if you think the audio amplifier is not operating correctly. A 
      dual-trace CRO is best so you can observe the input and output of a 
      particular stage at the same time.
 This completes the coverage of 
      all the individual building blocks in the circuit.  If a fault still 
      persists, the best way to tackle the problem is to get another electronics 
      person to check the board. It may be a simple mistake such as swapping two 
      components, a solder bridge or dry joint.
 As a last resort, you can 
      build another kit and with the second project working, compare the 
      two.
  
         USING AN EMULATOROne of the biggest tasks is finalising 
      a project. As with most projects, the program is built-up of a number of 
      sub-routines from other projects and are known to work correctly. The same 
      with the circuitry. It consists of a number of building blocks from 
      previous projects. Individually, everything works. But the challenge is 
      getting all the sections to work together.
 There are two methods. 
      The first is the simple but "tricky" method, and the second is the use 
      of  "high-level tools of assistance."  High-level tools are a 
      CRO and Emulator or Single-Stepper.  They are nice to have but 
      relying on them is a crutch. You tend to think they will solve your 
      problems.
 This is a dangerous misconception because, in most 
      cases the final solution can come from going back to basics. They 
      can be of assistance, but I am going to show the real way to 
      problem-solving is using "tricks-of-the-trade."
 The big problem with an 
      emulator is INPUTS. If you have a push button in a circuit, the emulator 
      does not carry out the operation of the push button.
 Secondly, 
      delays take a long while to execute and either the emulator skips over 
      them or takes a long time to execute. Output devices are also a problem. 
      How is the emulator going to tell if the output code to a 7-segment 
      display is correct? The pattern on the display will depend on the wiring 
      and it may be multiplexed, so another line is also needed to activate the 
      display.
 I have used a single-stepper and emulator for the PIC and 
      these are some of the problems it did not solve.
 By far the best 
      method is MINE. It's simple but it works every time. It's back to 
      basics.
 Put an instruction into a program that takes the micro to a 
      small routine that outputs a tone to a piezo diaphragm or blinks a 
      LED.
 Put a GOTO instruction into the program, say before a CALL 
      instruction. If the LED blinks, the micro has reached the instruction. 
      Then put the GOTO after the CALL. If the LED does not blink, the micro has 
      not come out of the sub-routine. It may be stuck in the sub-routine or 
      jumped to another address. Go to the sub-routine and work your way through 
      each line with the GOTO concept.
 It may be time-consuming but it is the 
      only real way to follow the actual progress of the microcontroller. This 
      approach was used to solve a problem with the original tone routine in the 
      Dialling Alarm. The investigation solved the problem and also showed the 
      sub-routine was not well-designed.  A much simpler routine was put in 
      its place. So, the hands-on approach solved two things at the same 
      time.
 A CRO was also used initially to check the quality of the 
      DTMF waveform. It appeared to be perfect on the screen but was only being 
      accepted by the exchange 80% of the time. With the addition of a choke in 
      the circuit, the acceptance rose to 100%. The difference between the two 
      waveforms could not be seen on the CRO. This is another case of going back 
      to basics and using your knowledge of  electronics (inductors) to 
      improve the quality of a waveform.
 The point I am making is this 
      . . .
 All the tools of assistance for getting a project 
      up-and-running have been provided in the publications produced by the 
      author and on Talking Electronics website. The only test equipment you 
      need is a multimeter (either analogue or digital) and a Logic Probe. Don't 
      be dreaming: "If only I had an emulator!" or "If only I had a CRO."  
      You can do it all with basics and that is what the Talking Electronics PIC 
      course is all about. Building this project and some of our other 
      projects will show you how things go together, so you can design your own 
      projects.
 As I said above, one of the biggest problems is 
      working out the correct order for testing a project. Things have to be 
      done in the correct order and this quite often requires stripping the 
      project down to the simplest circuit. In our case the first section to 
      work on was the DTMF tones. Once they were 100% accepted by the exchange, 
      the turn-on circuit and opto-coupler sections could be added. Then the 
      audio amplifier had to be placed in parallel with the DTMF section without 
      affecting the quality of the waveform of either the tones or the audio. 
      This was quite a challenge and even though the final circuity is simple, a 
      lot of testing had to be done to make sure other designs were not better. 
      The DTMF circuit was loaded with capacitors and resistors to see if the 
      tone was still recognised by the exchange. This way you know you have a 
      margin-of-error and any tolerances generated in the building of the 
      project will not affect the outcome.
 As each problem was 
      solved, the project got nearer completion. By working with basics, the 
      feeling is the project is advancing.
 With the Dialling 
      Alarm, there were more than 10 things to sort out.
 The DTMF tone 
      - duration, amplitude, clarity, getting 100% acceptance on the 
      line,
 The opto-coupler, the Darlington transistor
 The turn-on 
      circuit
 The audio amplifier, reducing hum, reducing motorboating, 
      improving output amplitude, gating.
 The tone detecting 
      circuit
 None of these would have been helped with an emulator or CRO. 
      There is too much circuitry interdependence and the big problem with a CRO 
      is the introduction of hum when the earth clip is connected to the 
      project.
 If there is any magic package or device that speeds up the 
      process of development, I will let you know.
 
 MODIFYING THE PROGRAM
 To work on the program, you need to 
      assemble an 8-pin to 18-pin adapter shown below. This will allow a 
      PIC16F84 to be plugged into the project so you can easily modify the 
      code.
 Alternatively you can build our Pseudo'508 module. The 
      8-pin plug on the module is then plugged into the '508A socket on the 
      Dial Alarm-1 board.
 The next thing you will need is an 
      assembly program to convert the .asm file to .hex - called 
      MPASM.
 Your program is written in a text editor such as Notepad or 
      Textpad and it has exactly the same layout as the program below. You must 
      call it xxxxxxxx.asm (up to 8 characters then .asm).  MPASM 
      takes this file and produces a .hex file. It also produces a 
      .lst file that shows any mistakes you have made. If a major mistake 
      is made, MPASM will not produce a .hex file, only a .lst 
      file for you to see where the fault is located. If a slight mistake such 
      as leaving the designator off an instruction, MPASM will assume you want 
      the default designator etc and produce a .hex file. Each time 
      you save the file, you must give it a new name. This can simply be a 
      different letter of the alphabet such as Dial-A.asm, Dial-B.asm etc. This 
      way the program being run will definitely be the latest version. In 
      addition, the MPASM will not produce a .hex file if the file is 
      currently being used by PIP-02, for example. In any case, you MUST give 
      each saving a NEW NAME.
 When your program is mistake-free, 
      MPASM will produce a .hex file.
 To download the latest 
      version of MPASM (v02.70), click HERE.
 You 
      are now able to modify the program without wasting any chips. Any of 
      the routines can be altered to suit your own requirements, as explained 
      previously.
   This 
          adapter for GP0, GP1, GP2, GP3 and Xtal on pins 2&3
 Type B has 4k7 and 22p on board.
 BEFORE BURNING A 
          CHIP  Before a '508A chip is burnt, you must make certain the program is correct, 
          as you cannot easily alter it and re-burn the chip.
 The only thing you can do is burn down unwanted instructions to 00. We 
          have used this "trick' to re-burn the phone numbers (see below) so the 
          chip can be re-burnt with a new number.
 To save any hassles, make sure the program is operating correctly by 
          testing it with a PIC16F84.
 When you are satisfied, burn a '508A.
 Next, Table1 must be increased to at least 100 RETLW 0FFh to allow for 
          reprogramming of phone numbers. Make sure none of the program goes 
          into the second page of the '508A as the CALL instructions will not 
          work. To be absolutely accurate, it is the routine you are CALLing that 
          must reside within the first 256 bytes of memory.
 The DIAL-08.asm program shown below (and in the .zip file) has 
          been designed to work for both the PIC16F84 and PIC12c508A micros. Only 
          files and port lines common to both chips have been used. In addition, 
          the start-up routine contains instructions that will be assembled correctly 
          for both chips.
 Next, go to the Main routine and decide if the time duration for each 
          activation will suit your situation. We have allowed approx 15 sec of 
          listening to the target area, then producing a Hee Haw down the line, 
          a further 15 seconds of listening, then dialling the second phone number. 
          This cycle is repeated one more time before the alarm shuts down.
 Next, insert the digits of the phone number you wish to call, IN PLACE 
          OF the 10 random digits in Table1. The phone number can have any 
          number of digits. End the number with RETLW 0E.
 The RETLW values for the digits coincide with the numbers 1-9, except 
          for 0 = 0A as 0 represents ten pulses and ten in hex is 0A!
 1 = RETLW 01h
 2 = RETLW 02h
 3 = RETLW 03h
 4 = RETLW 04h
 5 = RETLW 05h
 6 = RETLW 06h
 7 = RETLW 07h
 8 = RETLW 08h
 9 = RETLW 09h
 0 = RETLW 0Ah
 E = RETLW 0Eh - End of phone number
 
 Do not code-protect the chip as the table values must be able to be 
          removed when re-burning it. This is done by burning down the old digits 
          to 00 00 and the next RETLW 0FFh locations are converted to digits for 
          dialing.
 
 TO RE-BURN A '508A CHIP
 If you need to change the phone number, the old digits are turned into 
          00 00 (including the RETLW 0E command), and the new digits are put in 
          place of  the RETLW 0FFh's.
 This can be done until all the RETLW 0FFh locations are used. That's 
          why you should have up to 100 RETLW 0FFh when you first burn the chip 
          as you need a RETLW 0FFh for each new digit. For example, a 10 digit 
          number, plus RETLW 0E uses 11 RETLW 0FFh's.
 THE 
      PROGRAM  The complete program for the alarm is shown below. 
      The .hex file has not been provided because there are a number of 
      things you have to change before burning a chip. The original program was 
      tested with the author's telephone numbers and these must be replaced with 
      your own. That's why the program has been left open. The timing sequence 
      is shown on a Flow Diagram on a previous page and this consists of calling 
      the first number then listening to the target zone for 15 seconds, sending 
      Hee Haw down the line then listening for a further 15 seconds before 
      calling the second number. This sequence is repeated again and the alarm 
      switches off.  The lengths of any delay can be increased or 
      decreased, according to your requirements.
 
           
           
            | Dialing 
              Alarm-1 PROGRAM ;DIAL-08.asm for burning '508A chips
 NOTE: This program does not dial a recognised phone number.
 
 ;PIC12c508A 
              Files
 ;These are the files common to both the F84 and '508A:
 
 ;07h
 ;08h
 ;09h
 ;0Ah
 ;0Bh
 ;0Ch
 ;0Dh
 ;0Eh loop file
 ;0Fh
 ;10h jump file for tables
 ;11h
 ;12h Count file
 ;13h Carrier DTMF
 ;14h Low tone
 ;15h decrementable low tone
 ;16h High tone
 ;17h decrementable high tone
 ;18h
 ;19h delay routine
 ;1Ah delay routines
 ;1Bh delay routines
 ;1Ch delay routines
 ;1Dh File to ring second number
 ;1Eh Ring numbers the second 
              time
 ;1Fh
  SetUp     MOVLW 08       
                ;Put 0000 1000 into WTRIS 06              
                ;Make GP3 input
 CLRF 06             
                ;Clear port 6 of any junk
 BSF 01h,0          
                ;Prescaler bit0
 BSF 01h,1          
                ;Prescaler bit1
 BSF 01h,2          
                ;Prescaler bit2 = WDT x 128
 BSF 01h,3          
                ;Prescaler assigned to WDT
 BSF 06,2            
                ;Turn on TURN-ON circuit
 NOP
 NOP
 BSF 06,0            
                ;Turn off audio
 GOTO Main1
 
 ;Table 1 for digits of YOUR two phone numbers
 
 Table1    ADDWF 02,1         
                ;File 02 = Low bits of program counter
 RETLW 0Ah       
                ;0
 RETLW 03h
 RETLW 01h
 RETLW 02h
 RETLW 03h
 RETLW 02h
 RETLW 03h
 RETLW 07h
 RETLW 05h
 RETLW 08h
 RETLW 0Eh          
                ;E = End of number
 
 RETLW 09h
 RETLW 05h
 RETLW 05h
 RETLW 08h
 RETLW 08h
 RETLW 08h
 RETLW 08h;
 RETLW 08h
 RETLW 0Eh          
                ;E = End of number
 
 
 ;One hundred 
                RETLW 0FFh values are placed here
 ;for future phone numbers:
 
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 
                
                RETLW 0FFh RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 RETLW 0FFh
 
 
 ;Table2 
                DTMF Low tones
 
 Table2   ADDWF 02,1 ;File 02 = Low bits of program 
                counter
 NOP
 RETLW 075h            
                ;1
 RETLW 075h            
                ;2
 RETLW 075h            
                ;3
 RETLW 06Bh            
                ;4
 RETLW 06Bh            
                ;5
 RETLW 06Bh            
                ;6
 RETLW 060h            
                ;7
 RETLW 060h            
                ;8
 RETLW 060h            
                ;9
 RETLW 057h            
                ;0
 
 
 ;Table3 DTMF HIGH tones
 
 Table3   ADDWF 02,1 ;File 02 = Low bits of program 
                counter
 NOP
 RETLW 044h            
                ;1
 RETLW 03Dh            
                ;2
 RETLW 037h            
                ;3
 RETLW 044h            
                ;4
 RETLW 03Dh            
                ;5
 RETLW 037h            
                ;6
 RETLW 044h            
                ;7
 RETLW 03Dh            
                ;8
 RETLW 037h            
                ;9
 RETLW 03Dh            
                ;0
 
 
 ;Short delay between tones approx 
                50mS
 
 Del1       CLRWDT
 MOVLW 40h         
                ;64 loops
 MOVWF 1B 
                ;
 Del1A     DECFSZ 1A,1       
                ;Will produce 256 decrements
 GOTO Del1A
 DECFSZ 
                1B,1        ;64 decrements 
                of file 1B
 GOTO Del1A
 RETLW 00
 
 
 ;General purpose Delay approx 0.7sec
 
 Del2       MOVLW 03
 MOVWF 19h
 Del2A     CLRWDT
 DECFSZ 
                1A,1        ;After one pass, 
                files 1A, 1B will be
 GOTO Del2A         
                ;256 and will produce the longest
 DECFSZ 
                1B,1        ;delay-time.
 GOTO Del2A
 DECFSZ 
                19,1
 GOTO Del2A
 RETLW 00
 
 Del3       MOVLW 0C         
                ;Approx 5sec delay
 MOVWF 19h       
                ;Delay file
 Del3A    CLRWDT
 DECFSZ 
                1A,1
 GOTO Del3A
 DECFSZ 
                1B,1
 GOTO Del3A
 DECFSZ 
                19,1
 GOTO Del3A
 RETLW 00
 
 ;DETECT detects 
                any DTMF tone or whistle
 
 Detect1  BSF 06h,0        
                ;Turn off audio
 CALL Del2        
                ;Allow 1u electro to discharge 0.7sec
 CALL Del2        
                ;Allow 1u electro to discharge 0.7sec
 CLRF 12h         
                ;Clear detect file
 BTFSS 06,3      
                ;Input will be low when tone detected
 INCF 12h,1
 BCF 06,0           
                ;Turn on audio
 RETLW 00
 
 
 ;Dial1 
                dials the DTMF phone number
 ;13h = 
                carrier file
 ;14h = 
                low tone
 ;15h = 
                decrementable low tone
 ;16h = 
                high tone
 ;17h = 
                decrementable high tone
 
 
 Dial1      MOVF 10h,0         
                ;Put file 10h into W
 CALL Table1
 MOVWF 13h         
                ;Put W into 13h - carrier
 MOVLW 0E           
                ;Look for E - end of number
 XORWF 13h,0       
                ;Is 13h = E?
 BTFSC 03,2
 RETLW 00
 MOVF 13h,0          
                ;File 13h will be 1,2,3 ..0A
 CALL Table2         
                ;Get low-tone value
 MOVWF 14h          
                ;Put low-tone into 14h
 MOVWF 15h          
                ;Decrementable low-tone
 MOVF 13h,0
 CALL Table3
 MOVWF 16h          
                ;Put high-tone into 16h
 MOVWF 17h          
                ;Decrementable high-tone
 CALL DTMF1
 CALL Del1
 CALL Del1               
                ;100mS delay between tones
 INCF 10h,1
 GOTO Dial1
 
 
 DTMF1   MOVLW 80h            
                ;80 loops of tone
 MOVWF 11h            
                ; to produce 1/10th sec
 DTMF2   DECFSZ 17h,1         
                ;Decrement high-tone file
 GOTO DTMF3
 MOVLW 01h            
                ;To toggle GP0
 XORWF 06,1            
                ;Toggle GP0
 MOVF 16h,0             
                ;To re-load high-tone file
 MOVWF 17h             
                ;Re-load high-tone file
 DTMF3   DECFSZ 15h,1          
                ;Decrement low-tone file
 GOTO DTMF2
 MOVLW 02h              
                ;To toggle GP1
 XORWF 06,1              
                ;Toggle GP1
 MOVF 14h,0               
                ;To re-load low-tone file
 MOVWF 15h               
                ;Re-load low-tone file
 DECFSZ 
                11h,1            
                ;Decrement loops file
 GOTO DTMF2
 BSF 06,0                     
                ;Turn on output & audio off
 BCF 06,1                     
                ;Turn off output
 RETLW 00
 
 ;Hee Haw 
                produces alarm-sound
 
 Hee        CLRWDT
 MOVLW 0FFh
 MOVWF 0Ch
 Hee1      MOVLW 0C0h
 MOVWF 0Dh
 BSF 06,2
 Hee2      NOP
 DECFSZ 
                0Dh,1
 GOTO Hee2
 MOVLW 0C0h
 MOVWF 0Dh
 BCF 06,2
 Hee3      NOP
 DECFSZ 
                0Dh,1
 GOTO Hee3
 DECFSZ 
                0Ch,1
 GOTO Hee1
 
 Haw       CLRWDT
 MOVLW 0C0h
 MOVWF 0Ch
 Haw1     MOVLW 0FFh
 MOVWF 
                0Dh
 BSF 
                06,2
 Haw2    NOP
 DECFSZ 
                0Dh,1
 GOTO Haw2
 MOVLW 0FFh
 MOVWF 0Dh
 BCF 06,2
 Haw3     NOP
 DECFSZ 
                0Dh,1
 GOTO Haw3
 DECFSZ 
                0Ch,1
 GOTO Haw1
 BSF 06,2                 
                ;Keep alarm ON after Hee Haw
 BCF 06,0                 
                ;Turn on audio
 RETLW 00
 
 
 ;Main
 
 Main1     MOVLW 02
 MOVWF 1Dh           
                ;to ring 2nd number
 MOVWF 1Eh           
                ;to ring numbers second time
 BSF 06,2                 
                ;to keep circuit ON
 CALL Del2               
                ;0.7sec delay
 CALL Del2               
                ;0.7sec delay
 Main1A  CLRF 10h                
                ;Jump value for Table1
 Main2     MOVF 10h,0           
                ;Look for NOPs in Table1
 CALL Table1           
                ; so chip can be re-burnt
 XORLW 00h
 BTFSS 03,2
 GOTO Main3
 INCF 10h,1
 GOTO Main2
 Main3     CALL Dial1
 CALL Del2            
                ;Silence after dialling
 BCF 06,0              
                ;Turn on audio
 MOVLW 04h        ;Put 4 loops 
                into W
 MOVWF 1C
 Main4     CALL Del3            
                ;5 second delay
 CALL Detect1
 BTFSC 12h,0       
                ;Has tone been detected
 GOTO Main8        
                ;Shut off alarm
 DECFSZ 
                1C,1
 GOTO Main4
 CALL Hee            
                ;Hee Haw sound
 MOVLW 04h        
                ;Put 4 loops into W
 MOVWF 1C
 Main5     CALL Del3
 CALL Detect1
 BTFSC 12h,0        
                ;Has tone been detected
 GOTO Main8         
                ;Shut off alarm
 DECFSZ 
                1C,1
 GOTO Main5
 CALL Hee             
                ;Hee Haw sound
 MOVLW 04h         ;Put 
                4 loops into W
 MOVWF 1C
 Main6     CALL Del3
 CALL Detect1
 BTFSC 12h,0        
                ;Has tone been detected
 GOTO Main8        
                ;Shut off alarm
 DECFSZ 
                1C,1
 GOTO Main6
 CALL Hee            
                ;Hee Haw sound
 BCF 06,2              
                ;To hang up phone
 MOVLW 05
 MOVWF 1C
 Main7     CALL Del2            
                ;5xDel2 before ringing
 DECFSZ 
                1C,1        ; 2nd number
 GOTO Main7
 BSF 06,2               
                ;To pick up phone line
 DECFSZ 
                1Dh,1      ;File to ring 2nd number
 GOTO Main3
 DECFSZ 
                1E,1        ;Ring numbers the 
                second time
 GOTO Main1A
 Main8     BCF 06,2              
                ;To turn project off
 CLRWDT
 GOTO Main8         
                ;Micro will reset when it detects 0v
 
 END
 
 
 |  You will also need a text program such as TextPad or NotePad
 You cannot use the .asm file above as a .asm for TextPad as it has added 
        spaces. These spaces will upset MPASM when it tries to compile the .asm 
        file to produce a .hex file. If you get an error on a line (from 
        MPASM) that seems to be correct, try re-typing the line(s) as it may contain 
        unseen spaces! To download Dial-08asm file as a .zip, click 
        HERE
 You will need the: Multi 
        Chip Programmer - for burning  '508 chips
 You will also need to download the program PIP-02 to burn 
        the chips
 |