embedded systems “gömülü sistemlerin temel bileşenleri

122
Embedded Systems “Gömülü Sistemlerin Temel BileşenleriDr. Cahit Karakuş, Mart - 2021

Upload: others

Post on 27-Feb-2022

29 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Embedded Systems

“Gömülü Sistemlerin

Temel Bileşenleri”

Dr. Cahit Karakuş, Mart - 2021

Page 2: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Gömülü sistem • Makine gücünün gerçekleştirdiği işleri bilgisayar denetiminde kontrol eden sisteme

otomasyon denir.

• Gömülü bir sistem, sistemlerin davranışlarını izlemek ve yönetmek amacıyla, fiziksel dünyadaki değişimleri tespit ederek, algılayarak ve ölçerek gerçek zamanlı hesaplama ve mantıksal işlevleri gerçekleştirecek tüm bileşenlerin üzerinde toplandığı özel tasarlanmış, mikroişlemci tabanlı bir donanım ve yazılım sistemidir.

• Gömülü bir sistemin karmaşıklığı, tasarlandığı göreve bağlı olarak önemli ölçüde değişir.

• Üretilen tüm mikroişlemcilerin yüzde 98 kadarı gömülü sistemlerde kullanılıyor.

Page 3: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

History of Embedded Operating Systems • İlk modern, gerçek zamanlı gömülü bilgi işlem sistemi, 1960'larda Apollo Programı için

Massachusetts Teknoloji Enstitüsü'nden Dr. Charles Stark Draper tarafından geliştirilen Apollo Rehberlik Bilgisayarı idi. Apollo Kılavuz Bilgisayarı, verileri otomatik olarak toplamak ve Apollo Komuta Modülü ve Ay Modülü için görev açısından kritik hesaplamalar sağlamak üzere tasarlanmıştır.

• 1971'de Intel, piyasada bulunan ilk mikroişlemci birimi olan Intel 4004'ü piyasaya sürdü - destek mantık devreleri ve harici bellek gerektiren ilklerden bir mikroişlemcidir; 1978'de Ulusal Mühendislik İmalatçıları Derneği, programlanabilir mikro denetleyiciler için bir standart yayınladı ve gömülü sistem tasarımını geliştirdi; ve 1980'lerin başında, bellek, giriş ve çıkış sistemi bileşenleri işlemciyle aynı yongaya entegre edilerek bir mikro denetleyici oluşturuldu.

• Mikrodenetleyici tabanlı gömülü sistem, kredi kartı okuyucularından cep telefonlarına, trafik ışıklarından termostatlara kadar tüketicilerin günlük yaşamlarının her yönüne dahil edilmeye devam edecek.

Page 4: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Future Trends in Embedded Systems • Yapay Zeka (AI), Sanal Gerçeklik (VR) , İnteraktif etkileşim ve Artırılmış Gerçeklik (AR), makine öğrenimi, derin

öğrenme ve Nesnelerin İnterneti'nin (IoT) sürekli gelişimi ile gömülü sistemler endüstrisinin hızla büyümeye devam etmesi bekleniyor. Bilişsel gömülü sistem trendlerin merkezinde olacak: azaltılmış enerji tüketimi, gömülü cihazlar için geliştirilmiş güvenlik, bulut bağlantısı ve ağ oluşturma, derin öğrenme uygulamaları ve gerçek zamanlı verilerle görselleştirme araçları.

• Otonom algoritmalar: Veri yığınından kendine kendine öğrenerek insandan bağımsız davranış geliştiren algoritmalar ve matematiksel modeller.

• Gömülü sistemler endüstrisi için küresel pazar 2020'de 70 milyar dolar olarak değerlendirildi ve 2025'in sonunda 110 milyar dolara yükselmesi bekleniyor.

• Artificial Intelligence (AI),

• Sanal Gerçeklik (Virtual Reality - VR),

• Artıtılmış, Bütünleştirilmiş Gerçeklik (Augmented Reality - AR),

• Makine Öğrenmesi (Machine learning ),

• Derin Öğrenme (Deep learning),

• Nesnelerin İnterneti (Internet of Things - IoT).

Page 5: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Gömülü Sistem Disiplinleri

• Bilgisayar Organizasyonu • Yazılım: Python, C++, Assemble, Matlab • Elektronik ile ilgili, açık kaynaklı bir mikrodenetleyici uygulama platformu. G/Ç (I/O) kartı ve

Processing/Wiring dilinin bir uygulamasını içeren geliştirme ortamından oluşan bir fiziksel programlama platformu.

• Sayısal tasarım • Elektronik devre elemanları ve ölçümler • Elektronik pasif devre elemanları: Direnç, Kapiste, Endüktans • Elektronik aktif devre elemanları: Transistor, Diyot, Op-Amp • Sürücü sistemleri: Bir tarafı bilgisayar öte tarafı analog, sayısal giriş çıkış birimler ve

anahtarlama röle çıkışları olmalıdır. 24V DC Motor kontrol edilecek, açma kapama, besleme (yük altında çektiği akım), ileri-geri, hız, …

• Aktüatör: Bir sistemi kontrol eden veya hareket ettiren bir tür motordur. Bir enerji kaynağı tarafından çalıştırılır.

Page 6: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Gömülü Mikroişlemciler ve Mikrodenetleyiciler

• CPU işlevleri

• CPU Mimarisi ve Organizasyonu

• Yapısal CPU tasarımı

• Gömülü Sistem Tasarımı

• Arayüz ve bütünleştirme

Page 7: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Gömülü Sistem Ekipmanları

• Algılayıcılar

• Aktüatörler

