(FREE PDF Sample) Microcontrollers High Performance Systems and Programming 1st Edition Julio Sanchez Ebooks

Download as pdf or txt
Download as pdf or txt
You are on page 1of 84

Full download ebook at ebookgate.

com

Microcontrollers High Performance Systems and


Programming 1st Edition Julio Sanchez

https://ebookgate.com/product/microcontrollers-
high-performance-systems-and-programming-1st-
edition-julio-sanchez/

Download more ebook from https://ebookgate.com


More products digital (pdf, epub, mobi) instant
download maybe you interests ...

Microcontroller Programming The Microchip PIC 1st


Edition Julio Sanchez

https://ebookgate.com/product/microcontroller-programming-the-
microchip-pic-1st-edition-julio-sanchez/

Scala High Performance Programming 1st Edition Theron

https://ebookgate.com/product/scala-high-performance-
programming-1st-edition-theron/

Julia High Performance Programming Ivo Balbaert

https://ebookgate.com/product/julia-high-performance-programming-
ivo-balbaert/

Android High Performance Programming 1st Edition


Enrique Lopez Manas

https://ebookgate.com/product/android-high-performance-
programming-1st-edition-enrique-lopez-manas/
High Performance Computing Programming and Applications
Chapman Hall CRC Computational Science 1st Edition John
Levesque

https://ebookgate.com/product/high-performance-computing-
programming-and-applications-chapman-hall-crc-computational-
science-1st-edition-john-levesque/

Phase Locking in High Performance Systems From Devices


to Architectures 1st Edition Behzad Razavi

https://ebookgate.com/product/phase-locking-in-high-performance-
systems-from-devices-to-architectures-1st-edition-behzad-razavi/

Bioinformatics High Performance Parallel Computer


Architectures Embedded Multi Core Systems 1st Edition
Bertil Schmidt

https://ebookgate.com/product/bioinformatics-high-performance-
parallel-computer-architectures-embedded-multi-core-systems-1st-
edition-bertil-schmidt/

Wind Energy in Electricity Markets with High Wind


Penetration 1st Edition Julio Usaola

https://ebookgate.com/product/wind-energy-in-electricity-markets-
with-high-wind-penetration-1st-edition-julio-usaola/

High Performance and Hardware Aware Computing Rainer


Buchty

https://ebookgate.com/product/high-performance-and-hardware-
aware-computing-rainer-buchty/
Electrical Engineering Sanchez
Canton

Microcontrollers
HIGH-PERFORMANCE SYSTEMS
AND PROGRAMMING

Microcontrollers

Microcontrollers
Microcontrollers: High-Performance Systems and Programming
discusses the practical factors that make the high-performance PIC
series a better choice than their mid-range predecessors for most
systems. However, one consideration in favor of the mid-range
devices is the abundance of published application circuits and code
samples. This book fills that gap:
• Provides downloadable software, including tools, resources,
supplementary materials, and code listings
HIGH-PERFORMANCE SYSTEMS
• Includes sample circuits with their corresponding programs,
as well as tested PCB files
AND PROGRAMMING
• Focuses on the popular embedded systems with PIC18
series microcontrollers
• Contains an appendix with a C language tutorial, PIC18
instruction set, links to useful tools and software
• Supplies sample circuits that are not copyrighted or patented, so
readers can freely use them in their own applications
• Covers selected topics and examples that provide solutions to
Julio Sanchez
problems that practicing engineers may encounter and are not
readily found in the literature Maria P. Canton
Designed to be functional and hands-on, this book provides sample
circuits with their corresponding programs. It clearly depicts and
labels the circuits, in a way that is easy to follow and reuse. The
book matches sample programs to the individual circuits and
discusses general programming techniques.

K16291
Microcontrollers
HIGH-PERFORMANCE SYSTEMS
AND PROGRAMMING

K16291_FM.indd 1 9/24/13 11:25 AM


K16291_FM.indd 2 9/24/13 11:25 AM
Microcontrollers
HIGH-PERFORMANCE SYSTEMS
AND PROGRAMMING

Julio Sanchez
Eastern Florida State College

Maria P. Canton
Brevard Public Schools

Boca Raton London New York

CRC Press is an imprint of the


Taylor & Francis Group, an informa business

K16291_FM.indd 3 9/24/13 11:25 AM


CRC Press
Taylor & Francis Group
6000 Broken Sound Parkway NW, Suite 300
Boca Raton, FL 33487-2742
© 2014 by Taylor & Francis Group, LLC
CRC Press is an imprint of Taylor & Francis Group, an Informa business

No claim to original U.S. Government works


Version Date: 20130923

International Standard Book Number-13: 978-1-4665-6668-2 (eBook - PDF)

This book contains information obtained from authentic and highly regarded sources. Reasonable efforts have been
made to publish reliable data and information, but the author and publisher cannot assume responsibility for the valid-
ity of all materials or the consequences of their use. The authors and publishers have attempted to trace the copyright
holders of all material reproduced in this publication and apologize to copyright holders if permission to publish in this
form has not been obtained. If any copyright material has not been acknowledged please write and let us know so we may
rectify in any future reprint.

Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced, transmitted, or uti-
lized in any form by any electronic, mechanical, or other means, now known or hereafter invented, including photocopy-
ing, microfilming, and recording, or in any information storage or retrieval system, without written permission from the
publishers.

For permission to photocopy or use material electronically from this work, please access www.copyright.com (http://
www.copyright.com/) or contact the Copyright Clearance Center, Inc. (CCC), 222 Rosewood Drive, Danvers, MA 01923,
978-750-8400. CCC is a not-for-profit organization that provides licenses and registration for a variety of users. For
organizations that have been granted a photocopy license by the CCC, a separate system of payment has been arranged.

Trademark Notice: Product or corporate names may be trademarks or registered trademarks, and are used only for
identification and explanation without intent to infringe.
Visit the Taylor & Francis Web site at
http://www.taylorandfrancis.com
and the CRC Press Web site at
http://www.crcpress.com
Table of Contents

Preface xx

Chapter 1 Microcontrollers for Embedded Systems 1


1.1 Embedded Systems 1
1.2 Microchip PIC 1
1.2.1 PIC Architecture 2
1.2.2 Pro gramming the PIC 2
PIC Programmers 3
Development Boards 4
1.3 PIC Architec ture 4
1.3.1 Baseline PIC Family 5
PIC10 devices 6
PIC12 Devices 7
1.3.2 Mid-Range Family 9
PIC14 Devices 9
PIC16 Devices 9
1.3.3 High-Perfor mance PICs and DSPs 10
Digital Signal Processor 11
Analog-to-Digital 12

Chapter 2 PIC18 Architecture 13


2.1 PIC18 Family Over view 13
2.1.1 PIC18FXX2 Group 14
2.1.2 PIC18FXX2 Device Group Over view 15
2.1.3 PIC18F4X2 Block Diagram 16
2.1.4 Central Process ing Unit 17
Status Register 17
Program Counter Register 17
Hardware Multiplier 18
Inter rupts 18
2.1.5 Special CPU Features 19
Watch dog Timer 20
Wake-Up by In ter rupt 21
Low Voltage Detection 21
Device Configuration 21
2.2 Memory Organization 22
2.2.1 Program Memory 22

v
vi Table of Contents

2.2.2 18FXX2 Stack 23


Stack Operations 23
Fast Reg ister Stack 24
Instructions in Memory 25
2.2.3 Data Mem ory 25
2.2.4 Data EEPROM Mem ory 27
2.2.5 Indirect Addressing 28
2.3 PIC18FXX2 Oscillator 29
2.3.1 Oscil lator Options 29
Crystal Oscil lator and Ceramic Resonator 29
RC Oscillator 30
Exter nal Clock Input 31
Phase Locked Loop Os cillator Mode 31
2.4 System Reset 31
2.4.1 Re set Ac tion 32
Power-On Reset (POR) 33
Power-Up Timer (PWRT) 33
Oscillator Start-Up Timer (OST) 33
PLL Lock Time-Out 33
Brown-Out Re set (BOR) 33
Time-Out Sequence 33
2.5 I/O Ports 34
2.5.1 Port Reg isters 34
2.5.2 Parallel Slave Port 35
2.6 Inter nal Modules 35
2.6.1 PIC18FXX2 Mod ules 35

Chapter 3 Programming Tools and Software 37


3.1 Environment 37
3.1.1 Embedded Sys tems 37
3.1.2 High- and Low-Level Languages 38
3.1.3 Lan guage-Spe cific Soft ware 40
3.2 Microchip's MPLAB 40
3.2.1 MPLAB X 40
3.2.2 Development Cycle 40
3.3 An Integrated Development Environment 41
3.3.1 Install ing MPLAB 42
3.3.2 Creating the Pro ject 43
3.3.3 Setting the Project Build Options 45
3.3.4 Adding a Source File 47
3.3.5 Building the Pro ject 48
3.3.6 .hex File 48
3.3.7 Quickbuild Op tion 50
3.4 MPLAB Simulators and Debuggers 50
3.4.1 MPLAB SIM 51
Using Break points 51
Watch Window 52
Simulator Trace 52
3.4.2 MPLAB Stimulus 54
Stimulus Dialog 54
3.4.3 MPLAB Hard ware Debuggers 55
Table of Contents vii

3.4.4 An Improvised Debugger 56


3.5 Development Programmers 56
3.5.1 Micro chip PICkit 2 and PICkit 3 58
3.5.2 Micropro USB PIC Programmer 60
3.5.3 MPLAB ICD 2 and ICD 3 In-Cir cuit Debuggers/Programmers 60
3.6 Test Circuits and Development Boards 61
3.6.1 Commercial Development Boards 61
3.6.2 Cir cuit Prototype 63
3.6.3 Breadboard 64
Limitations of Breadboards 65
Breadboarding Tools and Techniques 66
3.6.4 Wire Wrapping 67
3.6.5 Perfboards 67
3.6.6 Printed Cir cuit Boards 68

Chapter 4 Assembly Language Program 71


4.1 Assembly Language Code 71
4.1.1 A Coding Template 71
Pro gram Header 73
Program Environment Directives 73
Configuration Bits 73
Er ror Mes sage Level Control 74
Variables and Constants 74
Code Area and In ter rupts 74
4.1.2 Programming Style 74
Source File Comments 75
4.2 Defining Data Elements 75
4.2.1 equ Di rec tive 76
4.2.2 cblock Direc tive 76
4.2.3 Access to Banked Mem ory 77
4.3 Naming Conventions 77
4.3.1 Reg ister and Bit Names 77
4.4 PIC 18Fxx2 Instruction Set 79
4.4.1 Byte-Oriented In structions 80
4.4.2 Bit-Oriented In structions 80
4.4.3 Lit eral Instructions 80
4.4.4 Con trol Instructions 80

Chapter 5 PIC18 Programming in C Language 85


5.1 C Compilers 85
5.1.1 C versus As sem bly Language 85
5.1.2 MPLAB C18 86
5.2 MPLAB C18 Installation 86
5.2.1 MPLAB Software Com ponents 87
5.2.2 Configuration Options 88
5.2.3 Sys tem Re quirements 89
5.2.4 Execution Flow 90
5.3 C Compiler Project 91
5.3.1 Creating the Pro ject 91
viii Table of Contents

Select Hardware Device 92


Select the Language Toolsuite 92
Create a New Pro ject 93
Add Files to the Project 95
5.3.2 Select ing the Build Di rec tory 96
5.4 A First Program in C 98
5.4.1 Source Code Anal ysis 99
main() Function 100
Local Functions 101

Chapter 6 C Language in an Embedded Environment 103


6.1 MPLAB C18 Sys tem 103
6.1.1 PIC18 Ex tended Mode 104
6.2 MPLAB C18 Librar ies 104
6.2.1 Start-Up Rou tines 104
6.2.2 Online Help for C18 and Librar ies 105
6.3 Processor-Independent Libraries 106
6.3.1 General Software Library 106
Character Classification Functions 107
Data Conversion Functions 107
Memory and String Manipulation Functions 108
Delay Functions 110
Reset Functions 111
Character Output Functions 112
6.4 Processor-Specific Librar ies 115
6.4.1 Hardware Peripheral Library Func tions 115
6.4.2 Soft ware Peripherals Library Functions 116
6.4.3 Macros for Inline Assem bly 116
6.4.4 Proces sor-Spe cific Header Files 117
6.5 Math Librar ies 118
6.5.1 ANSI-IEEE 754 Bi nary Float ing-Point Standard 118
Encodings 119
Rounding 119
6.5.2 Standard Math Li brary Func tions 120
6.5.3 Float ing-Point Math Sam ple Pro gram 120
6.6 C18 Language Specifics 122
6.6.1 C18 Integer Data Types 122
6.6.2 C18 Float ing-Point Data Types 122
6.6.3 Endianness 123
6.6.4 Storage Classes 123
6.6.5 Static Func tion Ar gument 123
6.6.6 Storage Qualifi ers 123
far and near Qual ifi ers 123
rom and ram Qualifi ers 124

Chapter 7 Programming Simple Input and Output 125


7.1 Port-Connected I/O 125
7.1.1 A Sim ple Circuit and Code 125
7.1.2 Cir cuit Schemat ics 125
7.1.3 Assem bler Sim ple I/O Pro gram 126
Table of Contents ix

7.1.4 Assem bler Source Code Analysis 129


Command Monitor ing Loop 129
Action on the LEDs 130
A Delay Routine 130
7.2 C Language Simple I/O Program 131
7.2.1 C Source Code Anal ysis 132
main() Function 133
7.3 Seven-Segment LED Programming 134
7.3.1 Com puted Goto 135
7.3.2 Assem bler Seven-Seg ment LED Program 136
Access Bank Operation 136
Port A for Digital Operation 137
DIP Switch Processing 138
Seven-Seg ment Code with Computed Goto 139
7.3.3 Assem bler Table Lookup Sam ple Pro gram 140
7.4 C Language Seven-Segment LED Programs 141
7.4.1 Code Selection by Switch Construct 142
7.4.2 Code Selection by Table Lookup 142
7.5 A Demonstration Board 143
7.6.1 Power Sup ply 145
Voltage Regulator 145

Chapter 8 Interrupts 147


8.1 Interrupt Mechanism 147
8.2 PIC18 Interrupt System 147
8.2.1 Hardware Sources 148
8.2.2 Inter rupt Con trol and Status Reg isters 148
INTCON Registers 149
PIE Registers 151
PIR Registers 152
IPR Registers 152
8.2.3 Inter rupt Prior ities 154
High-Prior ity Inter rupts 154
Low-Prior ity Inter rupts 155
An Inter rupt Inter rupting Another One 155
8.2.4 Context Saving Operations 155
Context Saving during Low-Prior ity Inter rupts 156
8.3 Port B Interrupts 157
8.3.1 Port B Ex ter nal In ter rupt 158
8.3.2 INT0 In ter rupt Demo Program 158
cblock Directive 158
Vectoring the In ter rupt 159
Initialization 160
Setup INT0 160
Pro gram Foreground 161
Inter rupt Ser vice Routine 161
Switch Debouncing 162
Inter rupt Action 162
8.3.3 Port B Line Change Inter rupt 163
Reentrant Inter rupts 164
Multiple Exter nal Inter rupts 165
x Table of Contents

8.3.4 Port B Line Change Inter rupt Demo Program 165


Set ting Up the Line Change In ter rupt 165
Inter rupt Ser vice Routine 166
8.4 Sleep Mode and Interrupts 168
8.4.1 Wake-Up from SLEEP 169
8.4.2 Sleep_Demo Pro gram 170
8.5 Interrupt Programming in C Language 171
8.5.1 Inter rupt Ac tion 171
Context in the Stack 172
Inter rupt Data 172
8.5.2 Inter rupt Pro gramming in C18 173
Sleep Mode and RB0 Inter rupt Demo Program 174
Port B Inter rupt on Change Demo Program 176

Chapter 9 Delays, Counters, and Timers 179


9.1 PIC18 Family Timers 179
9.2 De lay Timers 179
9.2.1 Power-Up Timer (PWRT) 179
9.2.2 Oscillator Start-Up Timer (OST) 180
9.2.3 Phase Locked Loop (PLL) 180
Power-Up De lay Sum mary 181
9.2.4 Watch dog Timer 181
Watch dog Timer Uses 181
9.3 Hardware Timer-Counters 182
9.4 Timer0 Module 182
9.4.1 Timer0 Ar chitec ture 184
16-bit Mode Operation 184
Timer and Counter Modes 185
Timer0 Inter rupt 185
Exter nal Clock Source 185
Timer0 Prescaler 186
9.4.2 Timer0 as a De lay Timer 186
Long Delay Loops 187
Delay Accuracy Issues 188
Black–Ammerman Method 188
Delays with 16-Bit Timer0 189
9.4.3 Coun ter and Timer Programming 189
Pro gramming a Counter 190
Timer0_as_Counter.asm Program 190
A Timer/Coun ter Test Cir cuit 191
Timer0 _Delay.asm Program 191
A Variable Time-Lapse Routine 193
Timer0_VarDelay.asm Program 193
Inter rupt-Driven Timer 196
9.5 Other Timer Modules 199
9.5.1 Timer1 Mod ule 199
Timer1 in Timer Mode 200
Timer1 in Syn chro nized Counter Mode 201
Exter nal Clock In put Tim ing in Syn chro nized Mode 201
Timer1 Read and Write Op erations 201
16-bit Mode Timer1 Write 201
Table of Contents xi

16-Bit Read-Mod ify-Write 202


Reading and Writ ing Timer1 in Two 8-bit Operations 202
9.5.2 Timer2 Mod ule 203
Timer Clock Source 204
TMR2 and PR2 Registers 204
Prescaler and Postscaler 205
Timer2 Initial ization 205
9.5.3 Timer3 Mod ule 205
Timer3 in Timer Mode 207
Timer3 in Syn chro nized Counter Mode 207
Exter nal Clock Input Timing 208
Timer3 in Asyn chron ous Counter Mode 208
Exter nal Clock In put Tim ing with Unsynchronized Clock 208
Timer3 Reading and Writ ing 208
Writ ing in 16-Bit Mode 208
16-bit Read-Modify-Write Operation 209
Reading in Asyn chron ous Counter Mode 209
Timer1 Os cillator in Timer3 210
9.6 C-18 Timer Functions 210
9.6.1 CloseTimerx Func tion 210
9.6.2 OpenTimerx Func tion 211
9.6.3 ReadTimerx Function 211
9.6.4 WriteTimerx Func tion 212
9.7 Sample Programs 212
9.7.1 Timer0_as_Coun ter pro gram 212
9.7.2 Timer0_De lay Pro gram 215
9.7.3 Timer0_VarDelay Pro gram 216
9.7.4 Timer0_VarInt Pro gram 220
9.7.5 C_Timer_Show Program 224

Chapter 10 Data EEPROM 227


