ឧបករណ៍បញ្ជាមីក្រូនៃគ្រួសារ mcs51 ។ Microcontrollers MCS – 51. Block diagram, ALU, data memory Programming mcs 51

  • 06.11.2021

UDC 681.5, 681.325.5 (075.8)

BBK 32.973.202-018.2 i 73

A.N. Shcherbinaម៉ាស៊ីនកុំព្យូទ័រ ប្រព័ន្ធ និងបណ្តាញ។ Microcontrollers និង microprocessors នៅក្នុងប្រព័ន្ធគ្រប់គ្រង៖ចេប ប្រាក់ឧបត្ថម្ភ / A.N. Shcherbina, P.A. Nechaev- SPb ។ : ពីពហុបច្ចេកទេស។ សាកលវិទ្យាល័យ, 2012.-226 ទំ។

ត្រូវគ្នាទៅនឹងខ្លឹមសារនៃស្តង់ដារអប់រំរបស់រដ្ឋសម្រាប់ផ្នែកបណ្តុះបណ្តាល និងជំនាញក្នុងវិស័យគ្រប់គ្រងក្នុងប្រព័ន្ធបច្ចេកទេស ថាមពលអគ្គិសនី និងវិស្វកម្មអគ្គិសនី និងខ្លឹមសារនៃកម្មវិធីសិក្សាគំរូសម្រាប់វិន័យ "ម៉ាស៊ីនកុំព្យូទ័រ ប្រព័ន្ធ និងបណ្តាញ"។

បញ្ហាជាមូលដ្ឋាននៃការរៀបចំឡូជីខលនៃប្រព័ន្ធ microprocessor ត្រូវបានពិចារណាលើឧទាហរណ៍នៃស្ថាបត្យកម្មមូលដ្ឋាននៃគ្រួសារ microcontroller MCS-51 ពី Intel ។ បច្ចេកវិទ្យានៃ microcontrollers សរសេរកម្មវិធីជាភាសា Assembler និង SI ត្រូវបានពិពណ៌នា។

វាអាចមានប្រយោជន៍សម្រាប់សិស្សានុសិស្ស និងគ្រូបង្រៀននៃស្ថាប័នបច្ចេកទេសខ្ពស់ អ្នកឯកទេសខាងស្វ័យប្រវត្តិកម្មនៃដំណើរការបច្ចេកវិជ្ជា និងឧបករណ៍ផលិតកម្ម ក៏ដូចជាសម្រាប់វិស្វកររចនានៃប្រព័ន្ធ microprocessor។

វាក៏អនុលោមតាមខ្លឹមសារនៃស្តង់ដារអប់រំរបស់រដ្ឋនៃវិញ្ញាសា "Microcontrollers and microprocessors in control systems" និង "Electronic devices of automation" បរិញ្ញាបត្រ វិស្វកម្ម និងការបណ្តុះបណ្តាលអនុបណ្ឌិតក្នុងទិសដៅ 140400 "វិស្វកម្មថាមពលអគ្គិសនី និងវិស្វកម្មអគ្គិសនី"។

បោះពុម្ពឡើងវិញដោយសេចក្តីសម្រេចរបស់ក្រុមប្រឹក្សាវិចារណកថា និងបោះពុម្ព

សាកលវិទ្យាល័យពហុបច្ចេកទេសរដ្ឋ St. Petersburg ។

© Shcherbina A. N., Nechaev P. A., 2012

© Saint Petersburg State

សាកលវិទ្យាល័យពហុបច្ចេកទេស ឆ្នាំ ២០១២

ISBN 978-5-7422-3553-8


សេចក្តីផ្តើម.. ៧

ជំពូកទី 1. ស្ថាបត្យកម្មនៃគ្រួសារ MCS51 ។ ដប់

១.១ លក្ខណៈទូទៅ ១០

១.២ ដ្យាក្រាមប្លុក ១១



១.៣ គោលបំណងនៃការសន្និដ្ឋានរបស់ microcontroller 8051 ១៥

១.៤ អង្គចងចាំ ១៧

១.៤.១ អង្គចងចាំកម្មវិធី (រ៉ូម) ១៨

១.៤.២ អង្គចងចាំទិន្នន័យ (RAM) ១៩

1.4.3 ការចុះឈ្មោះមុខងារពិសេស។ ម្ភៃ

១.៤.៤ ការចុះឈ្មោះទង់ជាតិ (PSW) ២៣

1.5 ឧបករណ៍ត្រួតពិនិត្យ និងធ្វើសមកាលកម្ម 26

១.៦ ការរៀបចំច្រក I/O ២៧

1.6.1 ព័ត៌មានទូទៅ។ ២៧

1.6.2 មុខងារជំនួស។ ២៧

១.៧. ឧបករណ៍កំណត់ម៉ោង/បញ្ជរសម្រាប់ 8051 microcontrollers.28

១.៧.១. រចនាសម្ព័ន្ធរាប់ម៉ោង។ ២៨

1.7.2 របៀបនៃប្រតិបត្តិការនៃកម្មវិធីកំណត់ម៉ោង។ សាមសិប

១.៨. ច្រកសៀរៀល 32

១.៨.១. រចនាសម្ព័ន្ធច្រកសៀរៀល។ ៣២

១.៨.២. Transceiver control/status register SCON.. ៣៤

១.៨.៣. ការត្រួតពិនិត្យថាមពល PCON .. ៣៦

១.៩. ប្រព័ន្ធរំខាន ៣៧

១.៩.១. រចនាសម្ព័ន្ធប្រព័ន្ធរំខាន។ ៣៧

1.9.2 ការអនុវត្តទម្លាប់រំខាន។ ៤០

ជំពូកទី 2. លក្ខណៈរបស់ microcontroller 80C51GB .. ៤២

២.១ លក្ខណៈ ៤២

២.២ ច្រក I/O P0-P5 ៤៣

2.2.1 មុខងារនៃច្រកបញ្ចូល-ទិន្នផល។ ៤៣

2.2.2 ការសរសេរទៅកាន់ Port .. 46

២.៣ លក្ខណៈពិសេសនៃប្រព័ន្ធរំខាន 8XC51GB .. ៤៩

បើក / បិទការរំខាន។ ៥០

រំខានការគ្រប់គ្រងអាទិភាព។ ៥១

ការរំខានខាងក្រៅ។ ៥៤

២.៣. ថ្នាំង ADC 56

២.៤. Hardware Watchdog ៦១

២.៥. ការរកឃើញកំហុសនាឡិកា ៦៣

២.៦. ម៉ាទ្រីសនៃបញ្ជរដែលអាចសរសេរកម្មវិធីបាន RSA 64

២.៦.១. រចនាសម្ព័ន្ធ PCA .. ៦៤

២.៦.២. ការចុះឈ្មោះរបៀបរាប់ PCA (CMOD) ៦៦

២.៦.៣. PCA counter control register (CON) ៦៧

២.៦.៤. ប្រៀបធៀប / ប្រព្រឹត្តម៉ូឌុល។ ៦៨

២.៧. ច្រកសៀរៀលបន្ថែម 76

២.៨. ឧបករណ៍កំណត់ម៉ោង/បញ្ជរ ៧៩

Pinout of microcontrollers group 8XC51GB .. ៨៦

ជំពូកទី 3. ការសរសេរកម្មវិធី MK 8051GB .. ៨៩

៣.១. គំរូកម្មវិធី 89

៣.២ ប្រភេទទិន្នន័យ ៩៣

3.3 វិធីសាស្រ្តនៃទិន្នន័យអាសយដ្ឋាន 93

៣.៤ ប្រព័ន្ធបញ្ជា ៩៥

3.4.1 លក្ខណៈទូទៅ។ ៩៥

3.4.2 ប្រភេទពាក្យបញ្ជា។ ៩៦

3.4.3 ប្រភេទនៃប្រតិបត្តិការ។ ៩៧

3.4.4 ពាក្យបញ្ជាសម្រាប់ផ្ទេរទិន្នន័យ microcontroller ។ ៩៨

3.4.5 ពាក្យបញ្ជាសម្រាប់ប្រតិបត្តិការនព្វន្ធ 8051.101

3.4.6 ពាក្យបញ្ជានៃប្រតិបត្តិការឡូជីខលរបស់ microcontroller 8051.104

3.4.7 ពាក្យបញ្ជាសម្រាប់ប្រតិបត្តិការជាមួយប៊ីតនៃ microcontroller 8051.106

3.5 កម្មវិធីបំបាត់កំហុស 111

ជំពូកទី 4. ភាសាសរសេរកម្មវិធី ASM-51 ។ ១១២

៤.២ ការសរសេរកម្មវិធីអត្ថបទ ១១៣

4.3 អក្ខរក្រមនៃភាសា។ ១១៤

4.4 អត្តសញ្ញាណ។ ១១៥

៤.៥ លេខ ១១៧

៤.៦ សេចក្តីណែនាំ ១១៨

4.7 ការអនុវត្តទម្រង់បែបបទរងក្នុងភាសា ASM51 122

4.7.1 រចនាសម្ព័ន្ធនៃទម្រង់បែបបទរងក្នុងភាសា ASM51 ។ ១២២

4.7.2 ឆ្លងកាត់ប៉ារ៉ាម៉ែត្រអថេរទៅទម្រង់ការរង។ ១២៣

4.7.3 ការអនុវត្តមុខងាររងជាភាសា ASM51 ។ ១២៣

4.7.4 ការអនុវត្ត​ទម្លាប់​ដោះស្រាយ​ការ​រំខាន​ក្នុង​ភាសា ASM51។ ១២៤

4.8 ការសរសេរកម្មវិធីដែលមានរចនាសម្ព័ន្ធជាភាសាដំឡើង។ ១២៥

៤.៩ លក្ខណៈពិសេសនៃការផ្សាយកម្មវិធីពហុម៉ូឌុល ១២៦

4.10 ការប្រើប្រាស់ផ្នែក 128

៤.១០.១ ការបំបែកអង្គចងចាំ MK ជាចម្រៀក .. ១២៨

4.10.2 ផ្នែកអង្គចងចាំដាច់ខាត។ ១២៩

4.10.2 ផ្នែកអង្គចងចាំដែលអាចផ្លាស់ប្តូរទីតាំងបាន។ ១៣១

ជំពូកទី 5. ភាសាសរសេរកម្មវិធី С-51 ។ ១៣៤

៥.១ លក្ខណៈទូទៅនៃភាសា ១៣៤

5.3 រចនាសម្ព័ន្ធកម្មវិធី С-51 136

៥.៣. ធាតុនៃភាសាសរសេរកម្មវិធី C-51 ១៣៨

៥.៣.១. និមិត្ត.. ១៣៨

៥.៣.២. ឯកតា Lexical សញ្ញាបំបែក និងការប្រើប្រាស់ចន្លោះ។ ១៤១

៥.៣.៣ អត្តសញ្ញាណ.. ១៤២

5.3.4 ពាក្យគន្លឹះ។ ១៤៣

៥.៣.៥ ថេរ.. ១៤៣

៥.៤. កន្សោមក្នុងភាសាប្រតិបត្តិករ ១៤៦

ការសរសេរកម្មវិធី C-51 146

៥.៥. អាទិភាពសម្រាប់ប្រតិបត្តិការ 148

៥.៦. ប្រតិបត្តិករនៃភាសាសរសេរកម្មវិធី C-51 149

៥.៦.១. ប្រតិបត្តិករប្រកាស។ ១៥០

5.6.2 ប្រតិបត្តិករដែលអាចប្រតិបត្តិបាន .. 150

5.6.3 ប្រតិបត្តិករចាត់តាំង។ ១៥១

5.6.4 ប្រតិបត្តិករតាមលក្ខខណ្ឌ។ ១៥១

5.6.5 Structured operator (). ១៥២

5.6.6 ប្រតិបត្តិកររង្វិលជុំសម្រាប់។ ១៥២

5.6.7 ប្រតិបត្តិករនៃរង្វិលជុំជាមួយនឹងការត្រួតពិនិត្យលក្ខខណ្ឌរហូតដល់តួនៃ while loop ។ ១៥៣

5.6.8 ប្រតិបត្តិករនៃរង្វិលជុំជាមួយនឹងការត្រួតពិនិត្យស្ថានភាពបន្ទាប់ពីតួនៃរង្វិលជុំធ្វើខណៈពេលដែល។ ១៥៤

5.6.9 ការបំបែកប្រតិបត្តិករ។ ១៥៥

5.6.10 ប្រតិបត្តិករបន្ត។ ១៥៥

5.6.11 ប្រតិបត្តិករនៃការផ្លាស់ប្តូរជម្រើស។ ១៥៥

5.6.12 ប្រតិបត្តិករនៃសាខាដោយគ្មានលក្ខខណ្ឌ goto ។ ១៥៧

5.6.13 កន្សោមប្រតិបត្តិករ។ ១៥៨

5.6.14 ប្រតិបត្តិករនៃការត្រឡប់មកវិញពីទម្រង់ការត្រឡប់មកវិញ។ ១៥៨

5.6.15 សេចក្តីថ្លែងការណ៍ទទេ។ ១៥៨

៥.៧. ការប្រកាសអថេរនៅក្នុងភាសាសរសេរកម្មវិធី C-51 ។ ១៥៩

៥.៧.១. សេចក្តីប្រកាសអថេរ។ ១៥៩

5.7.3 ប្រភេទទិន្នន័យចំនួនគត់។ ១៦១

5.7.4 លេខចំណុចអណ្តែត។ ១៦២

5.7.5 អថេរនៃប្រភេទដែលបានរាប់បញ្ចូល។ ១៦២

៥.៧.៦. ការប្រកាសអារេនៅក្នុងភាសាសរសេរកម្មវិធី C-51 ។ ១៦៤

៥.៧.៧. រចនាសម្ព័ន្ធ .. 165

៥.៧.៨. បន្សំ (លាយ) ១៦៦

៥.៨. ការប្រើប្រាស់ Pointers ក្នុង C-51 167

៥.៨.១. សេចក្តីថ្លែងការណ៍នៃសូចនាករ។ ១៦៧

៥.៨.២. ទ្រនិច​មិន​បាន​វាយ​អក្សរ។ ១៦៨

៥.៨.៣. ទ្រនិចដែលពឹងផ្អែកលើការចងចាំ។ ១៦៩

៥.៩. ប្រកាសប្រភេទអថេរថ្មី ១៦៩

៥.១០. ការចាប់ផ្តើមទិន្នន័យ 170

៥.១១. ការប្រើទម្រង់បែបបទរងក្នុងភាសាសរសេរកម្មវិធី C-51 ។ ១៧០

៥.១១.១. ការកំណត់ទម្រង់បែបបទរង ១៧១

៥.១១.២. ប៉ារ៉ាម៉ែត្រនៃទម្រង់បែបបទរង 173

៥.១១.៣. បុរេ្រករេ្រករេ្រកឹ ងៃនរង ១៧៤

៥.១១.៤ ហៅទម្រង់ការរង .. ១៧៦

5.11.5 ការហៅឡើងវិញនៃទម្រង់ការរង 176

5.11.6 រំខានដល់ការដោះស្រាយទម្លាប់។ ១៧៧

៥.១១.៧ វិសាលភាពនៃអថេរ និងទម្រង់បែបបទរង ១៧៨

៥.១២. កម្មវិធីចម្រុះ ១៧៩

ជំពូកទី 6. ការរៀបចំកម្មវិធីនៅក្នុងបរិយាកាសអភិវឌ្ឍន៍រួមបញ្ចូលគ្នា Keil μVision2 ។ ១៨២

6.1 ការបង្កើតគម្រោងជាភាសា ASM-51 182

6.2 ឧទាហរណ៍នៃការបង្កើតគម្រោងនៅក្នុង C សម្រាប់ឧបករណ៍បញ្ជាការបណ្តុះបណ្តាលនៅក្នុងបរិយាកាសអភិវឌ្ឍន៍រួមបញ្ចូលគ្នា Keil μVision2 188

ជំពូកទី 7. ការពិពណ៌នាអំពីឧបករណ៍បញ្ជាការបណ្តុះបណ្តាល .. 199

៧.១. រចនាសម្ព័ន្ធឧបករណ៍បញ្ជា 199

៧.២. អាសយដ្ឋាន 200

៧.២.១. ការបែងចែកអង្គចងចាំ។ ២០០

7.2.2 អង្គចងចាំខាងក្រៅ។ ២០១

៧.២.៣. អង្គចងចាំទិន្នន័យខាងក្នុង។ ២០២

៧.៣. ការគូសផែនទីច្រក I/O 202

៧.៤. ច្រកសៀរៀល……………………………….. ២០៣

៧.៥. ធ្វើការជាមួយ LCD 205

៧.៦. ផ្ទាំងបញ្ជា…………………………………………………… ២១៣

ឧបសម្ព័ន្ធ P2រចនាសម្ព័ន្ធនៃរបាយការណ៍មន្ទីរពិសោធន៍ ……..២១៧

ឧបសម្ព័ន្ធ A3 លេខកូដណែនាំម៉ាស៊ីន។ ២១៧

ឯកសារយោង ... 224


សេចក្តីផ្តើម

នៅក្នុងការអភិវឌ្ឍន៍ឯកទេសទាក់ទងនឹងស្វ័យប្រវត្តិកម្មនៃដំណើរការបច្ចេកវិជ្ជា និងឧស្សាហកម្ម ការសិក្សាអំពីឧបករណ៍បញ្ជាមីក្រូគឺជាផ្នែកមួយដ៏សំខាន់។

នៅលើពិភពលោកមានការអភិវឌ្ឍន៍ជាបន្តបន្ទាប់ និងការលេចឡើងនៃ microcontrollers និង microprocessors 16- និង 32-bit កាន់តែច្រើនឡើងៗ ប៉ុន្តែចំណែកដ៏ធំបំផុតនៃទីផ្សារ microprocessor ពិភពលោករហូតមកដល់សព្វថ្ងៃនេះនៅតែមានជាមួយនឹងឧបករណ៍ 8-bit។ យោងតាមការព្យាករណ៍ទាំងអស់របស់ក្រុមហ៊ុនវិភាគសម្រាប់អនាគតដ៏ខ្លីខាងមុខ ទីតាំងឈានមុខគេនៃ microcontrollers 8-bit នៅក្នុងទីផ្សារពិភពលោកនឹងនៅតែមាន។

បច្ចុប្បន្ននេះ ក្នុងចំណោម microcontrollers 8-bit ទាំងអស់ គ្រួសារ MCS-51 គឺជាអ្នកដឹកនាំដែលមិនមានការសង្ស័យទាក់ទងនឹងចំនួនពូជ និងចំនួនក្រុមហ៊ុនដែលផលិតការកែប្រែរបស់វា។ វាបានទទួលឈ្មោះរបស់វាពីអ្នកតំណាងដំបូងនៃគ្រួសារនេះ - microcontroller 8051 ។ សំណុំឧបករណ៍គ្រឿងកុំព្យូទ័រជោគជ័យ ជម្រើសដែលអាចបត់បែនបាននៃអង្គចងចាំកម្មវិធីខាងក្រៅ ឬខាងក្នុង និងតម្លៃសមរម្យបានធានានូវភាពជោគជ័យនៃ microcontroller នៅលើទីផ្សារ។

គុណសម្បត្តិនៃគ្រួសារ MCS-51៖

· ស្ថាបត្យកម្ម ដែលជាស្តង់ដារជាក់ស្តែង។

· វិសាលភាពមិនធម្មតានៃគ្រួសារ និងភាពខុសគ្នានៃលទ្ធភាព។

· ភាពអាចរកបាននៃដំណើរការខ្ពស់ និងកំណែបន្ថែមនៃដំណើរការ;

· ចំនួនដ៏សំខាន់នៃការអភិវឌ្ឍន៍កម្មវិធី និងផ្នែករឹងដែលមានដោយសេរី។

· ភាពងាយស្រួលនៃការសរសេរកម្មវិធីផ្នែករឹង រួមទាំងការសរសេរកម្មវិធីក្នុងសៀគ្វី។

· ការចំណាយទាប និងភាពអាចរកបាននៃបន្ទះសៀគ្វីមូលដ្ឋាន;

ភាពអាចរកបាននៃកំណែឯកទេសនៃឧបករណ៍បញ្ជាសម្រាប់លក្ខខណ្ឌពិសេសនៃការប្រើប្រាស់

· ភាពអាចរកបាននៃកំណែនៃឧបករណ៍បញ្ជាជាមួយនឹងកម្រិតកាត់បន្ថយនៃការជ្រៀតជ្រែកអេឡិចត្រូម៉ាញ៉េទិច;

· គេស្គាល់យ៉ាងទូលំទូលាយក្នុងចំណោមអ្នកអភិវឌ្ឍន៍នៃមនុស្សជំនាន់ចាស់ ទាំងនៅក្នុងពិភពលោក និងក្នុងប្រទេស CIS ។

· ការគាំទ្រស្ថាបត្យកម្មដោយស្ថាប័នអប់រំឈានមុខគេរបស់ពិភពលោក។

ហើយជាចុងក្រោយ អត្ថប្រយោជន៍ចម្បង៖ ដោយបានស្ទាត់ជំនាញបន្ទះឈីបមូលដ្ឋានរបស់គ្រួសារ អ្នកអាចចាប់ផ្តើមធ្វើការយ៉ាងងាយស្រួលជាមួយនឹងកុំព្យូទ័រ "បិសាច" ដូចជា microcontrollers Cygnal, Dallas Semiconductor, Analog Devices, Texas Instruments ។

គ្រួសារ MCS-51 រួមមាន microcircuits ជាច្រើនពី microcontrollers សាមញ្ញបំផុត រហូតដល់ស្មុគស្មាញបំផុត។ រហូតមកដល់ពេលនេះមានការកែប្រែជាង 200 នៃ microcontrollers គ្រួសារ 8051 ដែលផលិតដោយក្រុមហ៊ុនជិត 20 ។ ជារៀងរាល់ឆ្នាំអ្នកតំណាងនៃគ្រួសារនេះកាន់តែមានការប្រែប្រួលកាន់តែច្រើនឡើងៗ។

ទិសដៅសំខាន់នៃការអភិវឌ្ឍន៍គឺ៖

· បង្កើនការអនុវត្ត (បង្កើនប្រេកង់នាឡិកា និងការរចនាឡើងវិញនៃស្ថាបត្យកម្ម);

ការកាត់បន្ថយវ៉ុលផ្គត់ផ្គង់និងការប្រើប្រាស់ថាមពល;

· ការកើនឡើងនៃចំនួន RAM និងអង្គចងចាំ FLASH នៅលើបន្ទះឈីបជាមួយនឹងលទ្ធភាពនៃការសរសេរកម្មវិធីនៅក្នុងសៀគ្វី។

· ការណែនាំអំពីឧបករណ៍ស្មុគ្រស្មាញ ដូចជាប្រព័ន្ធគ្រប់គ្រងដ្រាយ ចំណុចប្រទាក់ CAN និង USB ជាដើម។ ទៅក្នុងបរិមាត្រ microcontroller ។

Microcontrollers នៃគ្រួសារ MCS-51 អនុញ្ញាតឱ្យអ្នកអនុវត្តការងារត្រួតពិនិត្យទាំងពីរសម្រាប់ឧបករណ៍ផ្សេងៗ និងអនុវត្តថ្នាំងសៀគ្វីអាណាឡូកនីមួយៗ។ microcircuits ទាំងអស់នៃគ្រួសារនេះដំណើរការជាមួយសំណុំការណែនាំដូចគ្នា។ ភាគច្រើននៃពួកវាត្រូវបានធ្វើឡើងនៅក្នុងករណីដូចគ្នាជាមួយនឹង pinout ដូចគ្នា (លេខនៃជើងសម្រាប់ករណីនេះ) ។ នេះអនុញ្ញាតឱ្យប្រើ microcircuits ពីក្រុមហ៊ុនផលិតផ្សេងៗគ្នាសម្រាប់ឧបករណ៍ដែលបានបង្កើតដោយមិនផ្លាស់ប្តូរដ្យាក្រាមសៀគ្វីនៃឧបករណ៍និងកម្មវិធី។

ក្រុមហ៊ុនផលិតសំខាន់ៗនៃពូជនៃគ្រួសារទី 51 នៅលើពិភពលោកគឺ Philips, Siemens, Intel, Atmel, Dallas, Temic, Oki, AMD, MHS, Gold Star, Winbond, Silicon Systems និងមួយចំនួនទៀត។