• Dijital, Analog Giriş- Çıkış Birimleri

• Motor Sürücüler

• Şaft kodlayıcıları

• Fizksel arayüz standartları ve sistemleri

• Standart Protokolleri

Page 8: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Gömülü Sistemler için Programlama

• Assembly

• C++

• Matlab

• Gerçek Zamanlı Sistemler

• Tek bir kod setinin birden fazla işlemci tarafından farklı yürütme aşamalarında kullanılabildiği çoklu iş parçaıkları

• Veri Yapıları

• Programlama Teknikleri

• Cihaz Sürücü Yazılımları

Page 9: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Gömülü Sistem Bileşenleri

• Gömülü Sistemler

• CPU Organizasyonu

• Board Tasarımı

• Aktüatörler

• Algılayıcılar

• Kontrol Sistemleri

• Haberleşme Sistemleri

• İşaret İşleme

• Gömülü sistemler uygulama yazılımları

Page 10: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Sensing and actuation devices in embedded applications

Gömülü sistem, veri işler, kontrol eder ve yönetir.

Page 11: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

11

Structure of Embedded Systems

Page 12: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Bir bilgisayarın temel bileşenleri

• CPU

• Memory

• I/O

• Haberleşme Yolları (System Bus)

CPU

Memory

I/O

Farklı yongalar (chip) aynı

board üzerinde bütünleşmiştir.

Page 13: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Gömülü Mikrodenetleyiciler

CPU ROM RAM

I/O

A single chip

Subsystems:

Timers, Counters, Analog

Interfaces, I/O interfaces

Memory

Page 14: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Operating System

Page 15: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

15

Cross Development Tools

• Preprocessor

• Compiler

• Assembler

• Linker

• Libraries

• Loader

• Debugger

• Archiver

• Simulator

• Emulator

Page 16: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Predictable Computer Architecture

• What we need: – Timing Predictability – Isolation

• Göreceğimiz şey: bilgisayar mimarisi tasarımınızın bu tür gereksinimleri karşılamak için nasıl değişmesi gerektiği.

• Bu, mimarinin tüm ana bileşenlerini içerir: – Pipeline (and other elements of the core) – Ön Bellekler (Caches) – Ara Bağlantılar (Interconnects) – Memory controllers – I/O Çevre Birimleri (Peripherals)

16

Page 17: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Classification

Functionality • Bağımsız gömülü sistemler (Stand-alone

embedded systems)

• Gerçek zamanlı gömülü sistemler: Donanımsal gerçek zamanlı sistemler ve Yazılımsal gerçek zamanlı sistem

• Ağa bağlı gömülü sistemler (Networked embedded systems)

• Gezgin Gömülü sistemler (Mobile Embedded systems).

Performance

• Small scaled embedded system

• Medium scaled embedded

system

• Large scaled embedded system.

Embedded Systems

Page 18: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Stand-alone Embedded systems: Kendi kendine çalışır. Bilgisayar gibi herhangi bir ana sistem gerektirmeyen bağımsız bir cihazdır - Örneğin: Sıcaklık ölçüm sistemleri, MP3 çalarlar, dijital kameralar ve mikrodalga fırınlar. Real-time embedded systems: Belirli bir zamanda (Zaman sınırı) gerekli çıktıyı verir. Soft Real-Time system: Zaman kısıtlamalarının ihlali yalnızca kalitenin düşmesine neden olur, ancak sistem çalışmaya devam edebilir. EX: Çamaşır makinesi, TV kumandası Hard Real-Time system: Zaman kısıtlamalarının ihlali, kritik arızaya ve can veya mal kaybına veya felakete neden olacaktır. Ör: Füze kontrol gömülü sistemde son tarih, Gaz sızıntısı sırasında gecikmeli alarm, araba hava yastığı kontrol sistemi Networked embedded systems: Kaynaklara erişmek için ağ arayüzlerine sahip bir ağ ile ilgilidir. Bağlı ağ bir LAN veya WAN veya İnternet olabilir. Bağlantı kablolu veya kablosuz olabilir. Örneğin: Ev güvenlik sistemi. Mobile Embedded systems: Mobil ve cep telefonları, dijital kameralar, MP3 oynatıcılar, PDA. Sınırlama Bellek ve diğer kaynaklardır. Küçük ölçekli gömülü sistem: Yonga üzerinde RAM ve ROM ile 8–16 bitlik tek bir Mikroişlemci tarafından desteklenir.

Orta ölçekli gömülü sistem: Harici RAM ve ROM ile 16–32 bit Mikroişlemci / Mikroişlemci tarafından desteklenir.

Büyük ölçekli gömülü sistem: Dağıtılmış işleri gerçekleştirebilen 32-64 bit çoklu yongalarla desteklenir.

SINIFLANDIRMA

Page 19: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Applications Home Appliances: Dishwasher, washing machine, microwave, Top-set box, security system , HVAC system, DVD, answering machine, garden sprinkler systems etc.. Office Automation: Fax, copy machine, smart phone system, modern, scanner, printers. Security : Face recognition, finger recognition, eye recognition, building security system , airport security system, alarm system. Academia: Smart board, smart room, OCR, calculator, smart cord. Instrumentation: Signal generator, signal processor, power supplier, Process instrumentation. Telecommunication: Router, hub, cellular phone, IP phone, web camera Automobile: Fuel injection controller, anti-locking brake system, air-bag system, GPS, cruise control. Entertainment: MP3, video game, Mind Storm, smart toy.

Page 20: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Applications Conti...

