Busca todos tus archivos aqui con Google Search >>>

domingo, 25 de octubre de 2009

Microcontroladores PIC




 2 libros muy completos sobre programacion de Microcontroladores PIC ......





PICmicro MCU C®
An introduction to programming
The Microchip PIC in CCS C
By Nigel Gardner







Contents

Introduction
History
Why use C?
PC based versus PICmicro®MCU Based Program Development
Product Development
Terminology
Trying and Testing Code
C Coding Standards
Basics
1 C Fundamentals
Structure of C Programs
Components of a C Program
#pragma
main()
#include
printf Function
Variables
Constants
Comments
Functions
C Keywords
2 Variables
Data Types
Variable Declaration
Variable Assignment
Enumeration
typedef
Type Conversions
3 Functions
Functions
Function Prototypes
Using Function Arguments
Using Function to Return Values
Classic and Modern Function Declarations
4 Operators
Arithmetic
Relational
Logical
Bitwise
5
Increment and Decrement
Precedence of
5 Program Control Statements
If
If-else
?
for Loop
while Loop
do-while Loop
Nesting Program Control Statements
Break
Continue
Null
Return
6 Arrays / Strings
One Dimensional Arrays
Strings
Multidimensional Arrays
Initializing Arrays
Arrays of Strings
7 Pointers
Pointer Basics
Pointers and Arrays
Passing Pointer to Functions
8 Structures / Unions
Structure Basics
Pointers to Structures
Nested Structures
Union Basics
Pointers to Unions
9 PICmicro®MCU Specific C
Inputs and Outputs
Mixing C and Assembler
Advanced BIT Manipulation
Timers
A/D Conversion
Data Communications
I2C Communications
SPI Communications
PWM
LCD Driving
6
Interrupts
Include Libraries
Additional Information


-------------------------------------------------------------------------------------------------


Microcontroller
Programming
The Microchip PIC®






Table of Contents


Preface xv
Chapter 1 - Basic Electronics 1
1.0 The Atom 1
1.1 Isotopes and Ions 2
1.2 Static Electricity 3
1.3 Electrical Charge 4
1.3.1 Voltage 4
1.3.2 Current 4
1.3.3 Power 5
1.3.4 Ohm's Law 5
1.4 Electrical Circuits 6
1.4.1 Types of Circuits 6
1.5 Circuit Elements 8
1.5.1 Resistors 9
1.5.2 Revisiting Ohm's Law 9
1.5.3 Resistors in Series and Parallel 10
1.5.4 Capacitors 12
1.5.5 Capacitors in Series and in Parallel 13
1.5.6 Inductors 14
1.5.7 Transformers 15
1.6 Semiconductors 15
1.6.1 Integrated Circuits 16
1.6.2 Semiconductor Electronics 16
1.6.3 P-Type and N-Type Silicon 17
1.6.4 The Diode 17
Chapter 2 - Number Systems 19
2.0 Counting 19
2.0.1 The Tally System 19
2.0.2 Roman Numerals 20
2.1 The Origins of the Decimal System 20
2.1.1 Number Systems for Digital-Electronics 22
2.1.2 Positional Characteristics 22
2.1.3 Radix or Base of a Number System 23
 .2 Types of Numbers 23