10.1 EEPROM on the PIC18 Microcontrollers 227
10.1.2 On-Board Data EEPROM 227
10.2 EEPROM Programming 228
10.2.1 Read ing EEPROM Data 228
10.2.2 Writ ing EEPROM Data 230
10.3 Data EEPROM Programming in C Language 231
10.3.1 EEPROM Li brary Func tions 232
10.3.2 Sample Code 232
10.4 EEPROM Demonstration Programs 233
10.4.1 EEPROM_to_7Seg Pro gram 233
10.4.2 C_EEPROM_Demo Pro gram 237

Chapter 11 Liquid Crystal Displays 239


11.1 LCD 239
11.1.1 LCD Features and Architec ture 239
11.1.2 LCD Functions and Com ponents 240
Inter nal Registers 240
Busy Flag 240
Address Coun ter 240
xii Table of Contents

Display Data RAM (DDRAM) 240


Character Generator ROM (CGROM) 241
Character Generator RAM (CGRAM) 241
Timing Generation Circuit 241
Liquid Crystal Dis play Driver Circuit 242
Cursor/Blink Con trol Cir cuit 242
11.1.3 Con nectiv ity and Pin Out 242
11.2 Interfacing with the HD44780 243
11.2.1 Busy Flag and Timed Delay Op tions 244
11.2.2 Con trast Control 245
11.2.3 Dis play Backlight 245
11.2.4 Dis play Mem ory Map ping 245
11.3 The HD44780 Instruction Set 247
11.3.1 Instruction Set Over view 247
Clear ing the Dis play 248
Return Home 248
Entry Mode Set 248
Display and Cur sor ON/OFF 248
Cursor/Dis play Shift 248
Func tion Set 248
Set CGRAM Address 249
Set DDRAM Address 249
Read Busy Flag and Address Reg ister 249
Write data 249
Read data 250
11.3.2 18F452 8-Bit Data Mode Cir cuit 250
11.4 LCD Programming 251
11.4.1 De fin ing Constants and Variables 252
Constants 252
11.4.2 Us ing MPLAB Data Di rec tives 253
Data Def inition in Ab solute Mode 253
Relocatable Code 254
Issues with Initial ized Data 254
11.4.3 LCD Initial ization 255
Reset Function 255
Initial ization Commands 256
Function Preset Command 256
Func tion Set Command 256
Display Off 257
Display and Cur sor On 257
Set En try Mode 258
Cursor and Dis play Shift 258
Clear Display 258
11.4.4 Auxiliary Operations 259
Time De lay Routine 259
Puls ing the E Line 260
Reading the Busy Flag 261
Bit Merging Operations 262
11.4.5 Text Data Storage and Display 264
Generating and Stor ing a Text String 265
Data in Program Memory 265
Displaying the Text String 266
Sam ple Pro gram LCD_18F_MsgFlag 268
Table of Contents xiii

11.5 Data Compression Techniques 278


11.5.1 4-Bit Data Transfer Mode 279
11.5.2 Preserving Port Data 279
11.5.3 Master/Slave Sys tems 280
11.5.4 4-Bit LCD Inter face Sam ple Pro grams 281
11.6 LCD Programming in C18 291
11.6.1 Edit ing xlcd.h 292
Defining the Inter face 292
Defin ing the Data Port and Tris Register 293
11.6.2 Timing Routines 294
11.6.3 XLCD Library Func tions 295
BusyXLCD 295
OpenXLCD 296
putrXLCD 296
putsXLCD 296
ReadAddr 296
ReadDataXLCD 297
SetDDRamAddr 297
SetCGRamAddr 297
WriteCmdXLCD 298
WriteDataXLCD 298
11.7 LCD Application Development in C18 299
11.7.1 Us ing the Pro ject Wizard 299
Main Pro gram File 300

Chapter 12 Real-Time Clocks 303


12.1 Measur ing Time 303
12.1.1 Clock Signal Source 303
32 kHz Crystal Cir cuit 304
12.1.2 Programming the Timer1 Clock 305
Set ting Up Timer1 Hard ware 305
Coding the Inter rupt Handler 306
Sam ple Pro gram RTC_18F_Timer1.asm 306
12.2 Real-Time Clock ICs 309
12.2.1 NJU6355 310
12.2.2 6355 Data For mat ting 310
12.2.3 Initial ization and Clock Primitives 311
Reading and Writ ing Clock Data 311
Initialize RTC 314
12.2.4 BCD Conversions 316
12.3 RTC Demonstration Circuit and Program 318
12.3.1 RTC_F18_6355.asm Pro gram 318
Code Details 319
Code List ing 319
12.4 Real-Time Clocks in C18 336
12.4.1 Timer1-Based RTC in C18 336
xiv Table of Contents

Chapter 13 Analog Data and Devices 343


13.1 Operations on Computer Data 343
13.2 18F452 A/D Hardware 343
13.2.1 A/D Mod ule on the 18F452 344
ADCON0 Register 345
ADCON1 Register 347
SLEEP Mode Operation 348
13.2.2 A/D Mod ule Sam ple Circuit and Program 349
Initial ize A/D Module 350
A/D Conversion 351
13.2.3 A2D_Pot2LCD Program 352
13.3 A/D Conversion in C18 365
13.3.1 Conversion Primitives 365
Busy ADC 365
CloseADC 365
ConvertADC 366
OpenADC 366
ReadADC 367
SetChan ADC 367
13.3.2 C_ADConvert.c Pro gram 368
C_ADConvert.c Code List ing 368
13.4 Interfacing with Analog Devices 371
13.4.1 LM 34 Temperature Sen sor 371
13.4.2 LM135 Circuits 372
Calibrating the Sensor 372
13.4.3 C_ADC_LM35.c Pro gram 373

Chapter 14 Operating Systems 377


14.1 Time-Critical Systems 377
14.1.2 Multitasking in Real-Time 378
14.2 RTOS Scope 378
14.2.1 Tasks, Prior ities, and Deadlines 379
14.2.2 Execut ing in Real-Time 381
14.3 RTOS Programming 381
14.3.1 Foreground and Background Tasks 382
Inter rupts in Tasking 382
14.3.2 Task Loops 383
14.3.3 Clock-Tick In ter rupt 383
14.3.4 Inter rupts in Preemptive Multitasking 383
14.4 Constructing the Scheduler 384
14.4.1 Cy clic Scheduling 384
14.4.2 Round-Robin Sched uling 385
14.4.3 Task States and Prior itIzed Scheduling 385
14.5 A Small System Example 386
14.5.1 Task Structure 386
14.5.2 Semaphore 387
14.6 Sample OS Application 388
Table of Contents xv

Appendix A MPLAB C18 Language Tutorial 413


A.1 In This Appendix 413
A.1.1 About Programming 413
A.1.2 Communicating with an Alien Intelli gence 414
A.1.3 Flowcharting 415
A.1.4 C Language Rules 417
Comments 418
Pro gram Header 418
Programming Templates 419
A.2 Structure of a C Program 419
A.2.1 Sample Program C_LEDs_ON 420
Identifiers 420
Reserved Words 421
main() Function 421
A.2.2 Sam ple Pro gram C_LEDs_Flash 422
Expressions and Statements 423
Variables 423
Scope and Lifetime of a Variable 425
Constants 426
Local Functions 427
A.2.3 Coding Style 428
A.3 C Language Data 428
A.3.1 Numeric Data 429
A.3.2 Alphanumeric Data 430
A.3.3 Ar rays of Alphanumeric Data 430
A.3.4 Ar rays of Nu meric Data 431
A.4 Indirection 431
A.4.1 Storage of C Lan guage Variables 432
A.4.2 Address of Operator 432
A.4.3 Indirection Operator 433
A.4.4 Point ers to Array Variables 434
A.4.5 Pointer Arith metic 435
A.5 C Language Operators 436
A.5.1 Operator Action 436
A.5 2 Assignment Operator 437
A.5.3 Arithmetic Operators 438
Remainder Operator 439
A.5.4 Concatenation 439
A.5.5 Incre ment and Dec rement 440
A.5.6 Relational Operators 441
A.5.7 Logical Operators 442
A.5.8 Bitwise Operators 443
AND Operator 445
OR Operator 446
XOR Operator 447
NOT Operator 447
Shift-Left and Shift-Right Operators 448
A.5.9 Compound Assignment Operators 449
A.5.10 Operator Hierarchy 449
Associativity Rules 450
A.6 Directing Program Flow 451
xvi Table of Contents

A.6.1 Decisions Con structs 451


if Con struct 451
Statement Blocks 452
Nested if Construct 452
else Construct 454
Dangling else Case 454
else-if Clause 456
switch Con struct 457
Conditional Expressions 460
A.7 Loops and Program Flow Control 460
A.7.1 Loops and It erations 461
A.7.2 Elements of a Pro gram Loop 461
A.7.3 for Loop 462
Compound Statement in Loops 464
while Loop 464
do-while Loop 465
A.8 Breaking the Flow 466
A.8.1 goto Statement 466
A.8.2 break Statement 467
A.8.3 continue Statement 468
A.9 Functions and Struc tured Programming 469
A.9.1 Modular Construction 469
A.9.2 Structure of a Func tion 470
Function Prototype 470
Function Definition 471
Func tion Call 471
Return Keyword 472
Matching Arguments and Parameters 473
A.10 Visibility of Function Arguments 474
A.10.1 Using Ex ter nal Variables 474
A.10.2 Pass ing Data by Reference 475
Point ers and Func tions 475
Pass ing Ar ray Variables 476
A.10.3 Func tion-Like Macros 477
Macro Ar gument 477
A.11 Structures, Bit Fields, and Unions 478
A.11.1 Structure Declaration 478
Structure Type Dec laration 479
Structure Variable Declaration 479
A.11.2 Access ing Structure Elements 480
Initializing Structure Variables 481
Manipulat ing a Bit Field 482
Type Cast ing 484
A.11.3 Unions 484
A.11.4 Structures and Functions 485
Point ers to Structures 485
Pointer Member Op erator 485
Pass ing Structures to Func tions 486
A.11.5 Structures and Un ions in MPLAB C18 487
Table of Contents xvii

Appendix B Debugging 18F Devices 491


B.1 Art of Debugging 491
B.1.1 Preliminary Debugging 492
B.1.2 De bugging the Logic 492
B.2 Software Debugging 493
B.2.1 Debugger-Less Debugging 493
B.2.2 Code Image Debugging 493
B.2.3 MPLAB SIM Features 494
Run Mode 494
Step Mode 494
Animate 494
Mode Dif ferences 494
Build Configurations 495
Setting Breakpoints 495
B.2.4 PIC 18 Spe cial Simulations 495
Reset Conditions 495
Sleep 495
Watch dog Timer 496
Special Registers 496
B.2.5 PIC 18 Peripherals 496
B.2.6 MPLAB SIM Controls 497
B.2.7 Viewing Commands 498
Dissasembly Listing 498
File Registers 499
Hardware Stack 500
Locals 500
Program Memory 500
Special Function Registers 501
Watch 502
Watch Window in C Language 504
B.2.8 Simulator and Tracing 504
Set ting Up a Trace 505
Trace Menu 506
B.2.9 Stimulus 507
Stimulus Basics 508
Using Stimulus 509
Asynch Tab 510
Message-Based Stimulus 510
Pin/Regis ter Actions Tab 510
Advanced Pin/Regis ter Tab 512
Clock Stimulus Tab 513
Register Injection Tab 514
Register Trace Tab 515
B.3 Hardware Debugging 516
B.3.1 Microchip Hardware Programmers/Debuggers 516
MPLAB ICD2 516
MPLAB ICD3 517
MPLAB ICE 2000 517
MPLAB ICE 4000 518
MPLAB REAL ICE 519
MPLAB PICkit 2 and PICkit 3 519
B.3.2 Us ing Hardware Debuggers 519
xviii Table of Contents

Which Hardware Debugger? 520


ICSP 520
B.3.3 MPLAB ICD2 Debugger Connectiv ity 521
Connection from Mod ule to Target 522
Debug Mode Requirements 523
Debug Mode Preparation 523
Debug Ready State 524
Breadboard Debugging 525
B.4 MPLAB ICD 2 Tutorial 526
B.4.1 Cir cuit Hardware 526
B.4.2 LedFlash_Reloc Program 527
B.4.3 Relocatable Code 527
Header Files 527
Program Memory 527
Configuration Requirements 528
RAM Allocations 528
LedFlash_Reloc.asm Program 529
B.4.4 De bugging Ses sion 531

Appendix C Building Your Own Circuit Boards 533


C.1 Drawing the Circuit Diagram 533
C.2 Printing the PCB Diagram 535
C.3 Transferring the PCB Image 535
C.4 Etching the Board 536
C.5 Finishing the Board 536
C.6 Backside Image 536

Appendix D PIC18 Instruction Set 539

Appendix E Number Systems and Data Encoding 633


E.1 Decimal and Binary Systems 633
E.1.1 Binary Number System 633
E.1.2 Radix or Base of a Num ber Sys tem 634
E.2 Decimal versus Binary Numbers 634
E.2.1 Hexadecimal and Octal 635
E.3 Character Representations 636
E.3.1 ASCII 636
E.3.2 EBCDIC and IBM 638
E.3.3 Unicode 639
E.4 Encoding of Integers 639
E.4.1 Word Size 640
E.4.2 Byte Order ing 641
E.4.3 Sign-Magnitude Representation 642
E.4.4 Radix Complement Representation 643
E.4.5 Simplification of Subtraction 645
E.5 Binary Encoding of Fractional Numbers 646
E.5.1 Fixed-Point Representations 647
E.5.2 Floating-Point Representations 648
Table of Contents xix

E.5.3 Standardized Floating-Point 649


E.5.4 Binary-Coded Decimals (BCD) 650
E.5.5 Float ing-Point BCD 650

Appendix F Basic Electronics 653


F.1 Atom 654
F.2 Isotopes and Ions 654
F.3 Static Elec tric ity 655
F.4 Electrical Charge 656
F.4.1 Volt age 656
F.4.2 Cur rent 656
F.4.3 Power 657
F.4.4 Ohm's Law 657
F.5 Electrical Circuits 658
F.5.1 Types of Circuits 658
F.6 Circuit Elements 660
F.6.1 Resistors 661
F.6.2 Revisit ing Ohm's Law 661
F.6.3 Re sis tors in Series and Parallel 662
F.6.4 Capacitors 664
F.6.5 Capacitors in Series and in Parallel 665
F.6.6 Inductors 666
F.6.7 Transformers 667
F.7 Semiconductors 667
F.7.1 Integrated Circuits 668
F.7.2 Semiconduc tor Electronics 668
F.7.3 P-Type and N-Type Sil icon 669
F.7.4 Di ode 669

Index 671
Preface

Microcontrollers: High-Performance Systems and Programming can be considered


a con tinuation of and a complement to our previous two titles on the subject of
microcontroller programming. In the present book we fo cus on the line of high-per-
forance microcontrollers offered by Microchip. In addition to their enhanced fea -
tures, extended peripherals, and improved performance, there are several practical
fac tors that make the high-per for mance PIC se ries a better choice than their
mid-range pre deces sors for most sys tems:
• The pos si bil ity of pro gram ming high-per for mance microcontrollers in a
high-level language (C language).
• Source code compatibility with PIC16 microcontrollers, which facilitates code
migration from mid-range to PIC18 devices.
• Pin compatibility of some PIC18 devices with their PIC16 predecessors. This
makes possible the reuse of PIC16 controllers in circuits originally designed for
mid-range hardware. For example, the PIC18F442 and PIC18F452 in 40-pin DIP
configuration are pin-compatible with the popular PIC16F877. Similarly, the
PIC18F242 and PIC18F252, in 28-pin DIP format, are pin compatible with the
PIC16F684.
• Microchip pricing policy makes available the high-performance chips at a lower
cost than their mid-range equivalents. Recently we have priced the 18F452 at
$6.32 while the 16F877 sells from the same source at $6.72.
Expanded functionality, high-level programmability, architectural improvements
that sim plify hard ware im ple men ta tion, code and pin-lay out com pat i bil ity, and
lower cost make it easy to select a high-performance PIC over its mid-range coun-
terpart. One con sideration that is sometimes mentioned in favor of the mid-range
devices is the abundance of pub lished applica tion circuits and code samples. Our
book at tempts to cor rect this. Although it should also be mentioned that some
PIC16 processors with small footprints have no PIC18 equiv alent, which explains
why some mid-range devices continue to hold a share of the microcontroller mar-
ketplace.

Like our preced ing titles in this field, the book is intended as a ref erence and re -
source for en gineers, scientists, and electronics enthusiasts. The book focuses on
the needs of the working professional in the fields of electrical, electronic, com-

xxi
xxii Preface

puter, and software en gineering. In developing the material for this book, we have
adopted the following rules:
1. The use of standard or off-the-shelf components such as input/output devices, in-
tegrated circuits, motors, and programmable microcontrollers, which readers
can easily duplicate in their own circuits.
2. The use of inexpensive or freely available development tools for the design and
prototyping of embedded systems, such as electronic design programs, program-
ming languages and environments, and software utilities for creating printed cir-
cuit boards.
3. Our sample circuits and programs are not copyrighted or patented so that readers
can freely use them in their own applications.
Our book is designed to be func tional and hands-on. The resources furnished to
the reader include sample circuits with their corresponding programs. The circuits
are depicted and labeled clearly, in a way that is easy to follow and reuse. Each cir-
cuit includes a parts list of the resources and components required for its fabrica -
tion. For the most important circuits, we also provide tested PCB files. The sample
programs are matched to the individual circuits but general programming tech-
niques are also discussed in the text. There are appendices with useful information
and the book's online software contains a listing of all the sample programs devel-
oped in the text.

Julio Sanchez

Maria P. Canton
Chapter 1

Microcontrollers for Embedded Systems

1.1 Embedded Systems


An embedded system is a computer with specific control functions. It can be part of a
larger computer system or a stand-alone device. Most embedded systems must op er-
ate within real-time constraints. Embedded systems contain programmable proces-
sors that are either microcontrollers or dig ital sig nal pro cessors (DSPs). The
embedded system is sometimes a general-purpose device, but more often it is used in
specialized applications such as washing machines, telephones, microwave ovens,
automobiles, and many different types of weapons and military hard ware.

A microcontroller or DSP usually includes a cen tral processor, input and out put
ports, memory for program and data stor age, an in ternal clock, and one or more pe -
ripheral devices such as timers, counters, analog-to-digital converters, serial com-
munica tion facilities, and watch dog circuits. More than two dozen companies in the
United States and abroad manufac ture and mar ket microcontrollers. Mostly they
range from 8- to 32-bit devices. Those at the low end are intended for very simple
circuits and provide limited functions and program space, while the ones at the high
end have many of the fea tures associated with microprocessors. The most popular
microcontrollers include several from Intel (such as the 8051), from Zilog (deriva-
tives of their famous Z-80 microprocessor) from Motorola (such as the 68HC05),
from Atmel (the AVR), the Parallax (the BASIC Stamp), and many from Microchip.
Some of the high-end Microchip microcontrollers and DSPs are the topic of this
book.

1.2 Microchip PIC


