Menu English Ukrainian Russia Laman Utama

Perpustakaan teknikal percuma untuk penggemar dan profesional Perpustakaan teknikal percuma


ENSIKLOPEDIA ELEKTRONIK RADIO DAN KEJURUTERAAN ELEKTRIK
Perpustakaan percuma / Skim peranti radio-elektronik dan elektrik

Pengaturcaraan modular sistem kawalan pada MCS48. Ensiklopedia elektronik radio dan kejuruteraan elektrik

Perpustakaan teknikal percuma

Ensiklopedia elektronik radio dan kejuruteraan elektrik / Pengawal mikro

Komen artikel Komen artikel

Adalah diketahui bahawa mikropengawal yang sama boleh mengawal kedua-dua peralatan teknologi yang kompleks dan pengisar kopi isi rumah atau jam elektronik. Penyesuaian kepada objek tertentu dilakukan dengan menukar program mikropengawal, perkakasan hampir tidak terjejas. Artikel yang dicadangkan ditumpukan kepada teknik pengaturcaraan untuk mikropengawal siri MCS48, yang digunakan secara meluas dalam sistem kawalan untuk pelbagai tujuan. Peruntukan utamanya juga sah untuk peranti yang lebih moden.

Pembangunan dan pemodenan program kawalan amat dipermudahkan jika ia dibina mengikut prinsip modular. Dalam kes ini, selepas mendapat sedikit pengalaman, dan yang paling penting, perpustakaan modul kami yang dinyahpepijat, pengaturcaraan sistem kawalan (CS) baharu turun untuk menggantikan beberapa modul program yang sedia ada dan dinyahpepijat dan, mungkin, menambahnya dengan serpihan yang mengambil kira kekhususan sistem tertentu.

Prinsip ini tertanam dalam struktur banyak bahasa peringkat tinggi (PASCAL, C++), dan pengaturcara secara literal terpaksa mengikutinya. Malangnya, ASSEMBLERS (termasuk untuk MSS48), sambil memberikan kebebasan yang lebih besar kepada pengaturcara untuk memilih cara dan kaedah untuk menyelesaikan masalah, sebagai peraturan, tidak memantau pematuhan disiplin pengaturcaraan sama sekali. Ini sering membawa kepada penciptaan atur cara yang sangat mengelirukan sehinggakan pengarangnya pun tidak dapat mengetahui apa yang telah dilakukan selepas beberapa ketika, apatah lagi penggunaan serpihan nyahpepijat dalam atur cara lain. Pematuhan secara sedar kepada konsep modular biasa sangat memudahkan dan mempercepatkan pengaturcaraan mikropengawal. Contoh program modular biasa untuk CS diberikan dalam jadual. Sintaksnya sepadan dengan TASM ASSEMBLY jadual dalam versi untuk mikropemproses 8048.

Seperti yang anda lihat, pada permulaan teks program, arahan EQU memberikan nama kepada pemalar dan menetapkan nilai. Menggunakan pemalar bernama sentiasa lebih baik daripada menentukan nilai angka secara langsung dalam arahan pemproses boleh laku. Sebagai contoh, kelewatan masa yang dilaksanakan oleh salah satu subrutin yang dibincangkan di bawah ditakrifkan oleh tiga nombor. Mereka diberikan oleh pemalar N1, N2 dan N3. Jika anda perlu menukar kelajuan pengatup, sudah cukup untuk menentukan nilai baharu dalam operator EQU. Jika tidak, anda perlu melihat sepanjang program untuk arahan dengan operan yang sama dengan nombor ini, tentukan sama ada setiap daripada mereka merujuk kepada kelewatan masa, dan nyatakan nilai baharu dalam kes yang diperlukan.

Jelas sekali, kerja sedemikian memerlukan banyak masa dan selalunya tidak dilakukan tanpa kesilapan. Ia amat rumit oleh fakta bahawa sesetengah arahan mungkin tidak menggunakan nombor keseluruhan, tetapi, sebagai contoh, bait tinggi atau rendahnya. ASSEMBER sudah pada peringkat terjemahan program dapat mengira beberapa pemalar berdasarkan nilai yang lain. Kemungkinan ini digambarkan dengan pengiraan bait tinggi (N3N) dan rendah (N3L) bagi nombor NXNUMX.

