Course Duration in Hours
90
90
1 Programming embedded systems in C
1.1 Introduction
1.2 What is an embedded system?
1.3 Which processor should you use?
1.4 Which programming language should you use?
1.5 Which operating system should you use?
1.6 How do you develop embedded software?
1.7 Conclusions
2 Introducing the 8051 microcontroller family
2.1 Introduction
2.2 Whats in a name?
2.3 The external interface of the Standard 8051
2.4 Reset requirements
2.5 Clock frequency and performance
2.6 Memory issues
2.7 I/O pins
2.8 Timers
2.9 Interrupts
2.10 Serial interface
2.11 Power consumption
2.12 Conclusions
3 Hello, embedded world
3.1 Introduction
3.2 Installing the Keil software and loading the project
3.3 Configuring the simulator
3.4 Building the target
3.5 Running the simulation
3.6 Dissecting the program
3.7 Aside: Building the hardware
3.8 Conclusions
4 Reading switches
4.1 Introduction
4.2 Basic techniques for reading from port pins
4.3 Example: Reading and writing bytes
4.4 Example: Reading and writing bits (simple version)
4.5 Example: Reading and writing bits (generic version)
4.6 The need for pull-up resistors
4.7 Dealing with switch bounce
4.8 Example: Reading switch inputs (basic code)
4.9 Example: Counting goats
4.10 Conclusions
5 Adding structure to your code
5.1 Introduction
5.2 Object-oriented programming with C
5.3 The Project Header (MAIN.H)
5.4 The Port Header (PORT.H)
5.5 Example: Restructuring the Hello Embedded World example
5.6 Example: Restructuring the goat-counting example
5.7 Further examples
5.8 Conclusions
6 Meeting real-time constraints
6.1 Introduction
6.2 Creating hardware delays using Timer 0 and Timer 1
6.3 Example: Generating a precise 50 ms delay
6.4 Example: Creating a portable hardware delay
6.5 Why not use Timer 2?
6.6 The need for timeout mechanisms
6.7 Creating loop timeouts
6.8 Example: Testing loop timeouts
6.9 Example: A more reliable switch interface
6.10 Creating hardware timeouts
6.11 Example: Testing a hardware timeout
6.12 Conclusions
7 Creating an embedded operating system
7.1 Introduction
7.2 The basis of a simple embedded OS
7.3 Introducing sEOS
7.4 Using Timer 0 or Timer 1
7.5 Is this approach portable?
7.6 Alternative system architectures
7.7 Important design considerations when using sEOS
7.8 Example: Milk pasteurization
7.9 Conclusions
8 Multi-state systems and function sequences
8.1 Introduction
8.2 Implementing a Multi-State (Timed) system
8.3 Example: Traffic light sequencing
8.4 Example: Animatronic dinosaur
8.5 Implementing a Multi-State (Input/Timed) system
8.6 Example: Controller for a washing machine
8.7 Conclusions
9 Using the serial interface
9.1 Introduction
9.2 What is RS-232?
9.3 Does RS-232 still matter?
9.4 The basic RS-232 protocol
9.5 Asynchronous data transmission and baud rates
9.6 Flow control
9.7 The software architecture
9.8 Using the on-chip UART for RS-232 communications
9.9 Memory requirements
9.10 Example: Displaying elapsed time on a PC
9.11 The Serial-Menu architecture
9.12 Example: Data acquisition
9.13 Example: Remote-control robot
9.14 Conclusions
10 Case study: Intruder alarm system
10.1 Introduction
10.2 The software architecture
10.3 Key software components used in this example
10.4 Running the program
10.5 The software
10.6 Conclusions
11 Where do we go from here
11.1 Introduction
11.2 Have we achieved our aims?
11.3 Suggestions for further study
11.4 Patterns for Time-Triggered Embedded Systems
11.5 Embedded Operating Systems
11.6 Conclusions
100%
Kaizen Robeonics Research Pvt. Ltd., Gopalpura (Jaipur),Jaipur,IN