The names PIC and PICmicro are trade marks of Microchip Tech nology. Microchip
prefers the latter designation because PIC is a registered trademark in some European
countries. It is usually assumed that PIC stands for Peripheral Interface Controller, al-
though the original acronym was Programmable Interface Controller. More recently,
Microchip has stated that PIC stands for Programmable Intelligent Computer, a much
nicer, albeit not historically true version of the acronym.

1
2 Chapter 1

The original PIC was built to complement a Gen eral Instruments 16-bit CPU des-
ignated the CP-1600. The first 8-bit PIC was developed in 1975 to improve the per-
formance of the CP-1600 by offloading I/O tasks from the CPU. In 1985, General
Instrument spun off its microelectronics division. At that time, the PIC was re-de-
signed with inter nal EPROM to produce a programmable controller. Today, hun-
dreds of ver sions and vari a tions of PIC microcontrollers are avail able from
Microchip. Typical on-board peripherals include input and output ports, serial com-
munication modules, UARTs, and motor control devices. Program memory ranges
from 256 words to 64k words and more. The word size varies from 12 to 14 or 16
bits, depending on the specific PIC family.

1.2.1 PIC Architecture


PIC microcontrollers contain an instructions set that var ies in length from 35 in struc-
tions for the low-end devices to more than 70 for the high end. The ac cumulator, which
is known as the work register in PIC documentation, is part of many instructions be-
cause the low- and mid-range PICs contain no other internal registers accessible to the
programmer. The PICs are programmable in their native Assembly Language. C lan-
guage and BASIC compilers have also been developed. Open-source Pascal, JAL, and
Forth compilers are also available, although not very popular.

It is often mentioned that one of the reasons for the success of the PIC is the sup-
port provided by Microchip. This support includes development software, such as a
professional-quality development environment called MPLAB, which can be down-
loaded free from the company's website (www.microchip.com). The MPLAB pack-
age includes an assembler, a linker, a debugger, and a simulator. Microchip also sells
an in-circuit debugger called MPLAB ICD 2. Other development products intended
for the professional market are also available from Microchip.

In addition to the de velopment software, the Microchip website contains a multi-


tude of free sup port documents, including data sheets, ap plica tion notes, and sam-
ple code. Furthermore, the PIC microcontrollers have gained the support of many
hobbyists, enthusiasts, and entrepreneurs who develop code and support products
and publish their results on the Internet. This community of PIC users is a treasure
trove of information and know-how easily accessible to the be ginner and useful
even to the professional. One such Internet re source is an open-source collection of
PIC tools named GPUTILS, which is distributed under the GNU General Public Li-
cense. GPUTILS includes an assembler and a linker. The software works on Linux,
Mac OS, OS/2, and Windows. Another product, called GPSIM™, is an open source
simulator featuring PIC hardware modules.

1.2.2 Programming the PIC


Stand-alone programming a PIC microcontroller requires the following tools and
components:
• An Assembler or high-level language compiler. The software package usually in-
cludes a debugger, simulator, and other support programs.
• A computer (usually a PC) on which to run the development software.
Microcontrollers for Embedded Systems 3

• A hardware device called a programmer that connects to the computer through


the serial, parallel, or USB line. The PIC is inserted in the programmer and “blown”
by downloading the executable code generated by the development system. The
hardware programmer usually includes the support software.
• A cable or connector for connecting the programmer to the computer.
• A PIC microcontroller.
Alternatively, some PIC microcontrollers can be programmed while installed in
their applica tions boards. Although this option can be very use ful as a production
and distribution tool, for reasons of space it is not discussed in this book.
PIC Programmers
The development system (assembler or compiler) and the programmer driver are the
software components. The computer, programmer, and con nec tors are the hard ware
elements. Figure 6.1 shows a commercial programmer that connects to the USB port
of a PC. The one in the illustration is made by MicroPro.

Figure 1.1 USB PIC programmer made by MicroPro.

Many other programmers are available on the market. Microchip offers several
high-end models with in-circuit serial programming (ICSP) and low-voltage pro -
gramming (LVP) capabilities. These devices allow the PIC to be programmed in the
target circuit. Some PICs can write to their own program memory. This makes possi-
ble the use of so-called bootloaders, which are small resident programs that allow
loading user software over the RS-232 or USB lines. Programmer/debugger combi-
nations are also offered by Microchip and other vendors.
4 Chapter 1

Development Boards
A development board is a demonstration circuit that usually contains an array of con -
nected and connectable com ponents. Their main purpose is as a learning and experi-
ment tool. Like programmers, PIC development boards come in a wide range of prices
and levels of complexity. Most boards target a specific PIC microcontroller or a PIC
family of related devices. Lacking a development board, the other op tion is to build
the circuits oneself, a time-consuming but valuable experience. Figure 1.2 shows the
LAB-X1 development board for the 16F87x PIC family.

Figure 1.2 LAB-X1 development board.

The LAX-X1 board, as well as sev eral other mod els, are prod ucts of
microEngineering Labs, Inc. Development boards from Microchip and other ven -
dors are also available.

1.3 PIC Architecture


PIC microcontrollers are roughly classified by Microchip into three groups: baseline,
mid-range, and high-performance. Figure 1.3 shows the com ponents of each PIC fam -
ily at the time of this writing.
Microcontrollers for Embedded Systems 5

Microchip PIC and dsPIC Families


MPLAB DEVELOPMENT ENVIRONMENT
Baseline family
Mid-range family
High-performance family

PIC10 PIC12 PIC16 PIC18 PIC24F PIC24H dsPIC30 dsPIC32 PIC32


8-bit 16-bit 32-bit
Assembly Language MPLAB C Compiler programmable
programmable

Figure 1.3 Microchip PIC and dsPIC families.

Within each of the groups the PIC are classified based on the first two digits of
the PIC's family type. However, the sub-classification is not very strict, as there is
some overlap. In fact, we find PICs with 16X designations that belong to the base -
line family and others that be long to the mid-range group. In the fol lowing sub-sec-
tions we describe the basic charac teristics of the var ious sub-groups of the three
major PIC families with 8-bit architectures.Table 1.1 shows the principal hardware
characteristics of each of the four 8-bit PIC families
Table 1.1
8-bit PIC Architec tures Compar ison Chart
BASELINE MID-RANGE ENHANCED PIC18

Pin Count 6-40 8-64 8-64 18-100


In ter rupts No Sin gle in ter rupt Sin gle in ter rupt Mul ti ple
Con text saved In ter rupts
Con text saved
Per for mance 5 MIPS 5 MIPS 8 MIPS Up to 16 MIPS
In struc tions 33, 12-bit 35, 14-bit 49, 14-bit 83, 16-bit
Pro gram Mem ory Up to 3 KB Up to 14 KB Up to 28 KB Up to 128 KB
Data Mem ory 138 Bytes 368 Bytes 1,5 KB 4 KB
Hard ware Stack 2 level 8 level 16 level 32 level
To tal Num ber
of Devices 16 58 29 193
Fam i lies PIC10 PIC12 PIC12FXXX PIC18
PIC12 PIC16 PIC16F1XX
PIC14
PIC16

1.3.1 Baseline PIC Family


This group includes members of the PIC10, PIC12, PIC14, and PIC16 families. The de-
vices in the baseline group have 12-bit program words and are supplied in 6- to 28-pin
packages. The microcontrollers in the baseline group are described as being suited for
6 Chapter 1

battery-operated applications because they have low power requirements. The typi-
cal member of the base line group has a low pin count, flash program memory, and low
power requirements. The following types are in the Baseline group:
• PIC10 devices
• PIC12 devices
• PIC14 devices
• Some PIC16 devices
We present a short summary of the func tionality and hardware types of the base-
line PICs in the sec tions that follow, although these de vices are not cov ered in this
book.

