MCU ialah Unit Mikropengawal. Singkatan mikropengawal dalam bahasa Cina, yang biasanya dikenali sebagai mikrokomputer cip tunggal, adalah untuk mengurangkan frekuensi dan spesifikasi CPU dengan sewajarnya, dan mengintegrasikan antara muka persisian seperti memori, kaunter, USB, penukaran A/D, UART, PLC, DMA, dan juga litar pemacu LCD pada cip tunggal untuk membentuk komputer peringkat cip. Ia boleh melakukan kombinasi kawalan yang berbeza untuk aplikasi yang berbeza, seperti telefon bimbit, persisian PC, alat kawalan jauh, elektronik automotif, motor stepper perindustrian, dan kawalan lengan robot. MCU boleh dilihat dalam rajah.
1
Sejarah ringkas perkembangan mikropengawal
Sejarah mikropengawal tidaklah panjang, tetapi ia telah berkembang dengan sangat pesat. Pengeluaran dan pembangunannya secara amnya disegerakkan dengan pengeluaran dan pembangunan mikropemproses (CPU). Sejak Intel Corporation dari Amerika Syarikat pertama kali melancarkan mikropemproses 4-bit pada tahun 1971, pembangunannya setakat ini boleh dibahagikan secara kasar kepada lima peringkat. Berikut adalah pengenalan kepada pembangunan mikropengawal daripada Intel Corporation.
1971 ~ 1976
Peringkat awal pembangunan mikropengawal. Pada November 1971, Intel mula-mula mereka bentuk Intel 4004, sebuah mikropemproses 4-bit dengan penyepaduan 2,000 transistor/cip, dilengkapi dengan RAM, ROM dan daftar anjakan, membentuk mikropemproses MCS-4 yang pertama. Kemudian ia melancarkan mikropemproses 8-bit Intel 8008, dan mikropemproses 8-bit lain yang dilancarkan oleh syarikat lain.
1976 ~ 1980
Peringkat mikropengawal berprestasi rendah. Diwakili oleh siri MCS-48 yang dilancarkan oleh Intel pada tahun 1976, ia menggunakan struktur monolitik yang mengintegrasikan CPU 8-bit, antara muka I/O selari 8-bit, pemasa/kaunter 8-bit, RAM dan ROM pada cip semikonduktor. Walaupun julat pengalamatannya terhad (tidak lebih daripada 4 KB), tiada I/O bersiri, kapasiti RAM dan ROM adalah kecil, dan sistem gangguan agak mudah, tetapi fungsinya dapat memenuhi keperluan kawalan perindustrian umum dan instrumen serta meter pintar.
1980 ~ 1983
Peringkat mikropengawal berprestasi tinggi. Mikropengawal 8-bit berprestasi tinggi yang dilancarkan pada peringkat ini secara amnya mempunyai port bersiri, sistem pemprosesan gangguan berbilang peringkat dan berbilang pemasa/kaunter 16-bit. Kapasiti RAM dan ROM pada cip ditingkatkan, dan julat pengalamatan boleh mencapai 64 KB. Sesetengah cip juga mempunyai antara muka penukaran A/D.
1983~akhir 1980-an
Peringkat mikropengawal 16-bit. Pada tahun 1983, Intel melancarkan siri mikropengawal 16-bit berprestasi tinggi MCS-96. Disebabkan penggunaan teknologi pembuatan terkini, tahap penyepaduan cip adalah setinggi 120,000 transistor/cip.
1990s
Mikropengawal sedang berkembang ke tahap yang lebih tinggi dalam semua aspek integrasi, fungsi, kelajuan, kebolehpercayaan dan bidang aplikasi.
2
Pengelasan dan aplikasi mikrokomputer cip tunggal
MCU boleh dibahagikan kepada dua jenis mengikut jenis memorinya: yang tanpa ROM atas cip dan yang mempunyai ROM atas cip. Bagi cip tanpa ROM atas cip, EPROM luaran mesti disambungkan sebelum ia boleh digunakan (biasanya 8031); cip dengan ROM atas cip dibahagikan kepada jenis EPROM atas cip (cip tipikal ialah 87C51), jenis ROM topeng atas cip MASK (cip tipikal ialah 8051), jenis Flash atas cip (cip tipikal ialah 89C51) dan jenis lain.
Mengikut tujuannya, ia boleh dibahagikan kepada jenis tujuan umum dan tujuan khas; mengikut lebar bas data dan panjang bait data yang boleh diproses pada satu masa, ia boleh dibahagikan kepada MCU 8, 16, dan 32-bit.
Pada masa ini, pasaran aplikasi MCU domestik yang paling luas adalah dalam bidang elektronik pengguna, diikuti oleh bidang perindustrian dan pasaran elektronik automotif. Elektronik pengguna merangkumi perkakas rumah, televisyen, konsol permainan, sistem audio dan video, dan sebagainya. Bidang perindustrian merangkumi rumah pintar, automasi, aplikasi perubatan, dan penjanaan serta pengedaran tenaga baharu. Bidang automotif merangkumi sistem powertrain dan kawalan keselamatan automotif.
Tiga
Fungsi asas mikropengawal
Bagi kebanyakan MCU, fungsi berikut adalah yang paling biasa dan asas. Bagi MCU yang berbeza, cara ia diterangkan mungkin berbeza, tetapi pada asasnya adalah sama:
1. TImer (pemasa): Walaupun terdapat banyak jenis TImer, ia boleh diringkaskan kepada dua kategori: Satu jenis ialah TImer dengan selang masa tetap, iaitu masa pemasaan ditetapkan oleh sistem dan tidak boleh dikawal oleh program pengguna. Sistem ini hanya menyediakan beberapa selang masa tetap untuk dipilih oleh program pengguna, seperti 32Hz, 16Hz, 8Hz, dan sebagainya. TImer jenis ini lebih biasa dalam MCU 4-bit, jadi ia boleh digunakan untuk melaksanakan jam, pemasaan dan fungsi berkaitan yang lain.
Jenis yang lain ialah Pemasa Boleh Atur Cara. Seperti namanya, masa pemasaan bagi jenis Pemasa ini boleh dikawal oleh program pengguna. Kaedah kawalan termasuk: pemilihan sumber jam, pemilihan pembahagian frekuensi (Pra-skala) dan penetapan nombor pratetap. Sesetengah MCU mempunyai ketiga-tiganya pada masa yang sama, manakala yang lain mungkin mempunyai satu atau dua daripadanya. Aplikasi Pemasa jenis ini sangat fleksibel, dan penggunaan sebenarnya juga sentiasa berubah. Salah satu aplikasi yang paling biasa ialah menggunakannya untuk melaksanakan output PWM.
Oleh kerana sumber jam boleh dipilih secara bebas, Pemasa jenis ini biasanya digabungkan dengan Pembilang Peristiwa.
2. Port IO: Mana-mana MCU mempunyai bilangan port IO tertentu. Tanpa port IO, MCU kehilangan saluran untuk berkomunikasi dengan dunia luar. Mengikut kebolehkonfigurasian port IO, ia boleh dibahagikan kepada jenis berikut:
Port input atau output tulen: Port IO jenis ini ditentukan oleh reka bentuk perkakasan MCU. Ia hanya boleh menjadi input atau output, dan perisian tidak boleh digunakan untuk tetapan masa nyata.
Port IO baca dan tulis secara langsung: Contohnya, port IO MCS-51 tergolong dalam port IO jenis ini. Apabila arahan port IO baca dilaksanakan, ia merupakan port input; apabila arahan port IO tulis dilaksanakan, ia secara automatik merupakan port output.
Pengaturcaraan untuk menetapkan arah input dan output: Input atau output port IO jenis ini ditetapkan oleh program mengikut keperluan sebenar. Aplikasi ini agak fleksibel dan boleh merealisasikan beberapa aplikasi peringkat bas, seperti bas I2C, pelbagai LCD, bas kawalan Pemacu LED, dan sebagainya.
Untuk penggunaan port IO, satu perkara penting yang mesti diingat ialah: untuk port input, mesti ada isyarat aras yang jelas untuk memastikan ia tidak terapung (ini boleh dicapai dengan menambah perintang tarik naik atau tarik turun); untuk port output, aras status output mesti mempertimbangkan keadaan sambungan luarannya, dan harus dipastikan bahawa tiada arus yang menarik atau tenggelam dalam keadaan siap sedia atau statik.
3. Gangguan luaran: Gangguan luaran juga merupakan fungsi asas kebanyakan MCU. Ia biasanya digunakan untuk pencetusan isyarat masa nyata, pensampelan data dan pengesanan status. Kaedah gangguan termasuk pencetus pinggir naik, pencetus pinggir turun dan pencetus aras. Gangguan luaran biasanya dilaksanakan melalui port input. Jika ia merupakan port IO, fungsi gangguannya akan dihidupkan hanya apabila ia ditetapkan kepada input; jika ia merupakan port output, fungsi gangguan luaran akan dimatikan secara automatik (terdapat beberapa pengecualian dalam siri ATiny ATMEL, yang juga boleh mencetuskan fungsi gangguan apabila ia merupakan port output). Aplikasi gangguan luaran adalah seperti berikut:
Pengesanan isyarat pencetus luaran: Satu adalah berdasarkan keperluan masa nyata, seperti kawalan tirostor, pengesanan isyarat tiba-tiba, dan sebagainya, manakala yang satu lagi adalah keperluan untuk menjimatkan kuasa.
Pengukuran frekuensi isyarat: Untuk memastikan isyarat tidak terlepas, gangguan luaran adalah pilihan yang ideal.
Penyahkodan data: Dalam bidang aplikasi kawalan jauh, untuk mengurangkan kos reka bentuk, perisian sering diperlukan untuk menyahkod pelbagai data yang dikodkan, seperti penyahkodan pengekodan Manchester dan PWM.
Pengesanan kekunci dan kebangkitan sistem: Bagi MCU yang memasuki keadaan tidur, ia biasanya perlu dibangkitkan melalui gangguan luaran. Bentuk paling asas ialah tekan kekunci, yang menghasilkan perubahan aras melalui tindakan kekunci.
4. Antara muka komunikasi: Antara muka komunikasi yang disediakan oleh MCU secara amnya merangkumi antara muka SPI, UART, antara muka I2C, dan sebagainya, yang diterangkan seperti berikut:
Antara muka SPI: Antara muka jenis ini merupakan kaedah komunikasi paling asas yang disediakan oleh kebanyakan MCU. Penghantaran datanya dikawal oleh jam segerak. Isyarat-isyarat tersebut termasuk: SDI (input data bersiri), SDO (output data bersiri), SCLK (jam bersiri) dan isyarat Sedia; dalam beberapa kes, mungkin tiada isyarat Sedia; antara muka jenis ini boleh berfungsi dalam mod induk atau mod Hamba. Dalam istilah popular, ia bergantung pada siapa yang menyediakan isyarat jam. Pihak yang menyediakan jam ialah induk, dan pihak yang bertentangan ialah Slaver.
UART (Universal Asynchronous Receive Transmit): Ia merupakan antara muka penghantaran asynchronous yang paling asas. Ia hanya mempunyai dua talian isyarat, Rx dan Tx. Format data asas ialah: Bit Mula + Bit Data (7-bit/8-bit) + Bit Pariti (Genap, Ganjil atau Tiada) + Bit Henti (1~2Bit). Masa yang diduduki oleh satu bit data dipanggil Kadar Baud.
Bagi kebanyakan MCU, panjang bit data, mod semakan data (semak ganjil, semakan genap atau tiada semakan), panjang bit henti dan Kadar Baud boleh ditetapkan secara fleksibel melalui pengaturcaraan program. Kaedah yang paling biasa digunakan untuk antara muka jenis ini adalah untuk berkomunikasi dengan port bersiri PC.
Antara muka I2C: I2C ialah protokol penghantaran data yang dibangunkan oleh Philips. Ia juga dilaksanakan menggunakan 2 isyarat: SDAT (input dan output data bersiri) dan SCLK (jam bersiri). Manfaat terbesarnya ialah berbilang peranti boleh dipasang pada bas ini dan dikenal pasti serta diakses melalui alamat; salah satu manfaat terbesar bas I2C ialah ia sangat mudah untuk menggunakan perisian untuk melaksanakannya melalui port IO. Kadar data penghantarannya dikawal sepenuhnya oleh SCLK, yang boleh menjadi pantas atau perlahan, tidak seperti antara muka UART, yang mempunyai keperluan kadar yang ketat.
5. Pengawas (pemasa pengawas): Pengawas juga merupakan konfigurasi asas kebanyakan MCU (sesetengah MCU 4-bit mungkin tidak mempunyai fungsi ini). Pengawas kebanyakan MCU hanya membenarkan program menetapkan semula tetapi tidak mematikannya (sesetengahnya ditetapkan apabila program dibakar, seperti MCU siri PIC Microchip), dan sesetengah MCU menggunakan kaedah tertentu untuk memutuskan sama ada untuk menghidupkannya, seperti siri KS57 Samsung. Selagi program mengakses daftar Pengawas, ia dihidupkan secara automatik dan tidak boleh dimatikan semula. Secara amnya, masa penetapan semula pengawas boleh ditetapkan secara program. Aplikasi paling asas Watchdog adalah untuk menyediakan keupayaan pemulihan kendiri untuk MCU yang ranap akibat kegagalan yang tidak dijangka.
Empat
Pengeluar mikropengawal arus perdana global
(Disusun mengikut susunan tertentu, disusun mengikut pengeluar arus perdana. Jika terdapat sebarang kekurangan, sila tambahkannya di ruangan komen)
Eropah dan Amerika
1. Freescale+NXP (Freescale+NXP): Belanda, terutamanya menyediakan MCU 16-bit dan 32-bit. Aplikasi: Elektronik automotif, pencahayaan LED dan umum, penjagaan kesihatan, penumpuan multimedia, peralatan rumah dan alat kuasa, teknologi automasi bangunan kawalan motor, bekalan kuasa dan penukar kuasa, tenaga dan grid pintar, automasi, infrastruktur komputer dan komunikasi.
2. Mikrocip+Atmel (Teknologi Mikrocip + Atmel): Amerika Syarikat, terutamanya menyediakan MCU 16-bit dan 32-bit. Aplikasi: elektronik automotif, kegunaan perindustrian, kawalan motor, automobil, automasi bangunan, peralatan rumah, hiburan rumah, automasi perindustrian, pencahayaan, Internet Pelbagai Benda, tenaga pintar, peralatan elektronik mudah alih, peranti komputer.
3. Cypress+Spansion (Cypress + Spansion Semiconductor): Amerika Syarikat, terutamanya menyediakan MCU 8-bit, 16-bit dan 32-bit. Aplikasi: elektronik automotif, peralatan rumah, perubatan, elektronik pengguna, komunikasi dan telekomunikasi, industri, tanpa wayar.
4. ADI (Peranti Analog): Amerika Syarikat, terutamanya menyediakan MCU 8-bit, 16-bit dan 32-bit. Aplikasi: Aeroangkasa dan pertahanan, aplikasi automotif, teknologi bangunan, komunikasi, elektronik pengguna, tenaga, penjagaan kesihatan, instrumentasi dan pengukuran, motor, automasi perindustrian, keselamatan.
5. Infineon: Jerman, terutamanya menyediakan MCU 16-bit dan 32-bit. Aplikasi: elektronik automotif, elektronik pengguna, kejuruteraan, kenderaan komersial dan pertanian, pemprosesan data, pengangkutan elektrik, aplikasi perindustrian, peralatan perubatan, peralatan mudah alih, kawalan dan pemacu motor, bekalan kuasa, untuk motosikal, basikal elektrik dan kenderaan elektrik kecil, grid pintar, pencahayaan, penyelesaian sistem solar, penyelesaian sistem tenaga angin.
6. ST Mikroelektronik: Itali/Perancis, terutamanya menyediakan MCU 32-bit. Aplikasi: Pencahayaan LED dan umum, pengangkutan, penjagaan kesihatan, penumpuan multimedia, peralatan rumah dan alat kuasa, kawalan motor teknologi automasi bangunan, bekalan kuasa dan penukar kuasa, tenaga dan grid pintar, automasi, infrastruktur komputer dan komunikasi.
7. Qualcomm: Amerika Syarikat, terutamanya menyediakan MCU 16-bit dan 32-bit. Aplikasi: Telefon pintar, tablet, modem tanpa wayar.
8. Texas Instruments: Amerika Syarikat, terutamanya menyediakan MCU 16-bit dan 32-bit. Skop aplikasi: elektronik automotif, elektronik pengguna, peralatan perubatan, peranti mudah alih, komunikasi.
9. Maxim (Maxim): Amerika Syarikat, terutamanya menyediakan MCU 32-bit. Skop aplikasi: elektronik automotif, elektronik pengguna, aplikasi perindustrian, keselamatan.
Jepun dan Korea Selatan
1. Renesas: Jepun, terutamanya menyediakan MCU 16-bit dan 32-bit. Skop aplikasi: komputer dan peranti persisian, elektronik pengguna, elektronik kesihatan dan perubatan, elektronik automotif, industri dan komunikasi.
2. Toshiba: Jepun, terutamanya menyediakan MCU 16-bit dan 32-bit. Skop aplikasi: elektronik automotif, kegunaan perindustrian, kawalan motor, komunikasi tanpa wayar, telefon bimbit, komputer dan peralatan persisian, pengimejan dan audio dan video, pengguna (perkakas rumah), pencahayaan LED, keselamatan, pengurusan kuasa, peralatan hiburan.
3. Fujitsu: Jepun, terutamanya menyediakan MCU 32-bit. Skop aplikasi: automobil, perubatan, jentera, peralatan rumah.
4. Samsung Electronics: Korea Selatan, terutamanya menyediakan MCU 16-bit dan 32-bit. Aplikasi: elektronik automotif, kegunaan perindustrian, kawalan motor, automobil, automasi bangunan, peralatan rumah, hiburan rumah, automasi perindustrian, pencahayaan, Internet Pelbagai Benda, tenaga pintar, peralatan elektronik mudah alih, peranti komputer.
Wilayah China
Tanah Besar China
1. Sigma Microelectronics: Terutamanya menyediakan MCU 32-bit, skop aplikasi: telekomunikasi, pembuatan, tenaga, pengangkutan, elektrik, dll.
2. Orbit Zhuhai: Terutamanya menyediakan MCU 32-bit, skop aplikasi: aeroangkasa: kapal stesen satelit, pesawat; kawalan perindustrian mewah: komputer terbenam; kawalan kapal, kawalan perindustrian, peralatan kuasa, pemantauan alam sekitar.
3. Inovasi GigaDevice: Terutamanya menyediakan MCU 32-bit, skop aplikasi: automasi perindustrian, antara muka manusia-mesin, kawalan motor, pemantauan keselamatan, rumah pintar, Internet Pelbagai Benda.
4. Mikroelektronik Shengsi: Terutamanya menyediakan MCU 8-bit dan 32-bit. Skop aplikasi: perkakas rumah kecil, elektronik pengguna, alat kawalan jauh, tetikus, bateri litium, produk digital, elektronik automotif, instrumen dan pengukuran perubatan, mainan, kawalan perindustrian, rumah pintar dan keselamatan dan bidang lain.
5. Teknologi Chipsea: Terutamanya menyediakan MCU 16- dan 32-bit. Skop aplikasi: instrumentasi, Internet Pelbagai Benda, elektronik pengguna, peralatan rumah dan elektronik automotif.
6. Litar Bersepadu Lianhua: Terutamanya menyediakan MCU 8-bit dan 16-bit. Skop aplikasi: elektronik pengguna, peralatan rumah putih, kawalan industri, peralatan komunikasi, elektronik automotif dan komputer.
7. Zhuhai Jianrong: Terutamanya menyediakan MCU 8-bit, skop aplikasi: peralatan rumah, bekalan kuasa mudah alih.
8. Teknologi Tindakan: Terutamanya menyediakan MCU 8-bit hingga 32-bit, julat aplikasi: komputer tablet, rumah pintar, multimedia, Bluetooth, audio wifi.
9. Aisco Microelectronics: Terutamanya menyediakan MCU 8-bit dan 16-bit. Skop aplikasi: cip pengguna, cip komunikasi, cip maklumat dan peralatan rumah.
10. Mikroelektronik Huaxin: Terutamanya menyediakan MCU 8-bit dan 4-bit. Aplikasi: penerima satelit, pengecas telefon bimbit, kalendar kekal dan alat kawalan jauh semua-dalam-satu.
11. Shanghai Belling (Huada Semiconductor Holdings): Terutamanya menyediakan MCU 8-bit, 16-bit dan 32-bit. Aplikasi: peranti komputer, HDTV, pengurusan kuasa, peralatan kecil dan peralatan digital.
12. Litar Bersepadu Haier: Terutamanya menyediakan MCU 14-bit, 15-bit dan 16-bit. Skop aplikasi: elektronik pengguna, elektronik automotif, industri dan instrumen pintar.
13. Beijing Ingenic: Terutamanya menyediakan MCU 32-bit, skop aplikasi: peranti boleh pakai, Internet Pelbagai Benda, peralatan rumah pintar, automobil, elektronik pengguna, komputer tablet.
14. Mikroelektronik China: Terutamanya menyediakan MCU 8-bit. Aplikasi: peralatan rumah pintar, elektronik automotif, pemantauan keselamatan, pencahayaan dan landskap LED, mainan pintar, rumah pintar dan elektronik pengguna.
15. Litar Bersepadu Shenzhou Loongson: Terutamanya menyediakan MCU 32-bit, skop aplikasi: pemantauan kuasa, grid pintar, kawalan digital perindustrian, Internet Pelbagai Benda, rumah pintar, pemantauan data.
16. Mikroelektronik Ziguang: Terutamanya menyediakan MCU 8-bit dan 16-bit. Skop aplikasi: peralatan rumah pintar.
17. Times Minxin: Terutamanya menyediakan MCU 32-bit, skop aplikasi: navigasi kereta, pemantauan trafik, penyeliaan kapal penangkapan ikan, rangkaian telekomunikasi kuasa.
18. China Resources Silicon Microelectronics (anak syarikat China Resources Microelectronics): terutamanya menyediakan MCU 8-bit dan 16-bit. Skop aplikasi: elektronik pengguna, kawalan perindustrian dan peralatan rumah.
19. Teknologi Teras Negara: Terutamanya menyediakan MCU 32-bit, skop aplikasi: bidang keselamatan maklumat, bidang automasi pejabat, bidang rangkaian komunikasi, bidang keselamatan maklumat.
20. Zhongtian Micro: Terutamanya menyediakan MCU 32-bit. Aplikasi: telefon pintar, TV digital, kotak set-top, elektronik automotif, GPS, e-pembaca dan pencetak.
21. Mikroelektronik Sumber China: Terutamanya menyediakan MCU 8-bit dan 16-bit. Skop aplikasi: litar kawalan umum untuk peralatan rumah, elektronik pengguna dan kawalan automasi perindustrian.
22. Zhongying Electronics: Terutamanya menyediakan MCU 4-bit, 8-bit, 16-bit dan 32-bit. Skop aplikasi: peralatan rumah dan motor.
23. Lingdong Microelectronics: Terutamanya menyediakan skop aplikasi 32-bit: kawalan motor, kawalan Bluetooth, paparan definisi tinggi, pengecasan tanpa wayar, dron, pencetak mikro, label pintar, rokok elektronik, skrin dot matriks LED, dll.
24. Teknologi Nuvoton: Terutamanya menyediakan MCU 8-bit, skop aplikasi: pencahayaan, Internet of Things, dll.
25. Pembawa Neusoft: Terutamanya menyediakan MCU 8-bit dan 32-bit. Aplikasi: peralatan rumah, rumah pintar, instrumentasi, pengawal panel LCD, kawalan perindustrian, dsb.
26. Betley: Terutamanya menyediakan MCU 32-bit, skop aplikasi: rumah pintar, kawalan perindustrian dan produk pengguna.
27. Teknologi Shengquan: Terutamanya menyediakan MCU 8-bit, skop aplikasi: panel paparan kecil dan sederhana untuk automotif, pendidikan, kawalan industri, perubatan, dll.
28. Cip Hangshun: Terutamanya menyediakan MCU 8-bit dan 32-bit. Skop aplikasi: automobil, Internet of Things, dll.
29. Mikroelektronik Fudan: Terutamanya menyediakan MCU 16-bit dan 32-bit. Aplikasi: meter pintar, kunci pintu pintar, dsb.
30. Huada Semiconductor: Terutamanya menyediakan MCU 8-bit, 16-bit dan 32-bit. Aplikasi: kawalan perindustrian, pembuatan pintar, kehidupan pintar dan Internet Pelbagai Benda.
Taiwan, China
1. Teknologi Hongjing: terutamanya menyediakan MCU 32-bit. Skop aplikasi: komunikasi, kawalan perindustrian, peralatan maklumat dan suara.
2. Holtek Semiconductor: terutamanya menyediakan MCU 8-bit dan 32-bit. Skop aplikasi: elektronik pengguna, pencahayaan LED, dll.
3. Teknologi Lingyang: terutamanya menyediakan MCU 8-bit dan 16-bit. Skop aplikasi: audio dan video rumah.
4. Zhongying Electronics: terutamanya menyediakan MCU 4-bit dan 8-bit. Skop aplikasi: pengecas, bekalan kuasa mudah alih, peralatan rumah, kawalan industri.
5. Teknologi Songhan: terutamanya menyediakan MCU 8-bit dan 32-bit. Skop aplikasi: alat kawalan jauh, pengecas pintar, sistem besar dan kecil, penimbang elektronik, termometer telinga, monitor tekanan darah, tolok tekanan tayar, pelbagai peralatan pengukuran dan kesihatan.
6. Winbond Electronics: terutamanya menyediakan MCU 8-bit dan 16-bit. Skop aplikasi: elektronik automotif, elektronik perindustrian, rangkaian, komputer, elektronik pengguna, Internet Pelbagai Benda.
7. Teknologi Sepuluh Kelajuan: terutamanya menyediakan MCU 4-bit, 8-bit, dan 51-bit. Skop aplikasi: alat kawalan jauh, peralatan rumah kecil.
8. Mikroelektronik Youhua: terutamanya menyediakan MCU 4-bit dan 8-bit. Skop aplikasi: merakam produk litar bersepadu, elektronik pengguna, produk isi rumah.
9. Mikropengawal Teknologi Yingguang: terutamanya menyediakan MCU 4-bit dan 8-bit. Skop aplikasi: jentera, automasi, peralatan rumah, robot.
10. Elan Electronics: terutamanya menyediakan MCU 8-bit dan 16-bit. Skop aplikasi: elektronik pengguna, komputer, telefon pintar.
5
Petua untuk mempelajari mikropengawal
Prinsip dan fungsi asas mana-mana MCU adalah serupa. Satu-satunya perbezaan ialah konfigurasi dan bilangan modul fungsi persisian, sistem arahan, dan sebagainya.
Bagi sistem arahan, walaupun ia kelihatan sangat berbeza dari segi bentuk, ia sebenarnya hanyalah simbol yang berbeza. Maksud yang diwakilinya, fungsi yang perlu diselesaikan, dan kaedah pengalamatan pada asasnya serupa.
Untuk memahami MCU, anda perlu mengetahui ruang ROM, ruang RAM, bilangan port IO, bilangan pemasa dan kaedah pemasaan, modul fungsi periferi yang disediakan (Litar Periferi), sumber gangguan, voltan operasi dan penggunaan kuasa, dan sebagainya.
Selepas memahami Ciri-ciri MCU ini, langkah seterusnya adalah membandingkan fungsi MCU yang dipilih dengan fungsi yang diperlukan untuk pembangunan projek sebenar dan menjelaskan sumber yang sedang diperlukan dan yang tidak digunakan dalam projek ini.
Bagi fungsi yang perlu digunakan dalam projek tetapi tidak disediakan oleh MCU yang dipilih, anda perlu memahami maklumat berkaitan MCU dengan teliti untuk melaksanakannya menggunakan kaedah tidak langsung. Contohnya, jika projek yang anda bangunkan perlu berkomunikasi dengan port COM PC, dan MCU yang dipilih tidak menyediakan port UART, anda boleh mempertimbangkan untuk menggunakan gangguan luaran untuk melaksanakannya.
Untuk sumber yang diperlukan untuk pembangunan projek, anda perlu memahami dan membaca Manua* dengan teliti, sementara anda boleh mengabaikan atau menyemak imbas modul berfungsi yang tidak diperlukan. Untuk pembelajaran MCU, aplikasi adalah kunci dan tujuan utama.
Selepas menjelaskan fungsi MCU yang berkaitan, anda boleh mula mengaturcara.
Bagi pemula atau pereka yang menggunakan MCU ini buat kali pertama, mereka mungkin menghadapi banyak penerangan yang tidak jelas tentang fungsi MCU. Bagi masalah sedemikian, terdapat dua kaedah untuk menyelesaikannya. Satu adalah dengan menulis program pengesahan khas untuk memahami fungsi yang diterangkan dalam data; yang lain adalah dengan mengabaikannya buat sementara waktu dan menulis program MCU mengikut pemahaman semasa anda, membiarkannya diubah suai dan diperbaiki semasa penyahpepijatan. Kaedah yang pertama sesuai untuk projek yang mempunyai masa lapang dan pemula, manakala kaedah yang kedua sesuai untuk mereka yang mempunyai pengalaman tertentu dalam pembangunan mikropengawal atau apabila jadual projek ketat.
Jangan luangkan masa khas untuk memahami sistem arahan. Sistem arahan hanyalah simbol penerangan logik. Anda hanya boleh melihat arahan yang berkaitan mengikut logik anda sendiri dan keperluan logik program semasa pengaturcaraan. Apabila pengaturcaraan berjalan lancar, anda akan menjadi semakin mahir dalam sistem arahan, malah anda juga boleh menghafalnya secara tidak sedar.
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 asasnya boleh dikatakan lebih kurang sama. Ia secara amnya dibahagikan kepada tiga bahagian: bahagian permulaan (ini adalah perbezaan terbesar antara pengaturcaraan MCU dan PC), badan gelung program utama dan pengendali gangguan. Huraian masing-masing adalah 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 tahap 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. Bagi gangguan berlebihan yang tidak digunakan, ia mesti dimatikan.
Permulaan modul fungsi 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:
Program pengiraan: Program pengiraan pada amnya memakan masa, jadi kami amat menentang pemprosesannya dalam sebarang gangguan, terutamanya operasi pendaraban dan pembahagian.
Memproses program dengan keperluan masa nyata yang rendah atau tiada langsung;
Program penghantaran paparan: terutamanya 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, dsb.
Secara amnya, 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 mana 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 dalam program ini. Anda perlu mencari 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 ditambah 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.
lapan
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 mikropengawal
Cara 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 mikropengawal
Apabila 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 mesti dilaksanakan oleh litar analog atau litar digital pada masa lalu 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.
Sembilan
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 matriks titik digunakan untuk pemilihan lajur, dan dua lagi digunakan untuk pemilihan warna. Matriks titik bersamaan dengan koleksi 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: Mod 2 (nilai awal muat semula automatik) biasanya digunakan untuk menetapkan kadar baud. Oleh kerana peranti yang berbeza mempunyai keupayaan pemprosesan data yang berbeza, menetapkan kadar baud terutamanya untuk menjaga peranti berkelajuan rendah dan berkomunikasi antara satu sama lain. Bit bendera gangguan mesti dibersihkan oleh perisian. Apabila menetapkan gangguan port bersiri, tidak kira yang mana dihasilkan 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. Pertama, nyatakan daftar dalam Ds1302, 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 membacanya selepas dihidupkan. 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-terima inframerah, semasa menerima, ia menentukan sama ada ia aras tinggi atau aras 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: Ia digunakan terutamanya untuk pensuisan. Tork motor stepper berkurangan apabila kelajuan meningkat. Ia digunakan terutamanya 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.
12. Gambaran Keseluruhan aksara Cina:
Untuk mengeluarkan aksara Cina pada monitor atau pencetak, aksara Cina direka bentuk menjadi matriks titik mengikut simbol grafik, dan kod matriks titik (kod glif) yang sepadan diperoleh.
Kaedah pengekodan bersepadu yang digunakan untuk mewakili aksara Cina dalam komputer membentuk pengekodan aksara Cina yang dipanggil kod dalaman (seperti kod piawai kebangsaan), dan kod dalaman adalah unik (bersamaan dengan nombor ID aksara). Pengekodan aksara Cina yang dibentuk untuk memudahkan input aksara Cina ialah kod input, iaitu kod luaran aksara Cina. Kod input adalah berbeza disebabkan oleh kaedah pengekodan yang berbeza dan pelbagai. Kod aksara Cina yang dibentuk untuk memaparkan dan mencetak aksara Cina ialah kod glif. Komputer mencari kod glif aksara Cina dalam pustaka model fon melalui kod dalaman aksara Cina dan menyedari penukarannya.
Kod dalam kamera
Mengikut peruntukan kod piawai kebangsaan, setiap aksara Cina mempunyai kod binari tertentu, tetapi kod ini akan bercanggah dengan kod ASCII apabila diproses secara dalaman oleh komputer. Untuk menyelesaikan masalah ini, tambahkan 1 pada digit pertama setiap bait kod piawai kebangsaan. Memandangkan kod ASCII hanya menggunakan 7 bit, "1" pada mulanya boleh digunakan sebagai tanda untuk mengenal pasti kod aksara Cina. Apabila komputer memproses kod dengan "1" pada mulanya, ia memahaminya sebagai maklumat aksara Cina, dan apabila ia memproses kod dengan "0" pada mulanya, ia memahaminya sebagai kod ASCII. Kod piawai kebangsaan (kod dalaman) yang diproses dengan cara ini ialah kod dalaman.
Jika kita menggantikan "." pada grafik "口" ini dengan "0", kita boleh mendapatkan kod glif "口" dengan sangat jelas: 0000H 0004H 3FFAH 2004H 2004H 2004H 2004H 2004H 2004H 2004H 2004H 2004H 3FFAH 2004H 0000H 0000H. Apabila komputer ingin mengeluarkan "口", ia mula-mula mencari alamat pertama pustaka fon paparan, mengira berdasarkan kod dalaman "口", dan kemudian mencari kod glif "口", dan kemudian mengimbas skrin secara berurutan mengikut kod glif (dalam binari) melalui kawalan penjana aksara. Jika kod binari ialah "0", tempat di mana ia ialah "0" diimbas, dan tempat di mana ia ialah "1" diimbas untuk diserlahkan, supaya corak aksara "口" boleh diperolehi.
Fon aksara Cina disusun mengikut susunan kod piawai kebangsaan dan disimpan dalam memori dalam bentuk fail binari, membentuk pustaka fon aksara Cina, juga dikenali sebagai pustaka glif aksara Cina, atau pustaka aksara Cina.
Dua kaedah pengekodan, lihat fail pengepala
GB1616.h//------------------ Takrifan struktur data fon aksara Cina -------------------------//structtypFNT_GB16 //Struktur data fon aksara Cina {unsignedcharIndex[3]; //Indeks kod dalaman aksara Cina unsignedchar Msk[32];//data kod matriks titik }; /////////////////////////////////////////////////////////////////////////////////////////// Jadual fon aksara Cina//// Pustaka aksara Cina: Dinasti Song 16.titik, bit tinggi modulo kiri secara mendatar, susunan data: dari kiri ke kanan, dari atas ke bawah/ ... (piksel):16×16--------------------------------------------------------------------------------*/"Xu",0x10,0x80,0x10,0x80,0x21 ,0x40,0x42,0x20,0x94,0x10,0x1B,0xEC,0x20,0x80,0x60,0x80,0xAF,0xF8,0x 20,0x80,0x22,0xA0,0x24,0x90,0x2A,0x88,0x21,0x00,0x00,0x00,0x00,0x00, Struktur ini sangat mudah: satu ialah kod dalaman, dan satu lagi ialah jujukan dot matrix. Pustaka dot matrix sebelumnya diletakkan mengikut susunan kod dalaman, dan tiada indeks kod dalaman diperlukan. Jika hanya beberapa aksara Cina diletakkan, indeks kod dalaman diperlukan. (Aksara Cina "Xu" di hadapan adalah untuk mencari jujukan dot matrix perkataan semasa mengeluarkan "Xu". Jujukan dot matrix ini ditulis oleh saya sendiri. Apabila dipaparkan dengan 1602, kerana cip mempunyai jujukan dot matrix Inggeris dalam memori, tidak perlu menulisnya.) Secara amnya, dua bait sudah cukup untuk kod dalaman. Jika anda menggunakan satu bait lagi, anda hanya menambah 0 di belakang. Dengan cara ini, rentetan aksara Cina boleh diletakkan terus dalam kod dalaman aksara Cina;
codeGB_16[k].Index[0] codeGB_16[k] menunjukkan bahawa terdapat tatasusunan struktur typFNT_GB16 yang dipanggil codeGB_16 codeGB_16[k] ialah ahli k+1 bagi tatasusunan indeks ialah ahli struktur typFNT_GB16, jadi ia boleh dirujuk dengan codeGB_16[k].Index. Pada masa yang sama, indeks ialah tatasusunan, jadi ia boleh diindeks[0] Jika((codeGB_16[k].Index[0]==c[0])&&(codeGB_16[k].Index[1]==c[1])) && ialah operator logik AND, yang bermaksud bahawa nilai pada kedua-dua belah simbol && adalah benar. Hanya nilai && adalah benar, iaitu, benar && benar = benar. Ayat ini bermaksud: codeGB_16[k].Index[0]==c[0] dan codeGB_16[k].Index[1]==c[1] diwujudkan pada masa yang sama. Jika pernyataan berikut dilaksanakan, codeGB_16[] ialah tatasusunan struktur, codeGB_16[k].Index[0] bermaksud nilai elemen ke-0 bagi ahli indeks bagi struktur ke-K bagi tatasusunan struktur.
13. 12864 LCD: Setiap titik paparan sepadan dengan nombor binari, 1 bermaksud hidup, 0 bermaksud mati. RAM yang menyimpan maklumat matriks titik ini dipanggil memori data paparan. Untuk memaparkan aksara grafik atau Cina tertentu bermaksud menulis maklumat matriks titik yang sepadan ke dalam unit storan yang sepadan.
Pembilang alamat (AC) RAM grafik hanya akan menambah alamat mendatar (paksi X) secara automatik sebanyak satu. Apabila alamat mendatar = 0FH, ia akan ditetapkan semula kepada 00H. Walau bagaimanapun, ia tidak akan menambah alamat menegak secara automatik dengan carry. Oleh itu, apabila berbilang data ditulis secara berterusan, program perlu menentukan sama ada alamat menegak perlu ditetapkan semula.
14. Melukis RAM (GDRAM) RAM paparan lukisan menyediakan ruang memori 128×8 bait. Apabila menukar RAM lukisan, tulis nilai koordinat mendatar dan menegak terlebih dahulu secara berterusan, dan kemudian tulis dua bait data ke RAM lukisan. Pembilang alamat (AC) akan meningkatkan alamat mendatar (alamat X) secara automatik sebanyak satu. Apabila alamat mendatar ialah 0XFH, ia akan ditetapkan semula kepada 00H; alamat menegak tidak akan ditambah secara automatik sebanyak 1. Paparan lukisan mesti dimatikan semasa menulis ke RAM lukisan,
[cpp] lihat salinan biasa//Paparkan aksara Cina voiddispString (uchar X, Y,uchar *msg)//Baris yang manakah X dan lajur yang manakah Y. msg ialah aksara Cina {if(X==0) write_data(*msg++); //Paparkan aksara Cina }}/////////////////////////////////// /////////////////// //////////////////// Paparkan imej voiddisppicture(kod uchar *adder){ uint i,j;//*******Paparkan tetapan kandungan separuh bahagian atas skrin untuk(i=0;i<32;i++)//32 alamat lajur di separuh bahagian atas skrin { write_com(0x80 + i);//SET alamat menegak VERTICALADD write_com(0x80);//SET alamat mendatar ADD HORIZONTAL untuk(j=0;j<16;j++) { write_data(*adder); adder++; }}//************Paparkan tetapan kandungan di bahagian bawah skrin untuk(i=0;i<32;i++) //{ write_com(0x80 + i); //SET alamat menegak VERTIKALADD write_com(0x88); //SET alamat mendatar ADD HORIZONTAL untuk(j=0;j<16;j++){write_data(*adder);adder++;} }} Bagi bahasa C, ruang diperuntukkan secara automatik untuk pembolehubah yang ditakrifkan, dan alamatnya ialah nama pembolehubah tersebut. Melalui nama ini, data boleh diambil dalam memori dan data baharu boleh diperoleh melalui pengiraan. Walau bagaimanapun, dalam pemasangan, pengaturcara perlu menentukan ruang storan dan menghantar data tersebut ke akumulator untuk pengiraan. Setiap langkah memerlukan operasi pengaturcara. Dalam bahasa C, proses ini diselesaikan oleh pengkompil.
15. Beberapa soalan dan jawapan yang berguna 1. Bagaimanakah peruntukan memori pembolehubah dijalankan dalam bahasa C mikropengawal? Mungkinkah pengkompil menambah peruntukan dan mengitar semula kod secara bijak semasa proses kompilasi? Perkara utama ialah program yang saya buat, bagaimana saya boleh memastikan ia tidak mempunyai ralat limpahan memori? Jika saya melakukan operasi rekursif, maka keperluan memori sukar untuk dikira sendiri.
2. Adakah bahasa mikropengawal C akan dihadkan dalam definisi pembolehubah? Contohnya, operasi pendaraban dan pembahagian data titik apungan ditulis melalui pemasangan, dan kodnya agak rumit. Jika ditulis terus dalam bahasa C, bukankah ia terlalu mudah?
3. Dalam fail hex yang dijana oleh bahasa C mikropengawal, adakah pengagihan alamat ROM arahan dan data diberikan secara automatik oleh pengkompil? Bolehkah pengguna memberikannya?
Jawapan 1: Program mikropengawal yang ditulis dalam bahasa C mula-mula dikompilasi oleh program (nampaknya c51.exe). Selepas kompilasi selesai, saiz ruang storan pembolehubah telah disusun, tetapi alamat khusus belum diperuntukkan (alamat terapung). Seterusnya, program lain (nampaknya a51.exe) disambungkan. Selepas sambungan, alamat khusus ditentukan.
Jika terdapat terlalu banyak pembolehubah, pengkompil akan meminta segmen data terlalu besar. Untuk memastikan tiada ralat limpahan memori, pertimbangan utama adalah sama ada tindanan limpahan, dan ia bergantung pada pengalaman.
Bahasa C bagi mikropengawal secara amnya melarang rekursi, dan operasi rekursi secara amnya dielakkan. Lagipun, mikropengawal bukanlah PC, yang akan menjejaskan kelajuan. Jika anda ingin melakukan rekursi, adalah lebih sesuai untuk menggunakan cip DSP. Pendek kata, anda mesti dapat memilih cip yang sesuai.
Jawapan 2: Saiz pembolehubah (bilangan digit) secara amnya sama dengan bilangan digit dalam akumulator cip. Contohnya, 51 biasanya menggunakan 8 bit kerana ia merupakan mikropengawal 8-bit.
Mikropengawal boleh mentakrifkan pembolehubah bit, tetapi ia tidak boleh mentakrifkan tatasusunan bit. Penulisan dalam bahasa C nampaknya mudah, tetapi sebenarnya menghasilkan jumlah kod yang terbesar. Mikropengawal yang digunakan untuk kawalan jarang menggunakan operasi titik apungan, yang bukan sahaja perlahan tetapi menyusahkan dan mengambil ruang. Jika ia cip DSP, ia akan menjadi lebih baik jika ia mempunyai struktur perkakasan yang sesuai.
Jawapan 3: Secara amnya, ia diperuntukkan secara automatik. Ia boleh diprogramkan dalam campuran bahasa C dan bahasa pemasangan, atau ia boleh dipasang dalam talian menggunakan Keil C. Pertukaran data antara cip dan bahagian luar dilakukan melalui port.
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