Berita
Berita
Ringkasan sains popular terkuat MCU [koleksi yang disyorkan] (2)
2022-03-17 230

6

Pengaturcaraan mikropengawal


 

Terdapat perbezaan yang besar antara penulisan program MCU dan penulisan program PC. Walaupun alat pembangunan MCU berasaskan C semakin popular, bagi pereka bentuk yang mempunyai kod program yang cekap dan suka menggunakan pemasangan, bahasa pemasangan masih merupakan bahasa pengaturcaraan yang paling ringkas dan berkesan.


Bagi pengaturcaraan MCU, rangka kerja asas boleh dikatakan hampir sama, yang secara amnya dibahagikan kepada tiga bahagian: bahagian permulaan (ini adalah perbezaan terbesar antara pengaturcaraan MCU dan PC), badan gelung program utama dan pengendali gangguan, yang dijelaskan seperti berikut:
  1. Permulaan:Untuk reka bentuk semua program MCU, permulaan adalah langkah paling asas dan penting, yang secara amnya merangkumi perkara berikut:
  Tutup semua gangguan dan mulakan penunjuk tindanan:Bahagian permulaan secara amnya tidak mahu sebarang gangguan berlaku.  
  Kosongkan kawasan RAM sistem dan paparkan Memori:Walaupun kadangkala ia mungkin tidak sepenuhnya diperlukan, dari perspektif kebolehpercayaan dan konsistensi, terutamanya untuk mengelakkan ralat yang tidak dijangka, adalah disyorkan untuk membangunkan tabiat pengaturcaraan yang baik.  
  Permulaan port IO:Mengikut keperluan aplikasi projek, tetapkan mod input dan output port IO yang berkaitan. Untuk port input, anda perlu menetapkan perintang tarik naik atau tarik turunnya; untuk port output, anda mesti menetapkan output aras awalnya untuk mengelakkan ralat yang tidak perlu.  
  Tetapan gangguan:Bagi semua sumber gangguan yang perlu digunakan dalam projek, ia harus dihidupkan dan syarat pencetus untuk gangguan harus ditetapkan, manakala gangguan berlebihan yang tidak digunakan mesti dimatikan.  
  Permulaan modul berfungsi lain:Bagi semua modul fungsi persisian MCU yang perlu digunakan, tetapan yang sepadan mesti dibuat mengikut keperluan aplikasi projek. Contohnya, untuk komunikasi UART, Kadar Baud, panjang data, kaedah pengesahan dan panjang Bit Henti perlu ditetapkan. Bagi Pemasa Pengaturcara, sumber jam, nombor pembahagian frekuensi dan Data Muat Semula mesti ditetapkan.  
  Permulaan parameter:Selepas melengkapkan permulaan perkakasan dan sumber MCU, langkah seterusnya adalah untuk memulakan beberapa pembolehubah dan data yang digunakan dalam program. Permulaan bahagian ini perlu direka bentuk mengikut projek khusus dan susunan keseluruhan program. Bagi sesetengah aplikasi yang menggunakan EEPROM untuk menyimpan data pasang siap projek, adalah disyorkan untuk menyalin data yang berkaitan ke RAM MCU semasa permulaan untuk meningkatkan kelajuan akses program kepada data dan mengurangkan penggunaan kuasa sistem (pada prinsipnya, mengakses EEPROM luaran akan meningkatkan penggunaan kuasa bekalan kuasa).  
  2. Badan gelung program utama:Kebanyakan MCU berjalan secara berterusan untuk jangka masa yang lama, jadi badan program utamanya pada asasnya direka bentuk dalam satu gelung. Bagi aplikasi dengan berbilang mod kerja, mungkin terdapat berbilang badan gelung, yang ditukar melalui bendera status. Bagi badan program utama, modul berikut secara amnya disusun:
  Prosedur pengiraan:Program pengiraan pada amnya memakan masa, jadi kami sekeras-kerasnya menentang pemprosesannya dalam sebarang gangguan, terutamanya operasi pendaraban dan pembahagian.  