PIC10 devices
The PIC10 devices are low-cost, 8-bit, flash-based CMOS microcontrollers. They use
33 single-word, single-cycle instructions (except for program branches, which take
two cycles. The instructions are 12-bits wide. The PIC10 devices feature power-on re-
set, an internal oscillator mode which saves hav ing to use ports for an external oscilla-
tor. They have a power-saving SLEEP mode, A Watch dog Timer, and optional code
protection.

The recommended applications of the PIC10 family range from personal care ap-
pliances and security systems to low-power remote transmitters and receivers. The
PICs of this family have a small footprint and are manufac tured in formats suitable
for both through hole or surface mount technologies. Table 1.2 lists the charac teris-
tics of the PIC10F devices.
Table 1.2
PIC10F Devices
10F200 10F202 10F204 10F206

Clock:
Max i mum Fre quency
of Op era tion (MHz) 4 4 4 4
Mem ory:
Flash Program
Mem ory 256 512 256 512
Data Mem ory (bytes) 16 24 16 24
Pe riph er als:
Timer Mod ule(s) TMR0 TMR0 TMR0 TMR0
Wake-up from Sleep Yes Yes Yes Yes
Com para tors 0 0 1 1
Fea tures:
I/O Pins 3 3 3 3
In put Only Pins 1 1 1 1
In ter nal Pull-ups es Yes Yes Yes
In-Cir cuit Se rial
Pro gram ming Yes Yes Yes Yes
In struc tions 33 33 33 33
Pack ages: --------------------------------- 6-pin SOT-23 -------------------------------
----------------------------------- 8-pin PDIP --------------------------------
Microcontrollers for Embedded Systems 7

Two other PICs of this series are the 10F220 and the 10F222. These versions in-
clude four I/O pins and two analog-to-digital converter channels. Program memory
is 256 words on the 10F220 and 512 in the 10F222. Data memory is 16 bytes on the
F220 and 23 in the F222.

PIC12 Devices
The PIC12C5XX fam ily are 8-bit, fully static, EEPROM/EPROM/ROM-based CMOS
microcontrollers. The devices use RISC architecture and have 33 single-word, sin-
gle-cycle instructions (except for program branches that take two cycles). Like the
PIC10 family, the PIC12C5XX chips have power-on reset , device reset, and an internal
timer. Four oscillator options can be selected, including a port-saving internal oscilla-
tor and a low-power oscillator. These devices can also operate in SLEEP mode and
have watchdog timer and code pro tec tion features.

The PIC12C5XX devices are recommended for applications ranging from per-
sonal care appliances, security systems, and low-power remote transmitters and re-
ceivers. The internal EEPROM memory makes possible the storage of user-defined
codes and passwords as well as appliance setting and receiver frequencies. The var-
ious packages allow through-hole or surface mount ing tech nologies. Table 1.3 lists
the characteristics of some selected members of this PIC family.
Table 1.3
PIC 12CXXX and 12CEXXX Devices

12C508(A) 12C518 12CE519 12C671 12CE674


12C509A 12C672
12CR509A 12C673
Clock:
Max i mum
Fre quency
of Op era tion
(MHz) 4 4 4 10 10
Mem ory:
EPROM
Pro gram
Mem ory
(bytes) 25/41/41 25 41 128 128
Pe riph er als:
EEPROM
Data Mem ory
(bytes) — 16 16 0/0/16 16
Timer
Mod ule(s) TMR0 TMR0 TMR0 TMR0 TMR0
A/D Converter
(8-bit)
Chan nels — — — 4 4
Fea tures:
Interrupt
Sources — — — 4 4
I/O Pins 5 5 5 5 5
Input Pins 1 1 1 1 1
(continues)
8 Chapter 1

Table 1.3
PIC 12CXXX and 12CEXXX Devices (continued)

12C508(A) 12C518 12CE519 12C671 12CE674


12C509A 12C672
12CR509A 12C673
Inter nal
Pull-ups Yes/Yes/No Yes Yes Yes Yes
In-Circuit
Serial
Programming Yes/No Yes Yes Yes Yes
Number of
Instructions 33 33 33 35 35
Packages 8-pin DIP 8-pin DIP 8-pin DIP 8-pin DIP 8-pin DIP
SOIC JW,SOIC JW. SOIC SOIC JW

Two other members of the PIC12 family are the 12F510 and the 16F506. In most
respects these devices are similar to the ones previously described, except that the
12F510 and 16F506 both have flash program memory. Table 1.4 lists the most impor-
tant features of these two PICs.
Table 1.4
PIC12F510 and 12F675

12F629 12F675
Clock:
Maximum Frequency of Operation (MHz) 20 20
Memory:
Flash Program Memory 1024 1024
Data Memory (SRAM bytes) 64 64
Peripherals:
Timers 8/16 bits 1/1 1/1
Wake-up from Sleep on Pin Change Yes Yes
Features:
I/O Pins 6 6
Analog comparator module Yes Yes
Analog-to-digital converter No 10-bit
In-Circuit Serial Programming Yes Yes
Enhanced Timer1 module Yes Yes
Interrupt capability Yes Yes
Number of Instructions 35 35
Relative addressing Yes Yes
Packages 8-pin PDIP, 8-pin PDIP
SOIC, SOIC,
DFN-S DFN-S

Two other members of the PIC12F are the 12F629 and 12F675. The only differ-
ence between these two devices is that the 12F675 has a 10-bit analog-to-digital con-
verter while the 629 has not A/D converter. Table 1.5 lists some important features
of both PICs.
Microcontrollers for Embedded Systems 9

Table 1.5
PIC12F629 and 12F675
12F629 12F675
Clock:
Maximum Frequency of Operation (MHz) 20 20

Memory:
Flash Program Memory 1024 1024
Data Mem ory (SRAM bytes) 64 64

Peripherals:
Tim ers 8/16 bits 1/1 1/1
Wake-up from Sleep on Pin Change Yes Yes

Features:
I/O pins 6 6
Analog comparator module Yes Yes
Analog-to-digital converter No 10-bit
In-cir cuit serial programming Yes Yes
Enhanced Timer1 mod ule Yes Yes
Inter rupt capability Yes Yes
Number of instructions 35 35
Relative addressing Yes Yes
Packages 8-pin PDIP 8-pin PDIP
SOIC SOIC
DFN-S DFN-S

Several members of the PIC12 family, 12F635, 12F636, 12F639, and 12F683, are
equipped with special power-management features (called nanowatt technology by
Microchip). These devices were especially designed for systems that require ex-
tended battery life.

PIC14 Devices
The single member of this family is the PIC14000, which is built with CMOS tech nol-
ogy. This makes the PIUC14000 fully static and gives it industrial temperature range.
The 14000 is recommended for battery chargers, power supply controllers, power
management system controllers, HVAC controllers, and for sensing and data acquisi-
tion applications.1.3.2

1.3.3 Mid-range PIC Family


The mid-range PICs includes members of the PIC12 and PIC16 groups as well as the
PIC 18 group. According to Microchip the mid-range PICs all have 14-bit program
words with either flash or OTP program memory. Those with flash program memory
also have EEPROM data memory and support interrupts. Some members of the
mid-range group have USB, I2C, LCD, USART, and A/D converters. Implementations
range form 8 to 64 pins.

PIC16 Devices
This is by far the largest mid–range PIC group. Currently over 80 versions of the PIC16
are listed in production by Microchip. Although we do not cover the mid-range devices
10 Chapter 1

in this book, we have selected a few of its most prominent members of the PIC16 fam-
ily to list their most important fea tures. These are found in Table 1.6.
Table 1.6
PIC16 Devices
16C432 16C58 16C770 16F54 16F84A 16F946
Clock:

Maximum Frequency MHz 20 40 20 20 20 20

Memory:
Program memory type OTP OTP OTP Flash Flash Flash
K-bytes 3.5 3 3.5 0.75 1.75 14
K-words 2 2 2 0.5 1 8
Data EEPROM 0 0 0 0 64 256

Peripherals:
I/O channels 12 12 16 12 13 53
ADC channels 0 0 6 0 0 8
Comparators 0 0 0 0 0 2
Timers 1/8-bit 1/8-bit 2/8-bit 1/8-bit 1/8-bit 2/8-bit
1/16-bit 1/16-bit
Watchdog timer Yes Yes Yes Yes Yes Yes

Features:
ICSP Yes No Yes No Yes Yes
ICD No No No No 0 1
Pin count 20 18 20 18 18 64
Communications - - MPC/SPI - - AUSART
Packages 20/CERDIP, 18/CERDIP 20/CERDIP 18/PDIP 18/PDIp 64/TQFP
20/SSOP 18/PDIP 20/PDIP 18/SOIC 18/SOIC
208mil 18/SOIC 20/SOIC 300mil 300mil
300mil 300mil

Microchip documentation refers to an enhanced mid-range family composed of


PIC12FXXX and PIC16F1XX devices. These devices maintain compatibility with the
previous members of the mid-range family while providing additional performance.
Their most important new features include multiple interrupts, fourteen additional
instructions, up to 28 KB program memory, and additional peripheral modules.

1.3.3 High-Performance PICs and DSPs


The high-performance PICs belong to the PIC18 and PIC32 groups. The motiva tion for
expanding the PIC arquitecture and modifying the core of the mid-range PICs relate to
the following limita tions:
• Small-size stack
• Single interrupt vector
• Limited instruction set
• Small memory size
• Limited number of peripherals
• No high-level language programmability
The devices in the PIC16 group have 16-bit program words, flash program mem-
ory, a linear memory space of up to 2 Mbytes, as well as protocol-based communica-
tions facilities. They all support internal and external interrupts and a much larger
instruction set than members of the baseline and mid-range families. The PIC18
family is also a large one, with over seventy different variations currently in produc-
Microcontrollers for Embedded Systems 11

tion. These devices are furnished in 18 to 80 pin packages. Microchip describes the
PICs in this family as high-performance with integrated A/D converters.
Digital Signal Processor
The notion of digital signal processing starts with the conversion of analog signal in-
formation such as voice, image, temperature, or pressure primitive data to digital val-
ues that can be stored and manipulated by a com puting device. Convert ing the data
from its primitive analog form to a digital format makes it much easier to analyze, dis-
play, store, process, or convert the data to another format. Digital signal processing is
based on the fact that com puting and data pro cessing operations are easier to perform
on digital data than on raw analog signals.

The concept of digital signal processing can be illustrated by means of a satel-


lite-based Earth imagining system (such as the Landsat EROS) shown in Figure 1.4.
data storage

digitizer and
transmitter

sensor

optical
system
scanning
mirror

image data
processing

scan line

scanning
direction
receiving image
station

Figure 1.4 Schematic of a space-borne imaging system.

The optical-mechanical instrument onboard a spacecraft, shown in Figure 1.4,


consists of several subsystems. The scanning mirror collects the radiation, which is
imaged by an optical system onto a sensor device. The sensor performs an ana-
log-to-dig ital conversion and places the digital values in a temporary storage struc-
ture. During its orbit, the satellite reaches a location in space from which it can
communicate with an Earth receiving station. At this time, the transmitter and sup-
port circuitry send the digital data to the receiving station. The receiving station
12 Chapter 1

processes this data and formats it into an image. In this scheme, digital signal pro-
cessing can take place as the image data is sensed by the instrument and tempo-
rarily stored on board the satellite, or when the raw data received by the Earth
station is con verted into an image that can be manipulated, viewed, stored, or
re-processed.
Analog-to-Digital
Conversion from analog-to-digital form and vice versa are not formally operations of a
DSP. However, these conversions are so often required during signal processing that
most DSP devices include the analog-to-digital and digital-to-analog conversion hard-
ware.

Analog-to-digital conversion is usually performed by sampling the signal at uni-


form time intervals and using the sampled value as representative of the region be-
tween the intervals. Figure 1.5 shows an example of analog-to-digital conversion by
sampling.

sampling periods
1 2 3 4 5 6 7 8 9 10 11 12 13

80
voltage of analog signal

70

60

50

40

30

20 analog signal
10

0
15 20 28 37 12 14 35 78 69 63 85 57 28
sampled digital values

Figure 1.5 Analog-to-digital conversion by sampling.

In Figure 1.5 we see that the sampled values are actually an approximation of the
analog curve, as the variations between each interval are lost in the conversion pro-
cess. Therefore, the more sampling periods, the more accurate the approximation.
On the other hand, too small a sampling rate tends to re duce the sig nificance of the
data by producing repeated values in the digital record.
Chapter 2

PIC18 Architecture

2.1 PIC18 Family Overview


The PIC18 family was designed to provide ease of use (programmable in C), high per-
formance, and effortless integration with previous 8-bit families. In addition to the
standard modules found in the PIC16 and previous families, the PIC18 includes sev-
eral advanced pe ripherals, such as CAN, USB, Ethernet, LCD and CTMU. Its principal
features are
• Nanowatt technology ensures low power consumption
• 83 instructions (16-bit wide)
• C language optimized
• Up to 2 MB addressable program memory
• 4KB maximum RAM
• 32-level hardware stack
• 8-bit file select register
• Integrated 8x8 hardware multiplier
The performance of the PIC18 series is the highest in the Microchip 8-bit archi-
tecture. Figure 2.1 is a block diagram of the PIC18 architecture.

CPU Internal oscillator


16-bit instructions (up to 64 MHz)
83 instructions
12-bit file select registers
Interrupt context saving
Data EEPROM
Program Memory
(up to 2 MB)

16-level stack Data memory


Program counter (up to 4 KB)
Reset capability Enhanced indirect
addressing
Peripheral expansion
support

I/O and PERIPHERAL MODULES


ADC, CAN, EUSART, LCD, EEPROM, CCPWM, etc.

Figure 2.1 Block diagram of PIC18 architecture.

13
14 Chapter 2

Although the PIC16 series has been very successful in the microcontroller mar-
ketplace, it also suffers from limitations and constraints. Perhaps the most signifi-
cant limitation is that the devices of the PIC16 family can only be programmed in
Assembly language. Other limitations result from the device's RISC design. For ex-
ample, the absence of certain types of opcodes, such as the Branch instruction,
make it nec essary to combine a skip opcode followed by a goto op eration in order
to provide a con ditional, targeted jump. Other limitations relate to the hard ware it-
self: small stack and a single interrupt vector. As the complexity, memory size, and
the number of pe ripheral modules increased, the limitations of the PIC16 series
became more evident.

In the PIC18 series, Microchip reconsidered its PIC16 de sign rules and produced
a completely new style microcontroller, with a much more complex core, while lim-
iting the changes to the pe ripheral modules. The degree of change can be deduced
from the ex pansion of the instruction set from 35 14-bit to 83 16-bit operation codes.
Memory has gone from 14 to 128 KB; the stack from 8 levels to 32 levels. These
changes made it possible to optimize the PIC18 series for C language programming.

2.1.1 PIC18FXX2 Group


At the present time, Microchip lists 193 different devices in the PIC18 family. These de-
vices are available with pin counts from 28 to 100 and in the SOIC, DIP, PLCC, SPDIP,
QFN, SSOP, TQFP, QFN, and LQFP pack ages. For con sistency with the tutorial nature
of this book, we have selected the PIC18F4X2 group with identical DIP and SOIC
pinouts. Figure 2.2 shows the pin diagram for the PIC18F4X2 devices.

1 40
MCLR/VPP RB7/PGD
2 39
RAO/ANO RB6/PGC
3 38
RA1/AN1 RB5/PGM
4 37
RA2/AN2A/REF- RB4
5 36
RA3/AN3A/REF+ RB3/CCP2*
6 35
RA4/TOCKI RB2/INT2
7 34
RA5/AN4/SS/LVDIN RB1/INT1
8 33
RE0/RD/AN5 RBO/INTO
9
18F442 32
RE1/WR/AN6 Vdd
10 31
RE2/CS/AN7 Vss
11 30
Vdd 18F452 RD7/PSP7
12 29
Vss RD6/PSP6
13 28
OSC1/CLKI RD5/PSP5
14 27
OSC2/CLKO/RA6 RD4/PSP4
15 26
RCO/T1OSO/TICK1 RC7/RX/DT
16 25
RC1/T1OSI/CCP2 RC6/TX/CK
17 24
RC2/CCP1 RC5/SDO
18 23
RC3/SCK/SCL RC4/SDI/SDA
19 22
RDO/PSPO RD3/PSP3
20 21
RD1/PSP1 RD2/PSP2

40-PIN DIP FORMAT

Figure 2.2 Pin diagram for PIC18F4X2 devices.


PIC18 Architec ture 15

For learning and experimentation the devices in DIP packages are more conve-
nient because they can be easily inserted in the ZIF (zero insertion force) sockets
found in most programming devices, development boards, and bread boards. The de-
vices in Figure 1.1 and Figure 1.2 are so equipped. A PLCC (plastic leaded chip car-
rier) package with 44 pins is also available for 18F442 and 18F452 devices. We do
not cover this option.

2.1.2 PIC18FXX2 Device Group Overview


These devices come in 28-pin and 40-pin packages, as well as in a 44-pin PLCC package
previously mentioned. The 28-pin devices do not have a Parallel Slave Port (PSP).
Also, the number of analog-to-digital (A/D) converter input chan nels is reduced to 5.
An overview of features is shown in Table 2.1
Table 2.1
Principal Features of Devices in the PIC18FXX2 Family
FEATURES PIC18F242 PIC18F252 PIC18F442 PIC18F452

Operating Fre quency DC - 40 MHz DC - 40 MHz DC - 40 MHz DC - 40 MHz


Pro gram Mem ory
(Bytes) 16K 32K 16K 32K
Pro gram Mem ory
(In struc tions) 8192 16384 8192 16384
Data Mem ory
(Bytes) 768 1536 768 1536
Data EEPROM
Mem ory (Bytes) 256 256 256 256
In terrupt Sources 17 17 18 18
I/O Ports A, B, C A, B, C A, B, C, D, E A, B, C, D, E
Tim ers 4 4 4 4
Cap ture/Cornpare
/PWM Modules 2 2 2 2
Se rial Com mu ni ca tions
------------------------- MSSP ------------------------------------------
Ad dressable
USART
Paral lel Communications
- - PSP PSP
10-bit An a log-to-
Dig i tal Mod ule 5 channels 5 channels 8 channels 8 channels
RESETS (and Delays)
---------------------------- POR, BOR, Re set -------------------------------
In struc tion, Stack Full,
Stack Underflow,
(PWRT, OST)
Pro gram ma ble Low
Volt age De tect Yes Yes Yes Yes
Pro gram ma ble
Brown-out Reset Yes Yes Yes Yes
In struc tion Set 75 In struc tions 75 In struc tions 75 In struc tions 75 In struc tions
Packages 28-pin DIP 28-pin DIP 40-pin DIP 40-pin DIP QFP
28-pin SOIC 28-pin SOIC PLCC 44-pin PLCC 44-pin
SOIC SOIC SOIC SOIC
16 Chapter 2

From Table 2.1 the following general features of the PIC18FXX2 devices can be
deduced:
1. Operating frequency is 40 MHz for all devices. They all have a 75 opcode instruc-
tion set.
2. Program memory ranges from 16K (8,192 instructions) in the PIC18F2X2 devices
to 32K (16,384 instructions) in the PIC18F4X2 devices.
3. Data memory ranges for 768 to 1,536 bytes.
4. Data EEPROM is 256 bytes in all devices.
5. The PIC18F2X2 devices have three I/O poerts (A, B, and C) and the PIC18F4X2 de-
vices have five ports (A, B, C, D, and E).
6. All devices have four timers, two Capture/Compare/PWM modules, MSSP and
adressable USART for serial communications and 10-bit analog-to-digital mod-
ules.
7. Only PIC18F4X2 devices have a parallel port.

2.1.3 PIC18F4X2 Block Diagram


The block diagram of the 18F4X2 microcontrollers, which correspond to the 40-pin
devices of Figure 2.2, is shown in Figure 2.3.
Data memory
Program memory address
address

CPU
oscillators

ports
internal modules

Figure 2.3 PIC18F4X2 block diagram.


PIC18 Architec ture 17

2.1.4 Central Processing Unit


In Figure 2.3 the dashed rectangle labeled CPU (central processing unit) contains the
8-bit Arithmetic Logic Unit, the Working register la beled WREG, and the 8-bit-by-8-bit
hardware multiplier, described later in this chapter. The CPU receives the instruction
from program memory according to the value in the Instruction register and the action
in the Instruction Decode and Control block. An interrupt mechanism with several
sources (not shown in Figure 2.3) is also part of the PIC18FXX2 hardware.
The Status Register
The Sta tus register, not shown in Figure 2.3, is part of the CPU and holds the individual
status bits that reflect the op erating condition of the individual elements of the de vice.
Figure 2.4 shows the bit structure of the Status register.

bits: 7 6 5 4 3 2 1 0

- - - N OV Z DC C

bit 4 N: Negative bit


1 = Arithmetic result is negative
0 = Arithmetic result is positive
bit 3 OV: Overflow bit
1 = Overflow in signed arithmetic
0 = No overflow occurred
bit2 Z: Zero bit
1 = The result of an operation is zero
0 = The result of an operation is not zero
bit 1 DC: Digit carry/borrow bit for ADDWF, ADDLW, SUBLW,
and SUBWF instructions. For borrow the polarity
is reversed.
1 = A carry-out from the 4th bit of the result
0 = No carry-out from the 4th bit of the result
For rotate instructions (RRF and RLF) this bit
is loaded with either bit 4 or bit 3 of the
source register.
bit 0 C: Carry/borrow bit for ADDWF, ADDLW, SUBLW, and
SUBWF instructions. For borrow the polarity
is reversed.
1 = A carry-out from the most significant bit
0 = No carry-out from the most significant bit
For rotate instructions (RRF and RLF) this bit
is loaded with either bit 4 or bit 3 of the
source register.

Figure 2.4 Status register bitmap.

Program Counter Register

The 21-bit wide Program Counter register specifies the address of the next instruction
to be ex ecuted. The reg ister mapping of the Program Counter register is shown in Fig-
ure 2.5.
18 Chapter 2

Bits 20 15 7 0

PCU PCH PCL


Always 0

Figure 2.5 Register map of the Program Counter.

As shown in Figure 2.5, the low byte of the ad dress is stored in the PCL register,
which is readable and writeable. The high byte is stored in the PCH register. The up-
per byte is in the PCU register, which contains bits <20:16>. The PCH and PCU regis-
ters are not di rectly read able or writeable. Up dates to the PCH reg is ter are
performed through the PCLATH register. Updates to the PCU register are performed
through the PCLATU register.

The Program Counter addresses byte units in program memory. In order to pre -
vent the Pro gram Counter from becoming misaligned with word instructions, the
LSB of PCL is fixed to a value of '0' (see Figure 2.5). The Program Counter incre -
ments by 2 to the ad dress of the next se quen tial in struc tions in the program
memory.

The CALL, RCALL, GOTO, and program branch instructions write to the Program
Counter directly. In these instructions, the contents of PCLATH and PCLATU are not
transferred to the pro gram counter. The contents of PCLATH and PCLATU are trans-
ferred to the Pro gram Counter by an operation that writes PCL. Similarly, the upper
2 bytes of the Program Counter will be transferred to PCLATH and PCLATU by an
operation that reads PCL.

Hardware Multiplier
All PIC18FXX2 devices contain an 8 x 8 hardware multiplier in the CPU. Because mul-
tiplication is a hardware operation it completes in a single instruction cycle. Hard-
ware multiplica tion is unsigned and produces a 16-bit re sult that is stored in a 16-bit
product reg ister pair labeled PRODH (high byte) and PRODL (low byte).

Hardware multiplication has the following advantages:


• Higher computational performance
• Smaller code size of multiplication algorithms
The performance increase allows the device to be used in applications previously re-
served for Digital Signal Processors.

Interrupts
PIC18FXX2 devices support multiple interrupt sources and an interrupt priority
mechanism that allows each interrupt source to be as signed a high or low priority
level. The high-prior ity interrupt vector is at OOOOO8H and the low-priority interrupt
vector is at 000018H. High-priority interrupts override any low-priority interrupts that
may be in progress. Ten registers are related to interrupt operation:
PIC18 Architec ture 19

• RCON
• INTCON
• INTCON2
• INTCON3
• PIR1, PIR2
• PIE1, PIE2
• IPR1, IPR2

Each interrupt source (except INTO) has three control bits:


• A Flag bit indicates that an interrupt event has occurred.
• An Enable bit allows program execution to branch to the interrupt vector address
when the flag bit is set.
• A Priority bit to select high-priority or low priority for an interrupt source.

Interrupt priority is enabled by setting the IPEN bit {mapped to the RCON<7>
bit}. When interrupt priority is enabled, there are 2 bits that enable interrupts glob-
ally. Setting the GIEH bit (1NTCON<7>) enables all interrupts that have the priority
bit set. Setting the GIEL bit (INTCON<6>) enables all interrupts that have the prior-
ity bit cleared. When the interrupt flag, the en able bit, and the ap propriate global in-
ter rupt en able bit are set, the in ter rupt will vec tor to ad dress OOOOO8h or
000018H, de pending on the priority level. Individual in ter rupts can be dis abled
through their corresponding enable bits.

When the IPEN bit is cleared (default state), the interrupt priority feature is dis-
abled and the interrupt mechanism is compatible with PIC mid-range devices. In
this compatibility mode, the interrupt priority bits for each source have no effect
and all interrupts branch to address OOOOO8H.

When an interrupt is handled, the Global Interrupt Enable bit is cleared to disable
further interrupts. The return address is pushed onto the stack and the Pro gram
Counter is loaded with the interrupt vec tor address, which can be OOOOO8H or
000018H. In the Interrupt Service Routine, the source or sources of the interrupt can
be de termined by testing the interrupt flag bits. To avoid recursive interrupts, these
bits must be cleared in software be fore re-enabling interrupts. The “return from in-
terrupt“ instruction, RETFIE, exits the interrupt routine and sets the GIE bit {GIEH
or GIEL if priority levels are used), which re-enables interrupts.

Sev eral ex ter nal in ter rupts are also sup ported, such as the INT pins or the
PORTB input change interrupt. In these cases, the interrupt latency will be three to
four instruction cycles. Interrupts and interrupt programming are the subject of
Chapter 8.

2.1.5 Special CPU Features


Sev eral CPU features are intended for the following purposes:
20 Chapter 2

• Mmaximize system reliability


• Minimize cost through the elimination of external components
• Provide power-saving operating modes
• Offer code protection

These special features are re lated to the fol lowing functions and components:

• SLEEP mode
• Code protection
• ID locations
• In-circuit serial programming
• SLEEP mode

SLEEP mode is designed to offer a very low current mode during which the de-
vice is in a power-down state. The ap plica tion can wakeup from SLEEP through the
following mechanisms:

1. External RESET
2. Watchdog Timer Wake-up
3. An interrupt

The Watch dog Timer is a free running on-chip RC oscillator, that does not re quire
any external components. This RC oscillator is separate from the RC oscillator of
the OSC1/CLKI pin. That means that the WDT will run, even if the clock on the
OSC1/CLKI and OSC2/CLKO/ RA6 pins of the device has been stopped, for example,
by ex ecution of a SLEEP instruction.

Watchdog Timer
A Watchdog Timer time-out (WDT) generates a device RESET. If the device is in
SLEEP mode, a WDT causes the de vice to wakeup and continue in normal operation
(Watchdog Timer Wake-up). If the WDT is enabled, software ex ecution may not dis-
able this function. When the WDTEN configuration bit is cleared, the SWDTEN bit en-
ables/disables the operation of the WDT. Values for the WDT postscaler may be
assigned using the configuration bits.

The CLRWDT and SLEEP instructions clear the WDT and the postscaler (if as-
signed to the WDT) and prevent it from timing out and generating a device RESET
condition. When a CLRWDT instruction is executed and the postscaler is assigned
to the WDT, the postscaler count will be cleared, but the postscaler assignment is
not changed.

The WDT has a postscaler field that can extend the WDT Reset pe riod. The
postscaler is selected by the value written to 3 bits in the CONFIG2H register during
device programming.
PIC18 Architec ture 21

Wake-Up by Interrupt

When global interrupts are disabled (the GIE bit cleared) and any interrupt source has
both its interrupt enable bit and interrupt flag bit set, then one of the following will oc-
cur:

When an interrupt occurs before the ex ecution of a SLEEP instruction, then the
SLEEP instruction becomes a NOP. In this case, the WDT and WDT postscaler will
not be cleared, the TO bit will not be set, and PD bits will not be cleared.

If the interrupt condition occurs during or after the ex ecution of a SLEEP instruc-
tion, then the de vice will immediately wakeup from SLEEP. In this case, the SLEEP
instruction will be completely executed be fore the wake-up. Therefore, the WDT
and WDT postscaler will be cleared, the TO bit will be set, and the PD bit will be
cleared.

Even if the flag bits were checked before executing a SLEEP instruction, it may
be possible for these bits to set be fore the SLEEP instruction completes. Code can
test the PD bit in order to de termine whether a SLEEP instruction executed. If the
PD bit is set, the SLEEP instruction was executed as a NOP. To ensure that the WDT
is cleared, a CLRWDT instruction should be executed be fore a SLEEP instruction.

Low Voltage Detection

For many applications it is desirable to be able to detect a drop in device voltage below
a certain limit. In this case, the application can define a low voltage window in which it
can per form housekeep ing tasks before the volt age drops be low its defined operating
range. The Low Voltage Detect feature of the PIC18FXX2 devices can be used for this
purpose. For example, a voltage trip point for the de vice can be spec ified so that when
this point is reached, an interrupt flag is set. The program will then branch to the inter-
rupt's vector address and the interrupt handler software can take the cor responding
action. Because the Low Voltage Detect circuitry is completely under software con-
trol, it can be “turned off” at any time, thus saving power.

Implementing Low Voltage Detect requires setting up a comparator that reads the
reference voltage and compares it against the preset trip-point. This trip-point volt-
age is software programmable to any one of sixteen values by means of the 4 bits la-
beled LVDL3:LVDLO. When the device voltage becomes lower than the preselected
trip-point, the LVDIF bit is set and an interrupt is generated.

Device Configuration

Several device configurations can be selected by programming the configuration bits.


These bits are mapped, starting at program memory address 300000H. Note that this
address is located in the configuration memory space (300000H to 3F0000H), which is
only accessed using table read and ta ble write operations. When the configuration bits
are programmed, they will read as '0; when left unprogrammed they will read as '1'.
22 Chapter 2

MPLAB development tools provide an __CONFIG directive, together with a set of


device-specific operands, that simplify selecting and setting the desired configura-
tion bits. This topic is explored in the book's chapters related to programming.

2.2 Memory Organization


Devices of the PIC18FXX2 family contain three independent memory blocks:
• Program Memory
• Data Memory
• Data EEPROM
Because the device uses a separate buss, the CPU can concurrently access the
data and pro gram memory blocks.

2.2.1 Program Memory


The Program Counter register is 21 bit wide and therefore capable of addressing a
maximum of 2-Mbyte program memory space. Accessing a location between the phys-
ically implemented memory and the 2-Mbyte maximum address will read all zeroes.
The PIC18F242 and PIC18F442 devices can store up to 8K of single-word instructions.
The PIC18F252 and PIC18F452 devices can store up to 16K of single-word instruc-
tions. The RESET vector address is at OOOOH and the interrupt vector addresses are
at 0008H and 0018H. Figure 2.6 shows the memory map for the PIC18FXX2 family.

PC bits <20:0> PC bits <20:0>

Stack Level 1 Stack Level 1


. .
. .
. .
. .

Stack Level 31 Stack Level 31

RESET Vector 0000H RESET Vector 0000H

High Priority Interrupt Vector 0008H High Priority Interrupt Vector 0008H

Low Priority Interrupt Vector 0018H Low Priority Interrupt Vector 0018H

On-Chip On-Chip
Program Memory Program Memory

3FFFH
4000H

7FFFH
8000H
Read '0'

Read '0'

1FFFFFH 1FFFFFH
200000H 200000H

PIC18F442/242 PIC18F452/252
Figure 2.6 Program memory map for the PIC18FXX2 family.
PIC18 Architec ture 23

2.2.2 18FXX2 Stack


The PIC18FXX2 stack is 31 address deep and allows as many combinations of
back-to-back calls and interrupts to occur. When a CALL or RCALL instruction is exe-
cuted, the Pro gram Counter is pushed onto the stack. When a CALL or RCALL instruc-
tion is executed, or an interrupt is acknowledged, the Program Counter is pulled off
the stack. This also takes place on a RETURN, RETLW, or RETFIE instruction.
PCLATU and PCLATH registers are not affected by any of the RETURN or CALL in-
structions.

The stack consists of a 31-word deep and 21-bit wide RAM structure. The current
stack position is stored in a 5-bit Stack Pointer reg ister labeled STKPTR. This regis-
ter is in itialized to OOOOOB af ter all RESETS. There is no RAM memory cell associ-
ated with Stack Pointer value of OOOOOB. When a CALL type instruction executes
(PUSH op er a tion), the stack pointer is first incre mented and the RAM loca tion
pointed to by STKPTR is written with the con tents of the PC. Dur ing a RETURN type
in struc tion (POP op er a tion), the con tents of the RAM lo ca tion pointed to by
STKPTR are transferred to the PC and then the stack pointer is decremented.

The stack space is a unique mem ory structure and is not part of either the pro -
gram or the data space in the PIC18FXX2 devices. The STKPTR register is readable
and writeable, and the ad dress on the top of the stack is also readable and writeable
through SFR registers. Data can also be pushed to or popped from the stack using
the top-of-stack SFRs. Status bits indicate if the stack pointer is at, or beyond the 31
levels provided.
Stack Operations
Figure 2.7 shows the bit struc ture of the STKPTR register. The STKPTR reg ister con-
tains the stack pointer value, as well as a stack full and stack underflow) status bits.
The STKPTR reg ister can be read and written by the user. This feature allows operat-
ing system software to perform stack maintenance op erations. The 5-bit value in the
stack pointer register ranges from 0 through 31, which correspond to the available
stack loca tions. The stack pointer is incremented by push op erations and decrement-
ed when val ues are popped off the stack. At RESET, the stack pointer value is set to 0.

