NO KOD
MUKA 01 DARIPADA
KOD JPK
● Core (CPU) mendaftarkan - mengawal dan memantau operasi dan proses dalam
pemproses pusat. Walaupun terdapat hanya beberapa daripada mereka, kuat kuasa
keseluruhan pengawal mikro bergantung kepada kandungannya.
● Peripheral SFRs- mengawal operasi peranti persisian (modul komunikasi bersiri, A / D
converter dan lain-lain). Setiap satu daripada daftar ini terutamanya khusus untuk satu
litar dan oleh itu mereka akan diterangkan bersama-sama dengan litar mereka berada
dalam kawalan.
Teras (CPU) daftar mikropengawal PIC16F887 yang diterangkan dalam bab ini. Sejak bit
mereka mengawal beberapa litar yang berbeza dalam cip, ia tidak mungkin untuk
mengklasifikasikan mereka ke dalam beberapa kumpulan khas. Ini bit dinyatakan bersama-sama
dengan proses yang mereka kuasai.
STATUS Daftar
The STATUS daftar mengandungi: status aritmetik W daftar, status RESET dan bank pilih bit
untuk ingatan data. Seseorang itu perlu berhati-hati semasa menulis nilai kepada daftar ini kerana
jika anda melakukan kesilapan, keputusan mungkin berbeza daripada yang dijangkakan. Sebagai
contoh, jika anda cuba untuk membersihkan semua bit menggunakan STATUSCLRF, arahan
hasilnya dalam daftar yang akan 000xx1xx bukannya dijangka 00000000. kesilapan itu berlaku
kerana beberapa bit daftar ini ditetapkan atau dibuang mengikut perkakasan sebagai juga kerana
bit 3 dan 4 boleh dibaca sahaja. Untuk sebab-sebab ini, jika ia diperlukan untuk menukar
kandungannya (contohnya, untuk menukar bank aktif), ia adalah disyorkan untuk menggunakan
hanya arahan yang tidak menjejaskan mana-mana bit Status (C, DC dan Z). Rujuk kepada
"Instruction Set Ringkasan".
● IRP - pilihan pelanggan Bit mendaftar bank. Ia digunakan untuk tidak langsung
menangani.
o 1 - Bank 0 dan 1 adalah aktif (lokasi memori 00H-FFH)
o 0 - Banks 2 dan 3 adalah aktif (lokasi memori 100H-1FFh)
● RP1, RP0 - Bits pilih mendaftar bank. Ia digunakan untuk terus menangani.
Bank R R
2
Active P0 P1
Bank0 0 0
Bank1 1 0
Bank2 0 1
Bank3 1 1
Jadual 2-1
OPTION_REG Daftar
Fig.2-2
The OPTION_REG daftar mengandungi pelbagai bit kawalan untuk mengkonfigurasi: Timer0 /
WDT prescaler, pemasa TMR0, sampukan luaran dan tarik-up di PORTB.
3
● RBPU - Port B Tarik Membolehkan bit.
o 1 - PORTB tarik-up dilumpuhkan.
o 0 - PORTB tarik-up didayakan.
Fig.2-3
Fig.2-4
Fig.2-5
4
● T0SE - TMR0 Sumber Edge Pilih bit memilih tepi nadi (semakin meningkat atau jatuh)
dikira oleh pemasa TMR0 melalui pin RA4 / T0CKI.
o 1 - Kenaikan peralihan tinggi ke rendah pada TOCKI pin.
o 0 - Kenaikan peralihan rendah hingga tinggi pada TOCKI pin.
Fig.2-6
● PSA- bit Prescaler Tugasan memberikan prescaler (hanya satu wujud) untuk pemasa
atau pemantau pemasa.
o 1 - Prescaler diberikan kepada WDT.
o 0 - Prescaler diberikan kepada TMR0.
Fig.2-7
Prescaler Kadar dipilih dengan menggabungkan ketiga-tiga bit. Diterangkan, seperti yang
ditunjukkan dalam jadual di bawah, kadar prescaler bergantung kepada sama ada prescaler
ditugaskan (TMR0) atau menonton anjing timer (WDT).
5
Dalam usaha untuk mencapai 1: 1 Kadar prescaler apabila pemasa TMR0 mengira sehingga
denyutan, prescaler harus diberikan kepada WDT. Hasil daripada ini, pemasa TMR0 tidak
menggunakan prescaler, tetapi terus mengira denyutan yang dihasilkan oleh pengayun, yang
merupakan matlamat!
Apabila permintaan sampukan tiba ia tidak bermakna sampukan yang secara automatik akan
berlaku, kerana ia juga mesti didayakan oleh pengguna (dari dalam program ini). Oleh kerana
itu, terdapat bit khas yang digunakan untuk membolehkan atau melumpuhkan sampukan. Ia
adalah mudah untuk mengenali bit ini dengan IE yang terkandung dalam nama-nama mereka
(bermaksud Sampukan). Selain itu, setiap sampukan dikaitkan dengan sedikit lain yang dipanggil
bendera yang menunjukkan bahawa permintaan sampukan telah tiba tidak kira sama ada ia
dibolehkan atau tidak. Mereka juga mudah dikenali oleh dua huruf terakhir yang terkandung
dalam names- mereka IF (Interrupt Bendera).
Seperti yang dapat dilihat, segala-galanya adalah berdasarkan idea yang mudah dan berkesan.
Apabila permintaan sampukan tiba, sedikit bendera itu akan ditubuhkan pertama.
Jika IE bit yang sesuai tidak ditetapkan (0), acara ini akan benar-benar diabaikan. Jika tidak,
sampukan berlaku! Dalam kes beberapa sumber sampukan didayakan, ia adalah perlu untuk
mengesan yang aktif sebelum rutin bermula pelaksanaan sampukan. Pengesanan sumber
dilakukan dengan memeriksa bit bendera.
Ia adalah penting untuk memahami bahawa bit bendera tidak secara automatik dibersihkan,
tetapi oleh perisian semasa pelaksanaan rutin sampukan. Jika butiran ini diabaikan, sampukan
lain akan berlaku serta-merta setelah kembali ke program itu, walaupun tiada lagi permintaan
untuk pelaksanaannya! Ringkasnya, bendera serta IE bit kekal ditetapkan.
Semua mengganggu sumber tipikal mikropengawal PIC16F887 yang ditunjukkan pada halaman
seterusnya. Nota beberapa perkara:
● GIE bit - membolehkan semua sampukan membuka tabir dan melumpuhkan semua
mengganggu serentak.
● PEIE bit - membolehkan semua sampukan periferal membuka tabir dan melumpuhkan
semua sampukan periferal (ini tidak melibatkan Timer TMR0 dan pelabuhan B
mengganggu sumber).
6
Untuk membolehkan sampukan disebabkan oleh perubahan keadaan logik pada port B, ia adalah
perlu untuk membolehkan ia untuk setiap bit secara berasingan. Dalam kes ini, bit yang IOCB
daftarmempunyai fungsi untuk mengawal bit IE.
INTCON Mendaftar
The INTCON daftar mengandungi pelbagai membolehkan dan bit bendera TMR0 daftar
limpahan, perubahan PORTB dan luaran sampukan INT pin.
7
● GIE - Global Sampukan bit - kawalan semua sumber sampukan mungkin serentak.
o 1 - Membolehkan semua sampukan membuka tabir.
o 0 - Melumpuhkan semua sampukan.
● PEIE - Peripheral Interrupt Membolehkan bit bertindak serupa dengan GIE, tetapi
kawalan sampukan yang dibolehkan oleh persisian. Ia bermakna bahawa ia tidak
memberi kesan kepada sampukan dicetuskan oleh pemasa TMR0 atau dengan menukar
kerajaan pada port B atau pin RB0 / INT.
o 1 - Membolehkan semua sampukan periferal membuka tabir.
o 0 - Melumpuhkan semua sampukan periferal.
● T0IE - TMR0 Limpahan Sampukanbit kawalansampukan yang dibolehkan oleh
TMR0 limpahan.
o 1 - Membolehkan sampukan TMR0 itu.
o 0 - Melumpuhkan sampukan TMR0 itu.
● INTE - RB0 / INT Interrupt Luar Membolehkanbit kawalansampukan disebabkan
oleh perubahan keadaan logik pada pin RB0 / IN (sampukan luaran).
o 1 - Membolehkan sampukan luaran INT.
o 0 - Melumpuhkan sampukan luaran INT.
● RBIE - RB Port Tukar Sampukanbit.Apabila dikonfigurasikan sebagai input, port pin
B boleh menyebabkan sampukan dengan menukar keadaan logik mereka (tidak kira sama
ada ia adalah peralihan rendah highto- atau sebaliknya, hakikat bahawa sesuatu yang
berubah hanya perkara-perkara). Bit ini menentukan sama ada sampukan adalah berlaku
atau tidak.
o 1 - Membolehkan sampukan port perubahan B.
o 0 - Melumpuhkan sampukan port perubahan B.
● T0IF - TMR0 Limpahan Interrupt Flag bit mendaftar pemasa TMR0 mendaftar
limpahan, apabila mengira bermula dari sifar.
o 1 - TMR0 daftar telah melimpah (bit mesti dibersihkan dalam perisian).
o 0 - TMR0 daftar tidak melimpah keluar.
● INTF - RB0 / INT Luar Interrupt Flag sedikit perubahan daftar-daftar keadaan logik
pada pin RB0 / INT.
o 1 - INT sampukan luar telah berlaku (mesti dibersihkan dalam perisian).
o 0 - The INT sampukan luaran tidak berlaku.
● RBIF - RB Port Tukar Interrupt Flag sedikit mendaftarkan perubahan keadaan logik
beberapa input pin port B.
o 1 - Sekurang-kurangnya salah satu daripada pelabuhan B umum tujuan pin I / O
telah berubah negeri. Setelah membaca PORTB, RBIF (bendera bit) mesti
dibersihkan dalam perisian.
o 0 - Tiada pelabuhan B umum tujuan pin I / O telah berubah negeri.
8
PIE1 Daftar
9
PIE2 Daftar
10
PIR1 Daftar
11
PIR2 Daftar
12
PCON mendaftar
The PCON daftar mengandungi hanya dua bit bendera digunakan untuk membezakan antara:
kuasa-on semula, semula coklat keluar, Badan Pengawas Timer Reset dan reset luar (melalui
MCLR pin).
Saiz memori program ini daripada PIC16F887 adalah 8K. Oleh itu, ia mempunyai 8192 lokasi
untuk program menyimpan. Atas sebab ini kaunter rancangan tidak kurang 13-bit luas (2 ^ 13 =
8192). Supaya kandungan beberapa lokasi boleh diubah dalam perisian semasa operasi,
alamatnya mesti boleh diakses melalui beberapa SFR. Oleh kerana semua SFRs 8-bit luas, daftar
ini adalah "buatan" dicipta dengan membahagikan 13 bit ke dalam dua daftar yang bebas:
PCLATH dan PCL.
Jika pelaksanaan program ini tidak menjejaskan kaunter program ini, nilai daftar ini secara
automatik dan sentiasa incremented 1, 1, 1, 1 ... Dengan cara itu, program ini dilaksanakan hanya
kerana ia adalah arahan written- oleh arahan, diikuti dengan kenaikan alamat tetap.
13
Rajah. 2-16 PCL dan PCLATH Registers
Jika kaunter program itu berubah dalam perisian, maka terdapat beberapa perkara yang perlu
diingat untuk mengelakkan masalah:
● Lapan bit rendah (bait yang rendah) datang dari PCL mendaftar yang boleh dibaca dan
ditulis, manakala lima bit atas datang daripada daftar PCLATH adalah ditulis sahaja.
● The PCLATH daftar dibersihkan pada mana-mana set semula.
● Dalam bahasa himpunan, nilai kaunter program yang ditandakan dengan PCL, tetapi ia
jelas merujuk kepada 8 bit yang lebih rendah sahaja. Seseorang itu perlu berhati-hati
apabila menggunakan"ADDWFPCL"arahan. Ini adalah suruhan lompat yang menetapkan
lokasi sasaran dengan menambah beberapa nombor untuk alamat semasa. Ia sering
digunakan apabila melompat ke dalam jadual atau cawangan program jadual look-up
untuk membacanya. Masalah timbul jika alamat semasa adalah seperti yang punca Selain
menukar beberapa bit milik bait yang lebih tinggi daftar PCLATH itu. Adakah anda
melihat apa yang sedang berlaku?
● Melaksanakan apa-apa arahan kepada daftar PCL serentak menyebabkan Prog bit
Counter ram akan digantikan dengan kandungan daftar PCLATH itu. Walau
bagaimanapun, daftar PCL mempunyai akses kepada bit hanya 8 lebih rendah hasil
arahan dan melompat berikut akan menjadi benar-benar tidak betul. Masalah ini
diselesaikan dengan menetapkan arahan tersebut di alamat yang berakhir dengan xx00h.
Ini membolehkan program untuk melompat sehingga 255 lokasi. Jika lompatan lagi
dilaksanakan oleh arahan ini, daftar PCLATH mesti incremented oleh 1 untuk setiap
daftar limpahan PCL.
● Pada panggilan subrutin atau pelaksanaan melompat (arahan CALL dan
GOTO),mikropengawal dapat menyediakan hanya 11-bit menangani. Atas sebab ini, sama
dengan RAM yang dibahagikan dalam "bank", ROM dibahagikan dalam empat "muka
surat" dalam saiz 2K setiap satu. Arahan tersebut dilaksanakan dalam laman ini tanpa
sebarang masalah. Cubalah, kerana pemproses disediakan dengan 11-bit alamat dari
program ini, ia mampu untuk menangani mana-mana lokasi dalam 2Kb. Rajah 2-17
bawah menggambarkan keadaan ini sebagai melompat ke alamat subrutin PP1.
● Walau bagaimanapun, jika satu subrutin atau alamat melompat tidak berada dalam
halaman yang sama dengan lokasi dari mana melompat, dua "hilang" - bit yang lebih
tinggi perlu disediakan dengan menulis kepada daftar PCLATH itu. Ia digambarkan
dalam rajah 2-17 di bawah sebagai melompat ke alamat subrutin PP2.
14
Rajah. 2-17 Registers PCLATH
Dalam kedua-dua kes, apabila subrutin mencapai arahan MEMULANGKAN, RETLW atau
RETFIE (untuk kembali ke program utama), mikropengawal akan berterusan pelaksanaan
program dari mana ia berhenti kerana alamat kembali ditolak dan disimpan ke atas timbunan
yang, seperti yang dinyatakan, terdiri daripada daftar yang 13-bit.
Selain mengarahkan menangani ianya logik dan jelas dengan sendirinya (ia adalah mencukupi
untuk menentukan alamat beberapa daftar untuk membaca kandungannya), pengawal mikro ini
mampu untuk melaksanakan tidak langsung menangani dengan cara INDF dan FSR mendaftar.
Ia kadang-kadang jauh memudahkan penulisan program. Keseluruhan prosedur diaktifkan kerana
daftar INDF bukan salah satu yang benar (dari segi fizikal tidak wujud), tetapi hanya
menyatakan daftar yang beralamat terletak dalam daftar FSR. Oleh kerana itu, menulis atau
membaca daripada daftar INDF sebenarnya bermaksud menulis atau membaca daripada daftar
yang beralamat terletak dalam daftar FSR. Dalam erti kata lain, alamat daftar yang 'dinyatakan
dalam daftar FSR, dan kandungannya disimpan dalam daftar INDF itu. Perbezaan antara
langsung dan tidak langsung menangani digambarkan dalam rajah 2-18 di bawah:
15
Seperti yang dapat dilihat, masalah dengan "hilang bit menangani" diselesaikan dengan
"pinjaman" daripada daftar lain. Kali ini, ia adalah sedikit ketujuh yang dipanggil IRP daripada
daftar status.
16