Vous êtes sur la page 1sur 46

1.

OVERVIEW OF THE DESIGN FLOW This section illustrates the basic procedure for generating a schematic in Capture and converting the schematic to a board design in Layout. The basic procedure is as follows: 1. Start Capture and set up a PCB project using the PC Board wizard. 2. Make a circuit schematic using OrCAD Capture. 3. Use Capture to generate a Layout netlist and save it as a .MNL fi le for Layout. 4. Start Layout and select a PCB technology template (.TCH fi le). 5. Save the Layout project as a .MAX project fi le. 6. Use Layout to import the .MNL netlist into the .MAX fi le. 7. Make a board outline. 8. Position the parts within the board outline. 9. Autoroute the board. 10. Run the postprocessor to generate fi les used to manufacture the PCB.

2. CREATING A CIRCUIT DESIGN WITH CAPTURE If you do not have a full version of OrCAD you can install the version 10.5 Demo CD included with this book or go to the OrCAD Web site and download the latest demo. If you are using an older version of Layout most of the following information in this book still applies, but some of the dialog boxes and menu items may be different. 2.1 Starting a New Project Before you make a PCB layout, you need to have a circuit to lay out. You will use Capture to make the schematic, so the fi rst step is to start the Capture application by clicking the Windows Start button on your task bar and navigate to All Programs OrCAD 10.5 Demo . Once Capture is running, you should have a blank Capture session frame and a session log. Go to the File dropdown menu and navigate to File New and click Project as shown in Fig. 2-1.
1

Figure 2-1 Starting a new project in Capture. The New Project dialog box in Fig. 2-2 will pop up. Type a name for your project, and then select the PC Board Wizard radio button. If you feel comfortable selecting your own location to save the project, you can do that, or you can use the default location for now (just remember where it is as you will need to fi nd it later on with Layout). Click OK. After you click OK, the PCB Project Wizard dialog box shown in Fig. 2-3(a) will pop up. For now circuit simulation will not be performed, so leave the Enable project simulation box unchecked (we will take a look at circuit simulation in Chap. 9). Click Next. After you click Next, the PCB Project Wizard dialog box shown in Fig. 2-3(b) will pop up. This box allows you to add specifi c libraries to your project. Scroll down until you find the Discrete.olb library, highlight it by clicking on it, and then click the Add__ button; then click Finish. This completes the project set up. You should have a Project Manager window in the left side of the Capture session frame as shown in Fig. 2-4. You may also have a Schematic window in the work space. If the schematic is not open, expand the
2

projectname.dsn directory by clicking the _ box that is to the left of the projectname.dsn icon (where projectname is the name you gave your project while using the project setup wizard). Click the _ box next to the Schematics folder, and

Figure 2-2 New Project dialog box

Figure 2-3 PCB Project Wizard dialog boxes. (a) Simulation selection. (b) Parts library selection.

then double click the fi le called Page1. The Schematic page should open. If you do not see the dots, that means your grid is turned off. The grid must be turned on to properly place and connect parts. To turn the grid on click the button. If the grid is on, the grid dots will be visible and the grid button will be gray instead of red.

Figure 2-4 Example view of a new project. 2.2 Placing Parts To add parts to your schematic, make the Schematic page active and select Place from the Part dropdown menu, or press the place part tool button , or press P on your keyboard. The Place Part dialog box shown in Fig. 2-5 pops up. In the Libraries selection box in the bottom left of the dialog box, click DISCRETE. Then in the Part List box click C (for
4

capacitor). You should see its symbol in the Preview window on the lower right. Click OK. In the Libraries window you may have libraries different from what is shown in Fig. 2-5. At the very least you should have the DISCRETE library since you had the wizard include it. If for some reason you do not see any parts or the DISCRETE library is not there, you can follow along for now to get an overview of the process, or you can fi nd and add the library to your project. To add a part library to your project select Place from the Part dropdown menu as described above. In the Place Part dialog box shown in Fig. 2-5 press the Add Library button to bring up the Browse File dialog box shown in Fig. 2-6. Find and select the Discrete.olb library and click Open. You can also fi nd a capacitor in the pspice library folder. To add it, double click the pspice folder, select the Analog.olb library, and click Open. You should now be back to the Place Part dialog box, and the library you just added should be shown in the Libraries list box. Find and select C from the Part List selection box and click OK