bits: 7 6 5 4 3 2 1 0
STKOVF STKUNF SP4 SP3 SP2 SP1 SP0

bit 7 STKOVF:
1 = Stack became full or overflowed
0 = Stack has not overflowed
bit 6 STKUNF:
1 = Stack underflow occurred
0 = No stack underflow occurred
bit 5 Unimplemented: Read as 0
bit 4-0 SP4:SP0: Stack Pointer location

Figure 2.7 STKPTR reg ister bit map.


24 Chapter 2

The STKOVF bit is set after the pro gram counter is pushed onto the stack 31
times without popping any value off the stack. No tice that some Microchip docu-
mentation refers to a STKFUL bit, which appears to be a syn onym for the STKOVF
bit. To avoid confusion, we only use the STKOVF designation in this book.

The STKOVF bit can only be cleared in software or by a Power-On Re set (POR)
operation. The action that takes place when the stack be comes full depends on the
state of the STVREN (Stack Overflow Reset Enable) configuration bit. The STVREN
bit is bit 0 of the CONFIG4L register. If the STVREN bit is set, a stack full or stack
overflow con dition will cause a de vice RESET. Other wise, the RESET ac tion will
not take place. When the stack pointer has a value of 0 and the stack is popped, a
value of zero is entered to the Pro gram Counter and the STKUNF bit is set. In this
case, the stack pointer remains at 0. The STKUNF bit will remain set until cleared in
software or a POR occurs. Returning a value of zero to the Pro gram Counter on an
underflow condition has the ef fect of vectoring the pro gram to the RESET vector.
User code can provide logic at the RESET vector to verify the stack condition and
take the appropriate actions.

Three reg isters, labeled TOSU, TOSH and TOSL, hold the contents of the stack lo-
ca tion pointed to by the STKPTR register. The address mapping of these registers is
shown in Figure 2.8.

Bits 20 15 7 0

TOSU TOSH TOSL

Figure 2.8 Address mapping of the stack con tents registers.

Users can implement a software stack by manipulating the contents of the TOSU,
TOSH, and TOSL reg isters. After a CALL, RCALL, or interrupt, user software can
read the value in the stack by reading the TOSU, TOSH, and TOSL. These values can
then be placed on a user-defined software stack. At return time, user software can
replace the TOSU, TOSH, and TOSL with the stored val ues. At this time, global inter-
rupts should have been disabled in order to pre vent inadvertent stack changes.

Fast Register Stack

A fast return from interrupts is available in the PIC18FXX2 devices. This action is
based on a Fast Register Stack that saves the STATUS, WREG, and BSR registers. The
fast ver sion of the stack is not readable or writable and is loaded with the current
value of the three registers when an interrupt takes place. The FAST RETURN instruc-
tion is then used to restore the working registers and ter minate the in terrupt.
PIC18 Architec ture 25

The fast reg ister stack op tion can also be used to store and re store the STATUS,
WREG, and BSR registers during a subroutine call. In this case, a fast call and fast
return instruction are executed. This is only possible if no interrupts are used.
Instructions in Memory
Program memory is structured in byte-size units but instructions are stored as two
bytes or four bytes. The Least Significant Byte of an instruction word is always stored
in a program memory location with an even address, as shown in Figure 2.5. Figure 2.9
shows three low-level instructions as they are en coded and stored in program memory

LOCATIONS IN PROGRAM MEMORY:


Word
LSB = 1 LSB = 0 Address
00000H
00002H
00004H
INSTRUCTIONS: 00006H
MOVLW 055H 0FH 55H 00008H
GOTO 000006H EFH 03H 0000AH
00H 00H 0000CH
MOVFF 12H, 456H C1H 23H 0000EH
04H 56H 00010H
00012H
00014H

Figure 2.9 Instruction encoding.

The CALL and GOTO instructions have an ab solute program memory address em-
bedded in the instruction. Because instructions are always stored on word bound-
aries, the data contained in the instruction is a word address. This word address is
written to Program Counter bits <20:1>, which accesses the desired byte address.
Notice in Figure 2.9 that the instruction
GOTO 000006H
is encoded by stor ing the number of single-word instructions that must be added to
the Program Counter (03H). All program branch instructions are encoded in this man-
ner.

2.2.3 Data Memory


Data memory is implemented as static RAM. Each register in the data memory has a
12-bit address, allowing up to 4096 bytes of data memory in the PIC18FXX2 devices.
Data memory consists of Special Function Registers (SFRs) and General Purpose
Registers (GPRs). The SFRs are used for con trol and status operations and for imple-
menting the peripheral functions. The GPRs are for user data storage. Figure 2.10 is a
map of data memory in the PIC18FXX2 devices.
26 Chapter 2

000H 00H 000H 00H


Access RAM Access RAM
07FH Bank 0 07FH Bank 0
GPR FFH GPR FFH

GPR Bank 1 GPR Bank 1

GPR Bank 2 GPR Bank 2

GPR Bank 3

GPR Bank 4

Bank 3 GPR Bank 5


Unused
to
(read 00H)
Bank 14

Bank 6
Unused to
(read 00H) Bank 14

Unused Unused
080H Bank 15 080H Bank 15
FFFH SFR FFFH SFR

PIC18F442/242 PIC18F452/252

Figure 2.10 Data memory map in PIC18FXX2.

In Figure 2.10, GPRs start at the first location of Bank 0 and grow to higher mem-
ory addresses. Memory is divided into 255-byte units called banks. Seven banks are
implemented in the PIC18F452/252 devices and four banks in the PIC18F442/242 de-
vices. A read operation to a loca tion in an unimplemented mem ory bank always
returns zeros.

The entire data memory may be accessed directly or indirectly. Direct addressing
requires the use of the BSR register. Indirect addressing requires the use of a File
Select Register (FSRn) and a corresponding Indirect File Operand (INDFn). Ad-
dress ing op er a tions are dis cussed in Chap ter 11 in the cont ext of LCD
programming.

Each FSR holds a 12-bit address value that can be used to access any location in
the Data Memory map without banking. The SFRs start at address F80H in Bank 15
and extend to address 0FFFH in either device. This means that 128 bytes are as-
signed to the SFR area although not all loca tions are implemented. The individual
SFRs are discussed in the context of their spe cific functionality. Figure 2.11 shows
the names and addresses of the Special Function Registers.
PIC18 Architec ture 27

Figure 2.11 PIC18FXX2 Special Function Registers map.

2.2.4 Data EEPROM Memory


EEPROM stands for Electrically Erasable Programmable Read-Only Memory. This
type of mem ory is used in computers and embedded systems as a nonvolatile storage.
You find EEPROM in flash drives, BIOS chips, and in memory fa cilities such flash
memory and EEPROM data storage memory found in PICs and other
microcontrollers.

EEPROM memory can be erased and programmed electrically without removing


the chip. The predecessor technology, called EPROM, required that the chip be re-
moved from the circuit and placed un der ultraviolet light in order to erase it. In em -
bedded systems, the typical use of serial EEPROM on-board memory, and EEPROM
ICs, is in the storage of pass words, codes, configuration settings, and other informa-
tion to be remembered after the system is turned off.
Another random document with
no related content on Scribd:
eruditas, y lo que para semejantes jueces librescos
era rudeza y poco ornamento, es naturalidad y
sencillez para los que saben juzgar de las cosas; lo
que ellos llaman bárbaro y rústico es lo recio y
popular, lo no bastardeado con artificios melindrosos
y convencionalismos urbanos.
436. De la edición primera de 1496 hay ejemplar en la Academia
Española; en la Nacional los hay de 1505 y 1516; en la Biblioteca
Imperial de Viena vió Wolf otro de 1509 y otro tuvo Gayangos; de
1507 dice que vió otro en la biblioteca de la Reina Asenjo Barbieri;
de la de 1501 en la del Gran Ducado de Wolffenbuttel. Plácida y
Victoriano se imprimió en Roma, 1514, como dijo Moratín, y tuvo
ejemplar sin lugar ni fecha en su colección Pedro Salvá: no se halla
en los Cancioneros. Ríos atribuye á Enzina la Tragedia á la muerte de
don Fernando é Isabel y dice se halla en algunas ediciones; pero la
última fué del 1516, año en que murió el Rey á 13 de enero, de
modo que no pudo incluirse en ediciones anteriores y no se halla en
la de Coci de 1516. Las de 1496, 1501 y 1505 tienen las mismas
ocho representaciones; la de 1507, dos más; la Égloga trovada y la
Representación... ante... el príncipe don Juan, que Colón llama
Representatio amoris en su Registro; la de 1509 además la de
Fileno, Zambarda, etc., y el Aucto del Repelón; la de 1516 es como
la de 1507. La tragedia Á la dolorosa muerte del Principe Don Juan
se halla encuadernada al fin del Cancionero de 1496 de la Academia
Española. "Tabla de las obras que en este Cancionero se contienen
(edición de 1496), hechas por Juan del Enzina desde que hubo
catorce años, hasta los veinte y cinco años.—Primeramente: Un
prohemio (en prosa) á los Reyes nuestros señores, foja 1. Otro
prohemio al Principe nuestro señor, f. 2. El arte de trovar, f. 3. Un
prohemio al duque y duquesa de Alba, f. 6. La Bucolica de Virgilio,
con dos prólogos al principal, y uno á los Reyes nuestros señores, y
otro al Principe, f. 31. El triunfo de fama, f. 49. Unos disparates, f.
57. El triunfo de amor, con un prologo al principe, á don Garcia de
Toledo, hijo primogenito del duque de Alba, f. 61. Un abecé de
amores á una dama, f. 70. Testamento de amores, f. 75. Confision
de amores, á su amiga, f. 79. Porqué de amores, f. 82. Glosas de
motes, f. 84. Canciones, f. 85. Romances (son cuatro), f. 87.
Canciones con sus desechas, f. 88. Villancicos de devocion, f. 88.
Villancicos de amores... (son 28), f. 87. Villancicos pastoriles... (son
16), f. 96. Representaciones (son ocho), f. 103". Las ocho son: I.
"Representacion en la noche de navidad, adonde se introducen dos
pastores, y el uno entró primero en la sala á donde el Duque y
Duquesa de Alba estaban, y llegó á presentar en nómbre de Juan del
Encina una obra de la mesma fiesta enderezada á la Duquesa,
mostrándose muy dichoso porque le habian ya recebido por suyo; y
el otro entró despues y comenzóse á razonar con él en nómbre de
los detratóres y maldicientes". II. "Otra en la mesma noche donde se
introducen cuatro pastores, en nombre de los cuatro evangelistas,
que hablan de la natividad de nuestro Salvador". III. "Otra á la
pasión de nuestro Redentor, á donde se introducen dos hermitaños y
una muger llamada Verónica, que hablan de su preciosa pasión y
muerte; y un ángel que les vino á consolar con esperanza de la
resurección". IV. "Otra de la resurección de Cristo á donde se
introducen Josef de Alarimatia, y la Magdalena; y los dos discípulos
que iban al Castillo de Emaús, que hablan de la resurección, y un
ángel que les acrecentó el alegria". V. "Otra en la noche postrera de
carnal, á donde se introducen cuatro pastores mostrando gran pesar
y tristura, por que se sonaba que el Duque de Alba su señor se
habia de partir á la guerra de Francia". VI. "Otra en la mesma noche
y por los mesmos pastores comiendo y beviendo y festejando mucho
aquella fiesta". VII. "Otra en recuesta de unos amores, á donde se
introducen un escudero, y un pastor, y una pastorica recuestando del
uno y del otro sobre cual la ternia por amiga". VIII. "Otra á donde se
introducen los mismos de arriba y otra pastora que era esposa de
aquel pastor; y todos juntamente deseando de ser pastores, se
tornaron del palacio".

437. Cancionero de las obras de Juan del Enzina, Salamanca, 1496;


Sevilla, 1501; Burgos, 1505, 1508; Salamanca, 1507 y 1509;
Zaragoza, 1512 y 1516. Todas ediciones rarísimas; la más completa,
la de Salamanca de 1509. Teatro completo, ed. F. Asenjo Barbieri,
Madrid, 1893; Arte de poesía castellana, reimpreso por M. Menéndez
y Pelayo, Antología de poetas líricos, etc., t. V, págs. 30-47;
Cancionero musical de los siglos xv y xvi [contiene 68 poesías de
Enzina], ed. F. Asenjo Barbieri, Madrid, 1904; Cancionero de
Uppsala, ed. R. Mitjana, Uppsala, 1909. Consúltense: M. Menéndez y
Pelayo, Antología de poetas líricos, etc., t. VII, págs. i-c; E. Cotarelo
y Mori, Estudios de historia literaria, Madrid, 1901, págs. 103-181; R.
Mitjana, Sobre Juan del Enzina, músico y poeta: nuevos datos para
su biografía, Málaga, 1895; E. Díaz Jiménez y Molleda, Juan del
Enzina en León, Madrid, 1909, donde se hallan los documentos que
prueban la fecha de su muerte; J. P. Wickersham Crawford, The
Source of Juan del Encina's Égloga de Fileno y Zambarda (Revue
Hispanique, XXX).

438. Juan del Enzina es el principal representante de


