Elektrotekno.com Ana Sayfa || Kitaplar, Dergiler (E-Books, Magazines)
Quintessential PIC Microcontroller
Açıklama:
Elektrik, Elektronik, Haberleşme ve Otomasyon konularının ağırlıklı olarak konuşulduğu, tartışıldığı ve bilgi paylaşımı yapıldığı forumumuza hoşgeldiniz.
Şu an E-kütüphane (Elektrik, elektronik ve haberleşme konularında) kategorisi içerisindeki Kitaplar, Dergiler (E-Books, Magazines) forumunda bulunuyorsunuz.
Bu sayfada üyelerimizin "Quintessential PIC Microcontroller" konusundaki problem, görüş ve önerileri okuyabilir ayrıca konu hakkındaki doküman, resim, proje, devre ve programlara ücretsiz olarak ulaşabilirsiniz. Üye olduktan sonra sizler de konu hakkında sorular sorabilir ya da yorum ve paylaşım yaparak birikimlerinizi aktarabilirsiniz.
Forumdan tam olarak yararlanabilmek için üye olmayı unutmayınız!
Elektrik, Elektronik, Haberleşme ve Otomasyon konularının ağırlıklı olarak konuşulduğu, tartışıldığı ve bilgi paylaşımı yapıldığı forumumuza hoşgeldiniz.
Şu an E-kütüphane (Elektrik, elektronik ve haberleşme konularında) kategorisi içerisindeki Kitaplar, Dergiler (E-Books, Magazines) forumunda bulunuyorsunuz.
Bu sayfada üyelerimizin "Quintessential PIC Microcontroller" konusundaki problem, görüş ve önerileri okuyabilir ayrıca konu hakkındaki doküman, resim, proje, devre ve programlara ücretsiz olarak ulaşabilirsiniz. Üye olduktan sonra sizler de konu hakkında sorular sorabilir ya da yorum ve paylaşım yaparak birikimlerinizi aktarabilirsiniz.
Forumdan tam olarak yararlanabilmek için üye olmayı unutmayınız!
contents
list of figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vı
list of tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xı
list of programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xıv
part ı the fundamentals
1. digital representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. logic circuitry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3. stored program processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
part ıı the software
4. the pıc16f84 microcontroller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5. the ınstruction set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6. subroutines and modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
7. ınterrupt handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
8. assembly language .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
9. high-level language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
part ııı the outside world
10. the real world . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
11. one byte at a time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
vı contents
12. one bit at a time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
13. time is of the essence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
14. take the rough with the smooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
15. to have and to hold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
16. a case study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
appendices
a. 14-bit core ınstruction set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
b. special purpose register structure for the pıc16c74b . . . . . . . . . 477
c. c ınstruction set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
d. acronyms and abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
ındex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
list of figures
1.1 the not operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2 the and function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3 the inclusive-or operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4 the xor operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5 detecting sign overflow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1 the 74ls00 quad 2-ı/p nand package. . . . . . . . . . . . . . . . . . . . . . . 18
2.2 output structures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3 open-collector buffers driving a party line. . . . . . . . . . . . . . . . . . . 20
2.4 sharing a bus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5 the 74ls138 and ’139 msı natural decoders. . . . . . . . . . . . . . . . . 21
2.6 the 74ls688 octal equality detector. . . . . . . . . . . . . . . . . . . . . . . . . 23
2.7 addition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.8 ımplementing a programmable adder/subtractor. . . . . . . . . . . . 25
2.9 the 74ls382 alu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.10 a rom-implemented 1-bit adder. . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.11 the 2764 erasable prom. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.12 floating-gate mosfet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.13 the rs latch.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.14 using a rs latch to debounce a switch. . . . . . . . . . . . . . . . . . . . . . . 30
2.15 the d latch and flip flop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.16 the 74ls74 dual d flip flop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.17 the 74ls377 octal d flip flop array. . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.18 the 74ls373 octal d latch array. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.19 an 8-bit alu-accumulator processor. . . . . . . . . . . . . . . . . . . . . . . . 35
2.20 the sıso shift register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.21 the t flip flop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.22 a modulo-16 ripple counter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.23 generating timing waveforms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.24 the 6264 8196 × 8 ram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.1 an elementary von neumann computer. . . . . . . . . . . . . . . . . . . . . . 42
3.2 an elementary harvard architecture computer. . . . . . . . . . . . . . . 44
3.3 executing the 1st instruction whilst fetching down the 2nd. . . 45
3.4 parallel fetch and execute streams. . . . . . . . . . . . . . . . . . . . . . . . . . . 50
vııı list of figures
3.5 programmer’s model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.6 the indirect mechanism. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.7 circular shifts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.8 the process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.9 visualization of the taskprocess. . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.10 division by repetitive subtracting. . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.11 double-precision shifting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.12 a 7-bit pseudo-random number generator. . . . . . . . . . . . . . . . . . . 70
4.1 an example of a system based on a microcontroller. . . . . . . . . . 81
4.2 architecture of the pıc16f84 microcontroller . . . . . . . . . . . . . . . 85
4.3 showing how all of the pc are altered when writing to pcl. . . . 86
4.4 ınternal clocksequencing waveforms. . . . . . . . . . . . . . . . . . . . . . . . 87
4.5 the pıc16f84 status register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.6 data store memory map. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.1 general 14-bit core status register. . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5.2 the indirect mechanism. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5.3 the ith section of the compare-update sequence. . . . . . . . . . . . . 112
5.4 generating a 13-bit program-store address. . . . . . . . . . . . . . . . . . . 114
6.1 modular hardware implementing a pc. . . . . . . . . . . . . . . . . . . . . . . 138
6.2 subroutine calling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
6.3 using the hardware stackhold return addresses. . . . . . . . . . . . . 141
6.4 nested subroutines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
6.5 system view of k × 100ms delay subroutine. . . . . . . . . . . . . . . . . 145
6.6 the 7-segment display. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
6.7 system diagram for the byte multiplication subroutine. . . . . . . 150
6.8 the stackframe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
6.9 finding the square root of an integer. . . . . . . . . . . . . . . . . . . . . . . . 162
7.1 detecting and measuring an external event. . . . . . . . . . . . . . . . . . 172
7.2 responding to an interrupt request.. . . . . . . . . . . . . . . . . . . . . . . . . 175
7.3 the flag:maskpair. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
7.4 the pıc 16f84’s interrupt logic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
7.5 oven safety hardware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
7.6 echo sounding hardware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
8.1 conversion from assembly-level source to machine code. . . . . 198
8.2 absolute assembly-level code translation. . . . . . . . . . . . . . . . . . . . 202
8.3 relocatable assembly-level code translation. . . . . . . . . . . . . . . . . . 211
8.4ing three source files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
8.5 code building and testing tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
8.6 mplab window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
8.7 mplab screen shot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
list of figures ıx
9.1 conversion from high-level source code to machine code. . . . . 233
9.2 onion skin view of the steps leading to executable code. . . . . . 234
9.3 simulating our example program in mplab. . . . . . . . . . . . . . . . . . 242
9.4 the active-low die patterns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
10.1 pinout for a variety of pıc family members. . . . . . . . . . . . . . . . . . 254
10.2 typical supply current versus clocking frequency. . . . . . . . . . . . 256
10.3 equivalent output circuit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
10.4 typical oscillator configurations.. . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
10.5 configuration word for the pıc16f83/4. . . . . . . . . . . . . . . . . . . . . . 261
10.6 manually resetting the pıc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
10.7 the sequence of events leading to startup on power-up. . . . . . 264
10.8 brown-out reset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
10.9 an alternative brown-out circuit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
11.1 the mid-range pıc 16cxx series parallel portsa and b. . . . . . . 272
11.2 a simplified typical ı/o port line. . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
11.3 reading and writing to a port bit set to input or output. . . . . . 275
11.4 sinking and sourcing current. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
11.5 porta ı/o pin driver structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
11.6 ınterfacing switches to a port line. . . . . . . . . . . . . . . . . . . . . . . . . . . 280
11.7 port b’s weakpull-up option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
11.8 ınterfacing to a keypad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
11.9 the port b change feature. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
11.10 a multi-zone intruder alarm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
11.11 source current against voltage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
11.12 the stepper motor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
11.13 using port expansion to drive three 7-segment displays. . . . . . 298
11.14 scanning a 3-digit 7-segment array. . . . . . . . . . . . . . . . . . . . . . . . . . 299
11.15 low-level output voltage against sinkcurrent. . . . . . . . . . . . . . . . 304
12.1 the smart card. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
12.2 se-ri-@l interface to a 3-digit 7-segment display. . . . . . . . . . . . . . . . 307
12.3 logic functional diagram of the 74hct595 octal shift register. 309
12.4 serially interfacing to a dac0800 digital to analog converter. 310
12.5 serially interfacing to the multi-zone intruder alarm. . . . . . . . . 311
12.6 the max549a spı dual 8-bit dac. . . . . . . . . . . . . . . . . . . . . . . . . . . 314
12.7 spı waveforms for the max549a. . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
12.8 multiple max549as on the one spı circuit. . . . . . . . . . . . . . . . . . . 316
12.9 the basic se-ri-@l synchronous port. . . . . . . . . . . . . . . . . . . . . . . . . . . 317
12.10 the ssp control and status registers. . . . . . . . . . . . . . . . . . . . . . 318
12.11 ssp spı-mode master waveforms. . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
12.12 a multidrop spı communications network. . . . . . . . . . . . . . . . . . . 322
12.13 data transfer on the ı2c bus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
12.14 sharing the scl and sda bus lines. . . . . . . . . . . . . . . . . . . . . . . . . . . 326
x list of figures
12.15 a ı2c packet transmission. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
12.16 the maxım max518 ı2c dual digital to analog converter. . . . . 328
12.17 minimum timing relationships for the fast ı2c mode. . . . . . . . . 329
12.18 transmitting the string "pıc" in the asynchronous mode . . . . . 336
12.19 the pıc usart configured for asynchronous communication. 342
12.20 some signalling configurations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
12.21 communicating with a pc via an rs-232. . . . . . . . . . . . . . . . . 349
12.22 the 24xxx series of ı2c se-ri-@l eeproms. . . . . . . . . . . . . . . . . . . . . 352
12.23 eeprom read and write waveforms. . . . . . . . . . . . . . . . . . . . . . . . . 355
12.24 ınterfacing the ds1820 1-wire digital thermometer. . . . . . . . . . 356
12.25 a lcd display. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
13.1 the integral pıc watchdog timer. . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
13.2 the option register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
13.3 simplified equivalent circuit for timer 0. . . . . . . . . . . . . . . . . . . . . 365
13.4 counting cans of beans on a conveyer belt. . . . . . . . . . . . . . . . . . . 366
13.5 functional equivalent circuit for timer 1 . . . . . . . . . . . . . . . . . . . . 372
13.6 the ccp1 module set to compare mode. . . . . . . . . . . . . . . . . . . . . 375
13.7 capturing the time of an event. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
13.8 a simplified equivalent circuit for timer 2. . . . . . . . . . . . . . . . . . . 379
13.9 pulse width modulation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
13.10 timer 2 and the pwm ccp mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
13.11 an event manifesting itself as a pulse duration. . . . . . . . . . . . . . 387
14.1 analog world – digital processing. . . . . . . . . . . . . . . . . . . . . . . . . . . 391
14.2 the quantizing process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
14.3 the analog–digital process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
14.4 ıllustrating aliasing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
14.5 ınitializing the 8-4-2-1 capacitor network. . . . . . . . . . . . . . . . . . . . 398
14.6 simplified view of the a/d converter. . . . . . . . . . . . . . . . . . . . . . . . 400
14.7 the successive approximation process. . . . . . . . . . . . . . . . . . . . . . 402
14.8 the 8-bit 8-channel analog to digital conversion module. . . . . 404
14.9 configuring the analog inputs for porta and port e. . . . . . . . . . . 405
14.10 ınterrupt control for the adc module. . . . . . . . . . . . . . . . . . . . . . . 408
14.11 r-2r digital-to-analog conversion. . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
14.12 the maxim max506 quad 8-bit d/a converter. . . . . . . . . . . . . . . 418
14.13 generating a continuous sawtooth using a max506 dac. . . . . 419
14.14 buffered data acquisition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
14.15 a level-shifting resistor network. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
14.16 ecg detection strategy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
14.17 a controllable external voltage circuit. . . . . . . . . . . . . . . . . . . . . . . 429
14.18 pinning for the pıc16c71. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
15.1 the pıc16f8x data eeprom module. . . . . . . . . . . . . . . . . . . . . . . . . 433
15.2 the pıc16f8x eecon1 register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
list of figures xı
15.3 the first 32 bytes of eeprom.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
15.4 the pıc16f87x flash and data eeprom storage system. . . . . . . 440
15.5 the pıc16f87x eeprom control register 1. . . . . . . . . . . . . . . . . . . 441
15.6 view of the flash program module. . . . . . . . . . . . . . . . . . . . . . . . . . . 445
15.7 configuration word for the pıc16f87x devices. . . . . . . . . . . . . . . 445
15.8 watchdog timer period versus temperature. . . . . . . . . . . . . . . . . . 448
16.1 the annunciator hardware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
16.2 the modular software structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
16.3 the main process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
16.4 programming the pıc from mplab.. . . . . . . . . . . . . . . . . . . . . . . . . . 472
16.5 the microchip pıcstart plus programmer. . . . . . . . . . . . . . . . . . 473
list of tables
1.1 7-bit ascıı characters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 some common bit groupings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 different ways of representing the quantities decimal 0…20. . 7
3.1 our basıc computer’s instruction set. . . . . . . . . . . . . . . . . . . . . . . 53
5.1 move instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.2 arithmetic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
5.3 logic instructions.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
5.4 program counter instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
6.1 subroutine and interrupt handling instructions. . . . . . . . . . . . . . 139
6.2 the 7-segment lookup table showing byte[n] being extracted. 149
8.1 the listing file root.lst. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
8.2 the absolute 8-bit ıntel format object-code file root.hex. . . . 206
8.3 the error file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
8.4 part of microchip’s file p16f84.inc. . . . . . . . . . . . . . . . . . . . . . . . . 209
8.5 the pic16f84.lkrer command file. . . . . . . . . . . . . . . . . . . . . 212
8.6 the outputer map file rms.asm. . . . . . . . . . . . . . . . . . . . . . . . . 218
8.7 the resulting absolute object file rms.hex. . . . . . . . . . . . . . . . . . . 219
9.1 resulting assembly-level ccs compiler output aftering. . . 240
10.1 pıc16f83/4 special-purpose register file reset summary. . . . . 263
10.2 power-up reset and sleep timeouts. . . . . . . . . . . . . . . . . . . . . . . . . 265
10.3 reset conditions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
11.1 summary of mid-range pıc parallel ı/o provision. . . . . . . . . . . . 272
11.2 energization pattern for the eight field directions. . . . . . . . . . . . 294
12.1 the ssp mode bits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
14.1 quantization parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
14.2 adc clocking frequency versus device crystal frequency. . . . . 401
14.3 configuring the adc port pins in the pıc16c73/74 devices. . . 405
list of programs
3.1 clearing a blockof files the linear way. . . . . . . . . . . . . . . . . . . . . . . 56
3.2 clearing a blockof files using a repeating loop. . . . . . . . . . . . . . . 57
3.3 simple single-precision addition of two byte variables. . . . . . . . 64
3.4 a more accurate single-precision addition. . . . . . . . . . . . . . . . . . . 64
3.5 the double-precision add program. . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.6 dividing by ten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.7 multiplying by nine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.8 a 7-bit pseudo-random number generator. . . . . . . . . . . . . . . . . . . 71
4.1 ıncrementing a packed bcd byte. . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.2 adding two packed bcd numbers. . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.1 finding the maximum temperature the linear way. . . . . . . . . . . . 111
5.2 finding the maximum temperature using a loop structure. . . . 113
5.3 division by repetitive subtraction. . . . . . . . . . . . . . . . . . . . . . . . . . . 118
5.4 shifting to find the highest set bit. . . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.5 triple-precision shifting to find the number of set bits. . . . . . . 125
5.6 multiplying by three. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5.7 double-precision decrement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
5.8 bi-quinary error detection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
5.9 binary to 2-digit bcd conversion. . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.10 average daily temperature. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
5.11 multiplication by ten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
6.1 a 100ms delay subroutine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
6.2 a k × 100ms delay subroutine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
6.3 an alternative k × 100ms delay subroutine. . . . . . . . . . . . . . . . . 147
6.4 the software 7-segment decoder. . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
6.5 the byte multiplication subroutine. . . . . . . . . . . . . . . . . . . . . . . . . . 152
6.6 ımplementing a byte multiply using a stackmodel. . . . . . . . . . . 157
6.7 dividing by three . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
6.8 coding a 208 µs delay. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
6.9 a 1-second delay program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
6.10 binary to 3-digit bcd conversion. . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
6.11 coding the square root subroutine. . . . . . . . . . . . . . . . . . . . . . . . . . 163
6.12 using a software stackto pass parameters. . . . . . . . . . . . . . . . . . . 166
6.13 the software 7-segment decoder revisited. . . . . . . . . . . . . . . . . . . 166
xvı list of programs
7.1 background program for the pea canning packer. . . . . . . . . . . . . 181
7.2 event counting foreground software. . . . . . . . . . . . . . . . . . . . . . . . . 183
7.3 oven safety.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
7.4 saving and restoring the context for the pıc16c74 processor. 191
7.5 coding the real-time clockısr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
7.6 ıncrementing a packed-bcd byte with maximum value of 99.. 194
8.1 absolute assembly-level code for our square-root module. . . . 200
8.2 the main relocatable source file main.asm. . . . . . . . . . . . . . . . . . . 214
8.3 the relocatable source file sqr.asm. . . . . . . . . . . . . . . . . . . . . . . . . 215
8.4 the relocatable source file root2.asm. . . . . . . . . . . . . . . . . . . . . . . 216
9.1 a simple function coded in c.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
9.2 coding the square root function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
9.3 linearizing a k-type thermocouple. . . . . . . . . . . . . . . . . . . . . . . . . . 246
9.4 generating the root-mean square value of two variables. . . . . . 247
11.1 scanning the keypad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
11.2 noise filtered keypad scanning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
11.3 ınteracting with the intruder hardware. . . . . . . . . . . . . . . . . . . . . . 288
11.4 a digital comparator with hysteresis. . . . . . . . . . . . . . . . . . . . . . . . 292
11.5 driving a stepper motor.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
11.6 coding the keypad device driver in c. . . . . . . . . . . . . . . . . . . . . . . . 297
11.7 displaying the decimal equivalent of a binary byte. . . . . . . . . . . 301
11.8 displaying a 3-digit decimal number on a scanning readout. . 302
12.1 displaying the decimal equivalent of a binary byte. . . . . . . . . . . 308
12.2 ınput se-ri-@l byte subroutine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
12.3 ınteracting with the max549a dual-channel spı dac. . . . . . . . . 315
12.4 using the ssp for spı data input and output. . . . . . . . . . . . . . . . . . 320
12.5 ınterfacing to the max549a in c. . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
12.6 a crystal frequency-independent short delay macro. . . . . . . . . . 331
12.7 low-level ı2c subroutines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
12.8 ınteracting with the max518 dual-channel ı2c dac. . . . . . . . . . 334
12.9 ınterfacing to the max518 in c. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
12.10 a baud-rate delay macro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
12.11 asynchronous formatted input and output subroutines. . . . . . 340
12.12 the usart-based ı/o subroutines. . . . . . . . . . . . . . . . . . . . . . . . . . . 345
12.13 updating program 11.4’s trip value. . . . . . . . . . . . . . . . . . . . . . . . . . 350
12.14 reading in a byte using the ı2c protocol. . . . . . . . . . . . . . . . . . . . . 351
12.15 ıncrementing the non-volatile odometer count. . . . . . . . . . . . . . . 354
12.16 reading and writing on a 1-wire system. . . . . . . . . . . . . . . . . . . . . 358
13.1 the bean counter ınterrupt service routine. . . . . . . . . . . . . . . . . . 368
13.2 measuring the ecg waveform period to a resolution of 1ms. . 370
13.3 generating a 15 minute data logger timebase. . . . . . . . . . . . . . . . 374
13.4 capturing the instant of time an ecg r-point occurs. . . . . . . . . 378
13.5 pulse-width modulation using timer 0. . . . . . . . . . . . . . . . . . . . . . . 384
13.6 tachometer software. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
list of programs xvıı
13.7 measuring the duration of a pulse. . . . . . . . . . . . . . . . . . . . . . . . . . . 388
14.1 taking a reading from channeln. . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
14.2 ınterrupt-driven subroutine to read channel n. . . . . . . . . . . . . . . 410
14.3 the ısr for our interrupt-driven adc software. . . . . . . . . . . . . . . 411
14.4 digitizing channel 1 of a pıc16c71 device. . . . . . . . . . . . . . . . . . . 412
14.5 a digital/analog comparator with hysteresis. . . . . . . . . . . . . . . . . 414
14.6 buffered interrupt-driven data acquisition. . . . . . . . . . . . . . . . . . . 421
14.7 sleep conversion in c. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
14.8 ecg peakpick ing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
14.9 an implementation of the ecg peakpick er in c. . . . . . . . . . . . . . 427
15.1 retrieving a byte from the eeprom data module. . . . . . . . . . . . . 434
15.2 putting a byte into the eeprom data module.. . . . . . . . . . . . . . . . 436
15.3 ıncrementing the non-volatile odometer count in data eeprom. 437
15.4 reading a word from the flash program store. . . . . . . . . . . . . . . . 442
15.5 writing to flash program memory. . . . . . . . . . . . . . . . . . . . . . . . . . . 443
15.6 squaring an integer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
15.7 c-based coding for the odometer. . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
15.8 the sauna power-up reset sequence and ısr. . . . . . . . . . . . . . . . . 450
15.9 reading a new period count. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
15.10 updating the sauna eeprom. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
16.1 the timebase software. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
16.2 the data display function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
16.3 the initialization code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
16.4 the diagnostic process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
16.5 the set-time process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
16.6 the main process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
[url]http://rapidshare.de/files/30186733/quintessential_pıc_microcontroller.pdf.html[/url]
Başa dön
Quintessential PIC Microcontroller
Benzer Konular
- The PIC Microcontroller: Your Personal Introductory Course
- What's a Microcontroller ebook
- Pick'n up the Pace - Microcontroller Application Guide
- Embedded Microcontroller Interfacing for M-CORE Systems
- Advanced PIC Microcontroller Projects in C: From USB to RTOS
- 8051 microcontroller ailesi
- MSP430 Microcontroller Basics
- esogü microcontroller(pic 16f877) eski sorular
- An Introduction to Telephone Line Interfacing Using the PIC Microcontroller- The PIC Microcontroller: Your Personal Introductory Course
- What's a Microcontroller ebook
- Pick'n up the Pace - Microcontroller Application Guide
- Embedded Microcontroller Interfacing for M-CORE Systems
- Advanced PIC Microcontroller Projects in C: From USB to RTOS
- 8051 microcontroller ailesi
- MSP430 Microcontroller Basics
- The 8051 Microcontroller Architecture, Programming and Applications
- McGraw-Hill - PIC Microcontroller Project Book by John LovinSitemize üyelik ve içeriğin indirilmesi tamamen ücretsizdir. Sitemizde paylaşılan tüm dokümanlar (Tezler, makaleler, ders notları, sınav soru cevaplar, projeler) paylaşımcıların bireysel çalışmaları olup telif hakları kendilerine aittir ya da açık bir şekilde kamusal alana yerleştirilmiş dokümanların birer kopyalarıdır. Kişilerin bireysel çalışmalarını sitemizde yüklemesinde, sitemizde paylaşıma teşvik eden puanlama sisteminin de etkisi büyüktür. Bunlara rağmen hala size ait olan ve burada bulunmasına izin vermediğiniz dokümanlar varsa iletişim bölümünden yöneticilere bildirmeniz durumunda derhal silineceklerdir.