. Figure 2-5 Place Part dialog box.


5

After you click OK, you should immediately return to the Schematic page and have a capacitor tagging along with your mouse pointer. Left click on the Schematic page to place a part as shown in Fig. 2-7. Place a couple of the capacitors on the page. When you are finished, hit the ESC key or right click the mouse and select End Mode from the popup menu.

Figure 2-6 Add a library using the Browse File dialog box

. Figure 2-7 Placing the parts

2.3 Creating The Layout Netlist In Capture Once all of the connections are complete the next step is to create a netlist (an ASCII text fi le that describes the circuit). There are several types of netlists, but you will want to generate a Layout netlist. Begin by making the Project Manager window active (instead of the Schematic Page window) and select the .dsn icon by left clicking it once. If the Schematic page is active the Tools menu will not be available. Minimize the Schematic page if necessary to get to the Project Manager. As shown in Fig. 2-9, select Tools

Create Netlist from the Tools menu. The Create Netlist dialog box will pop up as shown in Fig. 2-10.

Figure 2-9 Create the Layout netlist.

Figure 2-10 Create Netlist dialog box. From the Create Netlist dialog box, select the Layout tab. Later, you will see how to set up file structures to organize your projects, but for now just save it to the current (default) directory and remember where the netlist fi le (with the .MNL extension) is saved. Leave the Run ECO to Layout radio button unchecked for now. You will use the ECO (engineering change order) tool in Chap. 9. Click Finish to generate the netlist. Capture will display a warning text box stating, Design Path/Yourname.dsn will be saved prior to netlisting. Click OK. Capture will then generate the netlist and report the results in the Session log. At this point you have generated a netlist fi le with a .MNL extension that Layout can use. You could close Capture now, but leave it open so that Capture and Layout can communicate with each other if necessary. This will allow you to go back and review the circuit if you need to when you are working in Layout.
9

3. DESIGNING THE PCB WITH LAYOUT 3.1 Starting Layout And Importing The Netlist Now you will use the netlist to route a board using Layout. Begin by clicking the Windows Start button on your task bar and navigate to All Programs OrCAD 10.5 Demo . Once Layout is up and running, you will be presented with a blank session frame initially. To begin working on your board you need to tell Layout what kind of board you want to use and then import the netlist fi le you generated with Capture into that board type. Begin by selecting New from the session frames File menu. An AutoECO (automatic engineering change order) dialog box will pop up as shown in Fig. 2-11. There are three pieces of information that

Figure 2-11 Assigning a PCB technology fi le.+ need to be entered into the AutoECO dialog box. You will add the fi rst two pieces of information in the TCH and the MNL text boxes, and Layout will enter a default value into the third (MAX) text box. The first step is to select a board technology template (a *.TCH fi le). Click the Browse
10

button across from the TCH text box and navigate to the Tools/Layout/Data folder (Layout should go there automatically) and select the default technology template (default.tch) as shown in Fig. 2-11. We will use some of the other technology files in Chap. 9. Click Open. The wizard will type the path and name of the technology fi le into the text box for you. Once the technology fi le is assigned, you need to select the Layout netlist (.MNL) file you generated in Capture. To do so, click the Browse button across from the MNL text box and locate the .MNL fi le you created in Capture (Fig. 2-12). You probably will not see it at first since you will likely be in the Data folder from which you selected the technology fi le. Navigate to where you saved the project. Once you fi nd your fi le, select it and click Open. The wizard will type the path and name of the netlist fi le into the text box for you.

Figure 2-12 Opening the netlist.


11

Once you have entered these fi rst two pieces of information, the wizard will fi ll in the MAX fi le information for you with a default name as shown in Fig. 2-13. The MAX fi le is Layouts project fi le that contains the information needed to build your board. You can use the default name (recommended for now) or save it with a different name. Click the Apply ECO button at the bottom of the dialog box. You do not need to make any changes to the Options settings at this point. Layout will immediately go about setting up the project environment.

Figure 2-13 Save the MAX Layout file. When setting up the project Layout checks for footprint assignments for each part in the netlist. If no footprint was assigned, or if a footprint that Layout does not know about is assigned to a part, Layout will ask you to choose a footprint with the Link Footprint to Component dialog box shown in Fig. 2-14. Most likely this will be the case since no
12