Seterusnya, program memperuntukkan memori untuk pembolehubah. Mereka melakukan ini dengan arahan EQU yang sama, tetapi tidak seperti perihalan pemalar, mereka tidak menentukan nilai berangka pembolehubah, tetapi alamat sel memori yang mereka duduki.

Pengaturcaraan modular sistem kawalan pada MCS48
(klik untuk memperbesar)

Jika ASSEMBLER membenarkan, kemungkinan menggunakan makro tidak boleh diabaikan. Setiap daripada mereka adalah, seolah-olah, arahan baru yang melaksanakan operasi yang tidak diperuntukkan secara langsung oleh sistem arahan pemproses. Menggambarkan arahan makro, pengaturcara memberikannya nama (yang, sudah tentu, tidak bertepatan dengan nama mana-mana arahan "sebenar") dan menentukan tindakan yang diperlukan dalam bentuk Urutan arahan mesin. Setiap kali ia menemui arahan makro dalam atur cara, ASSEMBLER akan menggantikannya dengan urutan yang ditentukan. Dalam contoh ini, dua makro digunakan. Salah seorang daripada mereka memindahkan kandungan penumpuk ke sel memori data yang ditentukan oleh parameter makro, dan yang lain - belakang.

Selepas kuasa dihidupkan (atau isyarat set semula diberikan), mikropengawal mula melaksanakan program dari alamat sifar. Alamat ini biasanya digunakan untuk menulis arahan lompat tanpa syarat ke titik permulaan program sebenar (dalam kes ini, label MULA). Ini adalah perlu kerana gangguan perkakasan sentiasa memindahkan kawalan ke alamat tetap 3 dan 7 (untuk jenis mikropengawal lain, alamat mungkin berbeza, tetapi ia masih terletak pada permulaan memori program). Arahan peralihan tanpa syarat kepada rutin perkhidmatan bagi gangguan sepadan yang terletak di alamat ini hendaklah "dipintas" oleh program utama.

Langkah seterusnya ialah menetapkan mod pengendalian pengawal (contohnya, memilih bank memori dan daftar), memulakan pembolehubah dan peranti luaran. Kesilapan biasa pengaturcara pemula adalah menganggap bahawa sejurus selepas memulakan program, pembolehubah sudah mempunyai beberapa nilai yang pasti. Salah tanggapan ini diperkukuh oleh fakta bahawa sesetengah bahasa peringkat tinggi (seperti BASIC) secara automatik menetapkan semua pembolehubah kepada nilai awal sifar. Dalam atur cara dalam bahasa himpunan (dan banyak bahasa lain), pengaturcara sendiri mesti menjaga bahawa sebelum bacaan pertama nilai pembolehubah, sesuatu telah ditulis ke sel memori yang diperuntukkan kepadanya. Gaya pengaturcaraan yang baik memerlukan nilai awal diberikan kepada pembolehubah pada permulaan program. Dalam kes ini, ini dilakukan oleh subrutin 1INIT.

Bahagian permulaan peranti luaran biasanya kelihatan seperti panggilan ganti kepada subrutin, setiap satunya menetapkan semula salah satu daripadanya (penukar analog-ke-digital, penunjuk LED, pad kekunci, dll.) dan boleh diganti dengan mudah apabila memuktamadkan dan menambah baik sistem. Selalunya, rutin yang sama ini memeriksa kesihatan peranti.

Seterusnya, kebanyakan program kawalan memasuki gelung utama berulang tanpa henti, pelaksanaannya digantung hanya untuk mengendalikan gangguan. Kitaran ini terdiri daripada subrutin untuk mengundi papan kekunci dan penderia lain, menyemak bendera yang ditetapkan oleh subrutin pengendalian gangguan (contohnya, bendera untuk tamat tempoh selang masa tertentu atau penghujung penukar analog-ke-digital), pemprosesan maklumat yang diterima mengikut algoritma kawalan yang ditentukan, mengeluarkan tindakan kawalan kepada penggerak , memaparkan maklumat tentang keadaan proses teknologi pada paparan kristal cecair atau penunjuk lain. Keluar dari gelung utama biasanya disediakan hanya dalam situasi kecemasan, sebagai contoh, jika untuk menghapuskan akibat kegagalan, adalah perlu untuk mengulangi permulaan semua pembolehubah dan peranti luaran, serta apabila pemprosesan terganggu.