Aerospace : Navigation system, automatic landing system, flight attitude controller, space explorer, space robotics. Industrial automation : Assembly line, data collection system, monitoring systems on pressure, voltage, current, temperature, hazard detecting system, industrial robot. Personal : PDA, smart phone, palmtop, data organizer. Medical : CT scanner, ECG , EEG , EMG ,MRI, Glucose monitor, blood pressure monitor, medical diagnostic device. Banking & Finance : ATM, smart vendor machine, cash register ,Share market Miscellaneous : Elevators, tread mill, smart card, security door etc.

Page 21: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Features

• Belirli bir görevi yerine getirmek için tasarlanır.

• Her zaman bağımsız cihazlar değildir.

• Sınırlı bilgisayar donanımı kaynaklarıyla çalışır: az bellek, küçük veya var olmayan klavye ve / veya ekran.

• Minimum boyut ve ağırlık için maksimum performans sunar

• Verimlilik.

• Güvenilirlik.

• Gerçek zamanlı kısıtlamalarla çalışır.

Page 22: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri
Page 23: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Components of Embedded Systems

Hardware: Processor/controller, Timers, Interrupt controller, I/O Devices, Memories, Ports, etc Application Software : Which may perform concurrently the series of tasks or multiple tasks RTOS (Real Time Operating System) : RTOS defines the way the system work. Which supervise the application software. It sets the rules during the execution of the application program. A small scale embedded system may not need an RTOS.

Page 24: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Gömülü Sistem Blok Şeması

oscillator Prog

Memory (ROM)

RAM timers/ counter

CPU

Bus expansion control

I/O ports Serial port/ UART

Frequency Reference

interrupt interrupt

control Ports/IO/ ADD/Data bus

Tx Rx

counters

Page 25: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Embedded System Features • The microcontroller is a processor

• The CPU can work on 8 bits of data at a time

• Clock

• The Embedded Systems has

• RAM and ROM

• Timers

• Serial porte

• I/O ports, each 8 bits wide

• External and internal interrupt sources

Page 26: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri
Page 27: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Block Diagram

Page 28: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

28

Architecture

Page 29: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri
Page 30: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Von Neumann

• John von Neumann

• Tek depolama belleği (veri ve program).

• Bellekten tam talimat çıkarmak için daha fazla bellek döngüsü gerektirir.

• Özel "Tablo okuma" talimatları gerekli değildir.

• Ardışık düzende komut işleme mümkün değildir (Pipelining is not possible).

• Daha az verimli.

Harvard

• Depolama ve veri için ayrı hafızalar.

• Bellekten tam talimatı çıkarmak için daha az bellek döngüsü gerektirir.

• Özel "Tablo okuma" talimatları gereklidir.

• Doğru stratejilerle (Pipelining) ardışık düzende komut işleme mümkündür.

• Daha verimli.

Page 31: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Architecture

CPU

Program +

Data

Address Bus

Data Bus

Memory

Von Neumann

Architecture

CPU

Program

Address Bus

Data Bus

Harvard

Architecture

Memory

Data

Address Bus

Fetch Bus

0

0

0

2n

RAM ve ROM bellek tipleri nasıl ifade edilir? • RAM: Data • ROM: Program Data Bellek: Hem yazılır, hem okunur. Program bellek sadece okunur. Harvard mimarisinde data bellekte data bus kaç yönlüdür? • Çift yönlüdür. Harvard mimarisinde program bellekte data bus kaç yönlüdür? • tek yönlüdür.

Von Neumann Mimarisinde data bus kaç yönlüdür? • iki yönlüdür.

Adres bus bellek ve bellek gözünü seçer.

Page 32: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Princeton Architecture

• Princeton, program ve verileri depolamak için ortak bellek alanının kullanıldığı "Von Neumann" mimarisini sağladı.

• Bellek birimi, talimatların okunması, işlemci ve dahili yazmaçları (Registers) ile verilerin ileri geri iletilmesi arasındaki bellek boşluğuna keyfi erişimden sorumludur.

• Avantajlar: basit bellek arabirimi ve yönetimi. • Harvard, program depolama, işlemci yığını ve değişken RAM için ayrı bellek

bankaları kullanan bir tasarım önerir. • Avantaj: Talimatı Von Neumann'dan daha az döngüde yürütür.

Page 33: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Princeton architecture block diagram

program ROM

Variable RAM

Stack RAM

memory interface unit

Processor and built-in registers

instruction decode

Data

Add

Ctrl

Page 34: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Harvard architecture block diagram

program ROM Variable RAM PC Stack

Processor and built-in

registers

instruction decode

Data

Add

Ctrl

Data

Add

Ctrl

Page 35: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

• CISC ve RISC

–RISC, "Azaltılmış Komut Seti Bilgisayarları" anlamına gelir. Talimatlar, kullanıcıların kendi işlemlerini tasarlamalarına izin vermek için olabildiğince çıplaktır.

–Gömülü sistemlerde RISC mimari kullanılır.

–CISC, "Karmaşık Komut Seti Bilgisayarları" anlamına gelir. Her biri aynı işlemin farklı bir permütasyonunu gerçekleştiren çok sayıda talimat.

Page 36: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Sample Embedded system on Microcontroller

Full resistive bridge sensor

MSP430 MCU

LCD

Page 37: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

37

Mikrodenetleyiciler

(Microcontrollers)

Page 38: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Embedded System General Block Diagram

Microcontroller

(uC)

sensor

sensor

sensor

Sen

sor co

nditio

nin

g

Outp

ut in

terfaces

actuator

indicator

Power dist Control store

Reset control

Clock and timing RAM

Microcontroller block diagram