2.2.1 Whole Numbers 24
2.2.2 Signed Numbers 24
2.2.3 Rational, Irrational, and Imaginary Numbers 24
2.3 Radix Representations 25
2.3.1 Decimal versus Binary Numbers 25
2.3.2 Hexadecimal and Octal 26
2.4 Number System Conversions 27
2.4.1 Binary-to-ASCII-Decimal 28
2.4.2 Binary-to-Hexadecimal Conversion 29
2.4.3 Decimal-to-Binary Conversion 29
Chapter 3 - Data Types and Data Storage 33
3.0 Electronic-Digital Machines 33
3.1 Character Representations 33
3.1.1 ASCII 34
3.1.2 EBCDIC and IBM 36
3.1.3 Unicode 36
3.2 Storage and Encoding of Integers 37
3.2.1 Signed and Unsigned Representations 37
3.2.2 Word Size 38
3.2.3 Byte Ordering 39
3.2.4 Sign-Magnitude Representation 40
3.2.5 Radix Complement Representation 41
3.3 Encoding of Fractional Numbers 44
3.3.1 Fixed-Point Representations 45
3.3.2 Floating-Point Representations 46
3.3.3 Standardized Floating-Point Representations 47
3.3.4 IEEE 754 Single Format 48
3.3.5 Encoding and Decoding Floating-Point Numbers 50
3.4 Binary-Coded Decimals (BCD) 51
3.4.1 Floating-Point BCD 52
Chapter 4 - Digital Logic, Arithmetic, and Conversions 55
4.0 Microcontroller Logic and Arithmetic 55
4.0.1 CPU Flags 55
4.0.2 Word Size 56
4.1 Logical Instructions 56
4.1.1 Logical AND 57
4.1.2 Logical OR 57
4.1.3 Logical XOR 57
4.1.4 Logical NOT 58
4.2 Microcontroller Arithmetic 58
4.2.1 Unsigned and Two’s Complement Arithmetic 58
4.2.2 Operations on Decimal Numbers 60
4.3 Bit Manipulations and Auxiliary Operations 62
4.3.1 Bit Shift and Rotate 62
4.3.2 Comparison Operations 63
4.3.3 Other Support Operations 63
vi Microcontroller Programming
4.4 Unsigned Binary Arithmetic 64
4.4.1 Multi-byte Unsigned Addition 64
4.4.2 Unsigned Multiplication 65
4.4.3 Unsigned Division 67
4.5 Signed Binary Arithmetic 67
4.5.1 Overflow Detection in Signed Arithmetic 69
4.5.2 Sign Extension Operations 70
4.5.3 Multi-byte Signed Operations 71
4.6 Data Format Conversions 72
4.6.1 BCD Digits to ASCII Decimal 72
4.6.2 Unsigned Binary to ASCII Decimal Digits 73
4.6.3 ASCII Decimal String to Unsigned Binary 73
4.6.4 Unsigned Binary to ASCII Hexadecimal Digits 75
4.6.6 Signed Numerical Conversions 76
Chapter 5 - Circuits and Logic Gates 77
5.0 Digital Circuits 77
5.1 The Diode Revisited 78
5.1.1 The Light-Emitting Diode (LED) 79
5.2 The Transistor 81
5.2.1 Bipolar Transistor 81
5.2.2 MOS Transistor 83
5.3 Logic Gates 84
5.4 Transistor-Transistor Logic 85
5.4.1 Inverter Gates 86
5.4.2 The AND Gate 87
5.4.3 The NAND Gate 87
5.4.4 The OR Gate 88
5.4.5 The NOR Gate 88
5.4.6 Positive and Negative Logic 89
5.4.7 The XOR Gate 90
5.4.8 Schmitt Trigger Inverter 91
5.5 Other TTL Logic Families 93
5.6 CMOS Logic Gates 93
Chapter 6 - Circuit Components 95
6.0 Power Supplies 95
6.1 Clocked Logic and Flip-flops 96
6.1.1 The RS Flip-flop 96
6.1.2 Clocked RS Flip-flop 98
6.1.3 The D Flip-flop 99
6.1.4 The Edge-triggered D Flip-flop 100
6.1.5 Preset and Clear Signals 101
6.1.6 D Flip-flop Waveform Action 102
6.1.7 Flip-flop Applications 103
6.2 Clocks 103
6.2.1 Clock Waveforms 104
6.2.2 The TTL Clock 105
6.2.3 The 555 Timer 106
Contents vii
6.2.4 Microcontroller Clocks 106
6.3 Frequency Dividers and Counters 107
6.3.1 Frequency Dividers 107
6.3.2 The JK Flip-flop Counter 107
6.3.3 Ripple Counters 108
6.3.4 Decoding Gates 110
6.3.5 Synchronous Counters 110
6.3.6 Counter ICs 112
6.3.7 Shift Registers 113
6.4 Multiplexers and Demultiplexers 115
6.4.1 Multiplexers 115
6.4.2 Demultiplexers 118
6.4.3 Multiplexer and Demultiplexer ICs 118
6.5 Input Devices 118
6.5.1 Switches 118
6.5.2 Switch Contact Bounce 120
6.5.3 Keypads 121
6.6 Output Devices 122
6.6.1 Seven-segment LED 122
6.6.2 Liquid Crystal Displays 124
6.6.3 LCD Technologies 125
Chapter 7 - The Microchip PIC 129
7.0 The PICMicro Microcontroller 129
7.0.1 Programming the PIC 130
PIC Programmers 131
Development Boards 131
7.0.2 Prototyping the PIC Circuit 132
7.1 PIC Architecture 134
7.1.1 Baseline PIC Family 134
PIC10 Devices 135
PIC12 Devices 135
PIC14 Devices 138
7.1.2 Mid-range PIC Family 138
PIC16 Devices 139
7.1.3 High-Performance PIC Family 139
PIC18 Devices 139
Chapter 8 - Mid-range PIC Architecture 141
8.0 Processor Architecture and Design 142
8.0.1 Harvard Architecture 142
8.0.2 RISC CPU Design 143
8.0.3 Single-word Instructions 143
8.0.4 Instruction Format 144
8.0.5 Mid-Range Device Versions 145
8.1 The Mid-range Core Features 145
8.1.1 Oscillator 145
8.1.2 System Reset 147
8.1.3 Interrupts 148
8.2 Mid-Range CPU and Instruction Set 149
viii Microcontroller Programming
8.2.1 Mid-Range Instruction Set 149
8.2.2 STATUS and OPTION Registers 151
8.3 EEPROM Data Storage 153
8.3.1 EEPROM in Mid-Range PICs 153
8.4 Data Memory Organization 154
8.4.1 The w Register 154
8.4.2 The Data Registers 154
Memory Banks 154
The SFRs 155
The GPRs 157
8.4.3 Indirect Addressing 158
8.5 Mid-range I/O and Peripheral Modules 158
8.5.1 I/O Ports 159
8.5.2 Timer Modules 160
8.5.3 Capture-and-Compare Module 160
8.5.4 Master Synchronous Serial Port (MSSP) Module 161
8.5.5 USART Module 161
8.5.6 A/D Module 161
Chapter 9 - PIC Programming: Tools and Techniques 163
9.0 Microchip’s MPLAB 163
9.0.1 Embedded Systems 164
9.1 Integrated Development Environment 165
9.1.1 Installing MPLAB 165
9.1.2 Creating the Project 167
9.1.3 Project Build Options 169
9.1.4 Building the Project 169
9.2 Simulators and Debuggers 170
9.2.1 MPLAB SIM 171
9.2.2 MPLAB Hardware Debuggers 172
9.2.3 A “Quick-and-Dirty” Debugger 174
9.3 Programmers 174
9.4 Engineering PIC Software 175
9.4.1 Using Program Comments 176
Program Header 176
Commented Banners 177
Commented Bitmaps 178
9.4.2 Defining Data Elements 179
The cblock Directive 179
9.4.3 Banking Techniques 180
The banksel Directive 180
Bank Selection Macros 180
Deprecated Banking Instructions 181
9.4.4 Processor and Configuration Controls 182
Configuration Bits 182
9.4.5 Naming Conventions 184
9.4.6 Errorlevel Directive 186
9.5 Pseudo Instructions 186
Contents ix
Chapter 10 - Programming Essentials: Input and Output 189
10.0 16F84A Programming Template 189
10.1 Introducing the 16F84A 191
10.1.1 Template Circuit for 16F84A 191
10.1.2 Power Supplies 191
Voltage Regulator 192
10.1.3 Comparisons in PIC Programming 193
The Infamous PIC Carry Flag 194
10.2 Simple Circuits and Programs 194
10.2.1 A Single LED Circuit 194
LED Flasher Program 196
10.2.2 LED/Pushbutton Circuit 199
10.2.3 Multiple LED Circuit 202
10.3 Programming the Seven-segment LED 204
10.4 A Demonstration Board 206
10.4.1 PCB Images for Demo Board 206
10.4.2 TestDemo1 Program 208
Chapter 11 - Interrupts 211
11.0 Interrupts on the 16F84 211
11.0.1 The Interrupt Control Register 211
11.0.2 The OPTION Register 212
11.1 Interrupt Sources 213
11.1.1 Port-B External Interrupt 214
11.1.2 Timer0 Interrupt 214
11.1.3 Port-B Line Change Interrupt 215
Multiple External Interrupts 217
11.1.4 EEPROM Data Write Interrupt 217
11.2 Interrupt Handlers 217
11.2.1 Context Saving Operations 218
Saving w and STATUS Registers 218
11.3 Interrupt Programming 218
11.3.1 Programming the External Interrupt 219
RB0 Interrupt Initialization 220
RB0 Interrupt Service Routine 221
11.3.2 Wakeup from SLEEP Using the RB0 Interrupt 222
The SleepDemo Program 223
11.3.3 Port-B Bits 4-7 Status Change Interrupt 224
RB4-7 Interrupt Initialization 225
RB4-7 Change Interrupt Service Routine 227
11.4 Sample Programs 229
11.4.1 The RB0Int Program 229
11.4.2 The SleepDemo Program 232
11.4.3 The RB4to7Int Program 235
Chapter 12 - Timers and Counters 241
12.0 The 16F84 Timer0 Module 241
12.0.1 Timer0 Operation 241
x Microcontroller Programming
Timer0 Interrupt 242
Timer0 Prescaler 242
12.1 Delays Using Timer0 243
12.1.1 Long Delay Loops 244
How Accurate the Delay? 245
The Black-Ammerman Method 245
12.2 Timer0 as a Counter 246
12.3 Timer0 Programming 247
12.3.1 Programming a Counter 247
A Timer/Counter Test Circuit 248
The Tmr0Counter Program 248
12.3.2 Timer0 as a Simple Delay Timer 250
12.3.3 Measured Time Lapse 252
Interrupt-driven Timer 255
12.4 The Watchdog Timer 259
12.4.1 Watchdog Timer Programming 260
12.5 Sample Programs 260
12.5.1 The Tmr0Counter program 260
12.5.2 The Timer0 Program 263
12.5.3 The LapseTimer Program 265
12.5.4 The LapseTmrInt Program 269
Chapter 13 - LCD Interfacing and Programming 275
13.0 LCD Features and Architecture 275
13.0.1 LCD Functions and Components 276
Internal Registers 276
Busy Flag 276
Address Counter 276
Display Data RAM (DDRAM) 276
Character Generator ROM (CGROM) 276
Character Generator RAM (CGRAM) 277
Timing Generation Circuit 277
Liquid Crystal Display Driver Circuit 278
Cursor/Blink Control Circuit 278
13.0.2 Connectivity and Pin-Out 278
13.1 Interfacing with the HD44780 279
13.1.1 Busy Flag or Timed Delay Options 280
13.1.2 Contrast Control 281
13.1.3 Display Backlight 281
13.1.4 Display Memory Mapping 281
13.2 HD44780 Instruction Set 283
13.2.1 Instruction Set Overview 283
Clearing the Display 283
Return home 284
Entry mode set 284
Display and Cursor ON/OFF 284
Cursor/display shift 284
Function set 285
Set CGRAM address 285
Set DDRAM address 285
Read busy flag and Address register 285
Contents xi
Write data 285
Read data 286
13.2.2 A 16F84 8-bit Data Mode Circuit 286
13.3 LCD Programming 287
13.3.1 Defining Constants and Variables 287
Using MPLAB Data Directives 289
13.3.2 LCD Initialization 290
Function Set Command 290
Display Off 291
Display and Cursor On 291
Set Entry Mode 292
Cursor and Display Shift 292
Clear Display 293
13.3.3 Auxiliary Operations 293
Time Delay Routine 293
Pulsing the E Line 295
Reading the Busy Flag 295
Bit Merging Operations 296
13.3.4 Text Data Storage and Display 298
Generating and Storing a Text String 299
Displaying the Text String 301
13.3.5 Data Compression Techniques 302
4-bit Data Transfer Mode 302
Master/Slave Systems 304
13.4 Sample Programs 306
13.4.1 LCDTest1 306
13.4.2 LCDTest2 Program 316
13.4.3 LCDTest3 Program 327
Chapter 14 - Communications 339
14.0 PIC Communications Overview 339
14.1 Serial Data Transmission 340
14.1.1 Asynchronous Serial Transmission 340
14.1.2 Synchronous Serial Transmission 342
14.1.3 PIC Serial Communications 342
14.1.4 The RS-232-C Standard 343
Essential Concepts 344
The Serial Bit Stream 344
Parity Testing 345
Connectors and Wiring 345
The Null Modem 346
The Null Modem Cable 347
14.1.5 The EIA-485 Standard 349
EIA-485 in PIC-based Systems 350
14.2 Parallel Data Transmission 350
14.2.1 PIC Parallel Slave Port (PSP) 351
14.3 PIC “Free-style” Serial Programming 351
14.3.1 PIC-to-PIC Serial Communications 352
PIC-to-PIC Serial Communications Circuits 352
PIC-to-PIC Serial Communications Programs 354
14.3.2 Program Using Shift Register ICs 360
xii Microcontroller Programming
The 74HC165 Parallel-to-Serial Shift Register 361
74HC164 Serial-to-Parallel Shift Register 364
14.4 PIC Protocol-based Serial Programming 366
14.4.1 RS-232-C Communications on the 16F84 366
The RS-232-C Transceiver IC 367
PIC to PC Communications 368
An RS-232-C TTY Board 368
A 16F84A UART Emulation 369
An LCD Scrolling Routine 371
14.4.2 RS-232-C Communications on the 16F87x 375
The 16F87x USART Module 376
The USART Baud Rate Generator 376
16F87x USART Asynchronous Transmitter 379
16F87x USART Asynchronous Receiver 380
PIC-to-PC RS-232-C Communications Circuit 381
16F877 PIC Initialization Code 381
USART Receive and Transmit Routines 384
The USART Receive Interrupt 386
14.5 Sample Programs 389
14.5.1 SerialSnd Program 389
14.5.2 SerialRcv Program 394
14.5.3 Serial6465 Program 400
14.5.4 TTYUsart Program 404
14.5.5 SerComLCD Program 420
14.5.6 SerIntLCD Program 438
Chapter 15 - Data EEPROM Programming 459
15.0 PIC Internal EEPROM Memory 460
15.0.1 EEPROM Programming on the 16F84 460
Reading EEPROM Data Memory on the 16F84 460
16F84 EEPROM Data Memory Write 461
16F84 EEPROM Demonstration Program 462
15.0.2 EEPROM Programming on the 16F87x 465
Reading EEPROM Data Memory on the 16F87x 467
Writing to EEPROM Data Memory in the 16F87x 467
GFR Access Issue in the 16F87x 469
15.0.3 16F87x EEPROM Circuit and Program 469
15.1 EEPROM Devices and Interfaces 475
15.1.1 The I2C Serial Interface 476
15.1.2 I2C Communications 476
15.1.3 EEPROM Communications Conditions 477
15.1.4 EEPROM Write Operation 478
15.1.5 EEPROM Read Operation 478
15.1.6 I2C EEPROM Devices 479
15.1.7 PIC Master Synchronous Serial Port (MSSP) 480
MSSP in Master Mode 482
15.1.8 I2C Serial EEPROM Programming on the 16F877 486
IC2 Initialization Procedure 486
I2C Write Byte Procedure 488
I2C Read Byte Procedure 490
15.2 Sample Programs 492
Contents xiii
15.2.1 EECounter Program 492
15.2.2 Ser2EEP Program 504
15.2.3 I2CEEP Program 521
Chapter 16 - Analog to Digital and Realtime Clocks 543
16.0 A/D Converters 544
16.0.1 Converter Resolution 544
16.0.2 ADC Implementation 545
16.1 A/D Integrated Circuits 546
16.1.1 ADC0331 Sample Circuit and Program 547
16.2 PIC On-Board A/D Hardware 549
16.2.1 A/D Module on the 16F87x 549
The ADCON0 Register 550
The ADCON1 Register 552
SLEEP Mode Operation 554
16.2.2 A/D Module Sample Circuit and Program 554
16.3 Realtime Clocks 558
16.3.1 The NJU6355 Realtime Clock 558
16.3.2 RTC Demonstration Circuit and Program 560
BCD Conversion Procedures 565
16.4 Sample Programs 568
16.4.1 ADF84 Program 568
16.4.2 A2DinLCD Program 580
16.4.3 RTC2LCD Program 595
Appendix A - Resistor Color Codes 613
Appendix B - Building Your Own Circuit Boards 615
Appendix C - Mid-range Instruction Set 621
Appendix D - Supplementary Programs 659
Index 795

 ---------------------------------------------------------------------------------------------------