los dramaturgos eruditos que supieron llevar á la
literatura erudita la lírica ó cantares de la literatura
antiquísima del pueblo y la dramática, que desde los
más antiguos tiempos cultivaba el pueblo, ya en
misterios religiosos, representados en templos y
procesiones, con el natural acompañamiento del
elemento humano de personajes, tipos, costumbres,
etc., ya en juegos de escarnio, chacotas y momos, ó
escenas puestas en acción para burlarse unos de
otros y tomar un rato de broma. Así nacieron la
verdadera lírica y la verdadera dramática, como la
épica verdadera, para la literatura erudita, en esta
época en que los autores supieron apreciar lo
popular en todos los géneros literarios.
439. Tan antiguos como los refranes, los cantares y los romances,
son los pasos dramáticos populares en España. Sin distinguir entre
literatura popular y literatura erudita, la mayor parte de los
historiadores de nuestra literatura han decretado que Enzina fué el
más antiguo dramaturgo español, el padre de nuestra dramática.
Convienen además en que él fué quien secularizó el drama, hasta
entonces puramente religioso, aunque generalmente los hispanistas
extranjeros no quieren que el teatro español deba nada al teatro
eclesiástico. Ninguna de estas tres opiniones es cierta. Literatura
dramática erudita, que se escribiera y fuera para solaz de la gente
culta, no la hubo acaso hasta esta época de los Reyes Católicos,
porque realmente el teatro siempre ha de ser más ó menos popular
por razón de los espectadores, y habiéndose menospreciado hasta
esta época todo lo popular, no pudo haber dramática erudita escrita,
como por lo mismo nadie había hecho caso de la épica popular ó
romances, ni de los cantares populares, verdadera lírica del pueblo.
En este reinado, de golpe y porrazo, brotan dramaturgos y obras
dramáticas por todas partes: es que los eruditos llevan á la literatura
culta el drama popular. Así Gómez Manrique, Cota, sobre todo Juan
del Enzina, que en este sentido puede decirse ser padre de la
dramática española, esto es, de la erudita. ¿Que hubo dramática
popular en todo tiempo? J. J. de Iztueta, en Guipuzcoaco dantza
gogoangarrien condaira, San Sebastián, 1824, nos describe las
danzas vascongadas, hasta 36, que son verdaderas obras dramático-
líricas primitivas, en su naturaleza. "Las danzas, dice, no son otra
cosa que la representación de un canto por medio de los pies y de
varios gestos, ó, mejor dicho, la exacta expresión de lo que significa
cada nota del canto, de suerte que en su representación se unan
cuerpos y voces para interpretar la melodía y las palabras". Los
antiguos celebraron los bailes españoles diciendo que eran
pantomímicos y acompañados de canto (Plin., l. 1, cp. 15; Juven.,
sat. ii, ν. 162, etc.; Marcial, l. 3. epigr. 63; Lamprid., Heliog., c. 32).
El teatro romano en España continuó entre los visigodos, como se ve
por el Concilio de Ilíberis (cánones 43 y 60), por San Isidoro
(Orígenes, l. 18, c. 41 y 59) y por lo que cuentan Mariana de
Sisebuto (Hist. Esp., l. 6, c. 3) y Padilla (Histor. ecles. de Esp.,
segunda parte, Málaga, 1605, pág. 188). El Concilio toledano del
633 prohibió la fiesta de los locos. En las obras de San Valerio (†
695) se habla del teatro (Esp. Sagr., t. XVI, pág. 397), no menos que
en el Fuero Juzgo (ed. 1815, l. 1, de instr. legalibus, I tít.). La danza
prima de Asturias es antiquísima, derivada de las danzas ibéricas, así
como la de la rueda en Segovia. En toda España se conservan
danzas corales, en rueda, de espadas, etc., que son representativas
y hermanas de las vascongadas. Bufones y remedadores populares,
que remedaban dramáticamente, suenan desde los más antiguos
escritos y su antigüedad se ve por las Partidas. Reyes y magnates
los llamaban á sus palacios y los tenían asalariados, como entre los
romanos, y ya en la época del Renacimiento. Fuera de esto, las
mismas Partidas nos hablan de verdaderas representaciones, como
en la part, 1, l. 34, t. VI: "Los clérigos... no deben ser facedores de
juegos de escarnios porque los vengan á ver gentes cómo se facen.
Ε si otros homes los ficieron, non deben los clérigos hi venir, porque
facen hi muchas villanias e desaposturas. Ni deben otrosi estas cosas
facer en las iglesias: antes decimos que los deben echar de ellas
deshonradamente a los que lo ficieren: ca la eglesia de Dios es fecha
para orar e non para facer escarnios en ella... Pero representaciones
hay que pueden los clérigos facer, asi como de la nacencia de N. S.
Jesu Christo, en que muestra como el ángel vino a los pastores e
como les dijo como era Jesu Christo nacido. Ε otrosi de su aparicion
como los tres Reyes magos le vinieron á adorar. Ε de su
resurrección, que muestra que fué crucificado e resucitado al tercero
dia: tales cosas como estas, que mueven al ome a facer bien e a
haber devocion en la fe, puédenlas facer, e ademas, porque los
omes hayan remembranza que segun aquellas, fueron las otras
hechas de verdad...". Había, pues, á mediados del siglo xiii
representaciones religiosas y profanas, hechas por clérigos y legos,
dentro y fuera de los templos y el arte dramático era un modo de
vivir para algunos. La representación de misterios fué antiquísima y
nació de la misma liturgia, que era dramática, pues antífonas y
responsos aluden al nombre del cómico ó hypocrites en griego; el
hacer nacimientos, el lavar los pies en Jueves Santo, las procesiones,
etcétera, son representaciones tan claras como las que de la Pasión
y otras siguen haciéndose en muchos pueblos de España. Hasta se
lee la Pasión en el oficio de Viernes Santo entre varios clérigos,
haciendo uno de Evangelista, otro de Jesús, otro de Pilato y los
judíos. Los juegos de escarnios eran representaciones burlescas,
profanas, de la vida común, origen de las farsas y entremeses
posteriores, como las representaciones religiosas lo fueron de los
autos. Urbano IV instituyó en tiempo de Alfonso X el Corpus Christi,
y aquella fiesta por toda España se festejaba con representaciones.
Pruebas de representaciones en España las tenemos desde las
Partidas, desde el Fuero Juzgo, desde los primeros Concilios
españoles, que todos condenan los abusos que se cometían, ya en
juegos de escarnios ó dramática puramente seglar, ya en la
eclesiástica, por haberse siempre introducido en ella mucho de
humano, esto es, personajes y acciones que nada ó poco tenían que
ver con los misterios que representaban. Quedan en toda España
huellas harto viejas de una y otra dramática, eclesiástica y seglar,
populares ambas. Al caer el Imperio romano sabido es que los
histriones paganos, comúnmente los sacerdotes del paganismo,
servían de representar misterios cristianos y pasos cómicos, con que
el paganismo se ponía en solfa y en chacota. Los cristianos ponían
en acción los pasajes bíblicos, como todavía se hace por esos
pueblos, en la prisión del huerto, en la cena dada á los pobres, en el
descendimiento, en el ahorcar á Judas, en el bajar el ángel el día de
Pascua á quitar á María el velo negro con que se cubre. Pasos
cómicos, de escarnio y sátira, se hacen en vendimias y agostos en
los montes y lugares apartados, por ejemplo, en Sierra Morena. En
Aragón celébrase la fiesta de San Jorge corriendo los caballeros.
Pocas veces llegó nada de esto á la literatura erudita, pero llegó
algunas. Conocemos el Auto de los Reyes Magos al amanecer de
ella. Á fines del siglo xv, Domingo Mascó compuso L'hom enamorat y
la fembra satisfeta, tragedia perdida; en el siglo xiv se compuso la
Representació de la Asumpció de madona Santa Maria, de la cual se
deriva el Misterio de Elche, que todavía se representa allí los días 14
y 15 de agosto. En las comarcas vascongadas son bien conocidas las
Pastorales, que se representaban en vascuence. Las crónicas hablan
de los momos, que debían de ser danzas y mascaradas ó pasos
dramáticos populares, como se hacen todavía entre aldeanos y son
los que en Grecia originaron la comedia. Y adviértase que como
también allí el poner en acción los misterios paganos de Baco en el
ditirambo dió nacimiento á la tragedia, y los comos de
vendimiadores se lo dieron á la comedia, así en España, los momos
seglares y las representaciones de los misterios cristianos, dieron
origen al teatro español. Quiere decir que lo que antes hizo por largo
tiempo el pueblo en Grecia y en España, llegó un día que lo imitaron
los eruditos, llevando así lo popular á la literatura. Desde fines del
siglo xiii ó principios del xiv, como se ve por un códice de la catedral
de Gerona del año 1360, donde se dice haberse introducido la fiesta
del Corpus en aquella ciudad en tiempo de Berenguer Palaciolo (†
1313), los beneficiados de la catedral representaron, durante la
procesión del Corpus en varias plazas, el Sacrificio de Isaac y El
sueño y venta de José, de donde salió la Tragedia Josefina, de
Carvajal, como de los nacimientos que siempre se hicieron por
Navidad, con cartones, hierbas y monigotes, ofreciendo dones al
Niño, cantándole villancicos, se vino, ya de muy antiguo, á hacerse
representaciones pastoriles, esto es, á poner en acción el hecho de ir
como pastores al portalico los de la casa que lo habían levantado,
cantando, vistiéndose luego la zamarra y diciéndose las cosas que
los pastores decirse suelen en casos tales. Gómez Manrique no hizo
más que repetir el Auto de los Reyes Magos, que vimos al nacer la
literatura castellana, y otro tanto hicieron J. Enzina, L. Fernández, Gil
Vicente y todos los poetas españoles en esta época, y en adelante
hasta los autos de Calderón. Todo esto nos lo dirá no menos, antes
mejor, Cañete, al tratar de la Tragedia Josefina: XXXVII: "La
representación de figuras y costumbres populares en el drama
español es más antigua que Enzina, y por ende que Lope de Rueda:
viene de los autos y farsas con que durante la Edad Media
celebrábamos en el templo la Natividad del Señor, la fiesta de los
santos patronos de ciudades y villas, en suma, todas ó las más
augustas solemnidades eclesiásticas. ¿Á qué otro fin, sino á corregir
los abusos y el excesivo empleo de este elemento popular en las
representaciones sacras de nuestra nación, se dirigen reiteradas
prescripciones de Concilios y reyes, por lo menos desde el siglo xiii
hasta fines del xvi? Refiriéndose á lo que entiendo por elemento
popular en el primitivo teatro español, recuerda Gallardo (Critic., 4,
pág. 18) que nuestro sabio rey don Alfonso X se vió ya "precisado á
llamarle con leyes á lo divino, para corregir su espíritu nato de
profanidad". En la misma liturgia de Gerona se habla de otras
representaciones durante el año, como la de Las tres Marías por
Pascua, la del suplicio de San Esteban la víspera de Navidad y una
farsa burlesca por Inocentes, cuya huella son los chascos y pegas
que se dan aquel día. De máscaras y representaciones, en Sevilla, el
año 1327, nos habla Ortiz de Zúñiga (Anal. Sev.), y se sabe
igualmente de Aragón y Cataluña por los siglos xiii y xiv. La Danza
general de la muerte se representaba en el siglo xiv en España como
fuera de ella. En 1435 hubo "danzas é momos" en la corte de Juan ii
(Crón., id., año 435), y "momos, toros y torneos" en 1440. La
primera obra dramatizada y que parece se hizo para representarse
de nuestros autores eruditos, es la Comedieta de Ponza, de
Santillana, fuera del Auto de los Reyes Magos, copiado de los
franceses, que vimos á fines del siglo xii. En el Corbacho, del
Arcipreste de Talavera, se habla de la representación de La Pasión en
la iglesia del Carmen. El Concilio de Aranda (1473) condena los
abusos en las representaciones que se hacían en las iglesias por las
fiestas de Navidad, San Esteban, los Inocentes y San Juan. Otro
tanto hizo el Concilio de Gerona (1475). En el Tirante el Blanco (l. 3,
año 1490) se habla de los entremeses que se representaban por
Navidad.

Menéndez y Pelayo tiene á Enzina por el más antiguo y primer


iniciador dramaturgo español, ya que las Representaciones del
Nacimiento y de la Pasión, del Cancionero de Gómez Manrique,
anteriores en fecha, no pueden compararse á la obra de "un teatro
tan copioso, tan vario y, relativamente, tan desarrollado, como el de
Enzina". Gómez Manrique, y seguramente otros trovadores del siglo
xv, pudieron ser ocasionalmente poetas dramáticos; pero sólo Juan
del Enzina lo fué de un modo intencional, con vocación, con
perseverancia y con una marcha ascendente desde sus primeras
obras hasta las últimas, siempre en demanda de formas nuevas y
más complicadas. No se equivocó, pues, la voz popular cuando llamó
á Enzina "padre de la comedia española". Ticknor (History of Span.
Liter., Boston, 1864, I, pág. 248) tiene sus églogas "como el
fundamento y principio del teatro español"; Wolf entiende que fué
"el verdadero padre del drama español, en el sentido estricto de la
palabra" (Studien zur geschichte der Spanischen und Portugiesischen
Nationalliteratur, Berlín, 1859, pág. 274). Véase Ag. Rojas, Viaje
entret., 1603, pág. 120. Por lo menos, dicen muchos, él secularizó el
drama de una manera definitiva y le dió mayores ensanches. Creo
hemos ya deslindado las cosas y refutado estas doctrinas exclusivas,
que sólo se fundan en la lectura de libros literarios, dejando á un
lado y no acordándose de la literatura popular ni de los hechos
históricos y aun presentes para el que quiera verlos en los pueblos
de España. Ni las tragedias de Séneca, traducidas en tiempo de Juan
II, tienen nada que ver aquí, como quería Amador de los Ríos, ni
nuestro teatro del tiempo de los Reyes Católicos debe nada al
clasicismo, que, cuando tercia, como en La Celestina, y luego en
Lope, lo desvía de su cauce nacional, echándolo á perder. El teatro
español hasta Cervantes es natural por ser nacional, nacido en
tiempo de los Reyes Católicos de los autos y momos populares y,
sobre todo, de los autos del Nacimiento, del Corpus y demás
festividades religiosas. La misma danza en que acabaron después
autos, farsas y sainetes son remedo de las que en procesiones y aun
dentro de la iglesia se hacían y todavía se hacen.

Cañete, Trag. Josefina, XLVII: "Los elementos primordiales del


genuino drama español, que se encuentran reunidos desde el
principio en el teatro religioso, pasan al profano (á quien nada toca
en este punto inventar ni crear), y son, como si dijéramos, basa y
fundamento del carácter peculiarísimo que tanto lo diferencia en su
espíritu, en su estructura y en muchos de sus accidentes, lo mismo
del griego que del romano. Quien se atreva á ponerlo en duda, lea la
Tragedia Josefina, de Micael de Carvajal, compárela con la comedia
del propio asunto, atribuida nada menos que á Calderón, y lo verá
fácilmente comprobado. Y á fe que en este caso no está la ventaja
por el poeta del siglo xvii". No hubo secularización del teatro hecha
de un golpe. El elemento popular, humano, de tipos y costumbres,
siempre se mezcló en el drama religioso con el elemento cristiano.

Schack, Lit. y art. dram. en Esp., I, pág. 258: "El principal obstáculo
que hasta entonces (los Rey. Catól.) se opuso al desarrollo del teatro
fué el insondable abismo que separaba á la poesía popular de la
erudita. Una vez allanado, los poetas más instruidos no creyeron
degradarse acudiendo á los elementos populares y agradando al
mismo tiempo al pueblo y á las clases más ilustradas; y así, pues,
recorrieron la única senda que podía llevar el drama á su perfección,
libre del exclusivismo que lo embargara hasta entonces". "En el año
de 1492, dice el Catálogo Real de España, de Rodrigo Méndez Silva
(Madrid, 1656), comenzaron en Castilla las compañías á representar
públicamente comedias por Juan del Encina, poeta de gran donaire,
graciosidad y entretenimiento". Otro tanto viene á decir Agustín de
Rojas, Viaje entret.: "Y donde mas ha subido | de quilates la
comedia | ha sido donde mas tarde | se ha alcanzado el uso de ella,
| que es nuestra madre España, | porque en la dichosa era | de
aquellos gloriosos reyes | dignos de memoria eterna, | don Fernando
é Isabel | que ya con los santos reynan, | ...se le dio á nuestra
comedia (principio) | Juan de la Encina el primero...". Del año 1515
es el Compendio de Retórica, de Nebrija, donde habla del teatro:
"De prueba sirven hasta los actores escenicos, que añaden tanta
gracia a las mejores obras poéticas, que nos deleitan mucho mas
recitadas que leidas; y aun con cosas vulgarísimas nos agradan y
fuerzan á atenderlas, de suerte que se oiga con frecuencia en los
teatros lo que nunca puede figurar en una biblioteca". Huberto
Thomas de Lüttich en sus Anales de vita et rebus gestis Friderici II,
Francof., 1624, habla de dramas en Barcelona y Perpiñán el año
1501: "Erigiose un cielo artificial, en el cual se veia tambien el
infierno, muy horrible y pavoroso. Representaronse allí muchas
historias, que duraron cerca de cuatro horas...".

440. Misterio de Elche. Auto lírico religioso, música del siglo x, en


dos actos, representados todos los años en la iglesia parroquial de
Santa María de Elche los días 14 y 15 de agosto [con letra de F.
Pedrell y notas de A. Herrera], Madrid, 1906. Consúltense: F. Pedrell,
La Festa d'Elche ou le drame lyrique liturgique espagnol, París, 1906;
M. Milá y Fontanals, Obras completas, Barcelona, 1895, t. VI,
páginas 221 y 324-347.

441. Lucas Fernández fué natural de Salamanca, hijo


acaso de Antonio Fernández, camarero del Rey
Católico, Regidor de aquella ciudad y luego
sentenciado á muerte por haber tomado parte en las
Comunidades. Esta y otras sospechas de Cañete es
lo único que sabemos de este dramaturgo, fuera de
que vivió en la misma época que Juan del Enzina y
que se diferencia de él, como dice el mismo escritor,
como Calderón de Lope, pues "recuerda más la
varonil energía y profundo espíritu católico"; pero "en
ambos se ve mayor inclinación á estudiar al hombre
en el hombre mismo, que á soñarlo é idealizarlo á su
modo, como lo hicieron casi siempre los dramáticos
del siglo xvii". De hecho, entrambos son muchísimo
más naturales y realistas y más allegados al pueblo
en el lenguaje y estilo. Tengo para mí que el teatro
primitivo de estos autores, continuado después por
Lope de Rueda, acaba en Cervantes; desde allí se
desvía por el camino de la afectación, de la
metafísica, de la bambolla, del enredo rebuscado, de
las sutilezas amatorias, de las exageraciones del
honor, como se desvía del habla popular en la
palabrería huera, falseada y gongorina. La estructura
de las piezas de Lucas Fernández es tan sencilla
como natural: la pintura del amor, puntual y honda.
No hay enredo de sucesos, peripecias teatrales,
lances inesperados, contrastes preparados, nada de
rebuscado. Pero entretener con las pasiones
comunes y escenas de la vida cotidiana, expuestas
en toda su desnudez, sin aparatos ni tramoyas, es
harto más admirable y muestra de que las églogas y
farsas son vivos retratos sacados de la naturaleza.
Domina en ellas lo cómico, jocoso y alegre, el
donaire; el diálogo es acabado; la versificación,
suelta y española, de ocho sílabas, á menudo con pie
quebrado; el habla, la propia de la gente baja que
sale á las tablas y de un color y naturalidad
maravillosa. El Auto de la Pasión raya en tragedia, ó
si se quiere en sentidísima elegía dramática; las
demás son farsas, églogas ó comedias, tres profanas
y dos medio profanas y medio religiosas.
442. Gallardo fué quien dió á conocer á Lucas Fernández por el
ejemplar de las Farsas y Églogas al modo y estilo pastoril y
castellano Fechas por Lucas fernandez Salmantino, Salamanca,
1514, ejemplar que paró en la colección del Duque de Osuna y
reimprimió Cañete, Madrid, 1867. Consúltese: A. Morel-Fatio, Notes
sur la langue des Farsas y églogas de L. F., en Romania (1881), t. X,
págs. 239-244.

443. Año 1492. Gonzalo Ayora, cronista de la Reina