• Gömülü bir mikrodenetleyici, tüm destek işlevlerine (saat ayarı ve sıfırlama), belleğe ve cihazda yerleşik olarak bulunan G / Ç'ye sahip bir bilgisayar işlemcisi olan bir yongadır.

Page 39: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Gömülü sistem bir bilgisayar sistemidir.

Page 40: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Three criteria in Choosing a Microcontroller

• Bilgi işlem ihtiyaçlarını verimli ve uygun maliyetli bir şekilde karşılamak – Hız, ROM ve RAM miktarı, G / Ç bağlantı noktası ve zamanlayıcı sayısı, boyut, paketleme, güç

tüketimi – Yükseltme (upgrade), Güncelleme (Update) kolay – birim başına maliyet

• Yazılım geliştirme araçlarının kullanılabilirliği – Derleyiciler (assemblers), – Hata ayıklayıcılar (debuggers), – C derleyicileri, – Öykünücü (emulator), – Simülatör, – Teknik destek

• Mikrodenetleyicilerin geniş kullanılabilirliği ve güvenilir kaynakları

Page 41: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

41

Embedded processors • Sistem üreticisi tarafından bir kez programlanır. • Birkaç parametre ile tek bir programı (veya sınırlı bir paketi) yürütür. • Göreve özgü özel uygulama için optimize edilebilir. • Çevre ile birçok şekilde etkileşime girer.

– doğrudan algılama ve sinyal kablolarının kontrolü – çevre ve diğer cihazlarla iletişim protokolleri – gerçek zamanlı etkileşimler ve kısıtlamalar

• Mikrodenetleyici türleri:

– Gömülü: Uygulamayı çalıştırmak için gerekli tüm donanım çip üzerinde sağlanmıştır. – Tipik olarak: güç, sıfırlama, saat, bellek ve GÇ. – Harici hafızabazı mikro denetleyiciler harici belleğin bağlanmasına izin verir.

Page 42: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Microcontroller features

• Clock/Oscillator

• IO pins

• interrupts

• timers

• Peripherals

• ADC inputs

• DAC outputs

• PWM outputs

Basic features

Page 43: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Comparing µC with µP

• General-purpose microprocessors contains o No RAM

o No ROM

o No I/O ports

• Microcontroller has o CPU (microprocessor)

o RAM

o ROM

o I/O ports

o Timer

o ADC and other peripherals

Page 44: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Applications Home Appliances, intercom, telephones, security systems, garage door openers, answering machines, fax

machines, TVs, cable TV tuner, VCR, camcorder, remote controls, video games, cellular phones, musical instruments, sewing machines, lighting control, paging, camera, pinball machines, toys, exercise equipment.

Office Telephones, security systems, fax machines, microwave, copier, laser printer, color printer, paging.

Auto Navigation system, engine control, air bag, ABS, instrumentation, security system, transmission

control, entertainment, climate control, cellular phone, keyless entry.

Page 45: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Examples of 8-bit µC

Motorola’s 6811

Intel’s 8051

Zilog’s Z8

Microchip’s PIC The 8051 family has the largest number of

diversified (multiple source) suppliers:

o Intel (original)

o Atmel

o Philips/Signetics

o AMD

o Infineon (formerly Siemens)

o Matra

o Dallas Semiconductor/Maxim

Page 46: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri
Page 47: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Common Microcontrollers •Atmel

•ARM

•Intel

•8-bit

•8XC42

•MCS48

•MCS51

•8xC251

•16-bit

•MCS96

•MXS296

•National Semiconductor

•COP8

•Microchip

•12-bit instruction PIC

•14-bit instruction PIC

•PIC16F84

•16-bit instruction PIC

•NEC

•Motorola

•8-bit

•68HC05

•68HC08

•68HC11

•16-bit

•68HC12

•68HC16

•32-bit

•683xx

•Texas Instruments

•TMS370, 16/32 bit

•MSP430 , 16 bit

•Zilog

•Z8

•Z86E02

Page 48: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

48

Memory Organization

Page 49: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Gömülü Sistemlerde Bellek Tipleri

• Ön Bellek

• Ram

• Flash Bellek: Uygulama yazılımlarının saklandığı bellek. Elektrik kesildiğinde silinmez.

• Kontrol bellek

Page 50: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Gömülü Sistemlerde Kontrol Bellek Tipleri

–Program belleğidir.

–Önceden Yüklenir.

–Bu bellek alanı, mikro denetleyiciye yüklenebilen uygulamanın maksimum boyutudur ve uygulama ayrıca bir uygulamayı yürütmek için gerekli tüm düşük düzeyli kodu ve cihaz arayüzünü içerir.

–Uçucu olmayan bellektir.

–5 farklı tipte kontrol bellek vardır: ROM, PROM, EPROM ve EEPROM / Flash

Page 51: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

–4 çeşit veri değişkenleri belleği vardır:

bits,

registers,

RAM,

PC stack.

–They are implemented as SRAM.

–Program counter stack

part of the RAM.

LIFO memory.

must be initialized by the starting address of the stack area.

Gömülü Sistemlerde Veri Değişkenleri Bellekleri

Page 52: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Bellek Hiyerarşisi

RAM - volatile: Data Memory

ROM - non volatile: Code Memory

EPROM

Flash/EEPROM

Page 53: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri
Page 54: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Örnek: Bellek gözü seçmek

8 bit veri gözlerine, 4 bit adres hattına sahip bir belleğin Seçilecek göz sayısı=2^n=16byte Burada, n: bellek adres hattı sayısıdır. Seçilecek gözlerin indislenmesi: 0, ..., 2^n-1 0,1,2, ... , 15