Recuerden comentar en la parte inferior donde dice cometarios, den click..

Publicado por M. en C. Luis Arturo Benitez V en 16:13 0 comentarios Enlaces a esta entrada

Cualquier cosa o aclaración se leeran las entradas, al comentar no olviden dar click en..

Comentar como:_____________
y comenten dando click en NOMBRE/URL solo pongan su nombre y grupo y listo chavos

martes, 20 de octubre de 2009

Aprenda Fortran como si estuviera en primero




Aqui una guia rapida de como programar en fortran en 50 paginas con lo basico y las sintaxis de programacion algunos ya lo tienen en copias pero no esta de mas tenerlo en digital.




http://tinyurl.com/aprenda-fortran






Recuerden comentar en la parte inferior donde dice cometarios, den click..

Publicado por M. en C. Luis Arturo Benitez V en 16:13 0 comentarios Enlaces a esta entrada

Cualquier cosa o aclaración se leeran las entradas, al comentar no olviden dar click en..

Comentar como:_____________
y comenten dando click en NOMBRE/URL solo pongan su nombre y grupo y listo chavos

miércoles, 14 de octubre de 2009

Guia para recursamiento de computación 2do parcial





Les dejo aqui en archivo en word con los problemas a resolver del segundo parcial, adentro vienen las instrucciones, si tienen dudas comenten mas abajo...