Católica, nació en Córdoba en los últimos años del
reinado de Enrique IV. Pasa por reformador de la
Infantería española, en la que introdujo la instrucción
táctica de la Infantería suiza y alemana, recibiendo
en recompensa el nombramiento de capitán de la
guardia de los Reyes Católicos. En 1509 asistió á la
expedición de Orán y Mazalquivir como coronel de
Infantería, el primero que llevó en España este título.
Inclinóse, muerta la Reina, al partido de Felipe el
Hermoso, luego al de las Comunidades, siendo uno
de los que alcanzaron perdón después de Villalar.
Escribió: Relación de la conquista de Orán. Historia
de la reina Isabel. Relación de todo lo sucedido en
las Comunidades de Castilla. Epílogo de algunas
cosas dignas de memoria pertenecientes a la illustre
e muy magnifica e muy leal ciudad de Avila,
Salamanca, 1519; Madrid, 1851. De Natura hominis
ó De dignoscendis hominibus, traducción de la obra
castellana de Pedro de Montes, é impresa en 1492.
Del mismo autor tradujo al latín De Conceptione
Immaculata, Milán, 1492. El mismo año y en el
mismo lugar salió traducida al latín la Relación de la
Conquista de Orán. Muchas historias dignas de estar
sabidas, que estaban ocultas, Salamanca, 1519.
Cartas desde el Rosellón al Rey Católico, publicadas
en 1794. Excelente escritor de estilo natural.
444. Año 1492. Cristóbal Colón (1451?-1506) inmortalizó la fecha de
1492 con el descubrimiento del Nuevo Mundo. Según novísimas
investigaciones, parece fué natural de Galicia. Son notables sus
cartas, elocuentes, bien que descuidadas en la forma. Raccolta di
Documenti e Studi publicati della R. Comissione Colombiana, Roma,
1892-1896, 6 vols.; Autógrafos de C. Colón y papeles de América,
ed. Duquesa de Alba, Madrid, 1892. Consúltense: H. Harrisse, C.
Colomb., son origine, sa vie, sa famille, etc., París, 1885, 2 vols.; Η.
Harrisse, C. Colomb devant l'histoire, París, 1892; J. B. Thacher,
Christopher Columbus: his life, his work, his remains, etc., New York,
1903-1904, 3 vols.; H. Vignaud, La lettre et la carte de Toscanelli sur
la route des Indes par l'Ouest, etc., París, 1901; H. Vignaud, A
Critical study of the various dates assigned to the birth of
Christopher Columbus, London, 1903; H. Vignaud, Études critiques
sur la vie de Colomb avant ses découvertes, París, 1905-1912, 2
vols.; Celso Gracián de la Riega, Colón, Madrid, 1913.

445. En 1492 Domingo Marcos Durán publicó Ars cantus plani,


composita brevissimo compendio, Lux Bella nuncupata, Sevilla. Está
en castellano; otra reimpresión en Sevilla, 1518. Comiença una Glosa
del bachiller Domingo Marcos Duran, fijo legitimo de Juan Marcos é
de Isabel Fernandes, cuya naturaleza es la villa de Alconetar, sobre
el arte de canto llano, compuesta por el mesmo, llamada Lux Bella,
Salamanca, 1498; Sevilla, 1518. Sumula de canto de órgano:
contrapunto y composición vocal y instrumental: práctica y
speculativa, de fines del siglo xv ó primeros del xvi.

En 1492 don Bernardino de Carvajal († 1523), de Cáceres, cardenal,


publicó De eligendo Summo Pontifice Romano. Oratio ad Sixtum iv et
Cardinalium Collegium, 1584. Otras varias oraciones y sermones, en
Nic. Antonio.

En 1492 Ferrand Mexía, veynte quatro de Jahen, publicó el Libro


intitulado Nobiliario, Sevilla. (Dudosa la ed. de 1485; núm. 368).

En 1492 se publicó El transito de Sant Jhéronimo en romançe,


Zaragoza (Bibliogr. zarag. del siglo xv).
En 1492 se publicó el Floreto de San Francisco (Bibl. Nac.).

446. Año 1493. Entre los que siguieron la escuela


dantesca sobresale en este tiempo el sevillano Juan
de Padilla (1468-1522?), monje de la Cartuja de
Santa María de las Cuevas, llamado El Cartujano,
nombre que usó en sus escritos. En el Retablo se
arrepiente de los versos profanos de su mocedad, y
de hecho en 1493 publicó en Sevilla un poema de
150 coplas en arte mayor, con el título de Laberinto
del Marqués de Cádiz, que se ha perdido.
Consérvanse el Retablo de la vida de Cristo (1516) y
Los doce triunfos de los doce Apóstoles (1521): el
primero muy popular y reimpreso, el segundo muy
olvidado, pero que "ninguna nación en 1521 puede
presentar tan buen discípulo de Dante como es el
Cartujano" (Luis Usoz, Canc. Baena, pról.). Ambos en
estancias de arte mayor. El Retablo es poema más
piadoso que literario, puramente narrativo, sin
simbolismo y sin las mitologías y erudiciones de
Mena, como lo dice el mismo autor. Las "cuatro
tablas corresponden á los cuatro Evangelios"; á los
cuales se atiene. El estilo es llano, castizo y expresivo
á veces. Los doce triunfos, por el contrario,
enteramente dantesco, es alegórico, describiendo
"los hechos maravillosos de los doce Apóstoles, los
quales son divididos por los doce signos del
Zodiaco... por el sol se entiende Cristo... Santiago
sobre el signo de Leon... e describe en diversos
lugares discurriendo por la obra mucho de
Cosmografía". Hay además un viaje al infierno y al
purgatorio, en que San Pablo guía al poeta, donde
está lo mejor de la obra, siguiendo á Dante hasta
traducirle á veces. Pedantesco en la cosmografía y
astrología, escabroso y desigual en el estilo y
lenguaje, tomó lo bueno que tiene, esto es, la
plasticidad y realismo de las descripciones, de su
dechado. Mezcla estúpidos latinismos, como Mena, á
idiotismos populares, que dan brío á ciertas pinturas.
La escuela alegórica iba ya de capa caída y el arte
erudito ya no embaucaba á los que iban saboreando
el popular y verdadero, que estaba naciendo.

Imitador de Padilla fué el franciscano que escribió el


poema dantesco Libro de la celestial Jerarquía y
infernal Laberinto, metrificado en verso heroico
grave, de escaso mérito.
447. Al fin del Retablo de la vida de Cristo pone su nombre en
acrósticos: "Don religioso la regla me puso, | Jurado con voto
canónico puro; | Ante su vista me halló seguro | De la tormenta del
mundo confuso. | Parece por ende mi nombre recluso, | Digno lector,
si lo vas inquiriendo; | Llama, si quieres, mi nombre diciendo: |
Monje Cartujo la obra compuso". El Retablo se publicó en Sevilla,
1516, 1518; Alcalá, 1529; Toledo, 1565; Sevilla, 1530; Toledo, 1565
y 1570; Alcalá, 1577; Valladolid, 1582; Toledo, 1585, 1593; Alcalá,
1593, 1605. Los doce triunfos, en Sevilla, 1518; ibid., 1521; la citada
por La Serna Santander de 1529; Londres, 1841, por el canónigo
Miguel del Riego, emigrado allá, hermano del famoso don Rafael.

448. Juan de Padilla, Los doze Triunfos de los doze Apóstoles y


Retablo de la Vida de Cristo, ed. R. Foulché-Delbosc, Cancionero
castellano del siglo xv, Nueva Bibl. de Aut. Esp., t. XIX; ed. M. del
Riego, en Colección de obras poéticas españolas, Londres, 1842, t. I.
Consúltese: M. Menéndez y Pelayo, Antología de poetas líricos, etc.,
t. VI, págs. ccxxxix-cclxiii; B. Sanvisenti, I primi Influssi di Dante, del
Petrarca e del Boccaccio sulla Letteratura Spagnuola, Milano, 1902,
págs. 224-239.

449. En 1493 se publicó el Exemplario contra los engaños y peligros


del mundo, de Juan de Capua (siglo xiii), traducido en castellano,
Zaragoza; Burgos, 1498; Zaragoza, 1509, 1515, 1531; Sevilla, 1534,
1537, 1541; Zaragoza, 1547. Es la traducción del famoso libro Calila
e Dimna ó fábulas de Bildpay, hecha de la versión hebraica en la
segunda mitad del siglo xiii por Juan de Capua, puesta en latín, con
el título de Directorium vitae humanae. En la edición de 1498, por lo
mismo, se lee: "el cual originariamente inventado en la India y de
aquella lengua fué transferido en la de los persas, y donde lo
pusieron en las suyas los árabes y postreramente lo recibió la
hebraica. É por ende ha sido nuestro proposito en nuestros dias
facerlo latino". De esta latina proceden las traducciones de Europa,
menos la nuestra antigua castellana. En esta de Zaragoza tuvieron
presente los impresores, que eran alemanes, la traducción alemana
del 1445 ó 1496, Das Buch der Weisheit (edic. Stuttgart, 1860).
(Véanse nuestros núms. 187-189).

En 1493, Por industria de Pablo Hurus, se tradujo é imprimió El


Salustio Cathilinario e Jugurtha en Romançe, Zaragoza; Valladolid.
1500 y 1519; Logroño, 1529; Medina, 1548; Amberes, 1554.
(Bibliogr. zarag. del siglo xv). Su autor, Francisco Vidal de Noya,
maestro del Rey Católico.
En 1493 el doctor Alonso Ortiz, canónigo de Toledo, publicó Los
tratados del Dr. Alonso Ortiz. Tratado de la herida del rey. Tratado
consolatorio á la princesa de Portugal. Ítem, una oración á los reyes
en latín y en romance. Ítem dos cartas mensajeras á los reyes. Una
que envió la ciodad: la otra el cabildo de la iglesia de Toledo. Tratado
contra la carta del Protonotario Lucena, Sevilla.

En 1493 Andrés de Li, de Zaragoza, publicó Suma de Paciencia,


Zaragoza; ibid., 1505. Repertorio de los tiempos, Zaragoza, 1495.
Repertorio de los tiempos, Burgos, 1531; Zaragoza, 1534. Tesoro de
la pasión de Nuestro Señor, hecho por Andrés Deli (sic), de
Zaragoza, Sevilla, 1517. Thesoro de la passion sacratissima de
nuestro redemptor, por Andrés de Li, Zaragoza, 1494 (Bibliogr.
zarag. del siglo xv).

450. En 1494 fray Vicente de Burgos, franciscano, tradujo del


franciscano inglés fray Bartolomé de Inglaterra, Anglico ó Glaunvilla,
El libro de proprietatibus rerum, Tholosa; Toledo, 1529.

En 1494 Julián Gutiérrez de Toledo, médico de los Reyes Católicos, De


potu in lapidis praeservatione. Cura de la piedra y dolor de la hijada
y cólico renal, 1498; fué el primero que dió importancia á los baños
minerales artificiales.

En 1494 se publicó la versión del tratado De regimine Principum


(Regimiento de los Príncipes), de Gil de Roma, Sevilla.

En 1494 Gonzalo García publicó Breve muy provechosa doctrina de lo


que debe saber todo christiano, Zaragoza.

En 1494 publicóse el Johan bocacio de las mujeres illustres en


romance, Çaragoça; reimprimióse en Sevilla, 1528.

En 1494 se publicó, traducido del latín, el Compendio de la salud


humana, Zaragoza. (Bibliogr. zarag. del siglo xv). Pamplona, 1495
(Gallardo).
En 1494 don Rodrigo Basurto publicó De fabricatione unius tabulae
generalis ad omnes partes terrae, et usu eius ad facilem Astrolabii
compositionem. Utile ac necessarium additamentum Roderici a
Basurto ad Kalendarium Joannis Montis de Regis Germani, de
conficiendis horologiis aut instrumentis in eo contentis.

451. En 1495, probablemente, se publicó el Breue


tractado... de Grimalte y Gradissa, de Juan de Flores,
que es una continuación de la Fiammetta de
Boccaccio, y hacia la misma época, el Tractado...
donde se contiene el triste fin de los amores de
Grisel y Mirabella, imitación del Filocolo; tradújose en
cuatro idiomas y dejó huellas en el Orlando furioso
del Ariosto, en el Women pleas'd de Fletcher (1619 ó
1620), en La Ley executada de Lope (1633) y en Le
Prince déguisé de Georges de Scudéry (1636).
452. Después de esta edición, sin lugar ni fecha, las hay de Grisel y
Mirabella, de Sevilla, 1524; Toledo, 1526; Sevilla, 1529, 1533.
Tradújola al italiano Lelio, Aletiphilo en 1521 con el título de Historia
de Aurelio e Isabella, edición que se imprimió seis veces y sirvió de
texto á la francesa de Gil Corrozet, 1530, y desde 1556 hubo
ediciones bilingües en castellano y francés, Amberes, 1556;
Bruselas, 1596; luego en castellano, italiano, francés é inglés,
Bruselas, 1608.

453. Año 1495. Martín Martínez de Ampiés, natural de Sos, fué de la


escuela dantesca, y publicó, antes que el Cartujano sus obras, el
Triunfo de María en coplas castellanas, Zaragoza, 1495, en octavas
de arte mayor con glosas á estilo de las de Juan de Mena. Más
conocido fué como traductor del Viaje de la Tierra Santa, de
Bernardo de Breidembach, deán de Maguncia, impreso en Zaragoza,
1498; viaje que M. Pelayo dice que "corría traducido al castellano
desde 1483" (Oríg. novel., t. I, pág. cdx). También es suyo el Libro
del antichristo, Zaragoza, 1495; Burgos, 1497. Tradujo del lemosín
antiguo (Latassa, Bibl. ant., t. II, pág. 343) el Libro de la Menescalia
composto por el noble mossen Manuel Díez, mayordomo de Alfonso
V de Aragón, dándole por título: Libro de albeyteria compuesto e
hecho por el noble don Manuel diaz criado mayordomo del muy
poderoso rey don Alonso de Aragon, Zaragoza, 1495, 1499;
Valladolid, 1500; Zaragoza, 1506; Toledo, 1507, 1511; Barcelona,
1515, 1522; Burgos, 1530; Zaragoza, 1545; Toledo, 1571.

En 1495 el Bachiller Juan Alfonso de Logroño, canónigo de Sevilla,


publicó: Comiença la primera parte de las contemplaciones sobre el
rosario de nuestra Soberana Señora Virgen y Madre de Dios Sancta
María: Ordenadas por don Gaspar Gozrio de Novaria, monje de
Cartuxa: Ε tornadas en vulgar castellano, Sevilla; ibid., 1497.

En 1495 se publicó el Manual de la Sancta Fe católica, Sevilla.

En 1495 Juan de Miravet imprimió De Grammatica; nominalista


acérrimo y de los gramáticos bárbaros, que dijo Nebrija.

En 1495 Guillermo Despuig (De Podio) publicó Ars Musicorum.

En 1495 se publicó Espejo de Medicina y Cirugía, conveniente á la


salud, anónimo.

En 1495 se publicó Caída de principes, de Juan Boccaccio, Sevilla.

En 1495 tradújose por un anónimo el libro Lilii Medicinae Bernardi


Gordoni, más otros cuatro tratados, Sevilla, 1495, y La cirugia de
maestre lanfranco mediolanense, Sevilla, 1495.

454. En 1496 se publicó en Sevilla el famoso libro de


caballerías llamado Amadís, y en 1508, en Zaragoza,
Los quatro libros del virtuoso cauallero Amadis de
Gaula. Los tres primeros se dice allí que estaban
"corregidos y emendados" por el regidor de Medina
del Campo Garci Rodrígez de Montalvo, autor del libro
cuarto añadido. Los tres primeros están corregidos
de un Amadís muy antiguo, de origen probablemente
galaico-portugués, y el asunto caballeresco, con su
ideal y lo maravilloso en personajes y aventuras,
todo vino, por Galicia y Portugal, de Francia,
probablemente durante el siglo xiii, época en que
debió de hacerse el arreglo del primitivo Amadís
castellano. Es "el mejor de todos los libros que de
este género se han compuesto", como dijo
Cervantes. Son delicadísimos los amores de Amadís y
Oriana.

El estilo es rodado y suave, naturalmente elegante, y


muy castizo el lenguaje. La novela caballeresca
entró, pues, en España el siglo xiii; pero sólo
tenemos como la más antigua, mezclada con
moralidades y llena del realismo castellano, la
Historia del Cavallero Cifar; después Tirante el
Blanco, en catalán (1490), traducido al castellano en
1511; El Baladro del sabio Merlín (1498), la Historia
de los nobles caualleros Oliueros de Castilla y Artús
dalgarbe (1499), Tristán de Leonís (1501), las dos
últimas traducidas del francés. La mayor parte de los
libros de caballerías, que tanto se leyeron en España
y con los cuales acabó Don Quijote, son
exageraciones del Amadís y andan en torno de él,
como los poemas cíclicos en torno de la Ilíada.
455. De un Amadís se habla ya en la traducción castellana del
tratado De regimine principum, de Egido Colonna, hecha hacia el
1350 por Johan García de Castrogeriz. López de Ayala, nacido en
1332, cuenta haber leído el Amadís (Rimado, 162). Pero Ferrús
añade que constaba de tres libros en su tiempo. En Portugal se
hablaba de él á mediados del siglo xv, atribuyéndose á un tal Vasco
de Lobeira, armado caballero en 1385, de manera que no pudo ser
autor del Amadís aludido por el traductor de Egidio Colonna en 1350.
Miguel Leitão Ferreira, hijo del poeta portugués Antonio Ferreira
(1528-1569), dijo en 1598 que el Amadís de Lobeira se hallaba en su
manuscrito original en el archivo de los Duques de Aveiro; si así fué,
desapareció de allí antes de 1726. El traductor francés del Amadís,
Nicolás d'Herberay (1540-1544), escribió que la obra primitiva era
francesa y que de ella había "trouvé encore quelque reste d'un vieil
livre escrit à la main en langage Picard", suponiendo que ésta fué la
obra que los españoles habían traducido libremente al castellano.
Últimamente, los eruditos se vuelven en parte otra vez hacia
Portugal, ya por el pasaje del Amadís (I, c. 40), donde se dice que
don Alfonso de Portugal (no se sabe si el infante fallecido en 1312 ó
el que fué rey en 1325) mandólo poner "de otra guisa", ya por el
número 230 del Canzoniere Portoghese Colocci-Brancuti, que es una
poesía de João de Lobeira (el cual floreció hacia 1258-1285), y
parece ser el modelo del villancico cantado por Leonoreta y sus
damas en el Amadís (II, c. ii). Algunos críticos reponen á esto último
que pudo hacer João de Lobeira en el siglo xiii una reproducción
portuguesa, sin ser el primer autor del Amadís, ó que el villancico en
el texto castellano pudo interpolarse más tarde, pues siempre queda
en pie el que en España fué popular el Amadís desde mediado el
siglo xiv, y en Portugal sólo sabemos que se hable de él un siglo
después, á mediados del siglo xv. Á la verdad, yo creo que aquí, y
hasta ahora, los portugueses llevan la mejor parte, pues sus
argumentos son hechos positivos y los de los españoles son
puramente de posibilidad y negativos, de si podría ser posterior la
redacción portuguesa y de si la castellana podría haberse
interpolado. Tengo para mí, además, que la novela vino á España
por Galicia ó Portugal. Trátase, efectivamente, de una época, del
siglo xiii, en que Portugal y Galicia eran intermediarias de la
literatura que llegaba á España de Francia y demás tierras del Norte,
y trátase de un asunto que no es originariamente castellano. Que las
leyendas caballerescas todas vinieran por Galicia y Portugal y que
cuadraran mucho más á aquellas gentes que á la gente castellana es
cosa que se cae de su peso. El ideal caballeresco se injertó en
Castilla; no es propio de ella. El caballero español, y lo eran cuantos
españoles podían acudir con caballo al llamado de su rey, tenía otro
espíritu, el que hallamos en las gestas y romances y en las crónicas,
como ya vimos. Sólo el refinamiento, que fué introduciendo en la
corte castellana cabalmente la corte portuguesa y sus trovadores
galaico-portugueses desde los tiempos de Alfonso VI, Alfonso VII,
Alfonso X, y llegó á colmo en el reinado de don Juan II, pudo
modificar el espíritu caballeresco castellano, adamándolo tan
blandenguemente, hasta originar la orden de los caballeros de la
Banda, cuyo ideal no es de abolengo castellano, el cual jamás tuvo á
la dama por su dios, como lo tuvo el espíritu de la lírica provenzal y
el de los libros de caballería, y había ya entrado de lleno en España
en tiempo del Arcipreste de Hita, á mediados casi del siglo xiv.
Tampoco era propio de España el salir á defender menesterosas y
desfacer entuertos, como lo era en las tierras donde señoreó el
feudalismo. El asunto del Amadís procede de los libros novelescos de
la Tabla Redonda. El que lo redactó en castellano pudo tomarlo
derechamente de algún texto de novela artúrica francés ó
portugués; yo creo más bien que portugués. Todos éstos son
problemas por resolver. El héroe, Amadís, no es natural de España,
sino de Gaula, que, sin duda, es el país de Gales, de donde el rey
Artús y la Tabla Redonda. Y ya lo hice notar en mi comento á la
copla 1278 del libro de Hita:
"Estavan tres fijosdalgo á otra noble tabla,
Mucho estavan llegados, uno á otro non fabla,
Non se alcançarian con las vigas de Gaula,
Non cabríe entre ellos un cabello de Paula".