footprints were assigned to these parts in Capture (you will see how to do that in Chaps. 3 and 9). If you get the Link Footprint dialog box, click on the Link existing footprint to component button..

Figure 2-14 The Auto ECO Link Footprint to Component dialog box. Layout will initiate the Footprint Library utility shown in Fig. 2-15. Depending on how (or if) Layout has been used before, you may have libraries different from those shown in the figure. If you are using the Demo version, you should, at the very least, have the Ex_gui library; which you should select. In the Footprints box below the Libraries box, fi nd the SIP/TM/L.200/2 footprint. If you are using the full version fi nd and select the TM_AXIAL.LLB and select a footprint that has two pads. A picture of the footprint will be displayed in the Preview window on the right of the dialog box. In Chap. 8 you will see how to add other libraries and footprints and also how to make our own footprints if the one you need does not exist. For now click OK once you have selected a footprint. Layout will assign this footprint to all of the capacitors in the design by default. If you
13

added other components in addition to the capacitors, you will probably have to repeat this procedure for each type of component. Right now it is not important what the footprint is because we just want to get an overview of the overall process. Once the AutoECO utility has completed assigning the footprints, you should end up in the board layout environment shown in Fig. 2-16. This is the Design window for your board. Here you can see the component footprints as well as the silk screen and assembly details. Also visible is the board origin and the board drill symbol table. We will look at those items in greater detail later, but right now we will concentrate on making a board outline, placing the parts, and routing the traces.

Figure 2-16 Layout initial view.


14

3.2 Making A Board Outline Next, we will add a board outline. It is good practice to place the boards lower left corner at the origin (see Fig. 2-16). If you have not already done so, zoom out so that you can see the entire drill table and have it located near the bottom of the window. Next, make sure that the online Design Rule Check (DRC) box is off. If you do not see it, it is already off, but if you see a dashed (or solid) white box in the work space, the DRC box is on. To turn off the DRC box, click the button. There is another DRC button that looks like , but it is for checking the entire design for errors prior to sending the design out for fabrication. The online DRC checks the area within the box while you work. Sometimes it can get in the way of doing what you need to do while you are moving things around, so turn it off for now. To make a board outline, click on the Obstacle buttonit looks like . Move your cursor to the work area and right click with the mouse; click the New option from the pop-up menu. The cross hair cursor will be smaller now, indicating that it is poised to do something. Right click on the work area again and select the Properties option from the pop-up menu. The Edit Obstacle dialog box will pop up as shown in Fig. 2-18. Make sure that Board Outline is selected in the Obstacle Type dropdown list and that Global Layer is selected in the Obstacle Layer dropdown list. Click OK. Create a board outline similar to the one shown in Fig. 2-19. Place the cursor over the origin mark in the drill charts upper left corner (position 1). Click and release the left mouse button once. This begins the fi rst vertex of the board outline. Next move the cursor to position 2. The border will stretch from the last place you clicked to the cursor. At position 2 left click and release again. Continue in the same manner to positions 3 and 4. After you have placed the final vertex at position 4, right click to bring up a menu box and click Finish to complete the board outline. The board outline does not have to be rectangular, but for now it will help keep things simple.

15

Figure 2-18 Edit Obstacle properties box.

16

4. SUMMARY OF PCB DESIGNING The following is a summary of the process: 1. Start Capture and set up a PCB project using the wizard. 2. Design the circuit using OrCAD Capture. 3. Generate a Layout netlist using Capture and save it as a .MNL fi le. 4. Start Layout and select a PCB technology (.TCH fi le) template. 5. Save the Layout project as a .MAX fi le. 6. Import the .MNL netlist from Capture. 7. Make a board outline. 8. Position the parts. 9. Autoroute the board. 10. Postprocess the board to make the Gerber files used to manufacture the PCB.

17