Memproses program dengan keperluan masa nyata yang rendah atau tiada langsung;
 
  Tunjukkan prosedur pemindahan:Terutamanya ditujukan untuk aplikasi dengan Pemacu LED dan LCD luaran.  
  3. Pengendali gangguan:Program gangguan digunakan terutamanya untuk mengendalikan tugas dan peristiwa dengan keperluan masa nyata yang tinggi, seperti pengesanan isyarat luaran yang tiba-tiba, pengesanan dan pemprosesan butang, pengiraan masa, pengimbasan paparan LED, dan sebagainya.  
Dalam keadaan biasa, program gangguan harus memastikan kod tersebut ringkas dan sesingkat mungkin. Bagi fungsi yang tidak perlu diproses dalam masa nyata, bendera pencetus boleh ditetapkan dalam gangguan, dan kemudian program utama akan melaksanakan transaksi tertentu. Ini sangat penting, terutamanya untuk MCU berkuasa rendah dan berkelajuan rendah, yang mesti memastikan tindak balas yang tepat pada masanya terhadap semua gangguan.  
  4. Bagi susunan badan tugas yang berbeza, MCU yang berbeza mempunyai kaedah pemprosesan yang berbeza:  
 Contohnya, untuk aplikasi MCU (Fosc=32768Hz) berkelajuan rendah dan berkuasa rendah, memandangkan projek sedemikian adalah peranti pegang tangan dan menggunakan paparan LCD biasa, tindak balas terhadap tekanan kekunci dan tindak balas paparan memerlukan prestasi masa nyata yang tinggi, jadi gangguan masa biasanya digunakan untuk memproses tekanan kekunci. Tindakan dan paparan data; untuk MCU berkelajuan tinggi, seperti aplikasi Fosc>1MHz, memandangkan MCU mempunyai masa yang cukup untuk melaksanakan badan gelung program utama pada masa ini, ia hanya boleh menetapkan pelbagai bendera pencetus dalam gangguan yang sepadan dan meletakkan semua tugas dalam badan program utama untuk pelaksanaan.  
  5. Dalam pengaturcaraan MCU, satu perkara yang memerlukan perhatian khusus ialah:

Adalah perlu untuk menghalang pembolehubah atau data yang sama daripada diakses atau ditetapkan dalam badan gangguan dan program utama pada masa yang sama. Kaedah pencegahan yang berkesan adalah dengan mengatur pemprosesan data tersebut dalam modul, dan menentukan sama ada untuk melaksanakan operasi berkaitan pada data dengan menilai bendera pencetus; dalam badan program lain (terutamanya gangguan), hanya tetapkan bendera pencetus di tempat data perlu diproses. --Ini memastikan pelaksanaan data boleh diramal dan unik.

7

Ringkasan jurutera tentang pengaturcaraan mikropengawal



 

1,Bina tabiat membuat ringkasan yang baik. Meringkaskan bukan sahaja ringkasan pembelajaran anda sendiri, tetapi juga semakan dan pendalaman proses pembelajaran. Ia juga boleh mengelakkan daripada melakukan kesilapan pada kali kedua.


  2,Sebelum menulis program, anda mesti terlebih dahulu mempunyai pemahaman yang biasa tentang projek tersebut, menyedarinya, dan menggariskan rangka kerja umum. Adalah sangat penting untuk mempertimbangkan dengan teliti cara susun atur dan susun atur yang paling munasabah. Adalah perlu untuk menganalisis modul yang perlu dilakukan terlebih dahulu, langkah-langkah khusus modul ini, cara menamakan setiap fungsi, hubungan dengan modul lain, dan sebagainya. Adalah idea yang baik untuk mendapatkan sehelai kertas dan mencatat proses-proses penting.  
  3,Untuk pengaturcaraan modular dalam bahasa C, anda mesti membahagikan setiap modul terlebih dahulu, memprogram modul demi modul, menentukan urutan, mengikuti urutan tersebut, dan kemudian menulis modul seterusnya selepas modul berjaya. Untuk fail pengepala, tulis fail pengepala modul selepas modul ditulis.  
  4,Jangan abaikan amaran apabila ia muncul. Ini bermakna mesti ada sesuatu yang tidak munasabah tentang program tersebut. Adalah perlu untuk memahami sumbernya dan mencari penyelesaian. Bersikap spesifik semasa mencari sumber. Anda boleh mencari maklumat di Internet dalam bidang ini, atau meminta nasihat orang lain. Contohnya, fungsi utama dalam projek lain sebenarnya telah ditambahkan pada projek ini. Sebenarnya terdapat nama fungsi pendua. Terdapat juga sebab untuk menganalisis fenomena eksperimen dan kemajuan langkah demi langkah. Terdapat juga antara muka yang salah dipilih semasa menentukan port. Kadangkala, adalah baik untuk berehat dan memikirkannya jika anda benar-benar tidak dapat menyelesaikannya. Tidak kira betapa mudahnya, anda harus memberi perhatian kepadanya, kerana mungkin terdapat kesilapan.   
