Розрахунок мікропроцесорної частини
Визначення розрахункової формули вимірюваної величини, яка використовується мікропроцесором. При вимірі частоти, розрахунковий вираз для мікропроцесора можна записати як: Визначення наказів таймера, адаптера і вихідних кодів лічильників Для зручності розрахунку дані зведені в таблиці, представлені нижче. Де Nхн і Uхн — номінальне значення числа ступенів квантування АЦП і номінальне значення… Читати ще >
Розрахунок мікропроцесорної частини (реферат, курсова, диплом, контрольна)
2.3.1 Визначення розрахункової формули вимірюваної величини, яка використовується мікропроцесором. При вимірі частоти, розрахунковий вираз для мікропроцесора можна записати як:
(2.5).
де Тх — період вимірюваного сигналу (Тх = 1/fx);
Nx — відповідний цифровий код;
Тср = 0,02 с;
Ncp — цифровий код, відповідний ТСР (Ncp = 227) [6].
Висловивши з (2.5) Тх, отримаємо:
Тх =, (2.6).
fx =, k = = fg.(2.7).
Або, підставивши числові значення, одержимо:
(2.8).
Вираз (2.8) і є розрахункове співвідношення мікропроцесора для частоти.
Вираз для напруги можна записати як:
Ux =, (2.9).
де Nхн і Uхн — номінальне значення числа ступенів квантування АЦП і номінальне значення напруги АЦП.
Для АЦП К1108ПВ2, який використовуємо у роботі: Nхн = 4096.
(12 розрядів), Uхн = 5 В. Підставивши значення в (2.9), отримаємо:
(2.10).
Вираз (2.10) — розрахунковий співвідношення для мікропроцесора.
2.3.2 Визначення наказів таймера, адаптера і вихідних кодів лічильників Для зручності розрахунку дані зведені в таблиці, представлені нижче.
Таблиця 2.1- Визначення адрес ОЗУ і ПЗУ.
№ вых. | А15. | А14. | А13. | А12. | А11. | А10. | А9. | А8. | А7. | А6. | А5. | А4. | А3. | А2. | А1. | А0. | поле адресов. | |
ОЗУ. | 6 8 0 0. | |||||||||||||||||
6 F F F. | ||||||||||||||||||
ПЗУ. | 6 0 0 0. | |||||||||||||||||
6 7 F F. | ||||||||||||||||||
6/6. | 8/0F/7. | 0/F. | 0/F. | |||||||||||||||
Таблица 2.2 — Визначення адрес таймера і адаптерів.
№ входов DC. | А7. | А6. | А5. | А4. | А3. | А2. | А1. | А0. | |||
Таймер | сч 0. | 4 С. | |||||||||
сч 1. | 4 D. | ||||||||||
сч 2. | 4 E. | ||||||||||
приказ. | 4 F. | ||||||||||
Адаптер | РА. | 2 C. | |||||||||
РВ. | 2 D. | ||||||||||
РС. | 2 E. | ||||||||||
приказ. | 2 F. | ||||||||||
Адаптер | РА. | C 4. | |||||||||
РВ. | C 5. | ||||||||||
РС. | C 6. | ||||||||||
приказ. | C 7. | ||||||||||
Таблица 2.3 — Дані таймера.
Порт. | Назначение. | Адрес порта. | Режим. | Начальные данные. | Система счисления. | Рабочий байт. | Приказ. | |
Сч 0. | ДЧ. | 4C. | Кдч=0004. | дв-дес. | оба. | |||
Сч 1. | Nx. | 4D. | дв-дес. | оба. | ||||
Сч 2. | m. | 4E. | дв-дес. | оба. | В0. | |||
Ввод приказа. | 4 °F. | ; | ; | ; | ; | ; | ||
Таблица 2.4 — Дані адаптерів.
Порт. | Назначение. | Адрес порта. | Режим. | Приказ. | ||
Адаптер 1. | РА. | Связь с ЦОУ. | 5C. | |||
РВ. | Связь с ЦОУ. | 5D. | ||||
РС3−0. | Вывод ИЗ'. | 5Е. | ||||
РС7−4. | Управляющие сигналы. | 5E. | ||||
Ввод приказа. | 5 °F. | ; | ; | |||
Адаптер 2. | РА. | Ввод мл. байта АЦП U. | 5C. | 9 В. | ||
РВ. | ; | ; | ||||
РС3−0. | Ввод ст. байта АЦП U. | 5Е. | ||||
РС7−4. | ; | ; | ||||
Ввод приказа. | 5 °F. | ; | ; | |||
2.3.3 Розподіл адрес ОЗУ, ПЗУ і підпрограм ПЗУ: 6041 — початок основної програми;
- 6201 — початок підпрограми обчислення Ucp;
- 6301 — початок підпрограми обчислення f.
ОЗУ: 6925 — адреса початкового масива даних;
- 6F83 — адреса вершини стека (SP);
- 6880, 6881 — адреси пам’яти для запису значень Nx при читанні з
лічильника;
6882, 6883 — адреси пам’яти для запису значень m при читанні з.
лічильника;
6884, 6885 — адреси пам’яти для запису результату обчислень за.
допомогою підпрограм.
2.3.4 Складання блок-схеми програми Блок-схема представлена на рисунку 2.4.
Рисунок 2.4- Блок-схема.
2.3.5 Програма на мові Ассемблера
Адреса. | Код. | Мнемокод. | Команда. | Коментарій. | |
3Е. | MVI 35. | A35. | введення наказів для Лч 0 таймера. | ||
D3. | OUT 4 °F. | AP[4F]. | введення наказів для Лч 0 таймера. | ||
4 °F. | |||||
3E. | MVI 70. | A70. | введення наказів для Лч 1 таймера. | ||
D3. | OUT 4 °F. | AP[4F]. | введення наказів для Лч 1 таймера. | ||
4 °F. | |||||
3E. | MVI B0. | AB0. | введення наказів для Лч 2 таймера. | ||
604А. | B0. | ||||
604 В. | D3. | OUT 4 °F. | AP[4F]. | введення наказів для Лч 2 таймера. | |
604С. | 4 °F. | ||||
604D. | 3E. | MVI 9B. | A9B. | введення наказів адаптера 2. | |
604E. | 9B. | ||||
604 °F. | D3. | OUT F7. | AP[F7]. | введення наказів адаптера 2. | |
F7. | |||||
3E. | MVI 88. | A88. | введення наказів адаптера 1. | ||
D3. | OUT 5 °F. | AP[5F]. | введення наказів адаптера 1. | ||
5 °F. | |||||
LXI SP. | SP6F83. | введення вершини стека. | |||
6 °F. | |||||
3E. | MVI 04. | A04. | |||
введення в Лч 0 КДЧ = 4. | |||||
605A. | D3. | OUT 4C. | AP[4C]. | ||
605B. | 4C. | ||||
605C. | 3E. | MVI 00. | A00. | ||
605D. | |||||
605E. | D3. | OUT 4C. | AP[4C]. | ||
605 °F. | 4C. | ||||
D3. | OUT 4D. | AP[4D]. | введення мл. б. в Лч 1. | ||
4D. | |||||
D3. | OUT 4D. | AP[4D]. | введення ст. б. в Лч 1. | ||
4D. | |||||
D3. | OUT 4Е. | AP[4Е]. | введення мл. б. в Лч 2. | ||
4E. | |||||
D3. | OUT 4Е. | AP[4Е]. | введення Ст. б. в Лч 2. | ||
4E. | |||||
LXI HL. | HL6925. | введення в HL адреси масива даних. | |||
606A. | |||||
606B. | DB. | IN 2E. | AP[5E]. | опитування стану кнопки. | |
606C. | 2E. | ||||
606D. | E6. | ANI. | A80A. | Маскування. | |
606E. | |||||
606 °F. | СА. | JZ. | PC7 = 0. | умовний перехід. | |
6B. | |||||
3Е. | MVI 01. | A01. | видача ИЗ'. | ||
D3. | OUT 2Е. | AP[2Е]. | |||
2E. | |||||
DB. | IN 2E. | AP[5E]. | опитування появи ИГ. | ||
2E. | |||||
E6. | ANI. | A20A. | Маскування. | ||
JZ. | PC5 = 0. | умовний перехід. | |||
607A. | CA. | ||||
607B. | IN C4. | AP[C4]. | введення мл. байта АЦП U. | ||
607C. | |||||
607D. | DB. | ||||
607E. | C4. | MOV M[HL]. | A M[HL]. | M[6925]. | |
607 °F. | |||||
INX HL. | HL+1. | інкремент HL. | |||
DB. | IN C6. | AP[C6]. | опитування появи ИK. | ||
C6. | MOV M[HL]. | A M[HL]. | M[6926]. | ||
INX HL. | HL+1. | інкремент HL. | |||
DB. | IN 2E. | AP[5E]. | опитування Nx. | ||
2E. | ANI. | A10A. | Маскування. | ||
E6. | |||||
JZ. | PC4 = 0. | умовний перехід. | |||
CA. | |||||
608A. | IN 4D. | AP[4D]. | читання мл. байта з Nx Лч 1 таймера. | ||
608B. | |||||
608C. | DB. | ||||
608D. | 4D. | STA. | A M[6880]. | запис мл. байта Nx. | |
608E. | |||||
608 °F. | IN 4D. | AP[4D]. | читання ст. байта из Nx Лч 1 таймера. | ||
DB. | |||||
4D. | STA. | A M[6881]. | запис ст. байта Nx. | ||
IN 4D. | AP[4D]. | читання мл. байта m из Лч 2 таймера. | |||
DB. | STA. | A M[6882]. | запис мл. байта m. | ||
4D. | IN 4D. | AP[4D]. | читання ст. байта m из Лч 2 таймера. | ||
609A. | STA. | A M[6882]. | запис ст. байта m. | ||
609B. | |||||
609C. | DB. | ||||
609D. | 4D. | IN C6. | AP[C6]. | опитування роду вимірюваної величини. | |
609E. | |||||
609 °F. | ANI. | A40A. | Маскування. | ||
60A0. | |||||
60A1. | DB. | ||||
60A2. | C6. | JZ. | PC6 = 0. | умовний перехід. | |
60A3. | Е6. | ||||
60A4. | CALL. | виклик п/п вичислення fx. | |||
60A5. | CA. | ||||
60A6. | B7. | LDA. | AM[6884]. | читання мл. байта результату обчислення. | |
60A7. | |||||
60A8. | CD. | ||||
60A9. | OUT 2D. | AP[2D]. | пересилка мл. байта результату обчислення. | ||
60AA. | |||||
60AB. | 3A. | ||||
60AC. | LDA. | AM[6885]. | читання ст. байта результату обчислення. | ||
60AD. | |||||
60AE. | D3. | ||||
60AF. | 2D. | OUT 2D. | AP[2D]. | пересилка ст. байта результату обчислення. | |
60B0. | 3A. | ||||
60B1. | JMP. | перехід до початку вимірювання. | |||
60B2. | |||||
60B3. | D3. | ||||
60B4. | 2C. | CALL. | виклик п/п обчислення Ux. | ||
60B5. | C3. | ||||
60B6. | JMP. | перехід до запису результату вимірювання. | |||
60В7. | |||||
60В8. | CD. | ||||