5. INTRODUCTION TO MICROCONTROLLERS A microcontroller (sometimes abbreviated C, uC or MCU) is a small computer on a single integrated circuit containing a processor core, memory, and programmable input/output peripherals. Program memory in the form of NOR flash or OTP ROM is also often included on chip, as well as a typically small amount of RAM. Microcontrollers are designed for embedded applications, in contrast to the microprocessors used in personal computers or other general purpose applications. Microcontrollers are used in automatically controlled products and devices, such as automobile engine control systems, implantable medical devices, remote controls, office machines, appliances, power tools, and toys. By reducing the size and cost compared to a design that uses a separate microprocessor, memory, and input/output devices, microcontrollers make it economical to digitally control even more devices and processes. Mixed signal microcontrollers are common, integrating analog components needed to control non-digital electronic systems. Some microcontrollers may use four-bit words and operate at clock rate frequencies as low as 4 kHz, for low power consumption (milli watts or microwatts). They will generally have the ability to retain functionality while waiting for an event such as a button press or other interrupt; power consumption while sleeping (CPU clock and most peripherals off) may be just nano watts, making many of them well suited for long lasting battery applications. Other microcontrollers may serve performance-critical roles, where they may need to act more like a digital signal processor (DSP), with higher clock speeds and power consumption. Try making a list and counting how many devices with microcontrollers you use in a typical day. Here are some examples: if your clock radio goes off, and you hit the snooze button a few times in the morning, the first thing you do in your day is interact with a microcontroller. Heating up some food in the microwave oven and making a call on cell phone also involve operating microcontrollers. Thats just the beginning. Here are a few
18

more examples: turning on the television with a handheld remote, playing a handheld game, using a calculator, and checking your digital wristwatch. All those devices have microcontrollers inside them that interact with you. Microcontrollers are hidden inside a surprising number of products these days. If your microwave oven has an LED or LCD screen and a keypad, it contains a microcontroller. All modern automobiles contain at least one microcontroller, and can have as many as six or seven: The engine is controlled by a microcontroller, as are the anti-lock brakes, the cruise control and so on. Any device that has a remote control almost certainly contains a microcontroller: TVs, VCRs and high-end stereo systems all fall into this category. Nice SLR and digital cameras, cell phones, camcorders, answering machines, laser printers, telephones (the ones with caller ID, 20-number memory, etc.), pagers, and feature-laden refrigerators, dishwashers, washers and dryers (the ones with displays and keypads)... You get the idea. Basically, any product or device that interacts with its user has a microcontroller buried inside.

5.1 Microcontroller Manufacturers 1. Texas Instruments 2. ST Micro 3. Atmel 4. Dallas Semiconductor 5. Renesas Electronics Corporation 6. Hitachi Semiconductor 7. Intel 8. Microchip 9. National Semiconductor

19

A microcontroller is a specialized form of microprocessor that is designed to be self sufficient and cost-effective, where a microprocessor is typically designed to be general purpose (the kind used in a PC). Microcontrollers are frequently found in automobiles, office machines, toys, and appliances. The microcontroller is the integration of a number of useful functions into a single IC package. These functions are: The ability to execute a stored set of instructions to carry out user defined tasks. The ability to be able to access external memory chips to both read and write data from and to the memory. Basically, a microcontroller is a device which integrates a number of the components of a microprocessor system onto a single microchip. So a microcontroller combines onto the same microchip : 1.The CPU core (microprocessor) 2.Memory (both ROM and RAM) 3.Some parallel digital I/O Also, a microcontroller is part of an embedded system, which is essentially the whole circuit board. Look up "embedded system" on Wikipedia. The difference is that microcontroller incorporates features of microprocessor(CPU,ALU,Registers)along with the presence of added features like presence of RAM,ROM,I\O ports,counter etc.Here microcontroller control the operation of machine using fixed programme stored in Rom that doesn't change with lifetime.

20