http://tinyurl.com/CompuGuia2do





Recuerden comentar en la parte inferior donde dice cometarios, den click..

Publicado por M. en C. Luis Arturo Benitez V en 16:13 0 comentarios Enlaces a esta entrada

Cualquier cosa o aclaración se leeran las entradas, al comentar no olviden dar click en..

Comentar como:_____________
y comenten dando click en NOMBRE/URL solo pongan su nombre y grupo y listo chavos








______________________________________________________________________

viernes, 2 de octubre de 2009

Calendario escolar 2009 - 2010

Aqui les dejo el calendario escolar 2009 - 2010 para que no se confien de las fechas de examenes y entregas, recuerden que es semestre corto y la primera clase de diciembre se estaran evaluando los grupos y entregando calificaciones, no dejen todo al ultimo, sobre todo los grupos que tienen entregas de trabajos  o proyectos finales chavos, lo mas seguro es que este correo les llegue a los jefes de grupo, asi que reenvien la informacion a sus demas compañeros de equipos, de igual modo chequenlo en el  http://twitter.com/elrincondelpoli  echenle ganas y exito... pues la suerte es para los tontos, recuerdenlo.



http://www.cicimar.ipn.mx/boletin/wp-content/uploads/2009/08/cal2009-2010.jpg


Recuerden comentar en la parte inferior donde dice cometarios, den click..

Publicado por M. en C. Luis Arturo Benitez V en 16:13 0 comentarios Enlaces a esta entrada

Cualquier cosa o aclaración se leeran las entradas, al comentar no olviden dar click en..

Comentar como:_____________
y comenten dando click en NOMBRE/URL solo pongan su nombre y grupo y listo chavos

¿COMO DESCARGAR DESDE ESTE SITIO?