Page 55: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Bellek Kapasitesi Gösterim Formatı

Bellekler (D Boyut x N) formatında gösterilir. D belleğin kapasitesini byte olarak gösterir. (K:Kilobyte=2^10byte, M:Megabyte=2^20byte, G:Gigabyte=2^30byte, T: Terabeyte=2^40byte, P:Petabyte=2^50byte). N ise data bus hat sayısını bit olarak verir. N=8 bit(byte), 16bit(word), 32bit(Longword), 64 bit(Quadword) olur.

Soru: Bir belleğin gösterim formatı 16Kx8 ise belleğin veri saklama kapasitesini byte olarak, adres hattı sayısı adet olarak ve data bus hat sayısını bit olarak bulunuz.

• Belleğin veri saklama kapasitesi=16Kbyte (16Kx8)

• Belleğin adres hattı sayısının bulunması: Belleğin veri saklama kapasitesi=16KByte=2^14Byte’dır (2^4*2^10). O halde 2 üzeri üs ifadesi belleğin adres hattı sayısını verir ki, adres hattı sayısı=14 adet bulunur.

• Data bus hattı sayısı=8 bit’dir. (16Kx8)

Page 56: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

56

CPU Bileşenleri

Haberleşme Yolları

Page 57: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Data bus & Address bus

Address Bus : Adres bus, Giriş çıkış birimlerinde ya da belleklerde fiziksel bir adres belirlemek için ayrılmış bilgisayar sistemi veri yolunun bir parçasıdır.

Data Bus : Sistem haberleşme yollarından veri yolu basitçe elektriksel olarak verileri taşır.

Adres bus’ın hat sayısı 32 bit ise, o zaman kaç tane bellek konumunu işleyecektir?

4,294,967,296

Page 58: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

58

µp Memory

- I/O

Address Lines

Data Lines

System Bus

Interface

• Adres Bus: Belleğin yazılıp okunacak gözünü seçer ya da I/O seçer. Bu göz 1 byte=8bit.

• Data Bus: Belleğin gözüne ya da I/O birimine yazılıp okunacak veriyi taşır.

• Control Bus: Bellek ile CPU arasındaki iş akışını yönetir, izler, bilgi verir: Yaz, Oku, Dur, Reset, Yeniden başlat, …

Control Lines

Page 59: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

59

Adres Bus: A15-A8; AD7-AD0 Data Bus: AD7-AD0 • Adres bus hat sayısı nedir: 16, • Adres bus indislenmesi: A15 .. A8 AD7 … AD0 • Adreslenecek fiziksel kapasite=2^16Byte=64Kbyte • Data hattı sayısı nedir? 8, • Data Bus insleme: AD7 … AD0 • Neden adres ve data bus’da ortak hatlar var? (AD7..AD0): Verinin

belleğe yada giriş-çıkış birimlerine yazma veya okuma çevriminde önce adres bus üzeirinden ilgili birim seçilir. Ardından veri yazılır ya da okunur.

• Adres ve data bus’da ortak hatların olmasının nedeni nedir? Pin sayısı azaltma hedeflenir. Adres bus ve Data bus üzerinde aynı anda işlem yapılmaz. Önce belleğin ya da giriş-çıkış birimim adresi seçilir. Sonra seçilen adrese veri yazılır ya da okunur.

• Control Bus hatları nelerdir? • ALE: Bellek ya da I/O veri yazmaya hazır… • IO/M’: 1 gelirse I/O seçilir. 0 gelirse bellek seçilir.

adres ve data bus’da ortak hatlar

Page 60: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Latch

A15-A8

Latch AD7-AD0

D7- D0

A7- A0

ALE

IO/M RD WR

1K Byte

Memory

Chip

WR RD

CS

A9- A0

A15- A10

Address

Decoding

Circuit

60

• Chip Selection Circuit, adres dekoding devresidir.

• Adres dekoding devresinin giriş sayısı 6 adettir. O halde çıkış sayısı=2^6=64. Toplam 64 adet bellekten birini seçer.

• Herbir belleğin kapasitesi=1Kbyte • Belleğin adres hattı sayısı=10 adettir.

2^10=1Kbyte • Latch devresi: ALE çıkışı aktif

olduğunda girişindeki değerleri çıkışına kurar. Bir sonraki ALE çıkışı aktif olana kadar çıkışlar durumlarını korur.

Page 61: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

A12

A11

A10 - A0

Address decoders

61

• CPU’dan çıkan hat sayısı=13 adet. İndisleme: A12...A0

• CPU’nun Toplam Bellek kapasitesi kaç Kbyte’dır? Kapasite=2^13 byte=8Kbyte

• Bir belleğin kapasitesi nedir? İndis: A10..A0, 11 adet

• Belleğin Kapasitesi=2^11Byte =2KByte • A13 ne iş yapar? Adres Decoding

devresini enable eder. Çıkışını onaylar, aktif eder.

2 to 4 decoder

A12A,11:00 ise Bellek-1, 01 ise Bellek-2, 10 ise Bellek-3, 11 ise Bellek-4 seçilir.

Page 62: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Example: Memory-register map

up to 64 KB of external

EPROM/ ROM

up to 60 KB of external ROM/

EPROM

4 KB of internal ROM/ EPROM

21 SF registers

up to 64 KB of external RAM

128 KB internal RAM

or and

program memory RAM/data memory

0000

FFFF

0000

0FFF

FFFF

1000

0000

FFFF

0000

007F

0080

00F8

SF = Special Function

Page 63: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

63

Assembly Language