Dalam pembangunan aplikasi mikropengawal, masalah seperti kecekapan penggunaan kod, prestasi anti-gangguan dan kebolehpercayaan mikropengawal masih bermasalah. Sekarang kita ringkaskan beberapa kemahiran asas yang perlu dikuasai dalam pembangunan mikropengawal.        
         

8

Kemahiran pembangunan mikropengawal


   
       

1.Cara mengurangkan pepijat dalam program

Berkenaan cara mengurangkan pepijat program, anda harus mempertimbangkan terlebih dahulu parameter pengurusan luar julat berikut yang harus dipertimbangkan semasa operasi sistem.


  • Parameter fizikal: Parameter ini terutamanya merupakan parameter input sistem, yang merangkumi parameter pengujaan, parameter operasi semasa pemprosesan pemerolehan dan parameter hasil pada akhir pemprosesan.

  • Parameter sumber: Parameter ini terutamanya merupakan sumber litar, peranti dan unit berfungsi dalam sistem, seperti kapasiti memori, panjang unit storan dan kedalaman susunan.

  • Parameter aplikasi: Parameter aplikasi ini sering muncul sebagai syarat aplikasi sesetengah mikropengawal dan unit berfungsi. Parameter proses: merujuk kepada parameter yang berubah secara teratur semasa operasi sistem.


2.Cara meningkatkan kecekapan kod pengaturcaraan bahasa C

Menggunakan bahasa C untuk pengaturcaraan mikropengawal merupakan trend yang tidak dapat dielakkan dalam pembangunan dan aplikasi mikropengawal. Jika anda ingin mencapai kecekapan maksimum semasa pengaturcaraan dalam C, adalah lebih baik untuk membiasakan diri dengan pengkompil C yang anda gunakan. Uji dahulu bilangan baris pernyataan bahasa pemasangan yang sepadan dengan setiap kompilasi bahasa C, supaya anda dapat mengetahui kecekapannya dengan jelas. Apabila pengaturcaraan pada masa hadapan, gunakan pernyataan dengan kecekapan kompilasi tertinggi. Setiap pengkompil C akan mempunyai perbezaan tertentu, jadi kecekapan kompilasi juga akan berbeza. Panjang kod dan masa pelaksanaan pengkompil C yang sangat baik untuk sistem terbenam hanya 5-20% lebih lama daripada fungsi yang sama yang ditulis dalam bahasa pemasangan.


Bagi projek kompleks dengan masa pembangunan yang singkat, bahasa C boleh digunakan, tetapi prasyaratnya ialah anda sangat biasa dengan bahasa C dan pengkompil C sistem MCU. Beri perhatian khusus kepada jenis data dan algoritma yang disokong oleh sistem kompilasi C. Walaupun bahasa C merupakan bahasa peringkat tinggi yang paling biasa, pengeluar MCU yang berbeza mempunyai sistem kompilasi bahasa C yang berbeza, terutamanya dalam pengendalian beberapa modul fungsi khas. Oleh itu, jika anda tidak memahami ciri-ciri ini, akan terdapat banyak masalah semasa penyahpepijatan, yang akan menyebabkan kecekapan pelaksanaan yang lebih rendah berbanding bahasa pemasangan.


       3.Cara menyelesaikan masalah anti-gangguan mikropengawalCara paling berkesan untuk mencegah gangguan adalah dengan membuang sumber gangguan dan menyekat laluan gangguan, tetapi selalunya sukar untuk melakukannya, jadi kita hanya dapat melihat sama ada keupayaan anti-gangguan mikropengawal cukup kuat. Sambil meningkatkan keupayaan anti-gangguan sistem perkakasan, anti-gangguan perisian semakin mendapat perhatian kerana reka bentuknya yang fleksibel, menjimatkan sumber perkakasan, dan kebolehpercayaan yang baik.  