6. AN INTRODUCTION TO PIC MICROCONTROLLERS The PIC microcontroller family is manufactured by Microchip Technology Inc. Currently they are one of the most popular microcontrollers, used in many commercial and industrial applications. Over 120 million devices are sold each year. The PIC microcontroller architecture is based on a modifi ed Harvard RISC (Reduced Instruction Set Computer) instruction set with dual-bus architecture, providing fast and fl exible design with an easy migration path from only 6 pins to 80 pins, and from 384 bytes to 128 kbytes of program memory. 6.1 PIC History The PIC (peripheral interface controller) was developed in the early '90s by Arizona microchip to meet a demand for a cheap, small and practical microcontroller which was both easy to use and program. The thing that made the PIC so successful was the fact that it was so small compared to the other options available on the market at the time. 6.2 FEATURES OF PIC MICROCONTROLLER 6.2.1 High-Performance RISC CPU: 1. Only 35 single-word instructions to learn 2. All single-cycle instructions except for program branches, which are two-cycle 3. Operating speed: DC 20 MHz clock input 4. DC 200 ns instruction cycle 5. Up to 8K x 14 words of Flash Program Memory, 6. Up to 368 x 8 bytes of Data Memory (RAM), 8. Pinout compatible to other 28-pin or 40/44-pin

21

6.2.2 Peripheral Features: 1. Timer0: 8-bit timer/counter with 8-bit prescaler 2. Timer1: 16-bit timer/counter with prescaler, can be incremented during Sleep via external crystal /clock 3. Timer2: 8-bit timer/counter with 8-bit period register, prescaler and postscaler 4. Two Capture, Compare, PWM modules Capture is 16-bit, max. resolution is 12.5 ns Compare is 16-bit, max. resolution is 200 ns PWM max. resolution is 10-bit 5. Synchronous Serial Port (SSP) with SPI (Master mode) and I2C (Master/Slave) 6. Brown-out detection circuitry for Brown-out Reset (BOR)

6.2.3 Analog Features: 1. 10-bit, up to 8-channel Analog-to-Digital Converter (A/D) 2. Brown-out Reset (BOR) 3. Analog Comparator module with: Two analog comparators Programmable on-chip voltage reference (VREF) module Programmable input multiplexing from device inputs and internal voltage reference Comparator outputs are externally accessible

6.2.4 Special Microcontroller Features: 1. 100,000 erase/write cycle Enhanced Flash program memory typical 2. 1,000,000 erase/write cycle Data EEPROM memory typical 3. Data EEPROM Retention > 40 years 4. Self-reprogrammable under software control
22

5. In-Circuit Serial Programming (ICSP) via two pins 6. Single-supply 5V In-Circuit Serial Programming 7. Watchdog Timer (WDT) with its own on-chip RC oscillator for reliable operation 8. Programmable code protection 9. Power saving Sleep mode 10.Electable oscillator options 11. In-Circuit Debug (ICD) via two pins

Although there are many models of PIC microcontrollers, the nice thing is that they are upward compatible with each other and a program developed for one model can very easily, in many cases with no modifications, be run on other models of the family. The basic assembler instruction set of PIC microcontrollers consists of only 33 instructions and most of the family members (except the newly developed devices) use the same instruction set. This is why a program developed for one model can run on another model with similar architecture without any changes.

The important point to remember is that there could be many models that satisfy all of these requirements. You should always try to find the model that satisfies your minimum requirements and the one that does not offer more than you may need. For example, if you require a microcontroller with only 8 I/O pins and if there are two identical microcontrollers, one with 8 and the other one with 16 I/O pins, you should select the one with 8 I/O pins. Although there are several hundred models of PIC microcontrollers, the family can be broken down into three main groups, which are: 12-bit instruction word (e.g., 12C5XX, 16C5X) (also referred to in this book as the 12 Series and the 16C5X Series) 14-bit instruction word (e.g., 16F8X, 16F87X) (also referred to in this book as the 16 Series) 16-bit instruction word (e.g., 17C7XX, 18C2XX) (also referred to in this book as the 17
23

Series and the 18 Series). All three groups share the same RISC architecture and the same instruction set, with a few additional instructions available for the 14-bit models, and many more instructions available for the 16-bit models. Instructions occupy only one word in memory, thus increasing the code efficiency and reducing the required program memory. Instructions and data are transferred on separate buses, so the overall system performance is increased.

24

7. PIC 16F877A MICROCONTROLLER The 16F877A is one of the most popular PIC microcontrollers and it's easy to see why - it comes in a 40 pin DIP pinout and it has many internal peripherals. The 40 pins make it easier to use the peripherals as the functions are spread out over the pins. This makes it easier to decide what external devices to attach without worrying too much if there enough pins to do the job. One of the main advantages is that each pin is only shared between two or three functions so its easier to decide what the pin function (other devices have up to 5 functions for a pin). 7.1 Microchip PIC16F877A Microcontroller Features 7.1.1 High-Performance RISC CPU