លក្ខណៈនៃអាណាឡូកនៃ microcontrollers នៃគ្រួសារ MCS-51 (Intel 8XC51FA, 8XC51GB, 80C152) ដែលមានសមត្ថភាពបន្ថែមត្រូវបានបង្ហាញក្នុងតារាង។ ក្នុង ១.

តារាង B.1

អង្គ​ចងចាំ រ៉ូម PCA ADC WDT T/C ក្រោយកំណើត។ ឆានែល លក្ខណៈពិសេស
អាសយដ្ឋាន៖ AT89C2051
- - - - UART ពន្លឺ 2 Kb
AT89C4051 - - - - UART ពន្លឺ 4Kb
AT89S4D12 128K - - - UART, SPI ពន្លឺ 4Kb
DALLAS Semiconductor: DS5000FP
- - - + UART ឧបករណ៍ផ្ទុក Bootstrap
DS5001FP - - - + UART ឧបករណ៍ផ្ទុក Bootstrap
DS8xC520 ១៦ គ - - + 2xUART 2 DPTR
SIEMENS: C505C
១៦ គ - + + UART, CAN 8 DPTR
C515C 64K - + + UART + SSC + CAN 4 PWM, 8 DPTR
Philips: * 89C51RA +
- + - + UART 2 DPTR, 4 lv ។ រំខាន, នាឡិកាចេញ, Flash 8K
P51XAG1x 8K - - + 2 UART
ក្រុមហ៊ុន Intel: 8xC51RA
8K - + + UART 4 កម្រិត IRQ, នាឡិកាចេញ
8XC196KC 64K ១៦ គ - + - UART 3 PWM
80C196KB 64K 8K - + - UART PWM

ជំពូកទី 1. ស្ថាបត្យកម្មនៃគ្រួសារ MCS51

MCS-51 8-bit single-chip microcontrollers បានក្លាយជាការពេញនិយមយ៉ាងខ្លាំងក្នុងចំណោមអ្នករចនាប្រព័ន្ធគ្រប់គ្រង microprocessor ដោយសារតែស្ថាបត្យកម្មដែលបានរចនាយ៉ាងល្អរបស់ពួកគេ។ ស្ថាបត្យកម្ម Microcontroller គឺជាបណ្តុំនៃធនធានផ្នែករឹង និងប្រព័ន្ធណែនាំដែលអាចចូលប្រើផ្នែកទន់ខាងក្នុង និងខាងក្រៅ។ ស្ថាបត្យកម្មនៃគ្រួសារ MCS-51 ត្រូវបានកំណត់ទុកជាមុនដោយគោលបំណងរបស់វា - ការសាងសង់ឧបករណ៍ឌីជីថលតូចនិងថោក។ Microcontrollers ដែលអនុវត្តមុខងារទាំងអស់របស់ microcomputer ដោយប្រើ microcircuit តែមួយត្រូវបានគេហៅថា single-chip computer (OEVM)។

ក្រុមហ៊ុន Intel បានបញ្ចេញម៉ូដែលប្រហែល 50 ដោយផ្អែកលើស្នូលប្រតិបត្តិការរបស់ Intel 8051 microcontroller ។ ក្នុងពេលជាមួយគ្នានេះដែរ ក្រុមហ៊ុនជាច្រើនទៀតដូចជា Atmel, Philips បានចាប់ផ្តើមផលិត microcontrollers ផ្ទាល់ខ្លួនរបស់ពួកគេដែលត្រូវបានបង្កើតឡើងដោយស្តង់ដារ MCS-51 ។

លក្ខណៈទូទៅ

លក្ខណៈសំខាន់ៗនៃគ្រួសារ៖

· 8-bit Central Processing Unit (CPU) ផ្តោតលើការគ្រប់គ្រងឧបករណ៍ប្រតិបត្តិ។

· ស៊ីភីយូមានសៀគ្វីភ្ជាប់មកជាមួយសម្រាប់ការគុណផ្នែករឹង 8 ប៊ីត និងការបែងចែកលេខ។

· វត្តមាននៅក្នុងសំណុំសេចក្តីណែនាំនៃប្រតិបត្តិការមួយចំនួនធំសម្រាប់ធ្វើការជាមួយប៊ីតដែលអាចដោះស្រាយដោយផ្ទាល់បានធ្វើឱ្យវាអាចនិយាយអំពីខួរក្បាលសម្រាប់ធ្វើការជាមួយទិន្នន័យប៊ីត (ដំណើរការប៊ូលីន);

· អង្គចងចាំកម្មវិធីខាងក្នុង (ដែលមានទីតាំងនៅលើបន្ទះឈីប) នៃប្រភេទបិទបាំង ឬរៀបចំឡើងវិញ ដែលសម្រាប់គ្រីស្តាល់ផ្សេងៗមានបរិមាណពី 4 ទៅ 32 Kb ក្នុងកំណែខ្លះវាអវត្តមាន។

· RAM ទិន្នន័យអ្នករស់នៅមិនតិចជាង 128 បៃ ដែលត្រូវបានប្រើសម្រាប់អង្គការ ចុះឈ្មោះធនាគារ ជង់ និងការផ្ទុកទិន្នន័យអ្នកប្រើប្រាស់។

· យ៉ាងហោចណាស់ 32 បន្ទាត់ចំណុចប្រទាក់ទ្វេទិស (ច្រក) ដែលត្រូវបានកំណត់រចនាសម្ព័ន្ធជាលក្ខណៈបុគ្គលសម្រាប់ការបញ្ចូល ឬលទ្ធផលនៃព័ត៌មាន។

· បញ្ជរពហុរបៀប 16 ប៊ីតពីរដែលប្រើដើម្បីរាប់ព្រឹត្តិការណ៍ខាងក្រៅ រៀបចំការពន្យាពេល និងនាឡិកាច្រកទំនាក់ទំនង។

· ឧបករណ៍បញ្ជូនទិន្នន័យអសមកាលទ្វេទិស (UART) ដែលត្រូវបានរចនាឡើងដើម្បីរៀបចំបណ្តាញទំនាក់ទំនងរវាងឧបករណ៍បញ្ជាមីក្រូ និងឧបករណ៍ខាងក្រៅជាមួយនឹងជួរដ៏ធំទូលាយនៃអត្រាផ្ទេរទិន្នន័យ។ មានឧបករណ៍សម្រាប់ការរួមបញ្ចូលផ្នែករឹង និងផ្នែកទន់នៃ microcontrollers ទៅក្នុងប្រព័ន្ធដែលបានតភ្ជាប់។

· ប្រព័ន្ធរំខានអាទិភាពពីរកម្រិត ដែលគាំទ្រយ៉ាងហោចណាស់ 5 វ៉ិចទ័រនៃការរំខានពីប្រភព 4 ខាងក្នុង និង 2 ខាងក្រៅនៃព្រឹត្តិការណ៍។

· ម៉ាស៊ីនភ្លើងនាឡិកាដែលភ្ជាប់មកជាមួយ។

គ្រោងការណ៍រចនាសម្ព័ន្ធ

ដ្យាក្រាមប្លុករបស់ឧបករណ៍បញ្ជាត្រូវបានបង្ហាញក្នុងរូបទី 1.1 ហើយមានឯកតាមុខងារសំខាន់ៗដូចខាងក្រោមៈ អង្គភាពបញ្ជា ឯកតាតក្កវិជ្ជានព្វន្ធ ឯកតាកំណត់ម៉ោង/រាប់ ចំណុចប្រទាក់សៀរៀល និងឯកតារំខាន បញ្ជរកម្មវិធី អង្គចងចាំទិន្នន័យ និងអង្គចងចាំកម្មវិធី។ ការផ្លាស់ប្តូរទ្វេទិសត្រូវបានអនុវត្តដោយប្រើផ្លូវហាយវេទិន្នន័យ 8 ប៊ីតខាងក្នុង។ អ្នកតំណាងស្ទើរតែទាំងអស់នៃគ្រួសារ MCS-51 ត្រូវបានសាងសង់តាមគ្រោងការណ៍នេះ។ microcircuits ផ្សេងគ្នានៃគ្រួសារនេះខុសគ្នាតែនៅក្នុងការចុះបញ្ជីគោលបំណងពិសេស (រួមទាំងចំនួនច្រក) ។

អង្គភាពគ្រប់គ្រង និងពេលវេលា- បានរចនាឡើងដើម្បីបង្កើតការធ្វើសមកាលកម្ម និងសញ្ញាត្រួតពិនិត្យដែលធានានូវការសម្របសម្រួលនៃប្រតិបត្តិការរួមគ្នានៃអង្គភាព OEVM នៅក្នុងគ្រប់ទម្រង់ដែលអាចអនុញ្ញាតបាននៃប្រតិបត្តិការរបស់វា។ អង្គភាពត្រួតពិនិត្យរួមមាន:

ឧបករណ៍សម្រាប់បង្កើតចន្លោះពេល;

តក្កវិជ្ជា I/O;

ការចុះឈ្មោះពាក្យបញ្ជា;

បញ្ជីត្រួតពិនិត្យការប្រើប្រាស់អគ្គិសនី;

ឌិកូដនៃពាក្យបញ្ជា តក្កវិជ្ជាគ្រប់គ្រងកុំព្យូទ័រ។

អង្ករ។ ១.១. ដ្យាក្រាមប្លុកនៃឧបករណ៍បញ្ជា I8051 ។

ឧបករណ៍កំណត់ពេលវេលាត្រូវបានបម្រុងទុកសម្រាប់ការបង្កើត និងការចេញសញ្ញាសមកាលកម្មផ្ទៃក្នុងនៃដំណាក់កាល នាឡិកា និងវដ្ត។ ចំនួននៃវដ្តម៉ាស៊ីនកំណត់រយៈពេលនៃការប្រតិបត្តិការណែនាំ។ ពាក្យបញ្ជា OEVM ស្ទើរតែទាំងអស់ត្រូវបានប្រតិបត្តិក្នុងវដ្តម៉ាស៊ីនមួយ ឬពីរ លើកលែងតែពាក្យបញ្ជាគុណ និងការបែងចែក ពេលវេលាប្រតិបត្តិគឺបួនវដ្តម៉ាស៊ីន។ អនុញ្ញាតឱ្យយើងកំណត់ប្រេកង់នៃលំយោលមេដោយ F g ។ រយៈពេលនៃវដ្តម៉ាស៊ីនគឺ 12 / F g ឬ 12 រយៈពេលនៃសញ្ញានៃលំយោលមេ។ តក្កវិជ្ជាបញ្ចូល - ទិន្នផលត្រូវបានរចនាឡើងដើម្បីទទួលនិងចេញសញ្ញាដែលផ្តល់ការផ្លាស់ប្តូរព័ត៌មានជាមួយឧបករណ៍ខាងក្រៅតាមរយៈច្រកបញ្ចូល / ទិន្នផល P0-P3 ។

ចុះឈ្មោះពាក្យបញ្ជាត្រូវបានបម្រុងទុកសម្រាប់ការកត់ត្រា និងរក្សាទុកកូដប្រតិបត្តិការ 8 ប៊ីតនៃពាក្យបញ្ជាដែលកំពុងដំណើរការ។ កូដប្រតិបត្តិការ ដោយមានជំនួយពីឧបករណ៍ឌិកូដពាក្យបញ្ជា និងតក្កវិជ្ជាគ្រប់គ្រងកុំព្យូទ័រត្រូវបានបំប្លែងទៅជាមីក្រូកម្មវិធីសម្រាប់ប្រតិបត្តិពាក្យបញ្ជា។

ការចុះឈ្មោះត្រួតពិនិត្យការប្រើប្រាស់ (PCON)អនុញ្ញាតឱ្យអ្នកបញ្ឈប់ microcontroller ដើម្បីកាត់បន្ថយការប្រើប្រាស់ថាមពល និងកាត់បន្ថយកម្រិតនៃសំលេងរំខានពី microcontroller ។ ការកាត់បន្ថយការប្រើប្រាស់ថាមពល និងការកាត់បន្ថយសំលេងរំខានបន្ថែមទៀតអាចសម្រេចបានដោយការបញ្ឈប់មេនៃលំយោលនៃ microcontroller ។ នេះអាចសម្រេចបានដោយការត្រឡប់បន្តិចនៅក្នុងបញ្ជីត្រួតពិនិត្យការប្រើប្រាស់ PCON ។ សម្រាប់វ៉ារ្យ៉ង់ n-MOS (ស៊េរី 1816 ឬបន្ទះសៀគ្វីបរទេសដែលមិនមាន "c" នៅកណ្តាល) ការចុះឈ្មោះគ្រប់គ្រងការប្រើប្រាស់ PCON មានប៊ីតតែមួយគត់ដែលគ្រប់គ្រងអត្រា baud ច្រកសៀរៀល SMOD ហើយមិនមានប៊ីតគ្រប់គ្រងថាមពលទេ។

ឯកតាតក្កវិជ្ជានព្វន្ធ (ALU)គឺជាឧបករណ៍ប្រាំបីប៊ីតប៉ារ៉ាឡែលដែលដំណើរការនព្វន្ធ និងតក្កវិជ្ជា។ ALU រួមមានៈ

ការចុះឈ្មោះ accumulator, ការចុះឈ្មោះ TMP1 និង TMP2;

ROM នៃថេរ;

អ្នកបន្ថែម;

ការចុះឈ្មោះបន្ថែម (ចុះឈ្មោះ B);

ថ្ម (ACC);

ការចុះឈ្មោះស្ថានភាពកម្មវិធី (PSW) ។

ចុះឈ្មោះ បញ្ជី​អ្នក​ប្រមូល​និង​រក្សា​ទុក- ការចុះឈ្មោះប្រាំបីប៊ីតដែលមានបំណងសម្រាប់ការទទួល និងរក្សាទុក operands សម្រាប់រយៈពេលនៃប្រតិបត្តិការលើពួកវា។ ការចុះឈ្មោះទាំងនេះមិនអាចចូលប្រើតាមកម្មវិធីបានទេ។

ថេរ ROMផ្តល់នូវការបង្កើតលេខកូដកែតម្រូវសម្រាប់ការតំណាងទិន្នន័យគោលពីរ - ទសភាគ កូដរបាំងសម្រាប់ប្រតិបត្តិការប៊ីត និងកូដថេរ។

ឧបករណ៍បន្ថែមប្រាំបីប៊ីតស្របគ្នា។គឺ​ជា​សៀគ្វី​ប្រភេទ​រួម​ជាមួយ​ការ​អនុវត្ត​តាម​លំដាប់​លំដោយ ដែល​ត្រូវ​បាន​រចនា​ឡើង​ដើម្បី​ធ្វើ​ប្រតិបត្តិការ​នព្វន្ធ​នៃ​ការ​បូក ដក និង​ប្រតិបត្តិការ​ឡូជីខល​នៃ​ការ​បូក គុណ មិន​ស្មើគ្នា និង​ដូចគ្នាបេះបិទ។

ចុះឈ្មោះ ខ- ការចុះឈ្មោះប្រាំបីប៊ីតដែលប្រើកំឡុងប្រតិបត្តិការគុណ និងចែក។ សម្រាប់ការណែនាំផ្សេងទៀត វាអាចត្រូវបានមើលថាជាការចុះបញ្ជីប្រតិបត្តិការទំនើបបន្ថែម។

ថ្ម- ការចុះឈ្មោះប្រាំបីប៊ីតត្រូវបានរចនាឡើងដើម្បីទទួល និងរក្សាទុកលទ្ធផលដែលទទួលបាននៅពេលអនុវត្តប្រតិបត្តិការនព្វន្ធ-ឡូជីខល ឬប្រតិបត្តិការផ្លាស់ប្តូរ

ចំណុចប្រទាក់សៀរៀល និងអង្គភាពរំខាន (PIP)ត្រូវបានបម្រុងទុកសម្រាប់ការរៀបចំការបញ្ចូល - លទ្ធផលនៃស្ទ្រីមព័ត៌មានជាបន្តបន្ទាប់ និងការរៀបចំប្រព័ន្ធសម្រាប់រំខានកម្មវិធី។ ប្លុករួមមាន:

សតិបណ្ដោះអាសន្ន PIP;

តក្កវិជ្ជាគ្រប់គ្រង;

ការចុះឈ្មោះត្រួតពិនិត្យ;

សតិបណ្ដោះអាសន្នបញ្ជូន;

សតិបណ្ដោះអាសន្នអ្នកទទួល;

ឧបករណ៍បញ្ជូនតាមច្រកសៀរៀល;

រំខានការចុះឈ្មោះអាទិភាព;

រំខាន បើកការចុះឈ្មោះ;

រំខានដំណើរការតក្កវិជ្ជាទង់ និងសៀគ្វីបង្កើតវ៉ិចទ័រ។

កម្មវិធីរាប់ត្រូវបានរចនាឡើងដើម្បីបង្កើតអាសយដ្ឋាន 16 ប៊ីតបច្ចុប្បន្ននៃអង្គចងចាំកម្មវិធីខាងក្នុង និងអាសយដ្ឋាន 8/16 ប៊ីតនៃអង្គចងចាំកម្មវិធីខាងក្រៅ។ បញ្ជរការណែនាំរួមមានសតិបណ្ដោះអាសន្នកុំព្យូទ័រ 16 ប៊ីត ការចុះឈ្មោះកុំព្យូទ័រ និងសៀគ្វីបន្ថែម (បង្កើនមាតិកាដោយ 1) ។

អង្គចងចាំទិន្នន័យ (RAM)ត្រូវបានបម្រុងទុកសម្រាប់ការរក្សាទុកព័ត៌មានបណ្តោះអាសន្នដែលប្រើក្នុងដំណើរការនៃការប្រតិបត្តិកម្មវិធី។

ច្រក P0, P1, P2, P3គឺជាច្រកបញ្ចូល-ទិន្នផល quasi-bidirectional inputs និងត្រូវបានរចនាឡើងដើម្បីធានាឱ្យមានការផ្លាស់ប្តូរព័ត៌មានរវាងកុំព្យូទ័រ និងឧបករណ៍ខាងក្រៅ បង្កើតជា 32 input-output line។

ការចុះឈ្មោះស្ថានភាពកម្មវិធី (PSW)មានបំណងសម្រាប់រក្សាទុកព័ត៌មានអំពីស្ថានភាពនៃ ALU កំឡុងពេលប្រតិបត្តិកម្មវិធី។

អង្គចងចាំកម្មវិធី (EPROM)ត្រូវបានបម្រុងទុកសម្រាប់រក្សាទុកកម្មវិធី និងជាអង្គចងចាំបានតែអាន (រ៉ូម)។ microcircuits ផ្សេងគ្នាប្រើរបាំង UV អាចលុបបាន ឬ FLASH ROM ។

ការចុះឈ្មោះអ្នកចង្អុលបង្ហាញទិន្នន័យ (DPTR)ត្រូវបានរចនាឡើងដើម្បីរក្សាទុកអាសយដ្ឋាន 16 ប៊ីតនៃអង្គចងចាំទិន្នន័យខាងក្រៅ។

ទ្រនិចជង់ (SP)គឺជាការចុះឈ្មោះប្រាំបីប៊ីតដែលត្រូវបានរចនាឡើងដើម្បីរៀបចំតំបន់ពិសេសនៃអង្គចងចាំទិន្នន័យ (ជង់) ដែលកោសិកាអង្គចងចាំណាមួយអាចត្រូវបានរក្សាទុកជាបណ្តោះអាសន្ន។

1.3 គោលបំណងនៃការសន្និដ្ឋានរបស់ microcontroller 8051(រូប ១.២)

· U ss - សក្តានុពលនៃខ្សែទូទៅ ("ដី");

· U cc - វ៉ុលផ្គត់ផ្គង់ចម្បង +5 V;

· X1, X2 - នាំមុខសម្រាប់ភ្ជាប់ឧបករណ៍ចាប់សញ្ញារ៉ែថ្មខៀវ;

RST - microcontroller ទូទៅ reset input;

PSEN - ការអនុញ្ញាតនៃអង្គចងចាំកម្មវិធីខាងក្រៅដែលចេញតែនៅពេលចូលប្រើរ៉ូមខាងក្រៅ។

· ALE - strobe នៃអាសយដ្ឋានអង្គចងចាំខាងក្រៅ;

· ЕА - បិទអង្គចងចាំកម្មវិធីខាងក្នុង; កម្រិត 0 នៅការបញ្ចូលនេះបង្ខំឱ្យ microcontroller ប្រតិបត្តិកម្មវិធីតែពី ROM ខាងក្រៅប៉ុណ្ណោះ។ មិនអើពើផ្ទៃក្នុង (ប្រសិនបើក្រោយគឺអាចរកបាន);

អង្ករ។ ១.២. ការ​កំណត់​លេខ 8051 ។

· P1 - ច្រកបញ្ចូល / ទិន្នផល 8-bit quasi-bidirectional input, bit នីមួយៗនៃ port អាចត្រូវបានកម្មវិធីទាំង input and output of information ដោយមិនគិតពីស្ថានភាពនៃ bits ផ្សេងទៀត;

· P2 - ច្រក quasi-bidirectional ប្រាំបីប៊ីត ស្រដៀងនឹង P1 ម្ជុលនៃច្រកនេះត្រូវបានប្រើដើម្បីចេញព័ត៌មានអាសយដ្ឋាននៅពេលចូលប្រើកម្មវិធីខាងក្រៅ ឬអង្គចងចាំទិន្នន័យ (ប្រសិនបើចុងក្រោយគឺអាសយដ្ឋាន 16 ប៊ីត) ។ លើសពីនេះទៀតម្ជុលនៃច្រកត្រូវបានប្រើកំឡុងពេលសរសេរកម្មវិធីដើម្បីបញ្ចូលប៊ីតលំដាប់ខ្ពស់នៃអាសយដ្ឋានទៅក្នុង microcontroller;

РЗ - ច្រកទ្វេទិសប្រាំបីប៊ីត ស្រដៀងទៅនឹង P1 ម្ជុលនៃច្រកនេះអាចអនុវត្តមុខងារជំនួសមួយចំនួនដែលត្រូវបានប្រើកំឡុងពេលប្រតិបត្តិការនៃកម្មវិធីកំណត់ម៉ោង ច្រកបញ្ចូល-ទិន្នផលសៀរៀល ឧបករណ៍បញ្ជារំខាន និងកម្មវិធីខាងក្រៅ។ និងអង្គចងចាំទិន្នន័យ;

· P0 - ច្រកបញ្ចូលព័ត៌មានទ្វេទិសប្រាំបីប៊ីតដែលពហុគុណតាមរយៈច្រកនេះនៅពេលផ្សេងគ្នាដែលបៃទាបនៃអាសយដ្ឋាននិងទិន្នន័យត្រូវបានបញ្ចេញ។

អង្គការនៃការចងចាំ

ស៊េរី MCS-51 ទាំងមូលមានស្ថាបត្យកម្ម Harvard ពោលគឺចន្លោះអាសយដ្ឋានដាច់ដោយឡែកសម្រាប់អង្គចងចាំកម្មវិធី និងទិន្នន័យ។ រចនាសម្ព័ន្ធអង្គចងចាំត្រូវបានបង្ហាញនៅក្នុងរូបភព។ ១.៣.

ចំនួននៃអង្គចងចាំកម្មវិធីខាងក្នុង (អ្នករស់នៅ) (រ៉ូម EPROM ឬ OTP ROM) ដែលមានទីតាំងនៅលើបន្ទះឈីប អាស្រ័យលើប្រភេទមីក្រូសៀគ្វី អាចជា 0 (រ៉ូមគ្មាន) 4K (គ្រីស្តាល់មូលដ្ឋាន) 8K 16K ឬ 32K។ បើចាំបាច់ អ្នកប្រើប្រាស់អាចពង្រីកអង្គចងចាំកម្មវិធីដោយដំឡើង ROM ខាងក្រៅ។ ការចូលទៅកាន់ ROM ខាងក្នុង ឬខាងក្រៅត្រូវបានកំណត់ដោយតម្លៃនៃសញ្ញានៅ EA pin (External Access)៖

EA = V cc (វ៉ុលផ្គត់ផ្គង់) - ការចូលទៅកាន់រ៉ូមខាងក្នុង;

EA = V ss (សក្តានុពលដី) - ការចូលប្រើរ៉ូមខាងក្រៅ។

សម្រាប់គ្រីស្តាល់ដែលគ្មាន ROM (ROMless) ម្ជុល EA ត្រូវតែភ្ជាប់ជាអចិន្ត្រៃយ៍ទៅ V ss ។

អង្ករ។ ១.៣. អង្គការចងចាំនៃគ្រួសារ MCS-51