Page 64: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Instruction Set

1. Movement Instructions 2. Arithmetic and Logic Instructions 3. Shift and Rotate Instructions 4. Flow of Control

Page 65: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Programmable state machine

Control

Data

Memory

ALU

Program

Memory

Page 66: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Instructions

Operations

ALU operations

- Add

- Mul

- Not

Data move

- Move

- Push

- Pop

Branch

- Compare

- Jump

- Loop

Page 67: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Overview

• Data transfer instructions

• Addressing modes

• Data processing (arithmetic and logic)

• Program flow instructions

Page 68: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Data Transfer Instructions

• MOV dest, source dest source

• Stack instructions PUSH byte ;increment stack pointer,

;move byte on stack

POP byte ;move from stack to byte,

;decrement stack pointer

• Exchange instructions XCH a, byte ;exchange accumulator and byte

XCHD a, byte ;exchange low nibbles of

;accumulator and byte

Page 69: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Addressing Modes Immediate Mode – specify data by its value

mov A, #0 ;put 0 in the accumulator

;A = 00000000

mov R4, #11h ;put 11hex in the R4 register

;R4 = 00010001

mov B, #11 ;put 11 decimal in b register

;B = 00001011

mov DPTR,#7521h ;put 7521 hex in DPTR

;DPTR = 0111010100100001

Page 70: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Addressing Modes

Immediate Mode – continue

MOV DPTR,#7521h

MOV DPL,#21H

MOV DPH, #75

COUNT EGU 30 ~

~

mov R4, #COUNT

MOV DPTR,#MYDATA ~

~

0RG 200H

MYDATA:DB “IRAN”

Page 71: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Addressing Modes Register Addressing – either source or destination is one of CPU

register MOV R0,A

MOV A,R7

ADD A,R4

ADD A,R7

MOV DPTR,#25F5H

MOV R5,DPL

MOV R,DPH

Note that MOV R4,R7 is incorrect

Page 72: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Addressing Modes Direct Mode – specify data by its 8-bit address Usually for 30h-7Fh of RAM

Mov a, 70h ; copy contents of RAM at 70h to a

Mov R0,40h ; copy contents of RAM at 70h to a

Mov 56h,a ; put contents of a at 56h to a

Mov 0D0h,a ; put contents of a into PSW

Page 73: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Addressing Modes Direct Mode – play with R0-R7 by direct address

MOV A,4 MOV A,R4

MOV A,7 MOV A,R7

MOV 7,2 MOV R7,R6

MOV R2,#5 ;Put 5 in R2

MOV R2,5 ;Put content of RAM at 5 in R2

Page 74: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Addressing Modes

Register Indirect – the address of the source or destination is specified in registers

Uses registers R0 or R1 for 8-bit address: mov psw, #0 ; use register bank 0

mov r0, #0x3C

mov @r0, #3 ; memory at 3C gets #3

; M[3C] 3

Uses DPTR register for 16-bit addresses: mov dptr, #0x9000 ; dptr 9000h

movx a, @dptr ; a M[9000]

Note that 9000 is an address in external memory

Page 75: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Data Processing Instructions

Arithmetic Instructions

Logic Instructions

Page 76: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Arithmetic Instructions

• Add

• Subtract

• Increment

• Decrement

• Multiply

• Divide

• Decimal adjust

Page 77: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Arithmetic Instructions

Mnemonic Description

ADD A, byte add A to byte, put result in A

ADDC A, byte add with carry

SUBB A, byte subtract with borrow

INC A increment A

INC byte increment byte in memory

INC DPTR increment data pointer

DEC A decrement accumulator

DEC byte decrement byte

MUL AB multiply accumulator by b register

DIV AB divide accumulator by b register

DA A decimal adjust the accumulator

Page 78: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

ADD Instructions add a, byte ; a a + byte

addc a, byte ; a a + byte + C

These instructions affect 3 bits in PSW:

C = 1 if result of add is greater than FF

AC = 1 if there is a carry out of bit 3

OV = 1 if there is a carry out of bit 7, but not from bit 6, or visa versa.

Page 79: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Addition Example

; Computes Z = X + Y ; Adds values at locations 78h and 79h and puts them in 7Ah ;------------------------------------------------------------------ X equ 78h Y equ 79h Z equ 7Ah ;----------------------------------------------------------------- org 00h ljmp Main ;----------------------------------------------------------------- org 100h Main: mov a, X add a, Y mov Z, a end

Page 80: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

The 16-bit ADD example ; Computes Z = X + Y (X,Y,Z are 16 bit) ;------------------------------------------------------------------ X equ 78h Y equ 7Ah Z equ 7Ch ;----------------------------------------------------------------- org 00h ljmp Main ;----------------------------------------------------------------- org 100h Main: mov a, X add a, Y mov Z, a mov a, X+1 adc a, Y+1 mov Z+1, a end

Page 81: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Subtract

SUBB A, byte subtract with borrow

Example:

SUBB A, #0x4F ;A A – 4F – C

Notice that There is no subtraction WITHOUT borrow. Therefore, if a subtraction without borrow is desired, it is necessary to clear the C flag.

Example:

Clr c

SUBB A, #0x4F ;A A – 4F

Page 82: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Increment and Decrement

• The increment and decrement instructions do NOT affect the C flag.

• Notice we can only INCREMENT the data pointer, not decrement.

INC A increment A

INC byte increment byte in memory

INC DPTR increment data pointer

DEC A decrement accumulator

DEC byte decrement byte

Page 83: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Example: Increment 16-bit Word

• Assume 16-bit word in R3:R2

mov a, r2