Oleh itu, program yang dibina secara modular ialah satu set subrutin. Jika, sebagai contoh, papan kekunci yang berbeza digunakan dalam sistem kawalan baharu, ia sudah cukup untuk menggantikan subrutin BUTT. Agar penggantian sedemikian mudah dan tidak menyakitkan, peraturan tertentu harus dibangunkan dan sentiasa dipatuhi. Subrutin, jika boleh, harus menyimpan kandungan semua daftar pengawal, menerima data awal dan mengeluarkan keputusan dalam daftar dan sel memori yang sama, menggunakan pengekodan aksara yang sama, dsb.

Ia adalah perlu untuk melawan keinginan semula jadi (terutamanya untuk pengaturcara yang telah mengatasi kesukaran pertama dan mula berasa seperti profesional) untuk memudahkan program dengan menjauhi peraturan yang ketat dan menggunakan teknik yang tidak standard. Nampaknya, pada pandangan pertama, komplikasi yang tidak wajar akan membuahkan hasil sepenuhnya dengan memudahkan penyahpepijatan dan mengolah semula program secara keseluruhan.

Mari kita pertimbangkan beberapa ciri subrutin. I NCREM dan DESREM melaksanakan yang diperlukan dalam banyak kes, operasi meningkat atau menurun dengan nilai tertentu nombor binari 16-bit (bait tinggi dan rendahnya masing-masing dalam daftar R6 dan R5). Pemalar yang menentukan jumlah kenaikan diterangkan pada permulaan program.

Memandangkan mana-mana mikropengawal berfungsi lebih pantas daripada peralatan teknologi, adalah sangat penting untuk dapat mengatur kelewatan masa dalam program. Dalam kes ini, kaunter/pemasa dalaman pemproses digunakan. Ia mempunyai kapasiti terhad dan melimpah dalam milisaat. Setiap limpahan menjana permintaan gangguan. Rutin perkhidmatan gangguan pemasa (TIME) mengira mereka dan, apabila nombor yang ditentukan dicapai, menetapkan bendera tamat masa FLT kepada satu. Semua subrutin yang kerjanya bergantung pada masa, ia tetap menganalisis keadaan bendera ini. Jadi adalah mungkin untuk merealisasikan kelajuan pengatup beberapa saat dan juga minit.

Untuk mula mengira selang baru, adalah perlu untuk memasukkan nilai awal dalam sel kerja subrutin TIME dan hidupkan pemasa. Subrutin SET2M, sebagai contoh, menetapkan kelewatan masa kepada 2 minit. Pengiraan nilai awal mempunyai beberapa kehalusan.

Adalah diketahui bahawa dalam mikropengawal siri MSS48, denyutan tiba pada input pembilang/pemasa dalaman pada frekuensi yang 480 kali lebih rendah daripada frekuensi pengayun kuarza. Contohnya, dengan frekuensi resonator kuarza 7 MHz, nombor yang ditulis ke kaunter berubah setiap 480/7000000 = 0,00006857 s = 68,57 µs. Jadi kaunter akan melimpah (dan menjana permintaan gangguan) dalam 68,57 -(256-N1) µs, di mana N1 ialah nombor yang asalnya ditulis ke kaunter. Jika setiap kali anda memulakan kiraan baharu daripada nombor ini, maka N0,1 = 2 0,1/[7000000 (1480-N256)] limpahan akan berlaku dalam 1 s (kelewatan masa minimum).

Jelas sekali, kelewatan masa yang sama boleh diperoleh dengan N1 dan N2 yang berbeza, tetapi memandangkan nombor ini tidak boleh pecahan, ia akan dilaksanakan dengan beberapa ralat. Tugasnya adalah untuk memilih sepasang nilai sedemikian yang mana ralatnya adalah minimum. Dalam kes yang sedang dipertimbangkan, pilihan terbaik ialah N1 = 13, N2 = 6. Kelewatan masa selama 2 minit diperolehi dengan mengulangi prosedur yang diterangkan N3 = 1200 kali.