Fenomena gangguan mikropengawal yang paling biasa ialah tetapan semula. Bagi program yang lari, perangkap perisian dan anjing pengawas sebenarnya boleh digunakan untuk mengembalikan program kepada keadaan tetapan semula. Oleh itu, perkara yang paling penting bagi perisian mikropengawal untuk menahan gangguan adalah dengan mengendalikan keadaan tetapan semula.  
Secara amnya, mikropengawal akan mempunyai beberapa daftar bendera yang boleh digunakan untuk menentukan punca penetapan semula; di samping itu, anda juga boleh menanam beberapa bendera dalam RAM sendiri. Setiap kali program ditetapkan semula, punca penetapan semula yang berbeza boleh ditentukan dengan menilai bendera ini; anda juga boleh melompat terus ke program yang sepadan berdasarkan bendera yang berbeza. Ini membolehkan program berjalan secara berterusan, dan pengguna tidak akan perasan bahawa program telah ditetapkan semula semasa menggunakannya.  
       4.Cara menguji kebolehpercayaan sistem mikropengawalApabila reka bentuk sistem mikropengawal siap, akan terdapat item dan kaedah ujian yang berbeza untuk produk sistem mikropengawal yang berbeza, tetapi ada yang mesti diuji:
 
  • Uji kesempurnaan fungsi perisian mikropengawal
  • Ujian hidup dan mati
  • Ujian penuaan
  • Ujian seperti ESD dan EFT

Kadangkala, kita juga boleh mensimulasikan kerosakan yang mungkin berlaku semasa penggunaan manusia. Contohnya, sengaja gosokkan port sentuhan sistem mikropengawal dengan badan manusia atau fabrik pakaian untuk menguji keupayaan anti-statik. Gunakan gerudi elektrik berkuasa tinggi untuk bekerja berhampiran dengan sistem mikropengawal bagi menguji keupayaan untuk menahan gangguan elektromagnet.  
Secara ringkasnya, mikrokomputer cip tunggal telah menjadi aspek penting dalam pembangunan dan aplikasi komputer. Kepentingan penting aplikasi mikrokomputer cip tunggal ialah ia secara asasnya mengubah idea reka bentuk sistem kawalan tradisional dan kaedah reka bentuk.  
Kebanyakan fungsi yang sebelum ini perlu dilaksanakan oleh litar analog atau litar digital kini boleh dilaksanakan melalui kaedah perisian menggunakan mikropengawal. Teknologi kawalan jenis ini di mana perisian menggantikan perkakasan juga dipanggil teknologi mikrokawalan, yang merupakan revolusi dalam teknologi kawalan tradisional.  
Di samping itu, semasa proses pembangunan dan aplikasi, kita mesti menguasai kemahiran dan meningkatkan kecekapan supaya ia dapat digunakan untuk pelbagai tujuan yang lebih luas.  
         

9

Ringkasan operasi cip


 
 

Operasi pada cip terutamanya adalah operasi pada daftar dalam cip. Daftar dalam cip mempunyai alamat unik mereka sendiri yang dipetakan pada memori, iaitu operasi pada alamat yang sepadan. Apabila melihat cip, lihat dahulu gambarajah pemasaan, kemudian fahami daftar yang sepadan, fahami cara ia beroperasi, tentukan port yang diperlukan (yang boleh dikenal pasti oleh program), dan tulis prosedur operasi tulis dan baca prosedur operasi.


Cara menulis data ke dalam cip, cara membaca data dan port mana yang hendak dimasukkan atau dibaca (perkara yang paling penting).  
Apabila menyambungkan cip melalui bas, anda mesti terlebih dahulu memahami protokol bas tersebut. Cip yang disambungkan ke bas I2C terutamanya mengawal cip melalui bas ini.  
  1,Satu 74hc595 dalam kekisi digunakan untuk pemilihan lajur, dan dua lagi digunakan untuk pemilihan warna. Kekisi tersebut bersamaan dengan himpunan diod,