add a, #1 ; use add rather than increment to affect C

mov r2, a

mov a, r3

addc a, #0 ; add C to most significant byte

mov r3, a

Page 84: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Multiply

When multiplying two 8-bit numbers, the size of the maximum product is 16-bits

FF x FF = FE01

(255 x 255 = 65025)

MUL AB ; BA A * B

Note : B gets the High byte

A gets the Low byte

Page 85: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Division

• Integer Division

DIV AB ; divide A by B

A Quotient(A/B)

B Remainder(A/B)

OV - used to indicate a divide by zero condition. C – set to zero

Page 86: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Decimal Adjust

DA a ; decimal adjust a

Used to facilitate BCD addition. Adds “6” to either high or low nibble after an addition to create a valid BCD number. Example: mov a, #23h

mov b, #29h

add a, b ; a 23h + 29h = 4Ch (wanted 52)

DA a ; a a + 6 = 52

Page 87: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Logic Instructions

Bitwise logic operations (AND, OR, XOR, NOT)

Clear

Rotate

Swap

Logic instructions do NOT affect the flags in PSW

Page 88: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Bitwise Logic

ANL AND

ORL OR

XRL XOR

CPL Complement

Examples: 00001111

10101100 ANL

00001111

10101100 ORL

00001111

10101100 XRL

10101100 CPL

00001100

10101111

10100011

01010011

Page 89: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Address Modes with Logic

a, byte

direct, reg. indirect, reg, immediate

byte, a

direct

byte, #constant

a ex: cpl a

ANL – AND

ORL – OR

XRL – eXclusive oR

CPL – Complement

Page 90: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Uses of Logic Instructions

• Force individual bits low, without affecting other bits.

anl PSW, #0xE7 ;PSW AND 11100111

• Force individual bits high. orl PSW, #0x18 ;PSW OR 00011000

• Complement individual bits xrl P1, #0x40 ;P1 XRL 01000000

Page 91: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Other Logic Instructions

CLR - clear

RL – rotate left

RLC – rotate left through Carry

RR – rotate right

RRC – rotate right through Carry

SWAP – swap accumulator nibbles

Page 92: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

CLR ( Set all bits to 0)

CLR A

CLR byte (direct mode)

CLR Ri (register mode)

CLR @Ri (register indirect mode)

Page 93: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Rotate • Rotate instructions operate only on a

RL a

Mov a,#0xF0 ; a 11110000

RR a ; a 11100001

RR a

Mov a,#0xF0 ; a 11110000

RR a ; a 01111000

Page 94: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Rotate through Carry

RRC a

mov a, #0A9h ; a A9

add a, #14h ; a BD (10111101), C0

rrc a ; a 01011110, C1

RLC a

mov a, #3ch ; a 3ch(00111100)

setb c ; c 1

rlc a ; a 01111001, C1

C

C

Page 95: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Rotate and Multiplication/Division

• Note that a shift left is the same as multiplying by 2, shift right is divide by 2

mov a, #3 ; A 00000011 (3)

clr C ; C 0

rlc a ; A 00000110 (6)

rlc a ; A 00001100 (12)

rrc a ; A 00000110 (6)

Page 96: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Swap

SWAP a

mov a, #72h ; a 27h

swap a ; a 27h

Page 97: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Bit Logic Operations

• Some logic operations can be used with single bit operands

ANL C, bit

ORL C, bit

CLR C

CLR bit

CPL C

CPL bit

SETB C

SETB bit

• “bit” can be any of the bit-addressable RAM locations or SFRs.

Page 98: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Program Flow Control

• Unconditional jumps (“go to”)

• Conditional jumps

• Call and return

Page 99: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Unconditional Jumps

• SJMP <rel addr> ; Short jump, relative

address is 8-bit 2’s complement number, so jump can be up to 127

locations forward, or 128 locations back.

• LJMP <address 16> ; Long jump

• AJMP <address 11> ; Absolute jump to anywhere

within 2K block of program memory

• JMP @A + DPTR ; Long indexed jump

Page 100: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Infinite Loops

Start: mov C, p3.7

mov p1.6, C

sjmp Start

Microcontroller application programs are almost always infinite loops!

Page 101: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Re-locatable Code Memory specific NOT Re-locatable (machine code)

org 8000h

Start: mov C, p1.6

mov p3.7, C

ljmp Start

end

Re-locatable (machine code)

org 8000h

Start: mov C, p1.6

mov p3.7, C

sjmp Start

end

Page 102: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Jump table Mov dptr,#jump_table

Mov a,#index_number

Rl a

Jmp @a+dptr

...

Jump_table: ajmp case0

ajmp case1

ajmp case2

ajmp case3

Page 103: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Conditional Jump

• These instructions cause a jump to occur only if a condition is true. Otherwise, program execution continues with the next instruction.

loop: mov a, P1

jz loop ; if a=0, goto loop,

; else goto next instruction

mov b, a

• There is no zero flag (z)

• Content of A checked for zero on time

Page 104: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Conditional jumps Mnemonic Description

JZ <rel addr> Jump if a = 0

JNZ <rel addr> Jump if a != 0

JC <rel addr> Jump if C = 1

JNC <rel addr> Jump if C != 1

JB <bit>, <rel addr> Jump if bit = 1

JNB <bit>,<rel addr> Jump if bit != 1

JBC <bir>, <rel addr> Jump if bit =1, &clear bit

CJNE A, direct, <rel addr> Compare A and memory, jump if

not equal

Page 105: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Example: Conditional Jumps

jz led_off

Setb P1.6

sjmp skipover

led_off: clr P1.6