Lead-free; RoHS-compliant Operating speed: 20 MHz, 200 ns instruction cycle Operating voltage: 4.0-5.5V Industrial temperature range (-40 to +85C) 15 Interrupt Sources 35 single-word instructions All single-cycle instructions except for program branches (two-cycle)

7.1.2 Special Microcontroller Features

Flash Memory: 14.3 Kbytes (8192 words)

Data SRAM: 368 bytes


25

Data EEPROM: 256 bytes Self-reprogrammable under software control In-Circuit Serial Programming via two pins (5V) Watchdog Timer with on-chip RC oscillator Programmable code protection Power-saving Sleep mode Selectable oscillator options In-Circuit Debug via two pins

7.1.3 Peripheral Features


33 I/O pins; 5 I/O ports Timer0: 8-bit timer/counter with 8-bit prescaler Timer1: 16-bit timer/counter with prescaler
o

Can be incremented during Sleep via external crystal/clock

Timer2: 8-bit timer/counter with 8-bit period register, prescaler and postscaler Two Capture, Compare, PWM modules
o o o

16-bit Capture input; max resolution 12.5 ns 16-bit Compare; max resolution 200 ns 10-bit PWM

Synchronous Serial Port with two modes:


o o

SPI Master I2C Master and Slave

USART/SCI with 9-bit address detection Parallel Slave Port (PSP)


o

8 bits wide with external RD, WR and CS controls

Brown-out detection circuitry for Brown-Out Reset

26

7.1.4 Analog Features


10-bit, 8-channel A/D Converter Brown-Out Reset Analog Comparator module


o o o o

2 analog comparators Programmable on-chip voltage reference module Programmable input multiplexing from device inputs and internal VREF Comparator outputs are externally accessible

As you can see the PIC16F877A is rich in peripherals so you can use it for many different projects.

27

PIC 16F877A Register File Map

28

7.2 I/O Ports Some pins for these I/O ports are multiplexed with an alternate function for the peripheral features on the device. In general, when a peripheral is enabled, that pin may not be used as a general purpose I/O pin.

7.3 Interrupts An INTERRUPT is any service request that causes the CPU to stop its current execution and execute a stream to service the interrupt . Sources of interrupt can be :
1. 2. 3. 4.

TIMER OVERFLOW INTERRUPT A/D INTERRUPT USART INTERRUPT INTERRUPT FROM EXTERNAL SOURCE Control Registers

PICs use a series of Special Function Registers for controlling peripherals Some examples are: OPTION -external interrupt edge select ,timer 0 Prescaler INTCON -Interrupt control: interrupt enables, flags, etc 7.4 OPTION_REG Register The OPTION_REG Register is a readable and writable register, which contains various control bits to configure the TMR0 prescaler/WDT postscaler (single assignable register known also as the prescaler), the external INT interrupt, TMR0 and the weak pull-ups on PORTB.

bit 7 RBPU: PORTB Pull-up Enable bit


29

1 = PORTB pull-ups are disabled 0 = PORTB pull-ups are enabled by individual port latch values bit 6 INTEDG: Interrupt Edge Select bit 1 = Interrupt on rising edge of RB0/INT pin 0 = Interrupt on falling edge of RB0/INT pin bit 5 T0CS: TMR0 Clock Source Select bit 1 = Transition on RA4/T0CKI pin 0 = Internal instruction cycle clock (CLKO) bit 4 T0SE: TMR0 Source Edge Select bit 1 = Increment on high-to-low transition on RA4/T0CKI pin 0 = Increment on low-to-high transition on RA4/T0CKI pin bit 3 PSA: Prescaler Assignment bit 1 = Prescaler is assigned to the WDT 0 = Prescaler is assigned to the Timer0 module bit 2-0 PS2:PS0: Prescaler Rate Select bit

7.5 INTCON Register The INTCON register is a readable and writable register, which contains various enable and flag bits for the TMR0 register overflow, RB port change and external RB0/INT pin interrupts.