Hanya apabila satu hujung diberi aras tinggi dan hujung yang satu lagi diberi aras rendah, diod barulah boleh menyala. Cuma apabila satu hujung dipilih secara berbeza, warna yang berbeza akan menyala.  
Pemilihan mod kerja pemasa: Empat bit tinggi menetapkan pemasa T1, dan empat bit rendah menetapkan T0. Kemudian dua digit terakhir setiap mod menetapkan mod kerja. Apabila menetapkan dua pemasa, berhati-hati menggunakan atau (|). Apabila menggunakan gangguan, beri perhatian untuk mengosongkan yang perlu dikosongkan selepas memasukkan gangguan.  
  2,Transceiver port bersiri: Kadar baud biasanya ditetapkan dalam mod 2 (pemuatan semula automatik kepada nilai awal). Oleh kerana peranti yang berbeza mempunyai keupayaan pemprosesan data yang berbeza, menetapkan kadar baud terutamanya untuk menjaga peranti berkelajuan rendah dan untuk berkomunikasi antara satu sama lain. Bit bendera gangguan mesti dibersihkan oleh perisian. Apabila menetapkan gangguan port bersiri, tidak kira yang mana dijana oleh penghantaran atau penerimaan, ia boleh memasuki fungsi gangguan, jadi beri perhatian kepada tetapan fungsi gangguan. (Perasaan diri biasanya menetapkan fungsi, sebagai komputer hos atau komputer hamba).  
Jika anda menggunakan gangguan untuk menghantar, anda perlu memikirkan cara untuk memasukkan gangguan buat kali pertama, jadi anda perlu menghantarnya sekali dahulu, dan kemudian anda boleh memasukkan gangguan tersebut. Hanya satu bait boleh dihantar pada satu masa, dan bit seterusnya hanya boleh dihantar selepas TI ditetapkan.  
  3,Penukaran Pcf8591ad mempunyai empat saluran input. Apabila membaca pcf8591, saluran yang dipilih, input voltan oleh saluran tersebut dibaca. Data yang ditukar disimpan dalam cip dan kemudian dibaca keluar. Semasa membaca, tulis alamat cip terlebih dahulu, kemudian tulis sub-alamat peranti (0x40|nombor saluran), dan kemudian data yang dibaca.  
  4,Penukaran Da adalah dengan menulis alamat peranti ke dalam cip terlebih dahulu, kemudian menulis sub-alamat (0x40), dan kemudian menulis kuantiti digital yang hendak ditukar. Maklumat cip alamat peranti diperkenalkan.  
  5,Untuk paparan LCD, selepas data ditulis dan dipaparkan, ia akan sentiasa dipaparkan tanpa penyegaran berterusan. Jika anda ingin mengubahnya, anda hanya boleh memasukkannya semula.  
  6,Untuk cip jam ds1302, semasa membaca data, data pertama dibaca pada pinggir bawah jam kelapan semasa menulis data, dan kemudian bersedia untuk output seterusnya. Beri perhatian kepada kaedah penulisan program dan lokasi nilai pulangan.  
  7,Dalam Ds1302, tentukan dahulu daftar tersebut dan kemudian tulis data kepadanya. Daftar pada data cip menunjukkan alamatnya. (Saya masih tidak begitu faham tentang program perlindungan tulis. Bukankah sentiasa ada penulisan? Mengapa perlindungan tulis masih dihidupkan?)