mov A, P0

skipover:

if (a = 0) is true

send a 0 to LED

else

send a 1 to LED

Page 106: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

More Conditional Jumps

Mnemonic Description

CJNE A, #data <rel addr> Compare A and data, jump if not

equal

CJNE Rn, #data <rel addr> Compare Rn and data, jump if not

equal

CJNE @Rn, #data <rel addr> Compare Rn and memory, jump if

not equal

DJNZ Rn, <rel addr> Decrement Rn and then jump if not

zero

DJNZ direct, <rel addr> Decrement memory and then jump if

not zero

Page 107: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Iterative Loops

For A = 0 to 4 do

{…}

clr a

loop: ...

...

inc a

cjne a, #4, loop

For A = 4 to 0 do

{…}

mov R0, #4

loop: ...

...

djnz R0, loop

Page 108: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Iterative Loops(examples)

mov a,#50h

mov b,#00h

cjne a,#50h,next

mov b,#01h

next: nop

end

mov a,#25h

mov r0,#10h

mov r2,#5

Again: mov @ro,a

inc r0

djnz r2,again

end

mov a,#0h

mov r4,#12h

Back: add a,#05

djnz r4,back

mov r5,a

end

mov a,#0aah

mov b,#10h

Back1:mov r6,#50

Back2:cpl a

djnz r6,back2

djnz b,back1

end

Page 109: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Call and Return

• Call is similar to a jump, but – Call pushes PC on stack before branching

acall <address ll> ; stack PC

; PC address 11 bit

lcall <address 16> ; stack PC

; PC address 16 bit

Page 110: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Return

• Return is also similar to a jump, but

– Return instruction pops PC from stack to get address to jump to

ret ; PC stack

Page 111: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Subroutines

Main: ...

acall sublabel

...

...

sublabel: ...

...

ret the subroutine

call to the subroutine

Page 112: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Initializing Stack Pointer

• SP is initialized to 07 after reset.(Same address as R7)

• With each push operation 1st , pc is increased

• When using subroutines, the stack will be used to store the PC, so it is very important to initialize the stack pointer. Location 2Fh is often used.

mov SP, #2Fh

Page 113: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Subroutine - Example square: push b

mov b,a

mul ab

pop b

ret

• 8 byte and 11 machine cycle

square: inc a

movc a,@a+pc

ret

table: db 0,1,4,9,16,25,36,49,64,81

• 13 byte and 5 machine cycle

Page 114: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Subroutine – another example

; Program to compute square root of value on Port 3

; (bits 3-0) and output on Port 1.

org 0

ljmp Main

Main: mov P3, #0xFF ; Port 3 is an input

loop: mov a, P3

anl a, #0x0F ; Clear bits 7..4 of A

lcall sqrt

mov P1, a

sjmp loop

sqrt: inc a

movc a, @a + PC

ret

Sqrs: db 0,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3

end

reset service

main program

subroutine

data

Page 115: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Why Subroutines?

• Subroutines allow us to have "structured" assembly language programs.

• This is useful for breaking a large design into manageable parts.

• It saves code space when subroutines can be called many times in the same program.

Page 116: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

example of delay

mov a,#0aah

Back1:mov p0,a

lcall delay1

cpl a

sjmp back1

Delay1:mov r0,#0ffh;1cycle

Here: djnz r0,here ;2cycle

ret ;2cycle

end

Delay=1+255*2+2=513 cycle

Delay2:

mov r6,#0ffh

back1: mov r7,#0ffh ;1cycle

Here: djnz r7,here ;2cycle

djnz r6,back1;2cycle ret ;2cycle

end

Delay=1+(1+255*2+2)*255+2

=130818 machine cycle

Page 117: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Long delay Example

GREEN_LED: equ P1.6

org ooh

ljmp Main

org 100h

Main: clr GREEN_LED

Again: acall Delay

cpl GREEN_LED

sjmp Again

Delay: mov R7, #02

Loop1: mov R6, #00h

Loop0: mov R5, #00h

djnz R5, $

djnz R6, Loop0

djnz R7, Loop1

ret

END

reset service

main program

subroutine

Page 118: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Example ; Move string from code memory to RAM

org 0

mov dptr,#string

mov r0,#10h

Loop1: clr a

movc a,@a+dptr

jz stop

mov @r0,a

inc dptr

inc r0

sjmp loop1

Stop: sjmp stop

; on-chip code memory used for string

org 18h

String: db ‘this is a string’,0

end

Page 119: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Example ; p0:input p1:output

mov a,#0ffh

mov p0,a

back: mov a,p0

mov p1,a

sjmp back

setb p1.2

mov a,#45h ;data

Again: jnb p1.2,again ;wait for data request

mov p0,a ;enable strobe

setb p2.3

clr p2.3

Page 120: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Example

; duty cycle 50%

back: cpl p1.2

acall delay

sjmp back

back: setb p1.2

acall delay

Clr p1.2

acall delay

sjmp back

Page 121: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Example

; duty cycle 66%

back: setb p1.2

acall delay

acall delay

Clr p1.2

acall delay

sjmp back

Page 122: Embedded Systems “Gömülü Sistemlerin Temel Bileşenleri

Usage Notes

• A lot of slides are adopted from the presentations and documents published on internet by experts who know the subject very well.

• I would like to thank who prepared slides and documents.

• Also, these slides are made publicly available on the web for anyone to use

• If you choose to use them, I ask that you alert me of any mistakes which were made and allow me the option of incorporating such changes (with an acknowledgment) in my set of slides.

Sincerely,

Dr. Cahit Karakuş

[email protected]