External ROM read strobe - (Program Store Enable) ត្រូវបានបង្កើតនៅពេលចូលប្រើអង្គចងចាំកម្មវិធីខាងក្រៅ ហើយអសកម្មកំឡុងពេលចូលប្រើ ROM ដែលមានទីតាំងនៅលើបន្ទះឈីប។ តំបន់នៃអាសយដ្ឋានខាងក្រោមនៃអង្គចងចាំកម្មវិធីត្រូវបានប្រើប្រាស់ដោយប្រព័ន្ធរំខាន។ ស្ថាបត្យកម្មនៃបន្ទះឈីបមូលដ្ឋាន 8051 ផ្តល់នូវការគាំទ្រសម្រាប់ប្រភពរំខានចំនួនប្រាំ៖

· ការរំខានខាងក្រៅពីរ;

· ការរំខានពីរពីកម្មវិធីកំណត់ម៉ោង;

·រំខានពីច្រកសៀរៀល។

នៅក្នុងរូបភព។ 1.4 បង្ហាញផែនទីនៃតំបន់ទាបនៃការចងចាំកម្មវិធី។

អង្ករ។ ១.៤. ផែនទីអង្គចងចាំកម្មវិធីទាប

អង្គចងចាំកម្មវិធី (រ៉ូម)

នៅក្នុង microcontrollers នៃគ្រួសារ 8051 អង្គចងចាំកម្មវិធី និងអង្គចងចាំទិន្នន័យគឺឯករាជ្យ និងឯករាជ្យពីឧបករណ៍ផ្សេងៗ ដែលដោះស្រាយដោយពាក្យបញ្ជាផ្សេងៗ និងសញ្ញាបញ្ជា។

អង្គចងចាំកម្មវិធីដែលភ្ជាប់មកជាមួយដែលមានទីតាំងនៅលើបន្ទះឈីបរបស់ 8051 microcontroller គឺ 4 KB (ក្នុងគ្រួសាររហូតដល់ 32) ។ នៅពេលចូលប្រើអង្គចងចាំកម្មវិធីខាងក្រៅ គ្រប់ microcontroller នៃគ្រួសារ 8051 តែងតែប្រើអាសយដ្ឋាន 16-bit ដែលផ្តល់ឱ្យពួកគេនូវការចូលប្រើ ROM 64 KB ។ microcontroller ចូលប្រើអង្គចងចាំកម្មវិធីនៅពេលអាន opcode និង operands (ដោយប្រើបញ្ជរណែនាំកុំព្យូទ័រ) ក៏ដូចជានៅពេលប្រតិបត្តិសេចក្តីណែនាំដើម្បីចម្លងបៃពីអង្គចងចាំកម្មវិធីទៅថ្ម។ នៅពេលដែលការចម្លងពាក្យបញ្ជាទិន្នន័យត្រូវបានប្រតិបត្តិ អាសយដ្ឋាននៃក្រឡាអង្គចងចាំរបស់កម្មវិធីដែលទិន្នន័យនឹងត្រូវបានអានអាចត្រូវបានអនុវត្តដោយប្រើទាំងកុំព្យូទ័ររាប់ PC និងការចុះឈ្មោះទ្រនិចទិន្នន័យ DPTR ពីរបៃពិសេស។

អង្គចងចាំទិន្នន័យ (RAM)

ចំនួនអង្គចងចាំទិន្នន័យនៅលើបន្ទះឈីបគឺ 128 បៃ។ អង្គចងចាំទិន្នន័យខាងក្រៅអាចមានរហូតដល់ 64KB ។ 32 បៃដំបូងត្រូវបានរៀបចំជាធនាគារចំនួនបួននៃការចុះបញ្ជីគោលបំណងទូទៅដែលកំណត់រៀងគ្នាធនាគារ 0 - ធនាគារ 3 ។ ពួកវានីមួយៗមានប្រាំបីចុះឈ្មោះ R0 - R7 ។ នៅពេលណាមួយ កម្មវិធីនេះអាចប្រើបាន ដោយមានអាសយដ្ឋានចុះឈ្មោះ មានតែធនាគារមួយនៃការចុះឈ្មោះ ចំនួនដែលមាននៅក្នុងប៊ីតទីបី និងទីបួននៃពាក្យស្ថានភាពនៃកម្មវិធី PSW ។

8051 microcontroller memory area addresses

តារាង 1.1

អាសយដ្ឋានបៃ (Hex) អាសយដ្ឋានប៊ីតដោយប៊ីត
ឃ៧ ឃ៦ ឃ៥ ឃ៤ ឃ៣ ឃ២ ឃ១ ឃ0
2F 7F ៧ អ៊ី 7D ៧ គ ៧ ប ៧ ក
2 អ៊ី
2D 6F 6 អ៊ី 6D 6 ស៊ី 6 ខ 6A
2 ស៊ី
2 ប 5F 5 អ៊ី 5D 5C 5 ខ 5A
2 ក
4F 4 អ៊ី 4D 4C 4 ខ 4A
3F 3 អ៊ី 3D 3C 3B 3A
2F 2 អ៊ី 2D 2 ស៊ី 2 ប 2 ក
1F 1 អ៊ី 1D 1C 1 ខ 1A
0F 0 អ៊ី 0D 0 ស៊ី 0 ខ 0 ក
20 ម៉ោង។

ចន្លោះអាសយដ្ឋានដែលនៅសល់អាចត្រូវបានកំណត់រចនាសម្ព័ន្ធដោយអ្នកអភិវឌ្ឍន៍តាមការសំរេចចិត្តរបស់គាត់៖ វាអាចផ្ទុកតំបន់ជង់ ប្រព័ន្ធ និងទិន្នន័យអ្នកប្រើប្រាស់។ កោសិកាអង្គចងចាំទិន្នន័យអាចចូលប្រើបានតាមពីរវិធី។ វិធីទីមួយគឺការអាសយដ្ឋានដោយផ្ទាល់នៃកោសិកាអង្គចងចាំ។ ក្នុងករណីនេះ អាសយដ្ឋានក្រឡាគឺជាដំណើរការនៃការណែនាំដែលត្រូវគ្នា។ វិធីសាស្រ្តទីពីរគឺអាសយដ្ឋានដោយប្រយោលដោយប្រើការចុះឈ្មោះទ្រនិច R0 ឬ R1៖ មុនពេលប្រតិបត្តិពាក្យបញ្ជាដែលត្រូវគ្នា អាសយដ្ឋានក្រឡាដែលត្រូវដោះស្រាយត្រូវតែបញ្ចូលទៅក្នុងមួយក្នុងចំណោមពួកវា។

ដើម្បីចូលប្រើអង្គចងចាំទិន្នន័យខាងក្រៅ មានតែអាសយដ្ឋានប្រយោលប៉ុណ្ណោះដែលត្រូវបានប្រើដោយប្រើការចុះឈ្មោះ R0 និង R1 ឬប្រើការចុះឈ្មោះទ្រនិច DPTR 16 ប៊ីត។

ផ្នែកនៃអង្គចងចាំទិន្នន័យគឺជាតំបន់ប៊ីត ដែលវាអាចទៅរួច ដោយមានជំនួយពីការណែនាំពិសេសៗ ដើម្បីដោះស្រាយកោសិកាអង្គចងចាំនីមួយៗ។ អាសយដ្ឋាននៃប៊ីតដែលអាចអាសយដ្ឋានដោយផ្ទាល់ក៏អាចសរសេរជា (ByteAddress)។ (ប៊ីត) ។ ការឆ្លើយឆ្លងនៃវិធីសាស្រ្តអាសយដ្ឋានទាំងពីរនេះអាចត្រូវបានកំណត់ពីតារាង។ ១.១.

ប្រព័ន្ធពាក្យបញ្ជា OMEVM ផ្តល់នូវសមត្ថភាពដំណើរការទិន្នន័យដ៏អស្ចារ្យ ផ្តល់នូវការអនុវត្តប្រតិបត្តិការឡូជីខល នព្វន្ធ ក៏ដូចជាការគ្រប់គ្រងពេលវេលាជាក់ស្តែង។ Bitwise, tetrad (4 ប៊ីត), បៃ (8 ប៊ីត) និងដំណើរការទិន្នន័យ 16 ប៊ីតត្រូវបានអនុវត្ត។ គ្រួសារ LSI MCS-51 - 8-bit ОМЭВМ: ROM, RAM, ការចុះឈ្មោះគោលបំណងពិសេស, ALU និងរថយន្តក្រុងខាងក្រៅមានអង្គការបៃ។ ទិន្នន័យពីរបៃត្រូវបានប្រើតែដោយ Pointer Register (DPTR) និង Command Counter (PC) ប៉ុណ្ណោះ។ វាគួរតែត្រូវបានកត់សម្គាល់ថាការចុះឈ្មោះទ្រនិចទិន្នន័យអាចត្រូវបានប្រើជាការចុះឈ្មោះ DPTR ពីរបៃឬជាការចុះឈ្មោះគោលបំណងពិសេសពីរបៃ DPH និង DPL ។ បញ្ជរពាក្យបញ្ជាតែងតែប្រើជាការចុះឈ្មោះពីរបៃ។ សំណុំពាក្យបញ្ជា OMEVM មាន 42 ការរចនា mnemonic នៃពាក្យបញ្ជាដើម្បី concretize 33 មុខងារនៃប្រព័ន្ធនេះ។ វាក្យសម្ពន្ធសម្រាប់ពាក្យបញ្ជាភាសា assembly ភាគច្រើនមានអនុគមន៍ mnemonic អមដោយ operands ដែលបង្ហាញពីវិធីសាស្រ្តអាសយដ្ឋាន និងប្រភេទទិន្នន័យ។ ប្រភេទទិន្នន័យផ្សេងគ្នា ឬរបៀបអាសយដ្ឋានត្រូវបានកំណត់ដោយសំណុំ operand មិនមែនដោយការផ្លាស់ប្តូរនៅក្នុងការរចនា mnemonic ទេ។ ប្រព័ន្ធបញ្ជាអាចបែងចែកតាមលក្ខខណ្ឌជាប្រាំក្រុម៖
  • ពាក្យបញ្ជានព្វន្ធ;
  • ពាក្យបញ្ជាឡូជីខល;
  • ពាក្យបញ្ជាផ្ទេរទិន្នន័យ;
  • ពាក្យបញ្ជាដំណើរការប៊ីត;
  • សាខា និងគ្រប់គ្រងការផ្ទេរពាក្យបញ្ជា។
ប្រភេទនៃអាសយដ្ឋានខាងក្រោមនៃ operand ប្រភពមាន៖
  • ចុះឈ្មោះអាសយដ្ឋាន
  • អាសយដ្ឋានផ្ទាល់
  • អាសយដ្ឋានចុះឈ្មោះដោយប្រយោល។
  • អាសយដ្ឋានផ្ទាល់
  • អាសយដ្ឋានចុះឈ្មោះដោយប្រយោលដោយផលបូកនៃមូលដ្ឋាន និងលិបិក្រមចុះឈ្មោះ
សេចក្តីណែនាំអំពីនព្វន្ធ សំណុំសេចក្តីណែនាំមានប្រតិបត្តិការនព្វន្ធដូចខាងក្រោម៖ បូក បូកជាមួយទង់អនុវត្ត ដកជាមួយការខ្ចី បង្កើន បន្ថយ ការប្រៀបធៀប ការកែទសភាគ គុណ និងចែក។ នៅក្នុង ALU ប្រតិបត្តិការត្រូវបានអនុវត្តលើចំនួនគត់ដែលមិនបានចុះហត្ថលេខា។ នៅក្នុងប្រតិបត្តិការពីរ៖ បូក (ADD) បូកនិងអនុវត្ត (ADDC) និងដក និងខ្ចី (SUBB) accumulator គឺជាប្រតិបត្តិករដំបូង ហើយទទួលបានលទ្ធផលនៃប្រតិបត្តិការ។ ប្រតិបត្តិករទីពីរអាចជាការចុះឈ្មោះការងាររបស់ធនាគារដែលបានជ្រើសរើសនៃការចុះឈ្មោះការងារ ការចុះឈ្មោះអង្គចងចាំទិន្នន័យខាងក្នុងជាមួយនឹងការចុះឈ្មោះដោយប្រយោល និងអាសយដ្ឋានផ្ទាល់ ឬបៃទិន្នន័យផ្ទាល់។ ប្រតិបត្តិការទាំងនេះប៉ះពាល់ដល់ទង់ជាតិ៖ ការបញ្ចប់ ការដឹក ការដឹកជញ្ជូនកម្រិតមធ្យម និងទង់ភាពស្មើគ្នានៅក្នុងពាក្យស្ថានភាពដំណើរការ (PSW)។ ការ​ប្រើ​ខ្ទង់​អនុវត្ត​អនុញ្ញាត​ឱ្យ​ច្រើន​ដង​ក្នុង​ការ​កែលម្អ​ភាព​ជាក់លាក់​ក្នុង​ប្រតិបត្តិការ​បូក (ADDC) និង​ដក (SUBB)។ ការបូកនិងដកដែលមានមូលដ្ឋានលើសញ្ញាអាចត្រូវបានអនុវត្តដោយការគ្រប់គ្រងតាមកម្មវិធីលើទង់ជាតិលើស (OV) នៃការចុះឈ្មោះ PSW ។ ទង់ផ្ទុកមធ្យម (AC) ត្រូវបានប្រើដើម្បីអនុវត្តប្រតិបត្តិការនព្វន្ធនៅក្នុង BCD ។ ប្រតិបត្តិការបង្កើន និងបន្ថយមិនប៉ះពាល់ដល់ទង់ជាតិទេ។ ប្រតិបត្តិការ​ប្រៀបធៀប​មិន​ប៉ះពាល់​ទាំង​ទិសដៅ ឬ​ប្រភព​ប្រតិបត្តិការ​ទេ ប៉ុន្តែ​វា​ប៉ះពាល់​ដល់​ការ​ដាក់ទង់។ មានប្រតិបត្តិការនព្វន្ធចំនួនបីដែលត្រូវបានអនុវត្តតែលើថ្មប៉ុណ្ណោះ៖ ពាក្យបញ្ជាពីរសម្រាប់ពិនិត្យមើលមាតិការបស់ថ្ម A (JZ, JNZ) និងពាក្យបញ្ជាកែតម្រូវទសភាគនៅពេលបន្ថែមលេខកូដគោលពីរ។ កំឡុងពេលប្រតិបត្តិការគុណ មាតិការបស់ accumulator A ត្រូវបានគុណដោយមាតិកានៃ register B ហើយលទ្ធផលត្រូវបានដាក់ដូចខាងក្រោមៈ បៃទាបស្ថិតនៅក្នុង register B បៃខ្ពស់ស្ថិតនៅក្នុង register A. ពាក្យបញ្ជាឡូជីខលជាមួយអថេរបៃ ប្រព័ន្ធបញ្ជា អនុញ្ញាតឱ្យអ្នកអនុវត្តប្រតិបត្តិការឡូជីខល៖ "AND", "OR", "EXCLUSIVE OR" នៅលើ accumulator register (A) និងប្រភព byte ។ ប្រតិបត្តិករទីពីរ (បៃប្រភព) អាចជាការចុះឈ្មោះការងារនៅក្នុងធនាគារដែលបានជ្រើសរើសនៃការចុះឈ្មោះការងារ។ ការចុះឈ្មោះ RAM ខាងក្នុងដែលត្រូវបានដោះស្រាយដោយប្រើការចុះឈ្មោះ - អាសយដ្ឋានប្រយោល; កោសិកាដែលអាចអាសយដ្ឋានដោយផ្ទាល់នៃ RAM ខាងក្នុង និងការចុះឈ្មោះក្នុងគោលបំណងពិសេស។ ទំហំភ្លាមៗ។ ប្រតិបត្តិការឡូជីខលទាំងនេះអាចត្រូវបានអនុវត្តនៅលើការចុះឈ្មោះអាស័យដ្ឋានដោយផ្ទាល់ណាមួយនៃ RAM ខាងក្នុង ឬការចុះឈ្មោះក្នុងគោលបំណងពិសេសដោយប្រើមាតិកានៃ accumulator A ឬទិន្នន័យផ្ទាល់ជា operand ទីពីរ។ មានប្រតិបត្តិការឡូជីខលដែលត្រូវបានអនុវត្តតែលើថ្មប៉ុណ្ណោះ: កំណត់ឡើងវិញនិងបញ្ច្រាសទាំងប្រាំបីប៊ីតនៃ A; រង្វិលទៅឆ្វេងនិងស្តាំ; ការផ្លាស់ប្តូររង្វិលទៅខាងឆ្វេងនិងទៅខាងស្តាំដោយគិតគូរពីទង់កាន់; ផ្លាស់ប្តូរកន្លែងរបស់ tetrads ជាន់ខ្ពស់ និង តូច (nibls) នៅខាងក្នុងថ្ម។ ពាក្យបញ្ជាផ្ទេរទិន្នន័យ តារាងនិមិត្តសញ្ញា (កូដ) ដែលបង្កប់ក្នុង ROM កម្មវិធីអាចត្រូវបានជ្រើសរើសដោយប្រើពាក្យបញ្ជាផ្ទេរទិន្នន័យដោយប្រើអាសយដ្ឋានប្រយោល។ បៃថេរអាចត្រូវបានផ្ទេរទៅ accumulator ពីកោសិកាអង្គចងចាំកម្មវិធីដែលដោះស្រាយដោយផលបូកនៃការចុះឈ្មោះមូលដ្ឋាន (PC ឬ DPTR) និងការចុះឈ្មោះសន្ទស្សន៍ (មាតិកានៃ A) ។ ជាឧទាហរណ៍ វាផ្តល់នូវមធ្យោបាយងាយស្រួលក្នុងការអនុវត្តក្បួនដោះស្រាយសម្រាប់ការបំប្លែងកូដ ASCII ទៅជាកូដប្រាំពីរផ្នែក។ ក្រឡាណាមួយនៃប្លុក 256 បៃនៃ RAM ទិន្នន័យខាងក្រៅអាចត្រូវបានជ្រើសរើសដោយប្រើអាសយដ្ឋានចុះឈ្មោះដោយប្រយោលតាមរយៈការចុះបញ្ជីទ្រនិច R0 ឬ R1 (ធនាគារដែលបានជ្រើសរើសនៃការចុះឈ្មោះធ្វើការ) ។ ទីតាំងមួយក្នុងចន្លោះអាសយដ្ឋាន RAM ខាងក្រៅ 64KB ក៏អាចជ្រើសរើសបានផងដែរ ដោយប្រើការចុះឈ្មោះ-អាសយដ្ឋានដោយប្រយោលតាមរយៈ DPTR data pointer register។ ការផ្ទេរពាក្យបញ្ជារវាងការចុះឈ្មោះអាសយដ្ឋានដោយផ្ទាល់អនុញ្ញាតឱ្យអ្នកបញ្ចូលតម្លៃពីច្រកចូលទៅក្នុងក្រឡា RAM ខាងក្នុងដោយមិនប្រើការចុះឈ្មោះការងារឬថ្ម។ នៅក្នុងប្រព័ន្ធដំណើរការឡូជីខល ប៊ីតដែលអាចបញ្ជូនបន្តណាមួយអាចត្រូវបានដាក់ក្នុងប៊ីតដឹក និងច្រាសមកវិញ។ មាតិកានៃ accumulator អាចត្រូវបានផ្លាស់ប្តូរជាមួយនឹងមាតិកានៃការចុះឈ្មោះធ្វើការ (របស់ធនាគារដែលបានជ្រើសរើស) និងជាមួយនឹងមាតិកានៃកោសិកា RAM ខាងក្នុងដែលត្រូវបានដោះស្រាយដោយមធ្យោបាយនៃការចុះឈ្មោះដោយប្រយោលក៏ដូចជាជាមួយនឹងមាតិកានៃកោសិកាដែលអាចអាសយដ្ឋានដោយផ្ទាល់។ នៃ RAM ខាងក្នុង និងជាមួយមាតិកានៃការចុះឈ្មោះដែលមានគោលបំណងពិសេស។ nibl អនីតិជន (ប៊ីត 3-0) នៃមាតិកា accumulator អាចត្រូវបានផ្លាស់ប្តូរជាមួយនឹង nibl តូចតាចនៃមាតិកានៃកោសិកា RAM ខាងក្នុង ដែលបានជ្រើសរើសដោយប្រើការចុះឈ្មោះ-អាសយដ្ឋានដោយប្រយោល។ សេចក្តីណែនាំអំពីដំណើរការប៊ីត អង្គដំណើរការប៊ីតគឺជាផ្នែកមួយនៃគ្រួសារ MCS51 នៃស្ថាបត្យកម្ម MCU ហើយអាចត្រូវបានមើលថាជាប្រព័ន្ធដំណើរការប៊ីតឯករាជ្យ។ អង្គដំណើរការប៊ីតប្រតិបត្តិសំណុំនៃការណែនាំ មាន RAM ដែលអាចអាសយដ្ឋានបាន និង I/O របស់វាផ្ទាល់។ ការណែនាំប៊ីតផ្តល់នូវអាសយដ្ឋានផ្ទាល់នៃ 128 ប៊ីត (0-127) នៅក្នុងក្រឡាដប់ប្រាំមួយនៃ RAM ខាងក្នុង (កោសិកាដែលមានអាសយដ្ឋាន 20H-2FH) និងអាសយដ្ឋានប៊ីតផ្ទាល់នៃការចុះឈ្មោះដែលមានគោលបំណងពិសេសដែលអាសយដ្ឋានមានគុណនឹងប្រាំបី។ ប៊ីតនីមួយៗដែលអាចកំណត់អាសយដ្ឋានបាននីមួយៗអាចត្រូវបានកំណត់ទៅជា "1", ជម្រះទៅ "0", ដាក់បញ្ច្រាស, ធីក។ ការផ្លាស់ប្តូរអាចត្រូវបានអនុវត្ត: ប្រសិនបើប៊ីតត្រូវបានកំណត់; ប្រសិនបើប៊ីតមិនត្រូវបានកំណត់; សាខា, ប្រសិនបើប៊ីតត្រូវបានកំណត់, ជាមួយនឹងការជម្រះនៃប៊ីតនេះ; ប៊ីតអាចត្រូវបានសរសេរជាន់លើទៅ (ពី) ប៊ីតដឹក។ ប្រតិបត្តិការឡូជីខល "AND", "OR" អាចត្រូវបានអនុវត្តរវាងប៊ីតដែលអាចដោះស្រាយដោយផ្ទាល់ណាមួយ និងទង់ផ្ទុក ដែលលទ្ធផលត្រូវបានបញ្ចូលទៅក្នុងប៊ីតនៃទង់ផ្ទុក។ ការណែនាំអំពីដំណើរការ Bitwise ផ្តល់នូវការអនុវត្តមុខងារស្មុគ្រស្មាញនៃតក្កវិជ្ជារួមបញ្ចូលគ្នា និងការបង្កើនប្រសិទ្ធភាពនៃកម្មវិធីអ្នកប្រើប្រាស់។ Branching and Control Transfer Commands ចន្លោះអាសយដ្ឋាននៃអង្គចងចាំកម្មវិធីមិនមានអង្គការទំព័រ ដែលអនុញ្ញាតឱ្យអ្នកផ្លាស់ទីបំណែកកម្មវិធីដោយសេរីក្នុងចន្លោះអាសយដ្ឋាន ដោយមិនចាំបាច់ផ្ទុកឡើងវិញ (ផ្លាស់ប្តូរ) លេខទំព័រ។ ការផ្លាស់ទីបំណែកកម្មវិធីនីមួយៗផ្តល់នូវសមត្ថភាពក្នុងការប្រើម៉ូឌុលកម្មវិធីដែលអាចផ្លាស់ប្តូរទីតាំងដោយកម្មវិធីផ្សេងៗ។ សាខា 16 ប៊ីត និងសេចក្តីណែនាំអំពីការហៅតាមទម្រង់រងអនុញ្ញាតឱ្យអ្នកលោតទៅចំណុចណាមួយក្នុងទំហំអាសយដ្ឋាននៃអង្គចងចាំកម្មវិធី 64 KB ។ ការលោត 11 ប៊ីត និងការណែនាំអំពីការហៅតាមទម្រង់រង ផ្តល់នូវការលោតក្នុងឯកតាកម្មវិធី 2 KB ។ នៅក្នុងប្រព័ន្ធពាក្យបញ្ជាមានពាក្យបញ្ជាសម្រាប់ការលោតតាមលក្ខខណ្ឌ និងដោយគ្មានលក្ខខណ្ឌទាក់ទងទៅនឹងអាសយដ្ឋានចាប់ផ្តើមនៃកម្មវិធីបន្ទាប់ក្នុងជួរពី (РС) -128 ទៅ (ЗС) +127 ។ ពាក្យបញ្ជាសម្រាប់ពិនិត្យមើលប៊ីតនីមួយៗអនុញ្ញាតឱ្យមានការផ្លាស់ប្តូរតាមលក្ខខណ្ឌលើស្ថានភាព "0" ឬ "1" នៃប៊ីតដែលបានដោះស្រាយដោយផ្ទាល់។ ការណែនាំសម្រាប់ការត្រួតពិនិត្យមាតិកានៃ accumulator (សម្រាប់សូន្យ / មិនសូន្យ) អនុញ្ញាតឱ្យលោតតាមលក្ខខណ្ឌលើមាតិការបស់ A. ដើម្បីចូលទៅកាន់បញ្ជីការងារទាំងប្រាំបីនៃធនាគារដែលបានជ្រើសរើសនៃការចុះឈ្មោះការងារ (ការចុះឈ្មោះដូចគ្នាអាចត្រូវបានជ្រើសរើសដោយប្រើអាសយដ្ឋានផ្ទាល់និង អាសយដ្ឋានចុះឈ្មោះដោយប្រយោលជាកោសិកាធម្មតានៅក្នុង RAM ទិន្នន័យខាងក្នុង) ។ អាសយដ្ឋានចុះឈ្មោះត្រូវបានប្រើដើម្បីចូលប្រើការចុះឈ្មោះ A, B, AB (ការចុះឈ្មោះពីរ) DPTR និងទង់ដឹក C. ការប្រើប្រាស់អាសយដ្ឋានចុះឈ្មោះអនុញ្ញាតឱ្យអ្នកទទួលបានចំនួនពីរបៃដែលស្មើនឹងការណែនាំអាសយដ្ឋានផ្ទាល់បីបៃ។ Direct Addressing Direct byte addressing ត្រូវបានប្រើដើម្បីចូលប្រើទីតាំងអង្គចងចាំទិន្នន័យខាងក្នុង (RAM) (0-127) និងការចុះឈ្មោះពិសេស។ អាសយដ្ឋានទៅមុខប៊ីតត្រូវបានប្រើដើម្បីយោងទៅលើ 128 ប៊ីតដែលអាចអាសយដ្ឋានដាច់ដោយឡែកដែលមានទីតាំងនៅទីតាំងអាសយដ្ឋាន 20H-2FH និងទៅប៊ីតដែលអាចអាសយដ្ឋានដាច់ដោយឡែកនៃការចុះឈ្មោះដែលមានគោលបំណងពិសេស។ ប៊ីតដ៏សំខាន់បំផុតនៃកូដអាសយដ្ឋានផ្ទាល់ ជ្រើសរើសក្រុមមួយក្នុងចំណោមពីរក្រុមនៃប៊ីតដែលអាចអាសយដ្ឋានដាច់ដោយឡែកពីគ្នាដែលមានទីតាំងនៅក្នុង RAM ឬការចុះឈ្មោះក្នុងគោលបំណងពិសេស។ ប៊ីតដែលអាចដោះស្រាយដោយផ្ទាល់ជាមួយអាសយដ្ឋាន 0-127 (00H-7FH) ស្ថិតនៅក្នុងប្លុកនៃកោសិកា RAM ខាងក្នុងចំនួន 16 ដែលមានអាសយដ្ឋាន 20H-2FH ។ ក្រឡា​ដែល​បាន​បង្ហាញ​ត្រូវ​បាន​រាប់​តាម​លំដាប់​ពី​ប៊ីត​សំខាន់​តិច​បំផុត​នៃ​បៃ​ដ៏​សំខាន់​តិច​បំផុត​ទៅ​ប៊ីត​សំខាន់​បំផុត​នៃ​បៃ​ដ៏​សំខាន់​បំផុត។ ប៊ីតដែលអាចដោះស្រាយបានដាច់ដោយឡែកនៅក្នុងការចុះឈ្មោះដែលមានគោលបំណងពិសេសត្រូវបានដាក់លេខដូចខាងក្រោម៖ ប៊ីតសំខាន់ៗចំនួនប្រាំនៃអាសយដ្ឋានត្រូវគ្នានឹងប៊ីតសំខាន់ៗចំនួនប្រាំនៃការចុះឈ្មោះខ្លួនវា ហើយប៊ីតសំខាន់ៗចំនួនបីកំណត់ទីតាំងនៃ ibt បុគ្គលនៅក្នុងការចុះឈ្មោះ។ អាសយដ្ឋានចុះឈ្មោះដោយប្រយោល អាសយដ្ឋានចុះឈ្មោះដោយប្រយោលត្រូវបានប្រើដើម្បីយោងទៅក្រឡានៃ RAM ទិន្នន័យខាងក្នុង។ ការចុះឈ្មោះ R10, R1 នៃធនាគារដែលបានជ្រើសរើសត្រូវបានប្រើប្រាស់ជាការចុះឈ្មោះទ្រនិច។ ពាក្យបញ្ជា PUSH និង POP ប្រើមាតិកានៃទ្រនិចជង់ (SP) ។ អាសយដ្ឋានចុះឈ្មោះដោយប្រយោលក៏ត្រូវបានប្រើដើម្បីចូលប្រើអង្គចងចាំទិន្នន័យខាងក្រៅផងដែរ។ ក្នុងករណីនេះដោយប្រើការចុះឈ្មោះទ្រនិច R0 និង R1 (ធនាគារដែលបានជ្រើសរើសនៃការចុះឈ្មោះធ្វើការ) ក្រឡាមួយត្រូវបានជ្រើសរើសពីប្លុកនៃអង្គចងចាំទិន្នន័យខាងក្រៅ 256 បៃ។ លេខប្លុកត្រូវបានកំណត់ជាមុនដោយមាតិកានៃច្រក P2 ។ ឧបករណ៍ចង្អុលបង្ហាញទិន្នន័យ 16 ប៊ីត (DPTR) អាចត្រូវបានប្រើដើម្បីចូលប្រើទីតាំងណាមួយក្នុងទំហំអាសយដ្ឋាននៅក្នុងអង្គចងចាំទិន្នន័យខាងក្រៅរហូតដល់ 64 គីឡូបៃ។ អាសយដ្ឋានផ្ទាល់ អាសយដ្ឋានផ្ទាល់អនុញ្ញាតឱ្យអ្នកជ្រើសរើសថេរពីចន្លោះអាសយដ្ឋានអង្គចងចាំកម្មវិធី ដែលបានបញ្ជាក់យ៉ាងច្បាស់នៅក្នុងពាក្យបញ្ជា។ អាសយដ្ឋានចុះឈ្មោះដោយប្រយោលដោយផលបូកនៃមូលដ្ឋាន និងលិបិក្រម ចុះឈ្មោះអាសយដ្ឋានចុះឈ្មោះដោយប្រយោលដោយផលបូក៖ បញ្ជីមូលដ្ឋានបូកនឹងបញ្ជីសន្ទស្សន៍ (មាតិការបស់ accumulator A) ធ្វើឱ្យវាកាន់តែងាយស្រួលក្នុងការមើលតារាងដែលភ្ជាប់ទៅអង្គចងចាំកម្មវិធី។ បៃណាមួយពីតារាងអាចត្រូវបានជ្រើសរើសតាមអាសយដ្ឋានដែលកំណត់ដោយផលបូកនៃមាតិកា DPTR ឬ PC និងមាតិកា A. តារាងនិមិត្តសញ្ញា និងនិមិត្តសញ្ញាដែលប្រើក្នុងប្រព័ន្ធពាក្យបញ្ជា
ការ​កំណត់​, និមិត្ត​សញ្ញា​ ការណាត់ជួប
ថ្ម
ការចុះឈ្មោះធនាគារដែលបានជ្រើសរើសបច្ចុប្បន្ន
r ចំនួននៃការចុះឈ្មោះដែលបានផ្ទុកដែលបានបញ្ជាក់នៅក្នុងពាក្យបញ្ជា
ផ្ទាល់ អាសយដ្ឋានក្រឡាទិន្នន័យខាងក្នុង 8 ប៊ីតដែលអាចអាសយដ្ឋានដោយផ្ទាល់ ដែលអាចជាក្រឡាទិន្នន័យខាងក្នុង RAM (0-127) ឬ SFR (128-255)
@Rr ក្រឡា 8 ប៊ីតដែលអាចដោះស្រាយដោយប្រយោលនៃ RAM ទិន្នន័យខាងក្នុង
ទិន្នន័យ ៨ ទិន្នន័យផ្ទាល់ 8 ប៊ីតទៅកាន់ CPC
ទិន្នន័យH ប៊ីតដ៏សំខាន់បំផុត (15-8) នៃទិន្នន័យផ្ទាល់ 16 ប៊ីត
ទិន្នន័យអិល ប៊ីតសំខាន់ៗតិចបំផុត (7-0) នៃទិន្នន័យផ្ទាល់ 16 ប៊ីត
addr11 អាសយដ្ឋានគោលដៅ 11 ប៊ីត
addrL ប៊ីតសំខាន់ៗនៃអាសយដ្ឋានគោលដៅ
disp8 អុហ្វសិត 8-bit byte ដែលមានសញ្ញា m
ប៊ីត ប៊ីតអាស័យដ្ឋានដោយផ្ទាល់ដែលអាសយដ្ឋានមាន CPC ដែលស្ថិតនៅក្នុង RAM ទិន្នន័យខាងក្នុង ឬ SFR
a15, a14 ... a0 ប៊ីតអាសយដ្ឋានគោលដៅ
(NS) ខ្លឹមសារនៃធាតុ X
((NS)) ខ្លឹមសារនៅអាសយដ្ឋានដែលបានរក្សាទុកក្នុងធាតុ X
(X) [M] បញ្ចេញ M នៃធាតុ X
+ - * / និង ឬ XOR / X ប្រតិបត្តិការ៖ ការបូកដកដកគុណចែកការគុណឡូជីខល (AND operation) ការបន្ថែមឡូជីខល (OR operation) ការបន្ថែមម៉ូឌុល 2 (ផ្តាច់មុខ OR) ការដាក់បញ្ច្រាសនៃធាតុ X