(Menurut wira sebelumnya, anda boleh menetapkan bendera selepas masa permulaan. Jika terdapat bendera ini, tidak perlu memulakan masa. Walau bagaimanapun, jika kuasa dimatikan, RAM MCU tidak boleh menyimpan bendera ini, jadi anda boleh menggunakan RAM DS1302 untuk menyimpan bendera, dan membaca bendera selepas menghidupkan kuasa. Saya juga seorang pemula, dan saya merancang untuk menggunakan DS1302 baru-baru ini. Saya tidak tahu sama ada ini betul, dan saya belum melaksanakannya lagi. Sila kongsikan lebih lanjut)
  8,Adalah lebih baik untuk menuliskan permulaan sekiranya anda terlupa kemudian. Kadangkala, beri perhatian sama ada bit terendah atau bit tertinggi dikendalikan dahulu semasa membaca atau menulis, yang boleh dinilai mengikut gambar rajah pemasaan.  
  9,Bagi penerima-penerima inframerah, semasa menerima, ia menentukan sama ada ia tahap tinggi atau tahap rendah berdasarkan masa antara dua tepi yang jatuh. Semasa menulis program, mula-mula gunakan pemasa untuk menentukan masa, simpannya, dan kemudian tukarkannya kepada binari (baca lebih lanjut tentang cara menulis program ini, ia sangat bagus).  
  10,Motor stepper: Terutamanya digunakan untuk pensuisan. Tork motor stepper berkurangan apabila kelajuan putaran meningkat. Ia terutamanya digunakan untuk penyuapan automatik bahagian yang diproses pada alat mesin. Ia juga boleh digunakan di tempat kawalan dengan ketepatan yang lebih tinggi.  
Motor stepper ialah peranti motor stepper elemen kawalan gelung terbuka yang menukar isyarat denyut elektrik kepada anjakan sudut atau anjakan linear. Di bawah keadaan tanpa beban lampau, kelajuan dan kedudukan berhenti motor hanya bergantung pada frekuensi dan bilangan denyut isyarat denyut, dan tidak terjejas oleh perubahan beban. Apabila pemacu stepper menerima isyarat denyut, ia memacu motor stepper untuk berputar pada arah yang ditetapkan pada sudut tetap, yang dipanggil "sudut langkah". Putarannya berjalan langkah demi langkah pada sudut tetap. Anjakan sudut boleh dikawal dengan mengawal bilangan denyut untuk mencapai kedudukan yang tepat; pada masa yang sama, kelajuan dan pecutan putaran motor boleh dikawal dengan mengawal frekuensi denyut untuk mencapai peraturan kelajuan.  
  11,Motor servo: (motor servo) merujuk kepada enjin yang mengawal operasi komponen mekanikal dalam sistem servo. Ia merupakan peranti penghantaran tidak langsung yang membantu motor. Motor servo boleh mengawal kelajuan dan ketepatan kedudukan dengan sangat tepat, dan boleh menukar isyarat voltan kepada tork dan kelajuan putaran untuk memacu objek kawalan. Kelajuan rotor motor servo dikawal oleh isyarat input dan boleh bertindak balas dengan cepat. Dalam sistem kawalan automatik, ia digunakan sebagai penggerak dan mempunyai ciri-ciri pemalar masa elektromekanikal yang kecil, kelinearan yang tinggi, voltan permulaan, dan sebagainya. Ia boleh menukar isyarat elektrik yang diterima kepada output anjakan sudut atau halaju sudut pada aci motor. Ia dibahagikan kepada dua kategori: motor servo DC dan AC. Ciri utamanya ialah tiada putaran apabila voltan isyarat adalah sifar, dan kelajuan putaran berkurangan pada kelajuan malar apabila tork meningkat. Motor DC: Julat yang luas, semuanya pada kereta kecil.


Penafian: Artikel ini diterbitkan semula daripada "Maklumat Perniagaan Elektronik Antarabangsa". Artikel ini hanya mewakili pandangan peribadi penulis dan tidak mewakili pandangan Sacco Micro dan industri. Ia hanya untuk cetakan semula dan perkongsian serta menyokong perlindungan hak harta intelek. Sila nyatakan sumber asal dan penulis untuk cetakan semula. Jika terdapat sebarang pelanggaran, sila hubungi kami untuk memadamkannya.

Nombor telefon syarikat: +86-0755-83044319
Faks/FAKS: +86-0755-83975897
E-mel: 1615456225@qq.com
SQ: 3518641314 Pengurus Li

QQ: 332496225 Pengurus Qiu

Alamat: Bilik 809, Bangunan C, Bangunan Teknologi Zhantao, No. 1079 Minzhi Avenue, Daerah Baharu Longhua, Shenzhen

whatsapp

WhatsApp

Whatsapp:+8618073002950