Selalunya perlu menggunakan prosedur yang berbeza untuk memproses gangguan perkakasan yang sama dalam mod operasi program yang berbeza. Satu cara untuk melakukan ini digambarkan oleh subrutin INTER. Ia menganalisis kod jenis gangguan yang dimasukkan oleh program utama dalam sel INTT dan, bergantung pada nilainya, memanggil salah satu rutin perkhidmatan gangguan ISR1 atau ISR2. Ambil perhatian bahawa kedua-duanya berakhir dengan RET, bukan RETR. Adalah mudah untuk meningkatkan bilangan pilihan pemprosesan dan juga menjadikannya supaya untuk nilai tertentu kod, beberapa subrutin yang berbeza akan dipanggil satu demi satu.

Tidak perlu menulis semua subrutin yang diperlukan dalam fail teks program utama. Modul yang dinyahpepijat dan digunakan berulang kali dalam atur cara yang berbeza boleh didapati dalam fail berasingan dan disambungkan ke program utama menggunakan arahan INCLUDE. Setiap fail termasuk boleh mengandungi satu atau lebih rutin. Kelemahan kaedah ini ialah nama pembolehubah, pemalar dan label dalam semua modul yang digunakan tidak boleh diulang. Dilucutkan daripada kecacatan ini, kaedah terjemahan berasingan modul dengan penggabungan seterusnya pada tahap kod objek, malangnya, tidak disokong oleh TASM ASSEMBLY.

Pengarang: D. Ryzhov, Vladimir

Lihat artikel lain bahagian Pengawal mikro.

Baca dan tulis berguna komen pada artikel ini.

<< Belakang

Berita terkini sains dan teknologi, elektronik baharu:

Balai cerap astronomi tertinggi di dunia dibuka 04.05.2024

Meneroka angkasa dan misterinya adalah tugas yang menarik perhatian ahli astronomi dari seluruh dunia. Dalam udara segar di pergunungan tinggi, jauh dari pencemaran cahaya bandar, bintang dan planet mendedahkan rahsia mereka dengan lebih jelas. Satu halaman baharu dibuka dalam sejarah astronomi dengan pembukaan balai cerap astronomi tertinggi di dunia - Balai Cerap Atacama Universiti Tokyo. Balai Cerap Atacama, yang terletak pada ketinggian 5640 meter di atas paras laut, membuka peluang baharu kepada ahli astronomi dalam kajian angkasa lepas. Tapak ini telah menjadi lokasi tertinggi untuk teleskop berasaskan darat, menyediakan penyelidik dengan alat unik untuk mengkaji gelombang inframerah di Alam Semesta. Walaupun lokasi altitud tinggi memberikan langit yang lebih jelas dan kurang gangguan dari atmosfera, membina sebuah balai cerap di atas gunung yang tinggi memberikan kesukaran dan cabaran yang besar. Walau bagaimanapun, walaupun menghadapi kesukaran, balai cerap baharu itu membuka prospek yang luas kepada ahli astronomi untuk penyelidikan. ...>>

Mengawal objek menggunakan arus udara 04.05.2024

Perkembangan robotik terus membuka prospek baharu bagi kami dalam bidang automasi dan kawalan pelbagai objek. Baru-baru ini, saintis Finland membentangkan pendekatan inovatif untuk mengawal robot humanoid menggunakan arus udara. Kaedah ini menjanjikan untuk merevolusikan cara objek dimanipulasi dan membuka ufuk baharu dalam bidang robotik. Idea untuk mengawal objek menggunakan arus udara bukanlah perkara baru, tetapi sehingga baru-baru ini, melaksanakan konsep sedemikian masih menjadi cabaran. Penyelidik Finland telah membangunkan kaedah inovatif yang membolehkan robot memanipulasi objek menggunakan jet udara khas sebagai "jari udara". Algoritma kawalan aliran udara, yang dibangunkan oleh pasukan pakar, adalah berdasarkan kajian menyeluruh tentang pergerakan objek dalam aliran udara. Sistem kawalan jet udara, yang dijalankan menggunakan motor khas, membolehkan anda mengarahkan objek tanpa menggunakan fizikal ...>>

Anjing tulen jatuh sakit tidak lebih kerap daripada anjing tulen 03.05.2024