មុខងារ mnemonics ត្រូវបានភ្ជាប់ដោយឡែកជាមួយនឹងបន្សំជាក់លាក់នៃវិធីសាស្រ្តអាសយដ្ឋាន និងប្រភេទទិន្នន័យ។ សរុបចំនួន 111 បន្សំបែបនេះអាចធ្វើទៅបាននៅក្នុងប្រព័ន្ធបញ្ជា។ តារាងផ្តល់នូវបញ្ជីពាក្យបញ្ជា តម្រៀបតាមអក្ខរក្រម។

មីនីម៉ូនិក មុខងារ ទង់ជាតិ
ពាក្យបញ្ជា ACALL ការហៅតាមទម្លាប់រងដាច់ខាត
បន្ថែមក្រុម A,<байт-источник> ការបន្ថែម AC, C, OV
ADDC ក្រុម A,<байт-источник> អនុវត្តការបត់ AC, C, OV
ក្រុម AJMP ការផ្លាស់ប្តូរដាច់ខាត
ក្រុម ANL<байт-назначения>, <байт-источникa> ឡូជីខល "AND"
ក្រុម ANL C,<байт-источникa> ឡូជីខល "AND" សម្រាប់ប៊ីតអថេរ
ក្រុម CJNE<байт-назначения>, <байт-источник>, <смещение> ប្រៀបធៀប​ហើយ​លោត​បើ​មិន​ស្មើ
ពាក្យបញ្ជា CLR A កំណត់ថ្មឡើងវិញ
ពាក្យបញ្ជា CLR ជម្រះបន្តិច គ, ប៊ីត
CPL ក្រុម A ការដាក់បញ្ច្រាសនៃ ak umul ora
ក្រុម CPL បញ្ច្រាសប៊ីត គ, ប៊ីត
ក្រុម DA A ការកែតម្រូវទសភាគ Accumulator សម្រាប់ការបញ្ចូល AC, C
ក្រុម DEC<байт> បន្ថយ
ក្រុម DIV AB ការបែងចែក គ, អូ
ក្រុម DJNZ<байт>, <смещение> ការថយចុះ និងការផ្លាស់ប្តូរ ប្រសិនបើមិនមែនសូន្យ
ក្រុម INC<байт> បង្កើន
ក្រុម INC DPTR ការបង្កើនទ្រនិចទិន្នន័យ
ក្រុម JB , លោតប្រសិនបើប៊ីតត្រូវបានកំណត់
ក្រុម JBC , លោតប្រសិនបើប៊ីតត្រូវបានកំណត់ ហើយជម្រះបន្តិចនោះ។
ក្រុម JC លោតប្រសិនបើការដឹកត្រូវបានកំណត់
ពាក្យបញ្ជា JMP @ A + DPTR ការផ្លាស់ប្តូរដោយប្រយោល។
ក្រុម JNB , លោតប្រសិនបើប៊ីតមិនត្រូវបានកំណត់
ក្រុម JNC លោតប្រសិនបើការដឹកមិនត្រូវបានកំណត់
ក្រុម JNZ លោតប្រសិនបើមាតិកាថ្មមិនសូន្យ
ក្រុម JZ លោតប្រសិនបើមាតិកាកកកុញគឺ 0
ពាក្យបញ្ជា LCALL ហៅយូរ
ក្រុម LJMP ឆ្លងកាត់វែង
ពាក្យបញ្ជា MOV<байт-назначения>, <байт-источника> ផ្ញើអថេរ-បៃ
ពាក្យបញ្ជា MOV<бит-назначения>, <бит-источника> បញ្ជូនទិន្នន័យប៊ីត
ពាក្យបញ្ជា MOV DPTR, # data16 ផ្ទុកទ្រនិចទិន្នន័យដោយថេរ 16 ប៊ីត
MOVC ពាក្យបញ្ជា A, @ A + ( ) ផ្ញើបៃពីអង្គចងចាំកម្មវិធី
ពាក្យបញ្ជា MOVX<байт приемника>, <байт источника> បញ្ជូនទិន្នន័យទៅអង្គចងចាំខាងក្រៅ (ពីអង្គចងចាំខាងក្រៅ)
ក្រុម MUL AB គុណ គ, អូ
ពាក្យបញ្ជា NOP គ្មានប្រតិបត្តិការទេ។ កុំព្យូទ័រ
ក្រុម ORL<байт-назначения>, <байт-источникa> ឡូជីខល "OR" សម្រាប់អថេរ-បៃ
ក្រុម ORL C,<бит источникa> ឡូជីខល "OR" សម្រាប់ប៊ីតអថេរ
ពាក្យបញ្ជា POP ការអានពីជង់
ពាក្យបញ្ជា PUSH ជង់
ពាក្យបញ្ជា RET ត្រឡប់ពីទម្រង់ការរង
ក្រុម RETI ត្រឡប់ពីការរំខាន
ក្រុម RL A ផ្លាស់ប្តូរមាតិកាថ្មទៅខាងឆ្វេង
ក្រុម RLC A ផ្លាស់ប្តូរមាតិកាថ្មទៅខាងឆ្វេងតាមរយៈទង់កាន់
ក្រុម RR A ផ្លាស់ប្តូរមាតិកាថ្មទៅខាងស្តាំ
ក្រុម RRC A ផ្លាស់ប្តូរមាតិកាថ្មទៅខាងស្តាំតាមរយៈទង់កាន់
ពាក្យបញ្ជា SETB កំណត់ប៊ីត
ក្រុម SJMP<метка> លោតខ្លី
ក្រុម SUBB A,<байт источника> ដកជាមួយប្រាក់កម្ចី AC, C, OV
SWAP ពាក្យបញ្ជាមួយ។ ការផ្លាស់ប្តូរសៀវភៅកត់ត្រានៅខាងក្នុងថ្ម
ក្រុម XCH A,<байт> ការផ្លាស់ប្តូរមាតិកានៃ accumulator-byte អថេរ
XCHD ក្រុម A, @ R1 ការផ្លាស់ប្តូរសៀវភៅកត់ត្រា
ពាក្យបញ្ជា XRL<байт-назначения>, <байт-источникa> Logical EXCLUSIVE OR សម្រាប់អថេរ-បៃ

Microcontrollers នៃគ្រួសារ MCS-51 ត្រូវបានបង្កើតឡើងដោយយោងទៅតាមស្ថាបត្យកម្ម Harvard ដែលអង្គចងចាំកម្មវិធី និងអង្គចងចាំទិន្នន័យត្រូវបានបែងចែក មានចន្លោះអាសយដ្ឋានផ្ទាល់ខ្លួន និងវិធីចូលប្រើពួកវា។

ការចងចាំកម្មវិធី


ចំនួនអតិបរមានៃអង្គចងចាំគឺ 64K បៃ ដែលក្នុងនោះ 4K, 8K, 16K ឬ 32K bytes នៃអង្គចងចាំ (តារាង 7.3.1) មានទីតាំងនៅលើបន្ទះឈីប ហើយនៅសល់គឺនៅខាងក្រៅមរណៈ។
ជាមួយនឹងវ៉ុលនៅស្ថានីយ EA = វី ស៊ី.ស៊ី ទាំងអង្គចងចាំខាងក្នុង និងខាងក្រៅត្រូវបានប្រើប្រាស់ ដោយ EA = V CC = 0 - មានតែអង្គចងចាំខាងក្រៅប៉ុណ្ណោះ។
តារាង 7.3.1 បង្ហាញ អាសយដ្ឋានអង្គចងចាំកម្មវិធីសម្រាប់ករណីដែលបានចង្អុលបង្ហាញ។
តំបន់ទាបនៃអង្គចងចាំកម្មវិធីត្រូវបានបម្រុងទុកសម្រាប់ការចាប់ផ្តើម microcontroller (អាសយដ្ឋានចាប់ផ្តើម 0000h បន្ទាប់ពីកំណត់ឡើងវិញ) និងសម្រាប់ដំណើរការការរំខាន (អាសយដ្ឋានរំខានមានទីតាំងនៅជាមួយចន្លោះពេល 8 បៃ: 0003h, 000Bh, 0013h ។ល។)។


អង្គចងចាំកម្មវិធីគឺបានតែអាន ហើយនៅពេលចូលប្រើ៖

● ទៅ អង្គចងចាំខាងក្រៅកម្មវិធី សញ្ញា ¯PSEN ត្រូវបានបង្កើត ហើយអាសយដ្ឋាន 16 ប៊ីតតែងតែត្រូវបានបង្កើតឡើង។
បៃទាបនៃអាសយដ្ឋានត្រូវបានបញ្ជូនតាមច្រក P0 នៅក្នុងពាក់កណ្តាលដំបូងនៃវដ្តម៉ាស៊ីន ហើយត្រូវបានជួសជុលនៅគែមនៃ ALE strobe នៅក្នុងការចុះឈ្មោះ។
នៅក្នុងពាក់កណ្តាលទីពីរនៃវដ្ត ច្រក P0 ត្រូវបានប្រើដើម្បីបញ្ចូលទិន្នន័យមួយបៃពីអង្គចងចាំខាងក្រៅទៅក្នុង MC ។
បៃលំដាប់ខ្ពស់នៃអាសយដ្ឋានត្រូវបានបញ្ជូនតាមច្រក P2 កំឡុងពេលចូលប្រើអង្គចងចាំទាំងមូល (រូបភាព 7.1.11);

● ទៅ អង្គចងចាំខាងក្នុងសញ្ញា​អាន​មិន​ត្រូវ​បាន​បង្កើត​ទេ ហើយ​វដ្ត​នៃ​ការ​ផ្លាស់ប្តូរ​ត្រូវ​បាន​ប្រើ​នៅ​លើ​រថយន្តក្រុង​ខាងក្នុង​របស់ microcontroller ។

អង្គចងចាំទិន្នន័យ

អង្គចងចាំខាងក្នុងទិន្នន័យអាចត្រូវបានបែងចែកតាមលក្ខខណ្ឌជាបីប្លុក (តារាង 7.3.2)។

អង្គចងចាំខាងក្នុងតែងតែត្រូវបានដោះស្រាយដោយបៃដែលអាសយដ្ឋានត្រឹមតែ 256 ទីតាំងអង្គចងចាំប៉ុណ្ណោះ។
ដូច្នេះ ដូចដែលអាចមើលឃើញពីតារាង 7.3.2 សម្រាប់ការដោះស្រាយក្រឡា 8 ប៊ីតខាងលើនៃ RAM ខាងក្នុង និងការចុះឈ្មោះមុខងារពិសេស SFR ដោយកាន់កាប់ចន្លោះអាសយដ្ឋានដូចគ្នា ពាក្យបញ្ជាប្រើវិធីអាសយដ្ឋានផ្សេងៗគ្នា៖ ដោយប្រយោល និងត្រង់។

លក្ខណៈពិសេសនៃការរៀបចំនៃតំបន់ទាបនៃ RAM ខាងក្នុងត្រូវបានឆ្លុះបញ្ចាំងនៅក្នុងតារាង 7.3.3 ។

ទាប 32 បៃនៃ RAM ខាងក្នុងជាមួយអាសយដ្ឋាន 00h ។
1Fh ត្រូវ​បាន​ដាក់​ជា​ក្រុម​ជា​បួន​ធនាគារ​ដែល​មាន​ការ​ចុះ​ឈ្មោះ​ចំនួន​ប្រាំបី​នីមួយៗ (R0.R7)។
RAM 16 បៃបន្ទាប់ដែលមានអាសយដ្ឋាន 20h ។
2Fh តំណាងឱ្យតំបន់អង្គចងចាំ 8 × 16 = 128 ប៊ីត ដែលអនុញ្ញាតឱ្យចូលប្រើប៊ីតនីមួយៗ។
ដើម្បីជ្រើសរើសអាសយដ្ឋាននៃការចុះឈ្មោះធនាគារ ឈ្មោះរបស់វា R0 ត្រូវបានប្រើ។
R7 ដើម្បីជ្រើសរើសធនាគារ - ប៊ីត RS0, RS1 នៃការចុះឈ្មោះពាក្យស្ថានភាព PSW ។

អាសយដ្ឋានប៊ីត

អាសយដ្ឋានប៊ីតត្រូវបានផ្តល់ឱ្យក្នុងតារាង 7.3.3 ។

អាសយដ្ឋានត្រូវបានអនុវត្ត ផ្ទាល់វិធី។

បញ្ជីនៃការចុះឈ្មោះទាំងអស់នៃមុខងារពិសេស SFR ជាមួយនឹងអាសយដ្ឋានរបស់ពួកគេត្រូវបានផ្តល់ឱ្យនៅក្នុងតារាង 7.2.2 ។
សម្រាប់ភាពច្បាស់លាស់នៅក្នុងតារាង 7.3 ។

4 បង្ហាញ ចុះឈ្មោះផែនទីអាសយដ្ឋានSFRនៃ microcircuits ដែលត្រូវបានពិចារណានៃគ្រួសារ MCS-51 ។
អាសយដ្ឋាន SFR ត្រូវ​បាន​កំណត់​ដោយ​ការ​រួម​បញ្ចូល​គ្នា​នៃ​ជួរ​ឈរ និង​លេខ​បន្ទាត់​ក្នុង​សញ្ញា​គោល​គោល​ដប់ប្រាំមួយ។

ឧទាហរណ៍ ការចុះឈ្មោះ CMOD មានអាសយដ្ឋាន D9h ។

សម្រាប់ការចុះឈ្មោះ SFR ដែលអាសយដ្ឋានបញ្ចប់ត្រឹម 0h ឬ 8h (ពួកវាជាអក្សរដិត) បន្ថែមពីលើ បៃអនុញ្ញាត បន្តិចអាសយដ្ឋាន។

ក្នុងករណីនេះអាសយដ្ឋានរបស់ប៊ីតដែលកាន់កាប់ Nth ប៊ីតក្នុងការចុះឈ្មោះត្រូវបានកំណត់ជា XXh + ​​​​0Nh ដែល XXh ជាអាសយដ្ឋាននៃការចុះឈ្មោះ SFR N = 0.7 ។
អាសយដ្ឋានប៊ីតនៅក្នុងតំបន់នេះមានចាប់ពី 80H ដល់ FFH ។
ឧទាហរណ៍ អាស័យដ្ឋានប៊ីតរបស់ ACC accumulator ស្ថិតនៅក្នុងជួរ E0h-E7h ។