Alude á los maderos largos, como los que se traían y se traen del
Norte, de Gales, y ocurriósele al Arcipreste lo de Gaula, por la voz
tabla, lo que indica que tenía la imaginación en la Tabla Redonda y
en el Amadís de Gaula, y por eso mete á Paula, por una dama
cualquiera. El Arcipreste compuso su libro el año 1343, como vimos,
de modo que ya para entonces era conocidísimo en España el
Amadís, no menos que el Tristán, del que habla en la copla 1703.
Pero ya en la corte de Alfonso X estaban de moda los "cantares de
Cornualla", y en el Amadís se ve la inspiración y aun la imitación de
las novelas del ciclo bretón, sobre todo del Tristán y de Lanzarote.
Bristoya es Bristol, Vindilisora es Windsor, aunque se dude de que
Bangil sea Bangor y Gravisanda, Gavesend. El asunto son los amores
de Amadís, hijo natural de Perión y de Elisena, con Oriana, hija de
Lisuarte, rey de Bretaña. Estos amoríos no son de cepa castellana, ni
mucho menos los encantamientos, apariciones, hadas, enanos,
gigantes, endriagos y batallas estupendas. La escena de hablarse
por la ventana viene del Lancelot francés. Sólo es castellano el
respeto á los reyes, las moralidades y cierto realismo de ejecución,
que templa el idealismo y maravillosismo, elementos nada
castellanos, y que son el alma de la novela caballeresca. La
delicadeza de los amores de Amadís y Oriana es lo mejor del libro.

456. Μ. Pelayo, Oríg. novel., t. I, pág. ccxxiii: "Es la primera novela


moderna, el primer ejemplo de narración larga en prosa, concebida y
ejecutada como tal, puesto que las del ciclo bretón son poemas
traducidos en prosa, amplificados y degenerados..., es patente la
unidad orgánica..., es obra de arte personal y aun de raro y maduro
artificio..., fué escrito de primera intención para la lectura..., esta
prosa no es poética..., sino muy retórica y pulida..., con él empieza
un nuevo género de caballerías. El ideal de la Tabla Redonda
aparece allí refinado, purificado y ennoblecido. Sin el vértigo
amoroso de Tristán, sin la adúltera pasión de Lanzarote, sin el
equívoco misticismo de los héroes del Santo Graal, Amadís es el tipo
del perfecto caballero, el espejo del valor y de la cortesía, el dechado
de vasallos leales y de finos y constantes amadores, el escudo y
amparo de los débiles y menesterosos, el brazo armado puesto al
servicio del orden moral y de la justicia. Sus ligeras flaquezas le
declaran humano, pero no empañan el resplandor de sus admirables
virtudes. Es piadoso sin mojigatería, enamorado sin melindre,
aunque un poco llorón; valiente sin crueldad ni jactancia, comedido
y discreto siempre, fiel é inquebrantable en la amistad y en el amor.
Á las cualidades de los personajes heroicos de gesta, junta una
ternura de corazón, una delicadeza de sentir, una condición afable y
humana, que es rasgo enteramente moderno. Por eso su libro
adquirió un valor didáctico y social tan grande: fué el doctrinal del
cumplido caballero, la epopeya de la fidelidad amorosa, el código del
honor, que disciplinó muchas generaciones..., fué para todo el siglo
xvi el manual del buen tono, el oráculo de la elegante conversación,
el repertorio de las buenas maneras y de los discursos galantes...
Por carecer la obra de toda base histórica, apenas entraban en ella
los grandes intereses humanos, las grandes y serias realidades de la
vida, ó sólo aparecían como envueltos en la penumbra de un
sueño...; sus empresas llevan el sello de lo quimérico..., forma de
decadencia..., la falsa idealización de la mujer, convertida en ídolo
deleznable de un culto sacrílego é imposible, la extravagante
esclavitud amorosa, cierta afeminación". Como á "único en su arte"
le salvó Cervantes de las llamas. Sobre la boga del Amadís en Italia,
Francia, etc., véase M. Pelayo (ibid., ccxxxix). Hasta doce Libros de
Amadises fueron componiéndose y traduciéndose y multiplicándose
todos en todas las naciones de Europa, donde, durante el siglo xvi,
estuvo de moda este linaje de novela, acabando con todos ellos el
Quijote.

457. Bibliografía del Amadís: Sevilla, 1496; Zaragoza, 1508;


Salamanca, 1510; Sevilla, 1510, 1511; Salamanca, 1519; Zaragoza,
1521; Toledo, 1524; Sevilla, 1526, 1531; Venecia, 1533; Sevilla,
1535, 1539; Medina, 1545; Sevilla, 1547; Salamanca, 1547; Lovaina,
1551; Sevilla, 1552; Burgos, 1563; Sevilla, 1565; Salamanca, 1574,
1575; Sevilla, 1575; Salamanca, 1575, 1576; Alcalá, 1580; Sevilla,
1586; Burgos, 1587; Madrid, 1838; Barcelona, 1847; Madrid, 1857.
(Revue Hisp., t. XXI, página 155). En la edición de Roma de 1519 se
llama el corrector de los tres primeros libros y autor del cuarto Garci
Ordóñez de Montalvo; en Las Sergas de Esplandian, Roma, 1525,
García Gutiérrez de Montalvo: es el primer problema á dilucidar.

458. Amadís de Gaula. Ed. F. de Gayangos, Bibl. de Aut. Esp., t. XL.


Consúltense: G. S. Williams, The "Almadís" Question, en Revue
Hispanique (1909), t. XXI, págs. 1-167 [con excelente bibliografía];
L. Braunfels, Kritischer Versuch über den Roman Amadis von Gallien,
Leipzig, 1876; G. Baist, Grundriss der romanischen Philologie, t. II, 2
Abteilung, págs. 440-442; Th. Braga, Historia das novellas
portuguezas de cavalleria (Formação do Amadis de Gaula), Porto,
1873; Th. Braga, Curso de Historia da Litteratura portugueza, Lisboa,
1885, págs. 103-107; Th. Braga, Questões de litteratura e arte
portuguezas, Lisboa [1881], págs. 98-122; señora C. Michaëlis de
Vasconcellos, Cancioneiro de Ajuda, Halle, 1904, t. II, págs. 511-
525; señora C. Michaëlis de Vasconcellos, Etwas Neues zur Amadis-
Frage, en Zeitschrift für romanische Philologie (1880), t. IV, págs.
347-351; señora C. Michaëlis de Vasconcellos, Grundriss der
romanischen Philologie, t. II, 2 Abteilung, págs. 216-226; R.
Foulché-Delbosc, La plus ancienne mention d'Amadis, en Revue
Hispanique (1906), t. XV, págs. 607-610; M. Menéndez y Pelayo,
Orígenes de la novela, Nueva Bibl. de Aut. Esp., t. I, páginas cxcix-
ccxlviii; E. Baret, De l'Amadis de Gaule et de son influence sur les

mœurs et la littérature au xvie et au xviie siècle, 2.ª ed., París, 1873;


E. Bourciez, Les mœurs polies et la littérature de cour sous Henri II,
París, 1886, págs. 60-100; L. de Monge, Études morales et
littéraires, Bruxelles-París, 1889, t. II, págs. 255-275; M. Pfeiffer,
Amadisstudien, Mainz, 1905; H. Vaganay, Amadis en français (Livres
I-XII). Essai de bibliographie et d'iconographie, Firenze, 1906
(Extracto de La Bibliofilia, 1903-1905); H. Vaganay, Les romans de
chevalerie italiens d'inspiration espagnole, en La Bibliofilia (Firenze,
1911), t. xii, páginas 112-125, 205-211, 280-300, 390-399; (1912),
t. ΧΙII, págs. 124-133, 200-215, 278-292, 394-411; (1913), t. XIV,
págs. 87-94 y 157-168 (se continuará); H. Thomas, The Romance of
Amadis of Gaul, London, 1912.

459. En 1510 imprimió también Montalvo Las Sergas del virtuoso


cauallero Esplandian, quinto libro de Amadís; Sevilla. Sergas ó
sargas eran tapices en que se representaban escenas históricas, y de
aquí tomó Montalvo la palabra, como quien dice Cuadros ó lienzos
de los hechos de Esplandian. Se imprimieron: Sevilla, 1510, 1521,
1526; Burgos, 1526; Sevilla, 1542; Zaragoza, 1585; Burgos, 1587;
Zaragoza, 1587; Alcalá, 1588. Las Sergas del muy esforzado
caballero Esplandian, etc., Bibl. de Aut. Esp., t. XL. Consúltese: R.
Foulché-Delbosc, Sergas, en Revue Hispanique (1910), t. XXIII,
págs. 591-593.

460. La novela caballeresca fué planta exótica en España, porque su


idealismo era contrario al realismo castizo, manifiesto en toda
nuestra literatura. "Nació, dice M. Pelayo, de las entrañas de la Edad
Media, y no fué más que una prolongación ó degeneración de la
poesía épica, que tuvo su foco principal en la Francia del Norte, y de
ella irradió, no sólo al Centro y al Mediodía de Europa, sino á sus
confines septentrionales: á Alemania, á Inglaterra y á Escandinavia,
lo mismo que á España y á Italia. Pero esta poesía, aunque francesa
por la lengua, era germánica unas veces y otras céltica por sus
orígenes, y más que la poesía particular de una nación cuya unidad
no estaba hecha, fué la poesía general del Occidente cristiano
durante los siglos xii y xiii...; tuvo por primer instrumento la forma
métrica, asonantada al principio y rimada después; pero en los
tiempos de su decadencia, desde la segunda mitad del siglo xiii y
mucho más en el xiv y en el xv, cuando el instinto creador había
huído de los juglares, cuando la amplificación verbosa y la mala
retórica habían suplantado á la poesía, cuando las narraciones no se
componían ya para ser cantadas, sino para ser leídas, cuando se
había agrandado en demasía el público sin mejorarse la calidad de
él, y á la vez que la aristocracia militar, avezada ya á los
refinamientos cortesanos y á los artificios del lirismo trovadoresco y
de las escuelas alegóricas, volvía desdeñosamente la espalda á las
gestas nacionales, comenzaba la burguesía á apoderarse de los
antiguos relatos, imprimiéndoles un sello vulgar y pedestre; la Musa
de la epopeya se vió forzada á descender de su trono, calzó el
humilde zueco de la prosa y entonces nacieron los libros de
caballerías propiamente dichos. No hay ninguno entre los más
antiguos, ni del ciclo carolingio, ni del ciclo bretón, ni de los
secundarios, ni de las novelas aisladas, ni de las que toman asuntos
de la antigüedad ó desarrollan temas orientales y bizantinos, que no
sea transformación de algún poema existente ó perdido, pero cuya
existencia consta de una manera irrecusable". En cambio, la epopeya
castellana, por carecer de lo maravilloso y fantástico, por ser sincera
pintura de la realidad de la vida, siguió viviendo entre el pueblo
hasta que los eruditos recogieron sus romances, y por ser tan
verídica é histórica aprovecháronse de ellos mucho antes, desde el
siglo xiii, los mismos eruditos, al componer sus Crónicas. Así el
idealismo de la epopeya caballeresca europea la hizo degenerar en
novela prosaica, mientras que el realismo de la epopeya heroica
castellana alimentó las Crónicas, venció al mester de clerezia y
triunfó hasta entre los eruditos, llegando á escribirse sus romances á
fines del siglo xv y originando los romances eruditos de los siglos xvi
y xvii, y sigue siendo hasta hoy expresión de la poesía épica, tanto
erudita como popular. Sólo un ciclo de los caballerescos fué aceptado
por la musa popular castellana, el carolingio, porque en él vió el
pueblo una rama de la propia epopeya nacional. Roncesvalles y
Bernardo del Carpio son tan españoles como el Cid y don Rodrigo.
"El grado de elaboración que en ellos (los romances de este ciclo)
alcanza la materia épica, la gran distancia á que se encuentran de
sus originales ultrapirenaicos, hasta el punto de ser difícil
reconocerlos, hace evidente que descansan en una poesía anterior,
en verdaderos Cantares de Gesta, compuestos libremente en España
sobre temas traídos por los juglares franceses ó provenzales". Así M.
Pelayo, el cual cree que la creación popular de Bernardo del Carpio
fué como una protesta contra el seudo Turpin, escrito en Galicia por
un francés y aceptado por los amigos de los cluniacenses, mientras
que "las fabulosas conquistas de Carlomagno en España encontraron
muchos incrédulos y el sentimiento nacional herido, no sólo protestó
por boca del monje de Silos y del arzobispo don Rodrigo, sino que,
invadiendo los campos de la épica nacional, españolizó la leyenda en
términos tales, que más que imitación ó continuación fué protesta
viva contra todo invasor extraño. Un personaje enteramente
fabuloso, pero en cuya fisonomía pueden encontrarse rasgos de
otros personajes históricos, apareció, primero como sobrino de
Carlomagno y asociado á sus triunfos, después como sobrino del rey
Casto y como único vencedor de Roncesvalles. La creación de
Bernardo del Carpio se levanta en algún modo sobre el carácter local
de la epopeya castellana, y la engrandece en el sentido de la patria
española, haciendo combatir mezclados, bajo la enseña de Bernardo,
á castellanos, navarros y leoneses, á infieles y cristianos
juntamente". La Crónica general, de Alfonso X, recogió, ya
prosificado, un cantar del ciclo carolingio, la leyenda de Maynete y
Galiana, que se duda sea francesa ó española, pero que, de todas
suertes, en España tomó forma tal, que difiere de la del resto de
Europa, poética y sin extravagancias maravillosas, y M. Pelayo la
cree española (Oríg. novel., t. I. página cxxxiii). La mayor parte de
los libros de caballerías extranjeros se tradujeron en el siglo xv, pero
hay algunos anteriores. Las más antiguas ficciones de este género
están en la Gran Conquista de Ultramar, sobre las Cruzadas;
después vienen las que Amador de los Ríos halló en un códice de El
Escorial: el Noble Cuento del emperador Carlos Maynes, la Estoria
del rey Guillermo de Inglaterra, el Cuento muy fermoso del
emperador Ottas et de la infanta Florencia su fija et del buen
caballero Esmere, el Fermoso cuento de una sancta emperatriz que
ovo en Roma et de su castidat y la Estoria del cavallero Plácidas, que
fué después cristiano e ovo nombre Eustacio. La primera y última
han sido publicadas é ilustradas por Herman Knust, Dos obras
didácticas, Socied. Biblióf. Españ., Madrid, 1898. La Estoria del rey
Guillermo no está traducida del poema francés de Cristián (siglo xii),
sino de otro texto. Otra versión del siglo xvi ha reimpreso Knust, en
el tomo acabado de citar, tomado de la edición de Toledo, 1526:
Chronica del rey don Guillermo, rey de Inglaterra e duque de
Angeos: e de la reina doña Berta su muger. Es libro de caballerías á
lo divino, agiográfico, así como la Estoria del caballero Plácidas,
traducción de la leyenda de San Eustaquio mencionada por San Juan
Damasceno, inserta en el Menologio Griego, del emperador Basilio x,
y divulgada en Occidente por el Speculum Historiale, de Vicente de
Beauvais, etc. Mussafia ha editado el Fermoso cuento de una sancta
emperatriz, Viena, 1867 (Sitzungsberichte der Κ. K. Akad. der
Wissenschaften, v. 53) y probado que proviene del poema francés de
Gautier de Coincy (1177-1236) sobre la emperatriz Crescencia. El de
von Ottas salió de Florence de Rome, y publicólo Amador de los
Ríos, Hist. crít., t. V, pág. 391. Del ciclo bretón hay huellas en el siglo
xiii en España; pero cuando se desenvolvió fué en el xiv. La leyenda
del rey Artur, vencedor de los sajones, es muy antigua en Bretaña y
se menciona en un libro del siglo x, en la Historia Britonum, de
Nennio. Los normandos, conquistada Inglaterra, fraternizaron con
los bretones contra los sajones, y Jofre de Monmouth, obispo de S.
Asaph († 1154), fué el primer creador de una historia fabulosa, pero
muy poética, que se suponía traducida de antiguos libros gaélicos y
que fué formándose y escribiéndose en libros latinos. Invención suya
parece la del sabio Merlín y sus profecías. Luego vino la Tabla
Redonda con los lays de Bretaña, lírica con antigua música céltica
(G. Paris, La littérat. franç. au moyen âge, 2.ª ed., París, 1890, pág.
91). En el siglo xii aparece la leyenda de Tristán, de origen gaélico, y
en último término mitológico y por lo mismo antiquísima: uno de los
autores que la trató fué Thomas, anglo-normando (1155-1170),
después del perdido poema de Christián de Troyes (hacia 1150), que
compuso además el Lancelot (Lanzarote) hacia 1170, el Perceval ó
Cuento del Graal en 1175. Pasó esta literatura á Italia en el siglo xiii;
pero tardó en penetrar en España por ser tan contraria en su
idealismo á la épica castellana, hasta que Galicia y Portugal, países
de espíritu céltico, la acogieron y la comunicaron con su propia lírica,
acaso en el siglo xiii y cierto en el siglo xiv y, sobre todo, á principios
del siglo xv á los castellanos. Alusiones hay en Castilla á este ciclo
hasta en los Anales Toledanos primeros, que llegan al año 1217. Don

You might also like