Menjaga kesihatan haiwan peliharaan kita adalah aspek penting dalam kehidupan setiap pemilik anjing. Walau bagaimanapun, terdapat andaian umum bahawa anjing baka tulen lebih terdedah kepada penyakit berbanding anjing campuran. Penyelidikan baru yang diketuai oleh penyelidik di Texas School of Veterinary Medicine dan Sains Bioperubatan membawa perspektif baru kepada soalan ini. Kajian yang dijalankan oleh Projek Penuaan Anjing (DAP) terhadap lebih daripada 27 anjing pendamping mendapati bahawa anjing baka tulen dan campuran secara amnya berkemungkinan sama untuk mengalami pelbagai penyakit. Walaupun sesetengah baka mungkin lebih terdedah kepada penyakit tertentu, kadar diagnosis keseluruhan adalah hampir sama antara kedua-dua kumpulan. Ketua doktor haiwan Projek Penuaan Anjing, Dr. Keith Creevy, menyatakan bahawa terdapat beberapa penyakit terkenal yang lebih biasa dalam baka anjing tertentu, yang menyokong tanggapan bahawa anjing baka tulen lebih terdedah kepada penyakit. ...>>

Berita rawak daripada Arkib

Persahabatan jerung jangka panjang 31.01.2024

Para saintis dari Universiti Antarabangsa Florida, memerhati sekumpulan jerung kelabu, mendedahkan aspek baru tingkah laku mereka, menunjukkan bahawa pemangsa ini bukan sahaja mempunyai ciri individu, tetapi juga menunjukkan strategi untuk interaksi kolektif.

Penyelidikan terhadap tingkah laku jerung meluaskan pemahaman kita tentang interaksi sosial dalam dunia pemangsa marin. Memahami dinamik komuniti jerung boleh membantu melindungi dan memulihara ekosistem marin.

Jerung, yang terkenal dengan keagresifan mereka, bertemu dalam komuniti kecil selepas memburu dan mengekalkan ikatan jangka panjang antara satu sama lain, membentuk struktur sosial yang kompleks.

Kajian yang diketuai oleh Yiannis Papastamatyou, mengkaji tingkah laku jerung kelabu gelap berhampiran Palmyra Atoll di Lautan Hindi. Menggunakan rangkaian 65 mikrofon, saintis mengesan pergerakan jerung, mendedahkan pilihan individu dan interaksi sosial mereka.

Hasil kajian menunjukkan bahawa jerung membentuk "syarikat" yang stabil dan menunjukkan keutamaan untuk pasangan tertentu dalam masyarakat. Sesetengah individu mengekalkan hubungan selama bertahun-tahun, bertemu di pangkalan selepas memburu.

Walaupun tingkah laku jerung mungkin kelihatan tidak bermakna dalam konteks keagresifan mereka, penyelidikan ini menyerlahkan kerumitan dan pelbagai strategi yang digunakan haiwan untuk berjaya bertahan.

Berita menarik lain:

▪ Peranti untuk mengukur ciri-ciri bahan dielektrik dan magnet

▪ Kereta lumba masa depan

▪ Pintu ke dunia mimpi

▪ Penderia suhu TMP117

▪ Makan malam lewat merosakkan ingatan

Suapan berita sains dan teknologi, elektronik baharu

 

Bahan-bahan menarik Perpustakaan Teknikal Percuma:

▪ bahagian tapak Eksperimen dalam kimia. Pemilihan artikel

▪ artikel Junker Schmidt mahu menembak dirinya sendiri dengan pistol. Ungkapan popular

▪ artikel Mengapakah rasa ingin tahu ejaan automatik dipanggil kesan Cupertino? Jawapan terperinci

▪ pasal pelayan. Deskripsi kerja

▪ artikel Kepala sepaksi dalam pembesar suara saluran tengah. Ensiklopedia elektronik radio dan kejuruteraan elektrik

▪ artikel Penukar voltan boleh balik. Ensiklopedia elektronik radio dan kejuruteraan elektrik

Tinggalkan komen anda pada artikel ini:

Имя:


E-mel (pilihan):


Komen:





Semua bahasa halaman ini

Laman utama | Perpustakaan | artikel | Peta Laman | Ulasan laman web

www.diagram.com.ua

www.diagram.com.ua
2000-2024