អង្គចងចាំខាងក្រៅទិន្នន័យ (រហូតដល់ 64 KB) ត្រូវបានបង្កើតឡើងដោយបន្ទះឈីបអង្គចងចាំបន្ថែមដែលត្រូវបានភ្ជាប់ទៅ MC ។
ដើម្បីធ្វើការជាមួយអង្គចងចាំទិន្នន័យខាងក្រៅ ពាក្យបញ្ជាពិសេសត្រូវបានប្រើប្រាស់ ដូច្នេះចន្លោះអាសយដ្ឋាននៃអង្គចងចាំខាងក្រៅ និងខាងក្នុងមិនត្រួតលើគ្នាទេ ដូច្នេះហើយប្រភេទអង្គចងចាំទិន្នន័យទាំងពីរអាចត្រូវបានប្រើក្នុងពេលដំណាលគ្នា។

ដើម្បីចូលប្រើក្រឡានៃអង្គចងចាំទិន្នន័យខាងក្រៅត្រូវបានប្រើ (រូបភាព 7.1.8)៖
● ពាក្យបញ្ជាដែលមានអាសយដ្ឋានប្រយោល;
● សញ្ញាសម្រាប់ការអាន ¯RD និងការសរសេរ ¯WR;
● ច្រក P0 សម្រាប់បញ្ជូនបៃយ៉ាងតិចបំផុតនៃអាសយដ្ឋាន និងការទទួល/បញ្ជូនទិន្នន័យបៃ;
● ច្រក P2 សម្រាប់បញ្ជូនបៃលំដាប់ខ្ពស់នៃអាសយដ្ឋាន។
វិធីសាស្រ្តដោះស្រាយ។
ប្រព័ន្ធបញ្ជាប្រើ៖
● ដោយផ្ទាល់ ប្រយោល ចុះឈ្មោះ ចុះឈ្មោះដោយប្រយោល អាសយដ្ឋានផ្ទាល់ និងលិបិក្រម (អាសយដ្ឋានដោយប្រយោលដោយផលបូកនៃមូលដ្ឋាន និងលិបិក្រមចុះឈ្មោះ) ប្រតិបត្តិករប្រភព;
● អាសយដ្ឋានដោយផ្ទាល់ ចុះឈ្មោះ និងចុះឈ្មោះដោយប្រយោល។ ប្រតិបត្តិករគោលដៅ។
ការរួមបញ្ចូលគ្នានៃវិធីសាស្រ្តទាំងនេះ (អាសយដ្ឋាន) ផ្តល់នូវរបៀបអាសយដ្ឋាន 21 ។
ប្រព័ន្ធពាក្យបញ្ជានេះ និងតារាងខាងក្រោមប្រើសញ្ញាណខាងក្រោម៖

អាសយដ្ឋានផ្ទាល់។

ជាមួយនឹងវិធីសាស្រ្តអាសយដ្ឋាននេះ ទីតាំងនៃបៃ ឬប៊ីតទិន្នន័យត្រូវបានកំណត់ដោយអាសយដ្ឋាន 8 ប៊ីតនៃបៃបញ្ជាទីពីរ (និងទីបី) ។
អាសយដ្ឋានផ្ទាល់ត្រូវបានប្រើដើម្បីចូលប្រើអង្គចងចាំទិន្នន័យខាងក្នុង (ទំហំ RAM ទាបជាង 128 បៃ) និងការចុះឈ្មោះមុខងារពិសេស។

ចុះឈ្មោះអាសយដ្ឋាន។


វិធីសាស្រ្តអាសយដ្ឋាននេះផ្តល់នូវការចូលប្រើទិន្នន័យដែលរក្សាទុកក្នុងបញ្ជី R0 មួយក្នុងចំណោមប្រាំបី។
R7 នៃធនាគារបច្ចុប្បន្ននៃការចុះឈ្មោះការងារ។
វាក៏អាចប្រើដើម្បីចូលប្រើការចុះឈ្មោះ A, B, AB (dual register), DPTR pointer register និងកាន់ទង់ C។
អាសយដ្ឋាននៃការចុះឈ្មោះទាំងនេះត្រូវបានបង្កប់នៅក្នុងកូដប្រតិបត្តិការ ដោយកាត់បន្ថយចំនួនបៃនៃពាក្យបញ្ជា។

អាសយដ្ឋានចុះឈ្មោះដោយប្រយោល។


ក្នុងករណីនេះអាសយដ្ឋាននៃទិន្នន័យត្រូវបានរក្សាទុកក្នុងបញ្ជីទ្រនិចដែលទីតាំងត្រូវបានកំណត់ដោយលេខកូដប្រតិបត្តិការ។
វិធីសាស្រ្តអាសយដ្ឋាននេះត្រូវបានប្រើដើម្បីចូលប្រើ RAM ខាងក្រៅ និងពាក់កណ្តាលខាងលើនៃ RAM ខាងក្នុង។
សូចនាករចុះឈ្មោះនៃអាសយដ្ឋាន 8 ប៊ីតអាចជាការចុះឈ្មោះ R0, R1 នៃធនាគារដែលបានជ្រើសរើសនៃការចុះឈ្មោះធ្វើការ ឬទ្រនិចទ្រនិចជង់ SP; សម្រាប់អាសយដ្ឋាន 16 ប៊ីត មានតែការចុះឈ្មោះទ្រនិចទិន្នន័យ DPTR ប៉ុណ្ណោះដែលត្រូវបានប្រើប្រាស់។

អាសយដ្ឋានផ្ទាល់។


ជាមួយនឹងវិធីសាស្រ្តនៃអាសយដ្ឋាននេះ ទិន្នន័យត្រូវបានចង្អុលបង្ហាញដោយផ្ទាល់នៅក្នុងពាក្យបញ្ជា ហើយមានទីតាំងនៅទីពីរ (ឬក្នុងបៃទីពីរ និងទីបី) នៃពាក្យបញ្ជា ពោលគឺឧ។
មិនត្រូវការអាសយដ្ឋានអង្គចងចាំទេ។
ឧទាហរណ៍ដោយពាក្យបញ្ជា MOV A, #50 លេខ 50 ត្រូវបានផ្ទុកទៅក្នុង accumulator A ។

អាសយដ្ឋានដែលបានធ្វើលិបិក្រម។


វិធីសាស្រ្តនេះគឺជាការចុះឈ្មោះដោយប្រយោល ដែលអាសយដ្ឋានទិន្នន័យបៃត្រូវបានកំណត់ជាផលបូកនៃមាតិកានៃមូលដ្ឋាន (DPTR ឬ PC) និងលិបិក្រម (A) ចុះឈ្មោះ។
វិធី ប្រើសម្រាប់តែការចូលប្រើអង្គចងចាំកម្មវិធី និងក្នុងរបៀបអានតែប៉ុណ្ណោះ។វាធ្វើឱ្យវាកាន់តែងាយស្រួលក្នុងការមើលតារាងដែលមានខ្សែរឹងទៅក្នុងអង្គចងចាំកម្មវិធី។

រចនាសម្ព័ន្ធពាក្យបញ្ជា។

ប្រវែងនៃពាក្យបញ្ជាគឺមួយ (49 ពាក្យបញ្ជា) ពីរ (45 ពាក្យបញ្ជា) ឬបី (17 ពាក្យបញ្ជា) បៃ។
បៃទីមួយនៃពាក្យបញ្ជាតែងតែមាន opcode (OP) ខណៈដែលបៃទីពីរ និងទីបីគឺជាអាសយដ្ឋានរបស់ operands ឬតម្លៃទិន្នន័យភ្លាមៗ។

ប៊ីតឯកត្តជន, តេត្រាដ, បៃ និងពាក្យពីរបៃអាចប្រើជាប្រតិបត្តិករ។
មាន 13 ប្រភេទនៃពាក្យបញ្ជាដែលត្រូវបានបង្ហាញនៅក្នុងតារាង 7.3.5:

● A, PC, SP, DPTR, Rn (n = 0, 7) - accumulator, instruction counter, stack pointer, data pointer register and current bank register;
● Rm (m = 0, 1) - ការចុះឈ្មោះរបស់ធនាគារបច្ចុប្បន្នដែលប្រើសម្រាប់អាសយដ្ឋានប្រយោល;
● ផ្ទាល់ - អាសយដ្ឋាន 8 ប៊ីតនៃ operand អាសយដ្ឋានដោយផ្ទាល់;
● ប៊ីត - អាសយដ្ឋាននៃប៊ីតដែលបានផ្ញើដោយផ្ទាល់;
● rel - អាសយដ្ឋានទាក់ទងនៃការផ្លាស់ប្តូរ;
● addr11, addr16 - 11- និង 16-bit absolute transition address;
● # data8, # data16 - ទិន្នន័យផ្ទាល់ (ប្រតិបត្តិករ) នៃ 8- និង 16-bit length;
● A10, A9, A0 - ប៊ីតបុគ្គលនៃអាសយដ្ឋាន 11 ប៊ីត;
● (.) - មាតិកានៃក្រឡាអង្គចងចាំនៅអាសយដ្ឋានដែលបានបញ្ជាក់នៅក្នុងតង្កៀប;
● SB, MB - បៃខ្ពស់និងទាបនៃ 16-bit operand ។

ព័ត៌មានទូទៅអំពីប្រព័ន្ធបញ្ជា។

ប្រព័ន្ធពាក្យបញ្ជាផ្តល់នូវលទ្ធភាពដ៏អស្ចារ្យសម្រាប់ដំណើរការទិន្នន័យក្នុងទម្រង់ជាប៊ីត សៀវភៅកត់ត្រា បៃ ពាក្យទ្វេបៃ ក៏ដូចជាការគ្រប់គ្រងពេលវេលាជាក់ស្តែង។
ភាសាម៉ាក្រូ ASM51 ត្រូវបានប្រើដើម្បីពិពណ៌នាពាក្យបញ្ជា។ វាក្យសម្ព័ន្ធសម្រាប់ពាក្យបញ្ជាភាគច្រើនមាន mnemonic (អក្សរកាត់) នៃប្រតិបត្តិការដែលត្រូវអនុវត្ត បន្តដោយ operands ។
ប្រតិបត្តិករ​ត្រូវ​បាន​ប្រើ​ដើម្បី​ចង្អុល​បង្ហាញ​អំពី​វិធីសាស្ត្រ​អាសយដ្ឋាន​និង​ប្រភេទ​ទិន្នន័យ​ខុស​គ្នា។

ជាពិសេស អក្សរកាត់ MOV មានការណែនាំខុសៗគ្នាចំនួន 18 ដែលត្រូវបានរចនាឡើងដើម្បីដំណើរការទិន្នន័យបីប្រភេទ (ប៊ីត បៃ អាស័យដ្ឋាន) ក្នុងចន្លោះអាសយដ្ឋានផ្សេងៗគ្នា។
សំណុំនៃពាក្យបញ្ជាមាន 42 mnemonic designations នៃ 111 ប្រភេទនៃ commands ដើម្បី concretize 33 MK functions ។

ក្នុងចំណោមការណែនាំចំនួន 111 មាន 64 ត្រូវបានប្រតិបត្តិក្នុងវដ្តម៉ាស៊ីនមួយ 45 នៅក្នុងវដ្តពីរ ហើយមានតែការណែនាំពីរប៉ុណ្ណោះ (MUL - គុណ និង DIV - division) ត្រូវបានប្រតិបត្តិក្នុង 4 វដ្ត។ ជាមួយនឹងប្រេកង់ម៉ាស៊ីនភ្លើង 12 MHz រយៈពេលនៃវដ្តម៉ាស៊ីន (12 វដ្តនាឡិកា) គឺ 1 μs។ ដោយ មុខងារក្រុមអាចត្រូវបានបែងចែកជាប្រាំក្រុម។ ខាង​ក្រោម​នេះ​គឺ​ជា​ការ​ពិពណ៌នា​អំពី​ពាក្យ​បញ្ជា​នៃ​ក្រុម​នីមួយៗ ដែល​បង្ហាញ​ក្នុង​ទម្រង់​តារាង។ សម្រាប់ការបង្រួមនៃតារាង ចូរយើងដាក់ចេញនូវក្រុមនៃពាក្យបញ្ជា (តារាង 7.3.6) ការប្រតិបត្តិដែល មាន​ឥទ្ធិពល(សម្គាល់ដោយ +) នៅលើស្ថានភាពនៃទង់ជាតិការចុះឈ្មោះពាក្យស្ថានភាព PSW ។

ពាក្យបញ្ជាផ្ទេរទិន្នន័យ

ពាក្យបញ្ជាផ្ទេរអាចត្រូវបានបែងចែកទៅជាក្រុមរងដាច់ដោយឡែក។
ពាក្យបញ្ជាសម្រាប់ផ្ទេរ និងផ្លាស់ប្តូរទិន្នន័យរវាងកោសិកានៃអង្គចងចាំខាងក្នុង(តារាង 7.3.7) ។

ពាក្យបញ្ជា 1-16 ដែលមាន mnemonic MOV dest, src, គឺសម្រាប់ ការបញ្ជូនបន្ត byte ឬ two bytes (command 16) នៃទិន្នន័យពី source src ទៅ destination dest ខណៈពេលដែល៖
● ដើម្បីចង្អុលបង្ហាញ ប្រភព(src) វិធីសាស្រ្តអាសយដ្ឋានចំនួនបួនត្រូវបានប្រើ៖ ចុះឈ្មោះ (ពាក្យបញ្ជា 2-4, 6, 8), ដោយផ្ទាល់ (ពាក្យបញ្ជា 1, 7, 9, 11), ដោយប្រយោល (ពាក្យបញ្ជា 5, 10) និង ដោយផ្ទាល់ (ពាក្យបញ្ជា 12-16);
● ដើម្បីចង្អុលបង្ហាញ អ្នកទទួល(ទីសក្ការៈ) វិធីសាស្រ្តបីត្រូវបានប្រើ៖ ចុះឈ្មោះ (ពាក្យបញ្ជា 1, 3 ... 5, 9, 12, 14, 16), ផ្ទាល់ (ពាក្យបញ្ជា 2, 7, 8, 10, 13), ដោយប្រយោល (ពាក្យបញ្ជា 6, 11, 15) ។

ក្រុម 17-20 ផ្តល់ ដោះដូរព័ត៌មានរវាងក្រឡាពីរនៃអង្គចងចាំទិន្នន័យខាងក្នុង (ឬការផ្ទេរពីរផ្លូវ) ។
នៅពេលដែលពាក្យបញ្ជា XCH ត្រូវបានប្រតិបត្តិ បៃត្រូវបានផ្លាស់ប្តូរ A នៃពាក្យបញ្ជា XCHD ត្រូវបានផ្លាស់ប្តូរជាមួយនឹង tetrads ទាបនៃ byte operands ។

កោសិកាមួយគឺតែងតែជា accumulator A. ជាកោសិកាមួយផ្សេងទៀត នៅពេលផ្លាស់ប្តូរបៃ ការចុះឈ្មោះ Rn មួយនៃធនាគារបច្ចុប្បន្នត្រូវបានប្រើប្រាស់ ហើយ A ក៏ជាកោសិកាដែលអាចអាសយដ្ឋានដោយផ្ទាល់ ឬដោយប្រយោលនៃអង្គចងចាំខាងក្នុងផងដែរ។ នៅពេលផ្លាស់ប្តូរ tetrads - មានតែក្រឡាដែលអាចអាសយដ្ឋានដោយប្រយោលនៃអង្គចងចាំខាងក្នុងប៉ុណ្ណោះ។

ដោយសារនៅក្នុង MCU ទាំងអស់ ជង់មានទីតាំងនៅក្នុង RAM ខាងក្នុង ក្រុមរងនេះរួមបញ្ចូល ពាក្យបញ្ជា(20, 21) ការចូលប្រើជង់រុញ src, POP dest ។
ពាក្យ​បញ្ជា​ទាំង​នេះ​ប្រើ​តែ​វិធី​អាសយដ្ឋាន​ផ្ទាល់ ដោយ​សរសេរ​បៃ​ទៅ​លើ​ជង់ ឬ​យក​វា​មក​វិញ​ពី​ជង់។
វាគួរតែត្រូវបានចងចាំក្នុងចិត្តថានៅក្នុង MCUs ទាំងនោះដែលមិនមាន 128 បៃខាងលើនៅក្នុង RAM ការបង្កើនជង់លើសពី 128 បៃនាំឱ្យមានការបាត់បង់ទិន្នន័យ។

ពាក្យបញ្ជាផ្ទេរទិន្នន័យរវាងអង្គចងចាំទិន្នន័យខាងក្នុង និងខាងក្រៅ(តារាង 7.3.8) ។

ពាក្យបញ្ជាទាំងនេះប្រើតែអាសយដ្ឋានប្រយោលប៉ុណ្ណោះ ខណៈពេលដែលអាសយដ្ឋានមួយបៃអាចមានទីតាំងនៅ P0 ឬ R1 នៃធនាគារចុះបញ្ជីបច្ចុប្បន្ន ហើយអាសយដ្ឋានពីរបៃអាចស្ថិតនៅក្នុងបញ្ជីឈ្មោះទ្រនិចទិន្នន័យ DPRT ។
នៅក្នុងការចូលប្រើអង្គចងចាំខាងក្រៅណាមួយ ថ្ម A ដើរតួជាអ្នកទទួល ឬប្រភពនៃប្រតិបត្តិការនៅក្នុងអង្គចងចាំខាងក្នុង។

ការណែនាំអំពីការផ្ទេរទិន្នន័យពីអង្គចងចាំកម្មវិធី(តារាង 7.3.9) ។

ពាក្យបញ្ជាទាំងនេះគឺសម្រាប់អានតារាងពីអង្គចងចាំកម្មវិធី។

ការណែនាំ MOVC A, @ A + DPTR ត្រូវបានប្រើដើម្បីយោងទៅលើតារាងដែលមានចំនួនធាតុបញ្ចូលពី 0 ដល់ 255 ។

ចំនួននៃធាតុតារាងដែលត្រូវការត្រូវបានផ្ទុកទៅក្នុង accumulator ហើយការចុះឈ្មោះ DPTR ត្រូវបានកំណត់ទៅចំណុចចាប់ផ្តើមនៃតារាង។ លក្ខណៈពិសេសប្លែកនៃពាក្យបញ្ជាផ្សេងទៀតគឺថា កុំព្យូទ័ររាប់កម្មវិធី ត្រូវបានប្រើជាទ្រនិចមូលដ្ឋាន ហើយតារាងត្រូវបានចូលប្រើពីទម្រង់ការរង។ ដំបូងលេខនៃចំណុចចូលដែលត្រូវការត្រូវបានផ្ទុកទៅក្នុង accumulator បន្ទាប់មកទម្រង់រងត្រូវបានហៅដោយប្រើពាក្យបញ្ជា MOVC A, @ A + PC ។ តារាងអាចមានធាតុបញ្ចូលចំនួន 255 ដែលមានលេខពី 1 ដល់ 255 ដោយហេតុថា 0 ត្រូវបានប្រើសម្រាប់អាសយដ្ឋាននៃពាក្យបញ្ជា RET នៃការចេញទម្រង់ការរង។

ពាក្យបញ្ជាដំណើរការទិន្នន័យនព្វន្ធ។ ពាក្យបញ្ជានព្វន្ធទាំងអស់ត្រូវបានអនុវត្តលើចំនួនគត់ដែលមិនបានចុះហត្ថលេខា។ ប្រតិបត្តិការនៅលើ operands ពីរ(តារាង 7.3.10) ។ នៅក្នុងប្រតិបត្តិការ ការបន្ថែមបន្ថែម ការបន្ថែមលើការដឹកជញ្ជូន ADDC និង ការកាត់បន្ថយប្រាក់កម្ចី SUBB៖

● ប្រភពនៃ 8-bit operand មួយ និងអ្នកទទួលលទ្ធផលគឺជា accumulator;
● ប្រភពនៃប្រតិបត្តិករមួយផ្សេងទៀតគឺជាផ្នែកមួយនៃការចុះបញ្ជីធ្វើការ Rn (n = 0-7) នៃធនាគារបច្ចុប្បន្ន ឬដោយផ្ទាល់ ផ្ទាល់ ឬដោយប្រយោល @Rm (m = 0, 1) ទីតាំងអង្គចងចាំដែលអាចដោះស្រាយបាននៃ RAM ឬទិន្នន័យផ្ទាល់ #data ។

ប្រតិបត្តិការ គុណ MUL និង ការបែងចែក DIVs ត្រូវបានអនុវត្តលើមាតិកានៃការចុះឈ្មោះ A និង B. នៅពេលគុណ 8 ប៊ីតខាងលើនៃលទ្ធផលត្រូវបានសរសេរដើម្បីចុះឈ្មោះ B, 8 ប៊ីតទាប - ដើម្បីចុះឈ្មោះ A ។
ប្រសិនបើផលិតផលធំជាង 255 នោះទង់ជាតិលើស OV ត្រូវបានកំណត់។ ទង់ជាតិ C តែងតែត្រូវបានសម្អាត។ ការណែនាំ DIV បែងចែក 8-bit នៃ accumulator A ដោយ operand 8-bit នៃ register B ។
កំឡុងពេលបែងចែក កូតាយ៉ង់ (ប៊ីតសំខាន់ៗ) ត្រូវបានសរសេរទៅក្នុងបញ្ជីឈ្មោះ A នៅសល់ (ប៊ីតសំខាន់ៗតិចបំផុត) - ក្នុងខ។ ទង់កាន់ C និងលើស OV ត្រូវបានជម្រះ។
ការប៉ុនប៉ងដើម្បីបែងចែកដោយ 0 កំណត់ទង់ជាតិលើស OV ។ ប្រតិបត្តិការផ្នែកត្រូវបានប្រើប្រាស់ជាទូទៅសម្រាប់ការផ្លាស់ប្តូរ និងការបំប្លែងមូលដ្ឋាន។

នៅពេលដែលលេខគោលពីរត្រូវបានបែងចែកដោយ 2 N វាត្រូវបានផ្លាស់ប្តូរដោយ N ប៊ីតទៅខាងឆ្វេង។
ប៊ីតបន្ថែមត្រូវបានផ្ទេរទៅចុះឈ្មោះ ខ.

ប្រតិបត្តិការលើ operands មួយបៃ(តារាង 7.3.11) ។

ពាក្យបញ្ជា DA ត្រូវបានប្រើដើម្បីអនុវត្តប្រតិបត្តិការ BCD ។ ពាក្យបញ្ជា INC, DEC អនុញ្ញាតឱ្យបង្កើន ឬបន្ថយមាតិកានៃក្រឡាអង្គចងចាំរៀងៗខ្លួន។
ពួកវាអនុវត្តចំពោះមាតិកានៃ accumulator A ដែលជាការចុះឈ្មោះដំណើរការមួយ Rn ឬកោសិកាអង្គចងចាំដែលត្រូវបានដោះស្រាយដោយផ្ទាល់ និងដោយប្រយោល។
ប្រតិបត្តិការបង្កើនក៏អនុវត្តចំពោះខ្លឹមសារនៃការចុះឈ្មោះទ្រនិច DPTR ១៦ ប៊ីតផងដែរ។

ពាក្យបញ្ជាប៊ូលីន។

ប្រតិបត្តិការទ្វេដង

(តារាង 7.3.12) ។

ពាក្យបញ្ជា AML, ORL, XRL អនុញ្ញាតឱ្យអនុវត្តប្រតិបត្តិការឡូជីខលពីរកន្លែងនៅលើ 8-bit operands: ANL - គុណឡូជីខល (AND), ORL - ការបន្ថែមឡូជីខល (OR), XRL - ផ្តាច់មុខ OR (XOR) ។
ប្រតិបត្តិការត្រូវបានអនុវត្តលើប៊ីតនីមួយៗនៃ operands ។ ប្រភពនៃ operands មួយ ហើយក្នុងពេលតែមួយ អ្នកទទួលលទ្ធផលគឺ accumulator (A) ឬ cell memory address ផ្ទាល់ (direct)។
សម្រាប់ប្រភពនៃ operand មួយផ្សេងទៀត ការចុះឈ្មោះ វិធីសាស្ត្រអាសយដ្ឋានផ្ទាល់ ប្រយោល ឬដោយផ្ទាល់ត្រូវបានប្រើ។

ប្រតិបត្តិការតែមួយ