bit 7 GIE: Global Interrupt Enable bit 1 = Enables all unmasked interrupts 0 = Disables all interrupts bit 6 PEIE: Peripheral Interrupt Enable bit 1 = Enables all unmasked peripheral interrupts
30

0 = Disables all peripheral interrupts bit 5 TMR0IE: TMR0 Overflow Interrupt Enable bit 1 = Enables the TMR0 interrupt 0 = Disables the TMR0 interrupt bit 4 INTE: RB0/INT External Interrupt Enable bit 1 = Enables the RB0/INT external interrupt 0 = Disables the RB0/INT external interrupt bit 3 RBIE: RB Port Change Interrupt Enable bit 1 = Enables the RB port change interrupt 0 = Disables the RB port change interrupt bit 2 TMR0IF: TMR0 Overflow Interrupt Flag bit 1 = TMR0 register has overflowed (must be cleared in software) 0 = TMR0 register did not overflow bit 1 INTF: RB0/INT External Interrupt Flag bit 1 = The RB0/INT external interrupt occurred (must be cleared in software) 0 = The RB0/INT external interrupt did not occur bit 0 RBIF: RB Port Change Interrupt Flag bit 1 = At least one of the RB7:RB4 pins changed state; a mismatch condition will continue to set the bit. Reading PORTB will end the mismatch condition and allow the bit to be cleared (must be cleared in software). 0 = None of the RB7:RB4 pins have changed state

7.6 Data EEPROM & Flash Program Memory The data EEPROM and Flash program memory is readable and writable during normal operation (over the full VDD range). This memory is not directly mapped in the register

31

file space. Instead, it is indirectly addressed through the Special Function Registers. There are six SFRs used to read and write this memory: 1. EECON1 2. EECON2 3. EEDATA 4. EEDATH 5. EEADR 6. EEADRH When interfacing to the data memory block, EEDATA holds the 8-bit data for read/write and EEADR holds the address of the EEPROM location being accessed. These devices have 128 or 256 bytes of data EEPROM (depending on the device), with an address range from 00h to FFh. On devices with 128 bytes, addresses from 80h to FFh are unimplemented and will wraparound to the beginning of data EEPROM memory. When writing to unimplemented locations, the on-chip charge pump will be turned off.

7.7 Timer0 Module The Timer0 module timer/counter has the following features: 1. 8-bit timer/counter 2. Readable and writable 3. 8-bit software programmable prescaler 4. Internal or external clock select 5. Interrupt on overflow from FFh to 00h 6. Edge select for external clock

Figure 5-1 is a block diagram of the Timer0 module and the prescaler shared with the WDT. Additional information on the Timer0 module is available in the PICmicro MidRange MCU Family Reference Manual (DS33023). Timer mode is selected by clearing
32

bit T0CS (OPTION_REG<5>). In Timer mode, the Timer0 module will increment every instruction cycle (without prescaler). If the TMR0 register is written, the increment is inhibited for the following two instruction cycles. The user can work around this by writing an adjusted value to the TMR0 register. Counter mode is selected by setting bit T0CS (OPTION_REG<5>). In Counter mode, Timer0 will increment either on every rising or falling edge of pin RA4/T0CKI. The incrementing edge is determined by the Timer0 Source Edge Select bit, T0SE (OPTION_REG<4>). Clearing bit T0SE selects the rising edge. Restrictions on the external clock input are discussed in detail in Section 5.2 Using Timer0 with an External Clock. The prescaler is mutually exclusively shared between the Timer0 module and the Watchdog Timer. The prescaler is not readable or writable. Prescaler details the operation of the prescaler.

7.7.1 Timer0 Interrupt The TMR0 interrupt is generated when the TMR0 register overflows from FFh to 00h. This overflow sets bit TMR0IF (INTCON<2>). The interrupt can be masked by clearing bit TMR0IE (INTCON<5>). Bit TMR0IF must be cleared in software by the Timer0 module Interrupt Service Routine before re-enabling this interrupt. The TMR0 interrupt cannot awaken the processor from Sleep since the timer is shut-off during Sleep.

7.8 Analog-To-Digital Converter (A/D) Module The Analog-to-Digital (A/D) Converter module has five inputs for the 28-pin devices and eight for the 40/44-pin devices. The conversion of an analog input signal results in a corresponding 10-bit digital number. The A/D module has high and low-voltage reference input that is software selectable to some combination of VDD, VSS, RA2 or RA3.