(តារាង 7.3.13) ។
ក្រុមនេះក៏រួមបញ្ចូលផងដែរនូវប្រតិបត្តិការតែមួយលើខ្លឹមសារនៃ accumulator A: ច្បាស់លាស់ (CLR) ការបំពេញបន្ថែមឡូជីខល ឬការបញ្ច្រាស (CPL) ការផ្លាស់ប្តូររង្វិលជុំ និងពង្រីកដោយ 1 ប៊ីតទៅខាងស្តាំ (RL, RLC) និងទៅខាងឆ្វេង ( RR, RRC), ការផ្លាស់ប្តូរ tetrads ឬការផ្លាស់ប្តូរវដ្តនៃបៃដោយ 4 ប៊ីត (SWAP), A ក៏ជាប្រតិបត្តិការទទេ (NOP) ដែលជាលទ្ធផលដែលស្ថានភាពនៃការចុះឈ្មោះ MK ទាំងអស់ (លើកលែងតែកម្មវិធីរាប់) នៅតែមិនផ្លាស់ប្តូរ។ .

គ្រប់គ្រងការផ្ទេរពាក្យបញ្ជា

ពាក្យបញ្ជាលោតដោយគ្មានលក្ខខណ្ឌ

(តារាង 7.3.14) ។

ពាក្យបញ្ជា 1-3 ខុសគ្នាតែក្នុងទម្រង់នៃអាសយដ្ឋានគោលដៅប៉ុណ្ណោះ។

ពាក្យបញ្ជា LJMP (L - Long) អនុវត្តការលោតដោយគ្មានល័ក្ខខ័ណ្ឌ "វែង" ទៅកាន់អាសយដ្ឋាន addr16 ដែលបានបញ្ជាក់ដោយផ្ទុកកុំព្យូទ័ររាប់បញ្ចូលជាមួយបៃពាក្យបញ្ជាទីពីរ និងទីបី។
ពាក្យបញ្ជាផ្តល់នូវការលោតទៅចំណុចណាមួយក្នុងទំហំអាសយដ្ឋាន 64K byte ។

ពាក្យបញ្ជា AJMP (A - Absolute) ផ្តល់នូវការលោត "ដាច់ខាត" ទៅកាន់អាសយដ្ឋានមួយក្នុងទំព័រ 2K byte ដែលជាអាសយដ្ឋានចាប់ផ្តើមដែលត្រូវបានកំណត់ដោយចំនួនប្រាំប៊ីតសំខាន់ៗនៃកម្មវិធីកុំព្យូទ័រ PC (នៅដើម មាតិកាកុំព្យូទ័រគឺ កើនឡើង ២).

ពាក្យបញ្ជា SJMP (S - Short) អនុញ្ញាតឱ្យលោតដោយគ្មានលក្ខខណ្ឌ "ខ្លី" ទៅកាន់អាសយដ្ឋាន ដែលត្រូវបានគណនាដោយបន្ថែម rel អុហ្វសិតដែលបានចុះហត្ថលេខានៅក្នុងបៃបញ្ជាទីពីរជាមួយនឹងមាតិកានៃបញ្ជរ PC ដែលពីមុនបានកើនឡើង 2 ។

អាសយដ្ឋានលោតគឺនៅក្នុង -128 + 127 បៃទាក់ទងទៅនឹងអាសយដ្ឋានពាក្យបញ្ជា។
ដើម្បី​លោត​ទៅ​ចំណុច​ផ្សេង​ទៀត​ក្នុង​ទំហំ​អាសយដ្ឋាន 64 គីឡូបៃ ពាក្យ​បញ្ជា 4 ដែល​មាន​អាសយដ្ឋាន @ A + DPTR ដោយ​ប្រយោល​ក៏​អាច​ប្រើ​បាន​ដែរ។
ក្នុងករណីនេះ ខ្លឹមសារនៃ A ត្រូវបានបកស្រាយថាជាចំនួនគត់ដែលមិនបានចុះហត្ថលេខា។

ប្រតិបត្តិការ Null (NOP) ជាលទ្ធផលដែលស្ថានភាពនៃ microprocessor ទាំងអស់ចុះឈ្មោះ (លើកលែងតែកម្មវិធីរាប់) នៅតែមិនផ្លាស់ប្តូរ។

ពាក្យបញ្ជាសាខាតាមលក្ខខណ្ឌ

(តារាង 7.3.15) ។

ដោយមានជំនួយពីពាក្យបញ្ជា JZ និង JNZ ការលោតមួយត្រូវបានអនុវត្តប្រសិនបើមាតិកានៃ accumulator គឺស្មើគ្នាឬមិនស្មើនឹងសូន្យ។
អាសយដ្ឋានលោតត្រូវបានគណនាដោយបន្ថែមសញ្ញាទាក់ទងអុហ្វសិត rel ទៅមាតិកានៃបញ្ជរពាក្យបញ្ជាកុំព្យូទ័របន្ទាប់ពីបន្ថែម 2 (ប្រវែងពាក្យបញ្ជាគិតជាបៃ) ទៅវា។

ខ្លឹមសារនៃថ្មនៅតែមិនផ្លាស់ប្តូរ។
ពាក្យបញ្ជាមិនប៉ះពាល់ដល់ទង់ជាតិទេ។

ពាក្យបញ្ជា CJNE (3-6) ត្រូវបានប្រើដើម្បីអនុវត្តការលោតតាមលក្ខខណ្ឌដោយផ្អែកលើលទ្ធផលនៃការប្រៀបធៀបពីរ 8-bit operand ដែលទីតាំងត្រូវបានចង្អុលបង្ហាញនៅក្នុងពាក្យបញ្ជា។
ប្រសិនបើតម្លៃរបស់ពួកគេមិនស្មើគ្នានោះសាខាមួយត្រូវបានបង្កើតឡើង។

អាសយដ្ឋានលោតត្រូវបានគណនាដោយការបន្ថែម rel អុហ្វសិតជាមួយនឹងមាតិកានៃកុំព្យូទ័ររាប់ ពីមុនបានកើនឡើង 3 ។
បើមិនដូច្នោះទេពាក្យបញ្ជាបន្ទាប់ត្រូវបានប្រតិបត្តិ។

ជួរ​ឈរ​ក្បួន​ដោះស្រាយ​បង្ហាញ​ពី​ឥទ្ធិពល​នៃ​តម្លៃ​នៃ​ការ​ប្រៀបធៀប 8-bit operands នៅ​លើ​ទង់​អនុវត្ត C ។
ពាក្យបញ្ជា DJNZ (7) ត្រូវបានរចនាឡើងដើម្បីរៀបចំរង្វិលជុំកម្មវិធី។

ចុះឈ្មោះ Rn ឬអាសយដ្ឋានផ្ទាល់ (ផ្ទាល់) គឺជាការរាប់នៃពាក្យដដែលៗនៃរង្វិលជុំ A អុហ្វសិត rel (ក្នុងបៃពាក្យបញ្ជាទីពីរ និងទីបី) គឺជាអាសយដ្ឋានទាក់ទងនៃការលោតទៅដើមរង្វិលជុំ។
នៅពេលដែលពាក្យបញ្ជាត្រូវបានប្រតិបត្តិ មាតិកានៃបញ្ជរត្រូវបានបន្ថយដោយមួយ ហើយគូសធីកសម្រាប់សូន្យ។
ប្រសិនបើខ្លឹមសារនៃការរាប់មិនស្មើនឹងសូន្យនោះ ការផ្លាស់ប្តូរទៅការចាប់ផ្តើមនៃវដ្តត្រូវបានអនុវត្ត។
បើមិនដូច្នោះទេពាក្យបញ្ជាខាងក្រោមត្រូវបានប្រតិបត្តិ។

អាសយដ្ឋានលោតត្រូវបានគណនាដោយការបន្ថែមអុហ្វសិតទៅមាតិកាបញ្ជរ ដែលពីមុនបានបង្កើនដោយប្រវែងនៃពាក្យបញ្ជា (ដោយ 2 ឬ 3) ។
ទង់ពាក្យបញ្ជាមិនត្រូវបានប៉ះពាល់ទេ។

ពាក្យបញ្ជាសម្រាប់ការហៅទម្រង់ការរង និងការត្រឡប់ពីកម្មវិធី

(តារាង 7.3.16) ។
ពាក្យបញ្ជា LCALL "ហៅយូរ" និង ACALL "ការហៅដាច់ខាត" ហៅទៅទម្រង់ការរងដោយគ្មានលក្ខខណ្ឌដែលមានទីតាំងនៅអាសយដ្ឋានដែលបានបញ្ជាក់។

ភាពខុសគ្នារវាងការណែនាំទាំងនេះ និងការណែនាំលោតដោយគ្មានលក្ខខណ្ឌដែលបានពិភាក្សាខាងលើគឺថាពួកគេរក្សាទុកអាសយដ្ឋានត្រឡប់មកវិញ (មាតិកានៃបញ្ជរ) ទៅកម្មវិធីសំខាន់នៅលើជង់។
ពាក្យបញ្ជាត្រឡប់ពីទម្រង់ការរង RET ស្ដារតម្លៃនៃមាតិកានៃកម្មវិធីរាប់ពីជង់ ហើយពាក្យបញ្ជា RETI ក៏បើកការរំខាននៃកម្រិតសេវាកម្មផងដែរ។

អាសយដ្ឋានទាក់ទងត្រូវបានគេប្រើយ៉ាងទូលំទូលាយនៅក្នុងពាក្យបញ្ជាផ្ទេរការគ្រប់គ្រង ដែលគាំទ្រម៉ូឌុលកម្មវិធីដែលអាចផ្លាស់ប្តូរទីតាំងបាន។
rel អុហ្វសិតដែលបានចុះហត្ថលេខា 8 ប៊ីតដើរតួនាទីជាអាសយដ្ឋានទាក់ទង ដែលផ្តល់ការបំបែកចេញពីទីតាំងបច្ចុប្បន្ននៃបញ្ជរ PC ក្នុងទិសដៅទាំងពីរដោយ ± 127 បៃ។

ដើម្បីលោតទៅចំណុចផ្សេងទៀតក្នុងទំហំអាសយដ្ឋាន 64K-byte ទាំងអាសយដ្ឋាន addr16 ផ្ទាល់ ឬអាសយដ្ឋាន @ A + DPTR ដោយប្រយោលអាចត្រូវបានប្រើ។
ក្នុងករណីចុងក្រោយ ខ្លឹមសារនៃ A ត្រូវបានបកស្រាយថាជាចំនួនគត់ដែលមិនបានចុះហត្ថលេខា។

វ៉ារ្យ៉ង់នៃអាសយដ្ឋាន addr11 ដោយផ្ទាល់ខ្លីនៅក្នុងទំព័របច្ចុប្បន្ន 2K-byte ត្រូវបានណែនាំសម្រាប់ភាពឆបគ្នាជាមួយស្ថាបត្យកម្ម MK48 ។

ប្រភេទអាស័យដ្ឋានទាំងអស់នេះអាចអនុវត្តបានតែចំពោះប្រតិបត្តិការសាខាប៉ុណ្ណោះ ហើយសម្រាប់ប្រតិបត្តិការហៅទូរស័ព្ទមានតែវិធីសាស្ត្រអាសយដ្ឋាន addr16 និងផ្ទៃក្នុង addr11 ដោយផ្ទាល់ប៉ុណ្ណោះដែលត្រូវបានអនុញ្ញាត។
នៅក្នុងប្រតិបត្តិការតាមលក្ខខណ្ឌទាំងអស់ មានតែអាសយដ្ឋានទាក់ទងប៉ុណ្ណោះដែលអាចប្រើបាន។

នៅពេលដែល MK51 ទទួលស្គាល់សំណើររំខាន វាបង្កើតការណែនាំមួយក្នុងចំនោមការណែនាំ LCALL addr16 ដែលធានាដោយស្វ័យប្រវត្តិថាអាសយដ្ឋានត្រឡប់មកវិញត្រូវបានរក្សាទុកនៅលើជង់។
ទោះយ៉ាងណាក៏ដោយ មិនដូច MK48 ទេ MK51 មិនមានព័ត៌មានស្ថានភាពដែលបានរក្សាទុកដោយស្វ័យប្រវត្តិទេ។

ក្នុងករណីនេះ តក្កវិជ្ជារំខានឈប់ឆ្លើយតបទៅនឹងសំណើនៃកម្រិតដែលត្រូវបានទទួលយកសម្រាប់សេវាកម្ម។
ដើម្បីបន្ថយកម្រិតរំខាន ពាក្យបញ្ជាត្រឡប់ពី RETI interrupt ត្រូវបានប្រើ ដែលបន្ថែមពីលើប្រតិបត្តិការស្មើនឹង RET រួមបញ្ចូលប្រតិបត្តិការនៃការបើកការរំខាននៃកម្រិតនេះ។
ប្រតិបត្តិការ JZ, JNZ ក៏ជាកម្មសិទ្ធិរបស់ប្រតិបត្តិការតាមលក្ខខណ្ឌស្តង់ដារ MK51 ផងដែរ។
ទោះយ៉ាងណាក៏ដោយមានប្រតិបត្តិការថ្មី "ប្រៀបធៀបនិងទៅ" CJNE ។

សម្រាប់​ពាក្យ​បញ្ជា​នេះ ប្រយោគ​ត្រូវ​បាន​ប្រៀបធៀប​ជា​លើក​ដំបូង​ដោយ​យោង​ទៅ​តាម​ច្បាប់​នៃ​ការ​ដក​ចំនួន​គត់​ដោយ​ថេរ ហើយ​ស្រប​តាម​លទ្ធផល​នៃ​ការ​ប្រៀបធៀប ទង់ CY ត្រូវ​បាន​កំណត់​បន្ទាប់​មក ក្នុង​ករណី​មិន​ស៊ី​គ្នា​នឹង​ថេរ ការ​បំបែក​គឺ បានអនុវត្ត។ ដោយការប្រៀបធៀប accumulator, register ឬ memory cell ជាមួយនឹងលំដាប់នៃ constants យើងទទួលបានវិធីងាយស្រួលមួយដើម្បីពិនិត្យមើលការចៃដន្យ ឧទាហរណ៍ដើម្បីកំណត់អត្តសញ្ញាណករណីពិសេស។

តាមពិត ពាក្យបញ្ជា CJNE គឺជាសមាជិកនៃប្រតិបត្តិករភាសាកម្រិតខ្ពស់ វាយ CASE ។

ក្រុម DJNZ ត្រូវបានអភិវឌ្ឍបន្ថែមទៀត។
ឥឡូវនេះអ្នកសរសេរកម្មវិធីជាបញ្ជរអាចប្រើមិនត្រឹមតែមួយនៃការចុះឈ្មោះដំណើរការ Rn ប៉ុណ្ណោះទេប៉ុន្តែថែមទាំងកោសិកាអង្គចងចាំ DSEG ផងដែរ។

ពាក្យបញ្ជាប្រតិបត្តិការប៊ីត។

ក្រុមនេះមានពាក្យបញ្ជាចំនួន 12 ដែលអនុញ្ញាតឱ្យអ្នកធ្វើប្រតិបត្តិការលើប៊ីតមួយ ឬពីរ (កំណត់ឡើងវិញ កំណត់ ការបញ្ច្រាសប៊ីត A ឡូជីខល AND និង OR) និង 5 ពាក្យបញ្ជាដែលត្រូវបានរចនាឡើងដើម្បីអនុវត្តការលោតតាមលក្ខខណ្ឌ (តារាង 7.3.17) ។

ការណែនាំផ្តល់នូវអាសយដ្ឋានផ្ទាល់នៃ 128 ប៊ីតដែលស្ថិតនៅក្នុងក្រឡាប្រាំមួយទៅដប់មួយនៃ RAM ខាងក្នុងដែលមានអាសយដ្ឋាន 20h ។
2Fh (តារាង 7.3.3) និង 128 ប៊ីត ដែលមានទីតាំងនៅក្នុងបញ្ជីគោលបំណងពិសេស ដែលអាសយដ្ឋានមានគុណនឹងប្រាំបី (គូសបញ្ជាក់ក្នុងតារាង 7.3.4 ជាដិត)។

នៅពេលដំណើរការប្រតិបត្តិការលើ operands មួយប៊ីតពីរ ប្រអប់ត្រឡប់នៃការចុះឈ្មោះ PSW ដែលរក្សាទុកទង់ C (តារាង 7.1.2) ត្រូវបានប្រើជាឧបករណ៍ប្រមូលផ្តុំឡូជីខល។

ការណែនាំរបស់ MOV (1,2) ដំណើរការ ការដឹកជញ្ជូនប៊ីតពីក្រឡាប៊ីតដែលអាចអាសយដ្ឋានបានដោយផ្ទាល់នៃ RAM ខាងក្នុងទៅ flip-flop C ឬច្រាសមកវិញ។
ពាក្យបញ្ជា CRL (3, 4), SETB (5, 6) រៀងគ្នា។ បោះចោលដល់សូន្យ ឬ បង្កើតនៅក្នុងទង់មួយ C ឬប៊ីតដែលបានបញ្ជាក់។
ដោយមានជំនួយពីពាក្យបញ្ជា CPL, ANL, ORL (7-12) ប្រតិបត្តិការឡូជីខលនៃការបញ្ច្រាស ការបន្ថែម និងគុណត្រូវបានអនុវត្ត។

ក្រុមនេះក៏រួមបញ្ចូលផងដែរនូវពាក្យបញ្ជា (13-17) សម្រាប់ការអនុវត្តប្រតិបត្តិការសាខាតាមលក្ខខណ្ឌជាមួយនឹង rel អុហ្វសិត 8 ប៊ីតដែលទាក់ទង។
ដំណើរផ្លាស់ប្តូរអាចត្រូវបានអនុវត្តទាំងនៅពេលដែលកំណត់ប៊ីត ឬទង់ដឹក (ពាក្យបញ្ជា 13, 16) និងនៅពេលដែលវាត្រូវបានសម្អាត (ពាក្យបញ្ជា 14, 17) ។

ពាក្យបញ្ជា JBC បន្ថែមពីលើការផ្លាស់ទីទៅអាសយដ្ឋានដែលបានគណនា នៅពេលដែលលក្ខខណ្ឌ (ប៊ីត) = 1 ត្រូវបានបំពេញ កំណត់ប៊ីតនេះឡើងវិញទៅសូន្យ។
នៅពេលប្រតិបត្តិពាក្យបញ្ជាសាខាតាមលក្ខខណ្ឌ អាសយដ្ឋានសាខាត្រូវបានគណនាបន្ទាប់ពីបន្ថែមលេខ 3 ឬ 2 ទៅបញ្ជរ (ឆ្លុះបញ្ចាំងពីចំនួនបៃក្នុងពាក្យបញ្ជា)។

Intel គឺជាបុព្វបុរសនៃស្ថាបត្យកម្មនៃគ្រួសារ MCS-51 ដែលទទួលបានឈ្មោះពីអ្នកតំណាងដំបូងនៃគ្រួសារនេះ - microcontroller 8051 ដែលបានចេញផ្សាយនៅឆ្នាំ 1980 ដោយផ្អែកលើបច្ចេកវិទ្យា n-MOS ។ សំណុំឧបករណ៍គ្រឿងកុំព្យូទ័រដែលទទួលបានជោគជ័យ ជម្រើសដែលអាចបត់បែនបាននៃអង្គចងចាំកម្មវិធីខាងក្រៅ ឬខាងក្នុង និងតម្លៃសមរម្យបានធានានូវភាពជោគជ័យរបស់ microcontroller នៅលើទីផ្សារ។ តាមទស្សនៈនៃបច្ចេកវិទ្យា មីក្រូកុងត្រូល័រ 8051 គឺជាផលិតផលដ៏ស្មុគស្មាញមួយសម្រាប់ពេលវេលារបស់វា - ត្រង់ស៊ីស្ទ័រ 128 ពាន់ត្រូវបានប្រើនៅក្នុងគ្រីស្តាល់ ដែលលើសពីចំនួនត្រង់ស៊ីស្ទ័រ 4 ដងនៅក្នុងមីក្រូ 16 ប៊ីត 8086 ។ មីក្រូកុងទ័រនេះនៅតែមាន។ ស្នូលនៃគ្រួសារ MCS-51 រហូតមកដល់សព្វថ្ងៃនេះ។

ធាតុសំខាន់នៃស្ថាបត្យកម្មមូលដ្ឋាននៃគ្រួសារ (ស្ថាបត្យកម្មនៃ 8051 microcontroller) គឺ:

8 ប៊ីត ALU;

4 ធនាគារនៃការចុះឈ្មោះ, 8 ក្នុងគ្នា;

អង្គចងចាំកម្មវិធីខាងក្នុង (អ្នករស់នៅ) 4 Kbytes ដែលមានប្រភេទ ROM ឬ EPROM (8751);

អង្គចងចាំទិន្នន័យខាងក្នុង (អ្នករស់នៅ) 128 បៃ;

21 ការចុះឈ្មោះនៃមុខងារពិសេស;

ដំណើរការប៊ូលីន;

ឧបករណ៍កំណត់ម៉ោង/បញ្ជរ ១៦ ប៊ីតពីរ;

ឧបករណ៍បញ្ជាច្រកសៀរៀល (UART);

ឧបករណ៍បញ្ជារំខានជាមួយកម្រិតអាទិភាពពីរ;

ច្រក I/O ចំនួន 8 ប៊ីតចំនួន 2 ដែលត្រូវបានប្រើជាអាសយដ្ឋាន/រថយន្តក្រុងទិន្នន័យសម្រាប់ចូលប្រើកម្មវិធីខាងក្រៅ និងអង្គចងចាំទិន្នន័យ។

ម៉ាស៊ីនភ្លើងនាឡិកាដែលភ្ជាប់មកជាមួយ។

បន្ទាប់មក microcontroller 8052 ត្រូវបានបញ្ចេញ ដែលត្រូវបានសម្គាល់ដោយការកើនឡើងនៃកម្មវិធីស្នាក់នៅ និងអង្គចងចាំទិន្នន័យ ដែលណែនាំដោយកម្មវិធីកំណត់ម៉ោងទីបី ហើយតាមនោះ ឧបករណ៍បញ្ជារំខានដែលបានពង្រីក។

ជំហានជាមូលដ្ឋានបន្ទាប់ក្នុងការអភិវឌ្ឍន៍ MCS-51 គឺការផ្ទេរបច្ចេកវិទ្យាផលិតកម្មទៅ CMOS (ការកែប្រែ 8xC51)។ នេះធ្វើឱ្យវាអាចអនុវត្តរបៀប Idl (ទំនេរ) និង Power Down (កាត់បន្ថយការប្រើប្រាស់) ដែលធានានូវការថយចុះយ៉ាងខ្លាំងនៃការប្រើប្រាស់ថាមពលរបស់គ្រីស្តាល់ និងបើកផ្លូវសម្រាប់ការប្រើប្រាស់ microcontroller នៅក្នុងកម្មវិធីងាយនឹងបង្កជាហេតុ ឧទាហរណ៍នៅក្នុង ឧបករណ៍ដែលប្រើថាមពលថ្មតែម្នាក់ឯង។

ហើយដំណាក់កាលសំខាន់ចុងក្រោយក្នុងការអភិវឌ្ឍន៍ MK 8051 ដោយ Intel គឺការចេញនូវ microcontrollers 8xC51FA / FB / FC និង 8xC51RA / RB / RC ដែលជាទូទៅគេហៅថា 8xC51Fx និង 8xC51Rx ។ លក្ខណៈពិសេសប្លែកសំខាន់នៃគ្រីស្តាល់ក្រុមនេះគឺថាពួកគេមានឧបករណ៍កំណត់ម៉ោង/បញ្ជរ (PCA)។ លើសពីនេះទៀត microcontrollers 8xC51Rx ក៏មានឧបករណ៍កំណត់ម៉ោងឃ្លាំមើល (WDT) ផងដែរ។ ចូរយើងពិនិត្យមើលឱ្យកាន់តែច្បាស់អំពីស្ថាបត្យកម្ម និងមុខងាររបស់ PCA ។

PCA រួមមានៈ

កម្មវិធីកំណត់ម៉ោង/បញ្ជរ ១៦ ប៊ីត;

ម៉ូឌុលគំរូ និងប្រៀបធៀបចំនួន 16 ប៊ីតចំនួន 5 ដែលនីមួយៗត្រូវបានភ្ជាប់ទៅខ្សែរបស់វាផ្ទាល់នៃច្រក I/O នៃ microcontroller ។

កម្មវិធីកំណត់ម៉ោង/បញ្ជរ បម្រើគំរូទាំងប្រាំ និងប្រៀបធៀបម៉ូឌុល ដែលអាចត្រូវបានកម្មវិធីដើម្បីអនុវត្តមុខងារមួយក្នុងចំណោមមុខងារខាងក្រោម៖

គំរូ 16 ប៊ីតនៃតម្លៃកំណត់ម៉ោងនៅលើគែមវិជ្ជមាននៃសញ្ញាខាងក្រៅ;

គំរូ 16 ប៊ីតនៃតម្លៃកំណត់ម៉ោងនៅលើគែមអវិជ្ជមាននៃសញ្ញាខាងក្រៅ;

គំរូ 16 ប៊ីតនៃតម្លៃកំណត់ម៉ោងនៅលើគែមណាមួយនៃសញ្ញាខាងក្រៅ;

កម្មវិធីកំណត់ម៉ោង ១៦ ប៊ីត;

ឧបករណ៍ទិន្នផលល្បឿនលឿន 16 ប៊ីត;

8 ប៊ីត PWM ។

មុខងារខាងលើទាំងអស់ត្រូវបានអនុវត្តនៅក្នុង PCA នៅកម្រិត hardware ហើយមិនផ្ទុក processor កណ្តាលទេ។ នេះអនុញ្ញាតឱ្យអ្នកបង្កើនការបញ្ជូនទាំងមូល ធ្វើអោយប្រសើរឡើងនូវភាពត្រឹមត្រូវនៃការវាស់វែង និងដំណើរការសញ្ញា និងកាត់បន្ថយពេលវេលាឆ្លើយតបរបស់ microcontroller ចំពោះព្រឹត្តិការណ៍ខាងក្រៅ ដែលមានសារៈសំខាន់ជាពិសេសសម្រាប់ប្រព័ន្ធពេលវេលាពិត។ PCA បានអនុវត្តនៅក្នុង 8xC51Fx (8xC51Rx) ប្រែទៅជាដូច្នេះ

ការកំណត់

អតិបរមា។ ប្រេកង់ (MHz)

ROM / EPROM (បៃ)

បញ្ជរ

វាជាសំណាងល្អដែលស្ថាបត្យកម្មនៃ microcontrollers ទាំងនេះបានក្លាយជាស្តង់ដារឧស្សាហកម្មហើយ PCA ខ្លួនវាត្រូវបានបង្កើតឡើងវិញម្តងហើយម្តងទៀតនៅក្នុងការកែប្រែផ្សេងៗនៃ MK 8051 ។

លក្ខណៈមួយចំនួននៃ microcontrollers MCS-51 ផលិតដោយ Intel ត្រូវបានបង្ហាញក្នុងតារាង 1.1។

ឧបសគ្គដំបូងនៃស្ថាបត្យកម្ម MCS-51 គឺ ALU ដែលមានមូលដ្ឋានលើថ្ម 8 ប៊ីត និងការប្រតិបត្តិពាក្យបញ្ជាយឺត (ពាក្យបញ្ជាលឿនបំផុតត្រូវការ 12 pe-

តារាង 1.1

បញ្ចូល / ទិន្នផល

ADC, បញ្ចូល x ប៊ីត

បរិវេណ,

លក្ខណៈពិសេស

U រណ្តៅ។ (V)

ជម្រើសវ៉ុលទាប

4 កម្រិត IRQ, នាឡិកាចេញ

4 កម្រិត IRQ, នាឡិកាចេញ

កំណែវ៉ុលទាប 8xC51Fx

4 កម្រិត IRQ, នាឡិកាចេញ

4 កម្រិត IRQ, នាឡិកាចេញ

4 កម្រិត IRQ, នាឡិកាចេញ

ប្រេកង់នាឡិការយៈពេល (ប្រេកង់នាឡិកា MK)) ។ នេះកំណត់ការប្រើប្រាស់ microcontrollers នៃគ្រួសារនៅក្នុងកម្មវិធីដែលទាមទារការបង្កើនការអនុវត្ត និងការគណនាស្មុគស្មាញ (16- និង 32-bit)។ បញ្ហាបន្ទាន់មួយគឺការធ្វើទំនើបកម្មជាមូលដ្ឋាននៃស្ថាបត្យកម្ម MCS-51។ បញ្ហានៃទំនើបភាវូបនីយកម្មមានភាពស្មុគស្មាញដោយការពិតដែលថានៅដើមទសវត្សរ៍ទី 90 ការអភិវឌ្ឍន៍ជាច្រើននៅក្នុងវិស័យសូហ្វវែរនិងផ្នែករឹងនៃគ្រួសារ MCS-51 ត្រូវបានបង្កើតឡើងរួចហើយដែលទាក់ទងនឹងកិច្ចការសំខាន់មួយនៃការរចនា។ ស្ថាបត្យកម្មថ្មីគឺជាការអនុវត្តភាពឆបគ្នានៃផ្នែករឹង និងសូហ្វវែរជាមួយនឹងការអភិវឌ្ឍន៍ដោយផ្អែកលើ MCS -51 ។

ដើម្បីដោះស្រាយបញ្ហានេះ ក្រុមអ្នកឯកទេសរួមគ្នាពី Intel និង Philips ត្រូវបានបង្កើតឡើង ប៉ុន្តែក្រោយមក ផ្លូវរបស់ក្រុមហ៊ុនទាំងពីរនេះបានទៅផ្លូវដាច់ដោយឡែករបស់ពួកគេ។ ជាលទ្ធផល នៅឆ្នាំ 1995 គ្រួសារពីរផ្សេងគ្នាបានលេចចេញជារូបរាង៖ MCS-251/151 សម្រាប់ Intel និង MCS-51XA សម្រាប់ Philips (សូមមើលផ្នែករង 1.2)។

លក្ខណៈសំខាន់ៗនៃស្ថាបត្យកម្ម MCS-251៖

ទំហំអាសយដ្ឋានលីនេអ៊ែរ 24 ប៊ីតសម្រាប់អាសយដ្ឋានរហូតដល់ 16 មេកាបៃនៃអង្គចងចាំ;

ស្ថាបត្យកម្មចុះឈ្មោះដែលអនុញ្ញាតឱ្យចុះឈ្មោះចូលប្រើជាបៃ ពាក្យ និងពាក្យទ្វេ។

របៀបអាសយដ្ឋានទំព័រដើម្បីបង្កើនល្បឿនការទាញយកការណែនាំពីអង្គចងចាំកម្មវិធីខាងក្រៅ។

ជួរនៃការណែនាំ;

សំណុំការណែនាំបន្ថែម រួមទាំងប្រតិបត្តិការនព្វន្ធ និងតក្កវិជ្ជា 16 ប៊ីត។

ពង្រីកទំហំអាសយដ្ឋាននៃជង់ (រហូតដល់ 64 KB);

ការប្រតិបត្តិពាក្យបញ្ជាលឿនបំផុតក្នុង 2 វដ្តនាឡិកា។

សំណុំការណែនាំ MCS-251 មានសំណុំការណែនាំពីរ - សំណុំទីមួយគឺជាច្បាប់ចម្លងនៃសំណុំការណែនាំ MCS-51 ហើយទីពីរមានការណែនាំបន្ថែមដែលទាញយកអត្ថប្រយោជន៍ពីស្ថាបត្យកម្ម MCS-251 ។ មុនពេលប្រើ microcontroller វាត្រូវតែកំណត់រចនាសម្ព័ន្ធ i.e. ដោយមានជំនួយពីអ្នកសរសេរកម្មវិធី "ដុត" ប៊ីតកំណត់រចនាសម្ព័ន្ធដែលកំណត់ថាតើសំណុំការណែនាំមួយណានឹងក្លាយទៅជាសកម្មបន្ទាប់ពីការបើកថាមពល។ ប្រសិនបើអ្នកដំឡើងសំណុំការណែនាំដំបូងនោះ ក្នុងករណីនេះគ្រួសារ MCS-251 នឹងត្រូវគ្នាជាមួយ MCS-51 នៅកម្រិតកូដគោលពីរ។ របៀបនេះត្រូវបានគេហៅថា Binary Mode ។ ប្រសិនបើអ្នកដំឡើងដំបូងនូវសំណុំនៃការណែនាំបន្ថែម (របៀបប្រភព) នោះកម្មវិធីដែលសរសេរសម្រាប់ MCS-51 នឹងតម្រូវឱ្យមានការចងក្រងឡើងវិញនៅលើមធ្យោបាយឆ្លងសម្រាប់ MCS-251។ របៀបប្រភពអនុញ្ញាតឱ្យអ្នកបង្កើតស្ថាបត្យកម្ម MCS-251 ច្រើនបំផុត និងសម្រេចបាននូវដំណើរការខ្ពស់បំផុត។

សម្រាប់អ្នកប្រើប្រាស់ដែលផ្តោតលើការប្រើប្រាស់មីក្រូកុងត្រូល័រ MCS-251 ជាការជំនួសមេកានិចសម្រាប់ MCS-51 ក្រុមហ៊ុន Intel ផលិតឧបករណ៍បញ្ជាមីក្រូហ្វូន MCS-151 ដែលបានកម្មវិធីរួចហើយនៅក្នុងស្ថានភាព Binary Mode ។

លក្ខណៈមួយចំនួននៃ microcontrollers MCS-251/151 ត្រូវបានបង្ហាញក្នុងតារាង 1.1។

បច្ចុប្បន្ននេះក្រុមហ៊ុន Intel ដែលមានគោលបំណងទៅលើទីផ្សារ Pentium-processor កំពុងបញ្ឈប់ការផលិតគ្រីស្តាល់ MCS-51។ ជាទូទៅ សម្រាប់អ្នកអភិវឌ្ឍន៍ជាក់លាក់ វាអាចនឹងមិនមានការចាប់អារម្មណ៍ លុះត្រាតែគាត់ប្រើ microcontrollers 8xC51GB និង 80C152Jx ដែលមិនមានសមភាគីពិតប្រាកដក្នុងចំណោមផលិតផលរបស់ក្រុមហ៊ុនផ្សេងទៀត។ សម្រាប់ microcontrollers ផ្សេងទៀតទាំងអស់នៃគ្រួសារ MCS-51 ពួកវាទាំងអស់ត្រូវបានចម្លងជាច្រើនដងដោយក្រុមហ៊ុនផ្សេងទៀត។

ស្ថានភាពប្រព័ន្ធរំខានត្រូវបានស្ទង់មតិនៅចុងបញ្ចប់នៃវដ្តម៉ាស៊ីននីមួយៗក្នុងដំណាក់កាល S5P2 ដោយលើកលែងតែពាក្យបញ្ជា RETI និងពាក្យបញ្ជាណាមួយដែលសំដៅទៅលើការចុះឈ្មោះ IE និង IP ។ ចាប់ពីពេលនៃការជួសជុលសំណើររំខានដល់ការបម្រើការរំខាន វាត្រូវការពេលពី 38 ទៅ 86 នៃប្រេកង់ fOSC អាស្រ័យលើដំណាក់កាលនៃសំណើ និងចំនួននៃវដ្តម៉ាស៊ីននៃពាក្យបញ្ជាកំឡុងពេលប្រតិបត្តិដែលសំណើត្រូវបានទទួល។ .

នៅពេលដែលការរំខានត្រូវបានអនុវត្តនៅក្នុងផ្នែករឹង ការណែនាំ LCALL addr16 ត្រូវបានប្រតិបត្តិ ដែលធានាការរក្សាទុកនៅក្នុងជង់នូវស្ថានភាពបច្ចុប្បន្ននៃកម្មវិធីរាប់ (ការរក្សាទុកអាសយដ្ឋានត្រឡប់មកវិញ) និងទៅកាន់អាសយដ្ឋានចាប់ផ្តើម addr16 នៃនីតិវិធីសេវាកម្មដែលត្រូវគ្នា។ ប្រភពសំណើររំខាននីមួយៗមានរបស់វា។

អាសយដ្ឋានចាប់ផ្តើម (វ៉ិចទ័ររំខាន)៖

ការរំខានខាងក្រៅ INT0.

រំខានកម្មវិធីកំណត់ម៉ោង / រាប់ TC0 ។

ការរំខានខាងក្រៅ INT1 ។

រំខានកម្មវិធីកំណត់ម៉ោង / រាប់ TC1 ។

ច្រកសៀរៀលរំខាន។

២.៧. ការដោះស្រាយវិធីសាស្រ្ត និងប្រព័ន្ធបញ្ជានៃគ្រួសារ MCS-51

ប្រព័ន្ធពាក្យបញ្ជាគ្រួសារ MCS-51 គឺផ្តោតលើការរៀបចំការបញ្ចូល-ទិន្នផលទិន្នន័យដែលអាចបត់បែនបានតាមរយៈច្រកសកល P0 ... P3 និងដំណើរការព័ត៌មានបឋម។ ការយកចិត្តទុកដាក់ជាពិសេសគឺត្រូវបានបង់ទៅប្រតិបត្តិការជាមួយប៊ីតនិងការផ្ទេរការគ្រប់គ្រងដោយតម្លៃរបស់វា។ សេចក្តីណែនាំដែលអនុវត្តប្រតិបត្តិការបែបនេះបង្កើតបានជាក្រុមធំមួយ ហើយរួមគ្នាជាមួយផ្នែករឹងដែលត្រូវគ្នាបង្កើតបានជាអ្វីដែលគេហៅថា "ដំណើរការប៊ូលីន" នៅក្នុងស្ថាបត្យកម្ម MCS-51 ។

សំណុំការណែនាំផ្តល់ឱ្យអ្នកសរសេរកម្មវិធីនូវសមត្ថភាពក្នុងការប្រើប្រាស់ប្រតិបត្តិការភាគច្រើនជាមួយនឹងសំណុំពេញលេញនៃវិធីសាស្រ្តអាសយដ្ឋាន និងធនធានផ្នែករឹងដែលមានផ្នែកទន់។

២.៧.១. វិធីសាស្រ្តដោះស្រាយ

ការណែនាំនីមួយៗប្រាប់ processor នូវប្រតិបត្តិការដែលត្រូវអនុវត្ត និងវិធីសាស្រ្តនៃការចូលទៅកាន់ operands ។ កូដពាក្យបញ្ជាមានវាលជាច្រើនដែលមានគោលបំណងមុខងារជាក់លាក់។ វាលសំខាន់បំផុតនៃពាក្យបញ្ជាណាមួយគឺកូដប្រតិបត្តិការ (CPC) ដែលកំណត់សកម្មភាពនៃពាក្យបញ្ជា និងផ្នែកអាសយដ្ឋាន។ វាលនៃផ្នែកអាសយដ្ឋានមានព័ត៌មានអំពីអាសយដ្ឋានរបស់ប្រតិបត្តិករ និងលទ្ធផលនៃប្រតិបត្តិការ ហើយក្នុងករណីខ្លះព័ត៌មានអំពីអាសយដ្ឋាននៃពាក្យបញ្ជាបន្ទាប់។

ប្រសិនបើអាសយដ្ឋានបង្ហាញលេខនៃក្រឡាអង្គចងចាំដែល operand មានទីតាំងនៅ ឬកន្លែងដែលវាត្រូវបានបញ្ចូល នោះវាត្រូវបានគេហៅថាអាសយដ្ឋានផ្ទាល់។

វិធីសាស្រ្តអាសយដ្ឋានគឺជាការប្រមូលផ្ដុំនៃយន្តការសម្រាប់ចូលដំណើរការប្រតិបត្តិករ។ ពួកវាខ្លះមានលក្ខណៈសាមញ្ញ នាំទៅរកទម្រង់ការណែនាំតូចតាច និងការចូលដំណើរការរហ័សទៅកាន់ operand ប៉ុន្តែមានធនធានដែលមានកំណត់។ អ្នកផ្សេងទៀតអនុញ្ញាតឱ្យអ្នកធ្វើប្រតិបត្តិការជាមួយធនធានទាំងអស់ដែលមាននៅក្នុងប្រព័ន្ធ ប៉ុន្តែពាក្យបញ្ជាប្រែជាវែង

ការបញ្ចូល និងការប្រតិបត្តិគឺចំណាយពេលច្រើន។ សំណុំនៃវិធីសាស្រ្តអាសយដ្ឋាននៅក្នុងសំណុំការណែនាំនីមួយៗគឺជាការសម្របសម្រួលនៃយន្តការអាសយដ្ឋានដែលគេស្គាល់ដែលត្រូវបានជ្រើសរើសដោយស្ថាបត្យករដោយផ្អែកលើសំណុំនៃកិច្ចការដែលត្រូវដោះស្រាយ។

ខាង​ក្រោម​នេះ​ជា​វិធី​អាសយដ្ឋាន​ចម្បង​ដែល​ប្រើ​ក្នុង​ពាក្យ​បញ្ជា​គ្រួសារ MCS-51។

អាសយដ្ឋានដោយប្រយោល។... ពាក្យបញ្ជាមិនមានការណែនាំច្បាស់លាស់អំពីអាសយដ្ឋានរបស់ប្រតិបត្តិករដែលចូលរួមក្នុងប្រតិបត្តិការ ឬអាសយដ្ឋានដែលលទ្ធផលនៃប្រតិបត្តិការត្រូវបានដាក់នោះទេ ប៉ុន្តែអាសយដ្ឋាននេះត្រូវបានបង្កប់ន័យ។ នៅក្នុងពាក្យបញ្ជា accumulator ភាគច្រើនត្រូវបានបញ្ជាក់ដោយប្រយោលថាជាអ្នកទទួលលទ្ធផលនៃប្រតិបត្តិការមួយ។ ឧទាហរណ៍ លទ្ធផលនៃការបន្ថែមមាតិកានៃ accumulator (A) និងការចុះឈ្មោះ R1 នៃ databank បច្ចុប្បន្នជាមួយនឹងពាក្យបញ្ជា ADD A, R1 ត្រូវបានសរសេរទៅកាន់ accumulator ដែលអាចបញ្ជាក់បាន ពាក្យ​បញ្ជា​ដែល​បាន​បញ្ជាក់​ទាំង​មូល​កាន់កាប់​មួយ​បៃ​ក្នុង​អង្គ​ចងចាំ ខណៈ​ដែល​អាសយដ្ឋាន​របស់​តែ​ឧបករណ៍​ផ្ទុក (8Eh នៃ​តំបន់ SFR) មាន​មួយ​បៃ។

អាសយដ្ឋានផ្ទាល់... វាលអាសយដ្ឋានពាក្យបញ្ជាមាន

អាសយដ្ឋានមិនមែនជាអាសយដ្ឋានរបស់ operand ទេ ប៉ុន្តែជា operand ខ្លួនវាផ្ទាល់។ អាសយដ្ឋានផ្ទាល់ត្រូវបានចង្អុលបង្ហាញដោយតួអក្សរពិសេស # នៅពីមុខលេខ។ ឧទាហរណ៍ ជាមួយនឹងពាក្យបញ្ជា MOV A # 15h លេខគោលដប់ប្រាំមួយ 15 (បៃទីពីរនៃពាក្យបញ្ជា) ត្រូវបានផ្ទុកទៅក្នុង accumulator ។ នៅក្នុងប្រព័ន្ធពាក្យបញ្ជា អាសយដ្ឋានផ្ទាល់ត្រូវបានកំណត់ថាជា #data ដែលទិន្នន័យជាលេខ

(ទិន្នន័យ = 00h ... FFh) ។

អាសយដ្ឋានផ្ទាល់... វាលអាសយដ្ឋានពាក្យបញ្ជាបង្ហាញអាសយដ្ឋានផ្ទាល់នៃក្រឡាអង្គចងចាំទិន្នន័យដែលប្រតិបត្តិករមានទីតាំងនៅ ឬកន្លែងដែលវាត្រូវបានសរសេរ។ ឧទាហរណ៍ ជាមួយនឹងពាក្យបញ្ជា MOV A, 15h មាតិកានៃក្រឡា DSEG ដែលមានអាសយដ្ឋាន 15h ត្រូវបានផ្ទុកទៅក្នុង accumulator ។ ក្រឡាអង្គចងចាំគឺអាចដោះស្រាយដោយផ្ទាល់ ខណៈពេលដែល accumulator គឺ implicit ។ អាស្រ័យ​លើ​ទីតាំង​នៃ​អាស័យដ្ឋាន​ដែល​មាន​អាសយដ្ឋាន អាសយដ្ឋាន​ផ្ទាល់​ត្រូវ​បាន​បែង​ចែក​ជា​ការ​ចុះ​ឈ្មោះ​ផ្ទាល់ និង​ដាច់ខាត។

អាសយដ្ឋានចុះឈ្មោះដោយផ្ទាល់... វាលអាសយដ្ឋានពាក្យបញ្ជាមានអាសយដ្ឋានផ្ទាល់នៃការចុះឈ្មោះរបស់ធនាគារចុះឈ្មោះបច្ចុប្បន្ន។ មានការចុះឈ្មោះចំនួនប្រាំបីនៅក្នុងធនាគារនីមួយៗ ហើយអាស័យដ្ឋានបញ្ជូនបន្តបីប៊ីតត្រូវបានទាមទារដើម្បីដោះស្រាយពួកគេ។ នៅក្នុង mnemonics នៃពាក្យបញ្ជា ការចុះឈ្មោះអាសយដ្ឋានត្រូវបានកំណត់ Rn ដែល n = 0 ... 7 ។ វាលពាក្យបញ្ជាទាំងអស់សមនឹងក្នុងមួយបៃ។ នេះត្រូវបានគេហៅថាអាសយដ្ឋានខ្លី។ ឧទាហរណ៍ MOV R4, R1 ។

អាសយដ្ឋានដោយផ្ទាល់អនុញ្ញាតឱ្យអ្នកយោងទៅក្រឡា DSEG និងតំបន់ SFR ណាមួយ។ អាសយដ្ឋានផ្ទាល់ក្នុងករណីនេះគឺមួយបៃហើយពាក្យបញ្ជាគឺពីរបៃ។ នៅក្នុងប្រព័ន្ធពាក្យបញ្ជា បៃអាស័យដ្ឋានផ្ទាល់ត្រូវបានកំណត់ដោយពាក្យដោយផ្ទាល់ (ដោយផ្ទាល់ = 00h… FFh) ។ ឧទាហរណ៍ ការណែនាំ MOV 80h, R2 (ឬ MOV P0, R2) ផ្ទុកមាតិកានៃការចុះឈ្មោះ R2 នៃធនាគារទិន្នន័យបច្ចុប្បន្នទៅក្នុងច្រក P0 (ទីតាំង 80h នៃតំបន់ SFR) ។ ប្រសិនបើប្រតិបត្តិករទាំងពីរត្រូវបានដោះស្រាយដោយផ្ទាល់ ការណែនាំនឹងក្លាយទៅជាបីបៃ (ឧទាហរណ៍ MOV 80h, 15h)។

អាសយដ្ឋានប្រយោល។... វាលអាសយដ្ឋានមានអាសយដ្ឋាននៃក្រឡាអង្គចងចាំដែលអាសយដ្ឋានផ្ទាល់របស់ប្រតិបត្តិករមានទីតាំងនៅ។ នៅក្នុងប្រព័ន្ធបញ្ជា តួអក្សរពិសេស @ បង្ហាញពីអាសយដ្ឋានប្រយោល។ ទ្រព្យសម្បត្តិ

ការចុះឈ្មោះ R0 និង R1 (@Ri, i = 0,1) នៃធនាគារចុះឈ្មោះនីមួយៗមានអាសយដ្ឋានផ្ទាល់។ ឧទាហរណ៍ប្រសិនបើមាតិកានៃការចុះឈ្មោះ R1 នៃធនាគារចុះបញ្ជីបច្ចុប្បន្នគឺ 15 ម៉ោងនោះការណែនាំ MOV A, @ R1 នឹងអនុវត្តសកម្មភាពដូចគ្នានឹងការណែនាំខាងលើ MOV A, 15h - វានឹងផ្ទុកមាតិកានៃកោសិកាអង្គចងចាំ DSEG ។ ជាមួយនឹងអាសយដ្ឋាន 15 ម៉ោងចូលទៅក្នុង accumulator ។ ទោះយ៉ាងណាក៏ដោយ ការណែនាំអំពី MOV A, @ R1 គឺមានតែមួយបៃ ប៉ុន្តែសំខាន់បំផុត គឺវាអាចផ្លាស់ប្តូរអាសយដ្ឋានតាមកម្មវិធីដោយផ្លាស់ប្តូរខ្លឹមសារនៃការចុះឈ្មោះ R1 ។