33

The A/D converter has a unique feature of being able to operate while the device is in Sleep mode. To operate in Sleep, the A/D clock must be derived from the A/Ds internal RC oscillator. The A/D module has four registers. These registers are: 1. A/D Result High Register (ADRESH) 2. A/D Result Low Register (ADRESL) 3. A/D Control Register 0 (ADCON0) 4. A/D Control Register 1 (ADCON1) The ADCON0 register, shown in Register 11-1, controls the operation of the A/D module. The ADCON1 register, shown in Register 11-2, configures the functions of the port pins. The port pins can be configured as analog inputs (RA3 can also be the voltage reference) or as digital I/O.

34

8. PROGRAMS

8.1 Example Of A To D Converter #include <16f877a.h> #fuses HS #byte portd=0x08 #byte trisd=0x88 #byte trisa=0x85 #byte porta=0x05 #byte adcon0=0x1f #byte adcon1=0x9f #byte adresh=0x1e #byte adres1=0x9e unsigned int32 i; unsigned int16 digital; unsigned int digit,pos; void main() { trisd=0x00; trise=0x00; trisa=0x02; adcon0=0x89; adcon1=0xc4; lcd_command(0x38); lcd_command(0x0e); lcd_command(0x06);

35

lcd_command(0x01); lcd_command(0x02); while(1) { adcon0|=0x04; for(i=0;i<10000;i++); digital=adresh; digital=digital<<8; digital|=adres1; pos=0xc9; for(digit=0;digit<4;digit++) { lcd_command(pos--); lcd_data((digital%10)=480; digital=digital/10; } } } void lcd_command(cmd) { porte=0x00; portd=cmd; enable(); } void lcd_data(data) { porte=0x01; portd=data;
36

enable(); } void enable() { porte|=0x04; for(i=0;i<5000;i++); port&=0xfb; for(i=0;i<5000;++); }

8.2 Example Of Hall Effect Counter

#include<16f877a.h> #fuses HS #byte intcon=0xb0 #byte option=0x81 #byte portb=0x06 #byte trisb=0x86 #byte trisd=0x88 #byte portd=0x08 #byte trise=0x89 #byte porte=0x09 unsigned int32 i=0; unsigned int16 count=0, temp; void enable();
37

void lcd_command(unsigned char); void lcd_data(unsigned char); #INT_EXT int_external() { count++; intcon&=0xfd; } void main() { trisb=0x01; option=0xff; intcon=0xd0; trisd=0x00; trise=0x00; lcd_command(0x38); lcd_command(0x0e); lcd_command(0x06); lcd_command(0x01); lcd_command(0x02); while(1) { temp=count; pos=0xc9; while(1) { lcd_comand(pos--);
38

lcd_command((temp%10)+48); temp=temp/10; } } } void lcd_command(cmd) { porte=0x00; portd=cmd; enable(); } void lcd_data(data) { porte=0x01; portd=data; enable(); } void enable() { porte|=0x04; for(i=0;i<5000;i++); port&=0xfb; for(i=0;i<5000;++); }

39

8.3 Example of Blinking of LEDs

#include<16f877a.h #byte portb=0x06 #byte trisb=0x86 #fuses HS unsigned int32 i=0; void main() { trisb=0x01; while(1) { if (portb & 0x01) { portb=0xff; } else { portb=0x00; for(i=0;i<10000;i++); portb=0xff; for(i=0;i<10000;i++); } }

40

CONCLUSION

Summer Training developed a thorough understanding of PCB Designing & Embedded system ( PIC Microcontroller). It helped me to develop some new idea in electronics and in the field of microcontroller This approach is particularly suited to affective

expression. This platform will be used to explore several affective technique in the PCB Designing & Embedded system ( PIC Microcontroller). I have gathered a lot of knowledge about how to use these ideas in our field and to transfer these ideas into a real and genuine product.

41

REFERENCES

1. Kraig Mitzner(2007) Complete PCB Design Using OrCad Capture and Layout pp 17-37 2. Microchip Technology Inc. (2003) PIC16F87XA Data Sheet

42

43

44

45

46

Vous aimerez peut-être aussi