អាសយដ្ឋានដែលទាក់ទង... ជាមួយនឹងអាសយដ្ឋានទាក់ទង អាសយដ្ឋានផ្ទាល់ត្រូវបានបង្កើតឡើងដោយបន្ថែមអាសយដ្ឋានមូលដ្ឋានជាមួយវាលអាសយដ្ឋានពាក្យបញ្ជា។ ខ្លឹមសារនៃកម្មវិធីរាប់នៃកម្មវិធីត្រូវបានប្រើជាអាសយដ្ឋានមូលដ្ឋាន ហើយវាលអាសយដ្ឋានពាក្យបញ្ជាគឺជា rel (ទាក់ទង) អុហ្វសិតប្រាំបីប៊ីត។ លេខ rel ត្រូវបានបកស្រាយដោយពាក្យបញ្ជាជាចំនួនគត់ដែលបានចុះហត្ថលេខា ដែលតំណាងឱ្យការបំពេញបន្ថែមរបស់ទាំងពីរ។ ជួរនៃការបង្ហាញរបស់វាគឺ (-128 ... + 127) ។ នៅពេលកំណត់លេខ rel សូមចាំថាកម្មវិធីនឹងចង្អុលទៅពាក្យបញ្ជាបន្ទាប់ដែលត្រូវប្រតិបត្តិ។ អាសយដ្ឋានទាក់ទងត្រូវបានគេប្រើយ៉ាងទូលំទូលាយនៅក្នុងពាក្យបញ្ជាផ្ទេរការគ្រប់គ្រង ដែលអនុញ្ញាតឱ្យអ្នកបង្កើតម៉ូឌុលកម្មវិធីដែលអាចផ្លាស់ប្តូរទីតាំងបាន។ គ្រប់គ្រងការផ្ទេរពាក្យបញ្ជាដែលមានអាសយដ្ឋានទាក់ទងអនុញ្ញាតឱ្យរៀបចំសាខាទាក់ទងទៅនឹងទីតាំងបច្ចុប្បន្ននៃបញ្ជរកម្មវិធីកុំព្យូទ័រក្នុងទិសដៅទាំងពីរដោយ (-128 ... + 127) បៃ។

នៅក្នុងកម្មវិធីភាសាដំឡើង អ្នកអាចបញ្ជាក់ស្លាកដើម្បីលោតទៅក្នុងវាលអុហ្វសិត។ ជាលទ្ធផលនៃការបកប្រែអ្នកប្រមូលផ្តុំនឹងគណនាតម្លៃអុហ្វសិតប្រសិនបើវាមិនលើសពី (-128 ... + 127) ។ បើមិនដូច្នោះទេ សារកំហុសនឹងត្រូវបានបង្ហាញ។

អាសយដ្ឋានមូលដ្ឋានតំណាងឱ្យប្រភេទនៃអាសយដ្ឋានដែលទាក់ទង។ អាសយដ្ឋានផ្ទាល់ក្នុងករណីនេះត្រូវបានបង្កើតឡើងដោយបន្ថែមអាសយដ្ឋានដែលបានបញ្ជាក់នៅក្នុងពាក្យបញ្ជាជាមួយនឹងមាតិកានៃការចុះឈ្មោះមូលដ្ឋានដែលរក្សាទុកអាសយដ្ឋានមូលដ្ឋាន។ មុខងារនៃការចុះឈ្មោះជាមូលដ្ឋាននៅក្នុងគ្រួសារ MCS-51 គឺការចុះឈ្មោះទ្រនិចទិន្នន័យ DPTR ឬកម្មវិធីរាប់បញ្ចូលកម្មវិធីកុំព្យូទ័រ។ ប្រភេទនៃអាសយដ្ឋាននេះមានប្រយោជន៍ជាពិសេសនៅពេលដំណើរការតារាង និងអារេទិន្នន័យ។ នៅក្នុងការណែនាំរបស់ MOVC A, @ A + DPTR និង MOVC A, @ A + PC អាសយដ្ឋានទៅមុខ 16 ប៊ីតត្រូវបានបង្កើតឡើងជាផលបូកនៃមាតិកានៃ DPTR និង A ឬ PC និង A ។

អាសយដ្ឋានទំព័រ... នៅពេលប្រើទំព័រ អង្គចងចាំត្រូវបានបំបែកទៅជាស៊េរីនៃទំព័រដែលមានប្រវែងស្មើគ្នា។ ទំព័រត្រូវបានដោះស្រាយដោយការចុះឈ្មោះទំព័រដាច់ដោយឡែក ហើយកោសិកាអង្គចងចាំក្នុងទំព័រត្រូវបានដោះស្រាយដោយអាសយដ្ឋានដែលមាននៅក្នុងពាក្យបញ្ជា។ អាសយដ្ឋានផ្ទាល់ត្រូវបានបង្កើតឡើងដោយការភ្ជាប់ (បន្ថែម) អាសយដ្ឋាននៃទំព័រ និងអាសយដ្ឋាននៃក្រឡាអង្គចងចាំក្នុងទំព័រ។ នៅក្នុងការណែនាំរបស់ MOVX A, @ Ri ច្រក P2 (អាសយដ្ឋានខ្ពស់បៃ) អនុវត្តមុខងារនៃការចុះឈ្មោះទំព័រ ហើយខ្លឹមសារនៃការចុះឈ្មោះ Ri (អាសយដ្ឋានទាបបៃ) កំណត់អាសយដ្ឋាននៅក្នុងទំព័រ។ ក្នុងករណីនេះអង្គចងចាំត្រូវបានបែងចែកទៅជា 256 ទំព័រនៃ 256 ក្រឡានៅក្នុងពួកវានីមួយៗ។

អាសយដ្ឋានជង់វា​ត្រូវ​បាន​ប្រើ​នៅ​ក្នុង​ពាក្យ​បញ្ជា​ដែល​មិន​បាន​ដោះស្រាយ និង​ជា​ការ​រួម​បញ្ចូល​គ្នា​នៃ​វិធី​អាសយដ្ឋាន​បន្ថែម​ដោយ​ស្វ័យ​ប្រវត្តិ និង​ការ​បន្ថយ​ដោយ​ស្វ័យ​ប្រវត្តិ ដែល​ដំណើរការ​លើ​គោលការណ៍ LIFO (L ast I nput - F irst O utput) - "last in - first out" ។ ជង់មានទីតាំងនៅ DSEG ហើយលូតលាស់ក្នុងទិសដៅនៃការបង្កើនអាសយដ្ឋាន។ អាសយដ្ឋាននៃកំពូលនៃជង់មាននៅក្នុងទ្រនិចជង់ SP ។ នៅពេលដែលបៃមួយត្រូវបានសរសេរទៅជង់ មាតិកា SP ត្រូវបានបង្កើនជាមុន ហើយបន្ទាប់មកការសរសេរត្រូវបានធ្វើឡើងចំពោះអាសយដ្ឋាននេះ។ នៅពេលអានបៃពីជង់ វាអានដំបូងនៅអាសយដ្ឋានដែលចង្អុលបង្ហាញដោយ SP ហើយបន្ទាប់មកបន្ថយ SP ។ នៅពេលប្រើជង់ សូមចងចាំថាជម្រៅនៃជង់ (ចំនួនអតិបរមានៃកោសិកាអង្គចងចាំដែលកាន់កាប់ដោយជង់) មិនត្រូវបានគ្រប់គ្រងដោយផ្នែករឹងទេ។ ជាមួយនឹងការកើនឡើងលើសនៃជង់ កោសិកាអង្គចងចាំដែលមិនមានបំណងសម្រាប់វាអាចត្រូវបានកាន់កាប់ជាមួយនឹងការបាត់បង់ព័ត៌មាននៅក្នុងពួកវា។ ជង់ផ្នែករឹងត្រូវបានប្រើដើម្បីរក្សាទុកអាសយដ្ឋានត្រឡប់មកវិញនៅពេលបម្រើការរំខាន។

២.៧.២. សំណុំពាក្យបញ្ជាគ្រួសារ MCS-51

ប្រព័ន្ធពាក្យបញ្ជាត្រូវបានបង្ហាញនៅក្នុងតារាង A2.1 ... A2.6 នៃឧបសម្ព័ន្ធទី 2 ។ តារាងបង្ហាញឈ្មោះពាក្យបញ្ជា មេម៉ូនិករបស់វា កូដប្រតិបត្តិការគោលពីរ ឥទ្ធិពលនៃពាក្យបញ្ជាដែលកំពុងដំណើរការនៅលើទង់ C, OV , AC និង P, រយៈពេលនៃពាក្យបញ្ជាជាបៃ (B) និងពេលវេលាប្រតិបត្តិក្នុងវដ្តម៉ាស៊ីន (C) ក៏ដូចជាខ្លឹមសារនៃការផ្លាស់ប្តូរដែលបានអនុវត្តដោយការណែនាំ។ សញ្ញាក្បៀសត្រូវបានប្រើជាសញ្ញាបំបែកសម្រាប់វាលអាសយដ្ឋាននៅក្នុងពាក្យបញ្ជា។ ដើម្បីកែលម្អការអាន អ្នកអាចបន្ថែមចន្លោះបន្ទាប់ពីសញ្ញាក្បៀស ប្រសិនបើឧបករណ៍ដំឡើងដែលត្រូវបានប្រើគាំទ្រពួកគេ។

សំណុំនៃពាក្យបញ្ជាទាំងមូលអាចត្រូវបានបែងចែកជា 5 ក្រុម៖ ប្រតិបត្តិការផ្ទេរទិន្នន័យ ប្រតិបត្តិការនព្វន្ធ ប្រតិបត្តិការឡូជីខល ប្រតិបត្តិការប៊ីត និងប្រតិបត្តិការផ្ទេរវត្ថុបញ្ជា។

ក្រុមនៃពាក្យបញ្ជាសម្រាប់ប្រតិបត្តិការផ្ទេរទិន្នន័យ(តារាង A2.1) ជាមួយ-

កាន់ MOV (ការផ្ទេរទិន្នន័យរវាង DSEG និង RSEG), MOVC (រវាង CSEG និង A), MOVX (រវាង XSEG និង A), ពាក្យបញ្ជាចូលប្រើជង់ PUSH និង POP និងពាក្យបញ្ជាផ្លាស់ប្តូរពីរ XCH និង XCHD ។ ពាក្យបញ្ជាផ្ទេរទិន្នន័យទាំងអស់ ដែលអ្នកទទួលគឺជាថ្ម កំណត់ទង់ស្មើ P នៃមាតិកាថ្ម និងពាក្យបញ្ជាអាសយដ្ឋានផ្ទាល់ ដែលក្នុងនោះអ្នកទទួល PSW ជាអ្នកទទួល ផ្លាស់ប្តូរទង់ទាំងអស់។ សមត្ថភាពខ្លាំងបំផុតគឺការណែនាំអំពី MOV ដែលប្រើវិធីអាសយដ្ឋានចំនួនបួន៖ ចុះឈ្មោះដោយផ្ទាល់ (A, Rn, DPTR), ដោយផ្ទាល់ (ផ្ទាល់), ដោយប្រយោល (@Ri), ដោយផ្ទាល់ (#data, #data16)។ ប្រតិបត្តិករទីពីរនៃការណែនាំគឺជាប្រភព ទីមួយគឺជាទិសដៅ។ មានវិធីសាស្រ្តអាសយដ្ឋានបី (លើកលែងតែដោយផ្ទាល់) ដើម្បីចង្អុលបង្ហាញទិសដៅ និងទាំងបួនដើម្បីចង្អុលបង្ហាញប្រភព។ MOV បីបៃដោយផ្ទាល់ ផ្ទេរពាក្យបញ្ជាដោយផ្ទាល់រវាងទីតាំងអង្គចងចាំពីរណាមួយ (DSEG និង SFR) រួមទាំង RSEG ។ សម្រាប់ការផ្លាស់ប្តូរជាមួយ RSEG ទម្រង់ពីរ និងមួយបៃពិសេសត្រូវបានផ្តល់ជូន៖

ការណែនាំពិសេសរបស់ MOV DPTR # data16 ផ្ទុកទ្រនិច DPTR 16 ប៊ីតជាមួយ data16 ។

ការណែនាំអំពី MOVC អនុញ្ញាតឱ្យអ្នកអានព័ត៌មានពីអង្គចងចាំកម្មវិធី CSEG មិនចូលទៅក្នុងបញ្ជីពាក្យបញ្ជារបស់ឧបករណ៍បញ្ជានោះទេ ប៉ុន្តែចូលទៅក្នុងថ្មរបស់ឧបករណ៍ប្រតិបត្តិការ។ ពាក្យបញ្ជាប្រើវិធីសាស្រ្តអាសយដ្ឋានពីរ: ផ្អែកលើ DPTR និងទាក់ទងទៅនឹងកុំព្យូទ័រ។ ក្នុងករណីទាំងពីរ អុហ្វសិតចំនួនគត់ដែលមិនចុះហត្ថលេខា (លិបិក្រម) ត្រូវបានរក្សាទុកក្នុង accumulator ។ ថ្មក៏ដើរតួជាអ្នកទទួលលទ្ធផលផងដែរ។ ពាក្យ​បញ្ជា​អនុញ្ញាត​ឱ្យ​អ្នក​ធ្វើ​ការ​បំប្លែង​កូដ​រហ័ស​នៅ​ទូទាំង​តារាង។

អង្គចងចាំខាងក្រៅត្រូវបានចូលប្រើដោយប្រើការណែនាំ MOVX ។ ការផ្លាស់ប្តូរត្រូវបានអនុវត្តដោយបៃរវាងថ្មនិង XSEG ខាងក្រៅ។ ក្រឡា XSEG អាចត្រូវបានដោះស្រាយតាមពីរវិធី៖ ដោយប្រយោលតាមរយៈទ្រនិច DPTR 16 ប៊ីត និងបញ្ជូនដោយប្រយោលតាមរយៈ 8 ប៊ីត Ri, i = 0,1 ។ ក្នុងករណីចុងក្រោយការចុះឈ្មោះទំព័រគឺជាការចុះឈ្មោះ P2 ។

ពាក្យបញ្ជា PUSH និង POP ដែលគ្មានអាសយដ្ឋានផ្តល់ការផ្ទេរទិន្នន័យ

រវាង DSEG, RSEG និង SFR ។

ការណែនាំអំពីការផ្លាស់ប្តូរ XCH ផ្តល់នូវការផ្លាស់ប្តូរពីរផ្លូវនៃបៃ ហើយការណែនាំ XCHD ផ្តល់នូវ tetrads ដ៏សំខាន់តិចបំផុតនៃ byte operand ។

ក្រុមពាក្យបញ្ជានព្វន្ធ(តារាង A2.2) សហ

ទទួលបានការណែនាំសម្រាប់ការបន្ថែម ADD ការបន្ថែមជាមួយ ADDC ដកជាមួយកម្ចី SUBB បង្កើន និងបន្ថយដោយ INC និង DEC មួយកញ្ចប់ ការកែទសភាគបន្ថែម BCD គុណ MUL និងការបែងចែក DIV ។ ប្រតិបត្តិការត្រូវបានអនុវត្តលើចំនួនគត់ដែលមិនបានចុះហត្ថលេខា។ នៅក្នុងប្រតិបត្តិការបូក និងដក បង្គរគឺជាប្រតិបត្តិករដំបូង និងអ្នកទទួលលទ្ធផល។ ការចុះឈ្មោះដោយផ្ទាល់ អាសយដ្ឋានដោយផ្ទាល់ ដោយផ្ទាល់ និងដោយប្រយោល ត្រូវបានប្រើដើម្បីកំណត់ operand ទីពីរ។ ប្រតិបត្តិការ INC និង DEC អនុវត្តចំពោះឧបករណ៍ប្រមូលផ្តុំ ការចុះឈ្មោះអាសយដ្ឋានដោយផ្ទាល់ ឬទីតាំងអង្គចងចាំដែលអាចអាសយដ្ឋានដោយផ្ទាល់ ឬដោយប្រយោល។ លើសពីនេះទៀតប្រតិបត្តិការ INC អនុវត្តចំពោះមាតិកានៃការចុះឈ្មោះទ្រនិច DPTR 16 ប៊ីត។

ប្រតិបត្តិការគុណ និងចែកចំនួនគត់ដែលមិនបានចុះហត្ថលេខាពាក់ព័ន្ធនឹងការប្រមូលផ្តុំ និងចុះឈ្មោះ B ។ នៅក្នុងការគុណ តម្លៃ 8 ប៊ីតនៃ A ត្រូវបានគុណនឹងតម្លៃ 8 ប៊ីតនៃ B ហើយលទ្ធផល 16 ប៊ីតត្រូវបានសរសេរទៅគូ BA ។ ក្នុងករណីនេះចុះឈ្មោះ B រក្សាទុកផ្នែកខាងលើនៃផលិតផល។ ទង់ OV ត្រូវបានកំណត់ប្រសិនបើផលិតផលធំជាង 255។ នៅពេលដែលតម្លៃ 8 ប៊ីត A ត្រូវបានបែងចែកដោយតម្លៃ 8 ប៊ីត B នោះកូតាត្រូវបានសរសេរទៅ A ហើយនៅសល់ត្រូវបានសរសេរទៅ B ។ ការប៉ុនប៉ងដើម្បីបែងចែកដោយ 0 កំណត់ទង់ជាតិលើស OV ។

ពាក្យបញ្ជាកែខ្ទង់ទសភាគ DA ត្រូវបានដាក់បន្ទាប់ពីពាក្យបញ្ជាបន្ថែម។ លក្ខខណ្ឌត្រូវតែត្រូវបានតំណាងនៅក្នុងលេខកូដ BCD ។ ការកែតម្រូវត្រូវបានអនុវត្តតាមស្តង់ដារ។

ក្រុមនៃពាក្យបញ្ជាសម្រាប់ប្រតិបត្តិការឡូជីខល(តារាង A2.3 ) មានប្រតិបត្តិការធម្មតាចំនួនបី៖ ANL - ឡូជីខល AND, ORL - ឡូជីខល OR, XRL - តក្កវិជ្ជាផ្តាច់មុខ OR ។ ប្រភពនៃ operand ដំបូង

ទាំង accumulator A ឬកោសិកាអង្គចងចាំដែលអាចអាសយដ្ឋានដោយផ្ទាល់បម្រើ។ ប្រតិបត្តិករទីពីរត្រូវបានបញ្ជាក់ដោយវិធីសាស្រ្តមួយក្នុងចំណោមវិធីអាសយដ្ឋានមូលដ្ឋានចំនួនបួន។ ក្រុមនេះក៏រួមបញ្ចូលផងដែរ។ ប្រតិបត្តិការតែមួយលើខ្លឹមសារនៃ accumulator៖ CLR - clear, CPL - inversion, and also RL, RLC, RR និង RRC - ប្រតិបត្តិការរង្វិល និងពង្រីកការផ្លាស់ប្តូរទៅខាងស្តាំ និងខាងឆ្វេង។ នេះក៏រួមបញ្ចូលផងដែរនូវប្រតិបត្តិការនៃការផ្លាស់ប្តូរសៀវភៅកត់ត្រានៅក្នុង SWAP accumulator ដែលអាចត្រូវបានបកស្រាយថាជាការផ្លាស់ប្តូរវដ្តនៃបៃមួយដោយបួនខ្ទង់។

ក្រុមបញ្ជាប្រតិបត្តិការប៊ីត(តារាង A2.6) មានសហ

ពាក្យបញ្ជា SETB - កំណត់ប៊ីតទៅ 1, CLR - កំណត់ឡើងវិញបន្តិចទៅ 0, CPL - បញ្ច្រាសប៊ីត, ANL និង ORL - ឡូជីខល AND និងឡូជីខល OR នៃមាតិកានៃទង់ C និងការផ្ទេរប៊ីតដោយផ្ទាល់ MOV - ផ្ទេរប៊ីត។

ប្រតិបត្តិការប៊ីត ទង់ C ដើរតួជា boolean accumulator ។ ប្រតិបត្តិករគឺជាមាតិកានៃទង់ C ឬប៊ីតដែលអាចដោះស្រាយដោយផ្ទាល់នៃ BSEG ។ ប្រតិបត្តិការ ANL និង ORL អាចប្រើខ្លឹមសារនៃអាស័យដ្ឋានអាស័យដ្ឋានដោយផ្ទាល់ ប៊ីត (ប៊ីត) ឬការបញ្ច្រាសនៃមាតិកា (/ ប៊ីត) ។

ក្រុមនេះក៏រួមបញ្ចូលពាក្យបញ្ជាសម្រាប់ការបែងចែកតាមលក្ខខណ្ឌជាមួយសាច់ញាតិផងដែរ។ 8 ប៊ីតអុហ្វសិត rel ។ ការលោតតាមលក្ខខណ្ឌអាចត្រូវបានអនុវត្តជាមួយនឹងសំណុំ (ពាក្យបញ្ជា JB) និងជម្រះ (ពាក្យបញ្ជា JNB) ប៊ីត។ ចំណាំជាពិសេសគឺពាក្យបញ្ជា JBC ដែលនៅពេលដែលប៊ីតត្រូវបានកំណត់ អនុវត្តការបំបែក ហើយក្នុងពេលតែមួយជម្រះប៊ីតទៅ 0 ។

គ្រប់គ្រងក្រុមបញ្ជាការផ្ទេរ(តារាង A2.4 និង A2.5) ជាមួយ-

កាន់ពាក្យបញ្ជាលោតដោយគ្មានលក្ខខណ្ឌ AJMP, LJMP, SJMP, JMP, លោតតាមលក្ខខណ្ឌ JZ, JNZ, CJNE, ហៅ ACALL, LCALL, ត្រឡប់ RET, RETI និងកែប្រែជាមួយនឹងការលោតតាមលក្ខខណ្ឌ DJNZ ។ ពាក្យបញ្ជា NOP ទទេក៏ត្រូវបានរួមបញ្ចូលផងដែរ។

អាសយដ្ឋានទាក់ទងត្រូវបានគេប្រើយ៉ាងទូលំទូលាយនៅក្នុងពាក្យបញ្ជាផ្ទេរការគ្រប់គ្រង ដែលអនុញ្ញាតឱ្យអ្នកបង្កើតម៉ូឌុលកម្មវិធីដែលអាចផ្លាស់ប្តូរទីតាំងបាន។ អាសយដ្ឋានដែលទាក់ទងគឺ 8-bit offset rel គឺជាបៃដែលបានចុះហត្ថលេខាដែលផ្តល់នូវការលោត (–128 ​​... +127) bytes ទាក់ទងទៅនឹងទីតាំងកុំព្យូទ័របច្ចុប្បន្ន។ ទាំងអាស័យដ្ឋាន addr16 ដោយផ្ទាល់ ឬដោយប្រយោល @ A + DPTR អាចត្រូវបានប្រើដើម្បីលោតទៅចំណុចផ្សេងទៀតនៅក្នុងចន្លោះអាសយដ្ឋាន 64K ។ ក្នុងករណីចុងក្រោយ ខ្លឹមសារនៃ A ត្រូវបានបកស្រាយថាជាចំនួនគត់ដែលមិនបានចុះហត្ថលេខា។ វ៉ារ្យ៉ង់នៃអាសយដ្ឋាន addr11 ដោយផ្ទាល់ខ្លីនៅក្នុងទំព័របច្ចុប្បន្ន 2KB ត្រូវបានណែនាំសម្រាប់ភាពឆបគ្នាជាមួយគ្រួសារ MCS-48 ។

ប្រភេទនៃអាសយដ្ឋានទាំងអស់នេះត្រូវបានប្រើប្រាស់ក្នុងការណែនាំលោត។ ក្នុង​ការ​ហៅ​ពាក្យ​បញ្ជា ប្រើ​តែ​វិធី​អាសយដ្ឋាន addr16 និង in-page addr11 ផ្ទាល់​ប៉ុណ្ណោះ​ដែល​ត្រូវ​បាន​ប្រើ។ ពាក្យបញ្ជាតាមលក្ខខណ្ឌទាំងអស់ប្រើតែអាសយដ្ឋានទាក់ទងប៉ុណ្ណោះ។

នៅពេលដែល microcontroller ទទួលស្គាល់សំណើររំខាន វាបង្កើតការណែនាំ LCALL addr16 ដែលធានាដោយស្វ័យប្រវត្តិថាអាសយដ្ឋានត្រឡប់មកវិញត្រូវបានរក្សាទុកក្នុងជង់។ ព័ត៌មានស្ថានភាពកម្មវិធី (មាតិកាចុះឈ្មោះ PSW) មិនត្រូវបានរក្សាទុកដោយស្វ័យប្រវត្តិទេ។ ឯណា