Помощь в написании студенческих работ
Антистрессовый сервис

Курсовой проект в текстовом виде по заданию в учебном пособии. 
Курсовой проект состоит из 30 тем (стр. 
145-147). Номер варианта выбирается по общим правилам

Курсовая Купить готовую Узнать стоимостьмоей работы

В ячейках ОЗУ записано время от замыкания контактов до образования искры. MOV TMOD, #1 0001B ;установка Т0, Т1 в программный режим запуска, режим тамеров 1. JNB P0.1,$ ;если сигнал от датчика замыкания контактов не пришел ждем его. Jnb psw.7, nosum ;если в очедном бите множителя 0 то переходим по ссылке. MAIN: JNB P0.0, MAIN ;если сигнал от датчика ВМТ не пришел ожидаем его. Mov 33, a… Читать ещё >

Курсовой проект в текстовом виде по заданию в учебном пособии. Курсовой проект состоит из 30 тем (стр. 145-147). Номер варианта выбирается по общим правилам (реферат, курсовая, диплом, контрольная)

Содержание

  • Введение
  • 2. Конкретизация технического задания
  • 3. Разработка функциональной схемы
  • 4. Разработка схемы алгоритма прикладной программы
  • 5. Разработка принципиальной схемы
    • 5. 1. Схема на микроконтроллере с внешней памятью команд
    • 5. 2. Схема на микроконтроллере с резидентной программной памятью
  • 6. Разработка управляющей программы
  • Заключение
  • Список использованных источников
  • Приложение А. Листинг управляющей программы
  • Приложение Б. Схема электрическая принципиальная
  • Приложение В. Схема электрическая принципиальная

lst

org 0h;

MOV TMOD, #1 0001B ;установка Т0, Т1 в программный режим запуска, режим тамеров 1

MAIN: JNB P0.0, MAIN ;если сигнал от датчика ВМТ не пришел ожидаем его

;если сигнал пришел продолжаем программу

JB TR0, RESULT ;если счетчик Т0 уже запущен переходим на RESULT

;если нет, то продолжаем программу;

SETB TR0 ;запускаем счетчик T0

JNB P0.1,$ ;если сигнал от датчика замыкания контактов не пришел ждем его

;если пришел продолжаем программу

SETB TR1; ;запускаем счетчик T1

JNB P0.2,$ ;если сигнал от датчика детонации не пришел ждем его

;если пришел продолжаем программу

CLR TR1 ;останавливаем счетчик Т1

MOV 20H, TH1 ;записываем старший байт значения таймера в ОЗУ

MOV 21H, TL1 ;записываем младший байт значения таймера в ОЗУ

;в ячейках ОЗУ записано время от замыкания контактов до образования искры

SETB TR1 ;запуск счетчика Т1

SJMP MAIN ;переход на метку MAIN

RESULT: CLR TR1 ;останавливаем стчетчик Т1

CLR TR0 ;останавливаем стчетчик Т0

MOV 22H, TH1 ;записываем старший байт значения таймера в ОЗУ

MOV 23H, TL1 ;записываем младший байт значения таймера в ОЗУ

MOV 24H, TH0 ;записываем старший байт значения таймера в ОЗУ

MOV 25H, TL0 ;записываем младший байт значения таймера в ОЗУ

;производим вычисления углов

LCALL VICHISL ;вызываем подпрограмму вычисления углов

;в 18h, 19h — находится значение угла ЗКП в двоичном виде

;в 19h, 20h — находится значение угла ОЗ в двоичном виде

LCALL PREOBR2_10 ;преобразуем полученные значения в 2−10 код

;в 21h — находится значение угла ЗКП в 2−10 виде

;в 23h — находится значение угла ОЗ в 2−10 виде

CLR P1.4 ;гасим вторую пару индикаторов

MOV P2, 21h;

SETB P1.3 ;зажигаем первую пару

CLR P1.3 ;гасим первую пару индикаторов

MOV P2, 23h;

SETB P1.4 ;зажигаем вторую пару

SJMP MAIN ;

VICHISL: ;вычисляем угол замыкания контактов прерывателя

MOV R4, 21h ;младший байт временного интервала

MOV R5, 20h ;старший байт временного интервала

LCALL MULL360 ;вызываем подпрограмму уможения на 360

;в R0 находиться первый разряд произведения

;в R1 находиться второй разряд произведения

;в R2 находиться третий разряд произведения

MOV R3, 24h ;младший байт делителя

MOV R4, 25h ;старший байт делителя

LCALL DIV_3r_2r ;вызываем подпрограмму деления

;в R5 находиться младший разряд частного

;в R6 находиться старший разряд частного

MOV 18h, r5 ;

MOV 19h, r6 ;сохранили вычисленное значение угла ЗКП

MOV R4, 22h ;младший байт временного интервала

MOV R5, 23h ;старший байт временного интервала

LCALL MULL360 ;вызываем подпрограмму уможения на 360

;в R0 находиться первый разряд произведения

;в R1 находиться второй разряд произведения

;в R2 находиться третий разряд произведения

MOV R3, 24h ;младший байт делителя

MOV R4, 25h ;старший байт делителя

LCALL DIV_3r_2r ;вызываем подпрограмму деления

;в R5 находиться младший разряд частного

;в R6 находиться старший разряд частного

MOV 19h, r5 ;

MOV 20h, r6 ;сохранили вычисленное значение угла ОЗ

RET; ;возвращвемся из подпрограммы

MULL360:

mov r6, #68h ;константа 360

mov r7, #01h ;

mov 34h, #9h ;количество разрядов в 360

mov 33h, #00h ;

mov 32h, #00h ;

mov 31h, r5 ;

mov 30h, r4 ;

begin_MULL360:

mov a, r7 ;

rrc a ;

mov r7, a ;

mov a, r6 ;

rrc a ;

mov r6, a; сдвинули множитель на 1 разряд вправо.

jnb psw.7, nosum ;если в очедном бите множителя 0 то переходим по ссылке

;иначе продолжаем

clr c ;

mov a, r0 ;

add a, 30h ;

mov 30h, a ;

mov a, 31h ;

addc a, r5 ;

mov 31h, a ;

mov a, 32h ;

addc a, 32h ;

mov 32h, a ;

mov a, 33h ;

addc a, 33h ;

mov 33, a ;суммирование промежуточного результата с множителем

nosum:

clr c ;

mov a, 30h ;

rlc a ;

mov 30h, a ;

mov a, 31h ;

rlc a ;

mov 31h, a ;

mov a, 32h ;

rlc a ;

mov 32h, a ;

mov a, 33h ;

rlc a ;

mov 33h, a ;

clr c ;

;сдвинули множимое на 1 разряд влево

dec 34h ;

mov a, 34h ;

jnz begin_MULL360 ;

MOV R0, 30h ;

MOV r1, 31h ;

MOV r2, 32h ;

RET ;

DIV_3r_2r:

mov 08h, #00h; временное хранилище числителя

mov 09h, #00h; временное хранилище числителя

mov 10h, #00h; временное хранилище числителя

mov r7, #00h; регистр флагов переносов

;

———————-нормализуем делитель

clr c ;

mov a, r3 ;

rlc a ;

mov r3, a ;

mov a, r4 ;

rlc a ;

mov r4, a ;

jnc begin_DIV_3r_2r ;

mov a, r4 ;

rrc a ;

mov r4, a ;

mov a, r3 ;

rrc a ;

mov r3, a ;

clr c ;

;

———————-нормализовали

begin_DIV_3r_2r:

;

———————-из 2-го разряда числителя вычитаем

;

———————-младший разряд знаменателя

mov a, r1 ;

subb a, r3 ;

mov 09h, a ;

;

———————-при вычитании учтен заем из старшего

;

———————-разряда — С = 1

;

———————-из 3-го разряда числителя вычитаем

;

———————-старший разряд знаменателя

mov a, r2 ;

subb a, r4 ;

mov 10h, a ;

;

———————-при вычитании учтен заем из старшего

;

———————-разряда — С = 1

mov b.0, c; сохранили состояние флага перенона при вычитании С0

jnc l1; если вычитание дало положительный результат (С0=0)

jnb b.1, l2 ;если сдвиг был с переносом 0

l1:

clr c ;

mov r1, 09h ;

clr c ;

mov r2, 10h ;

clr c ;

mov a, R0 ;

rlc a ;

mov R0, a ;

mov a, r1 ;

rlc a ;

mov r1, a ;

mov a, r2 ;

rlc a ;

mov r2, a ;

mov b.1, c ;сохранили состояние флага перенона при сдвиге С1

clr c ;

mov a, r5 ;

rlc a ;

mov r5, a ;

mov a, r6 ;

rlc a ;

mov r6, a ;

mov b.2,c ;флаг окончания работы

inc r5 ;

jb b.2, e1 ;если С2 = 1

sjmp begin_DIV_3r_2r ;

l2:

clr c ;

mov a, R0 ;

rlc a ;

mov R0, a ;

mov a, r1 ;

rlc a ;

mov r1, a ;

mov a, r2 ;

rlc a ;

mov r2, a ;

mov b.1, c ;сохранили состояние флага перенона при сдвиге С1

clr c ;

mov a, r5 ;

rlc a ;

mov r5, a ;

mov a, r6 ;

rlc a ;

mov r6, a ;

mov b.2,c ;флаг окончания работы

jb b.2, e1 ;если С2 = 1

sjmp begin_DIV_3r_2r ;

e1:

RET;

PREOBR2_10:

MOV R0, 18h ;

MOV R1, 19h ;

MOV R2, 19h ;

MOV R3, 20h ;

MOV 21h, #00h ;

MOV 22h, #00h ;

MOV 23h, #00h ;

MOV 24h, #00h ;

M1: XCH A, 21h ;

ADD A, #1H ;

DA A ;

XCH A, 21h ;

CLR A ;

ADDC A, 22h ;

DA A ;

XCH A, 22h ;

XCH A, 18h ;

CLR C ;

SUBB A, #1h ;

XCH A, 18h ;

XCH A, 19h ;

SUBB A, #0h ;

MOV 19h, A ;

ORL A, 18h ;

JNZ M1 ;

M2: XCH A, 23h ;

ADD A, #1H ;

DA A ;

XCH A, 23h ;

CLR A ;

ADDC A, 24h ;

DA A ;

XCH A, 24h ;

XCH A, 19h ;

CLR C ;

SUBB A, #1h ;

XCH A, 19h ;

XCH A, 20h ;

SUBB A, #0h ;

MOV 20h, A ;

ORL A, 19h ;

JNZ M2 ;

ret; ;

end;

Показать весь текст

Список литературы

  1. http://vsystem.by.ru — вычислительные системы, проектирование вычис-лительных систем
  2. http://car-exotic.com — сайт об автомобилях российских и иностранных автозаводов
  3. http://khpi-iip.mipk.kharkiv.edu — арифметические операции.
  4. А.В. «Цифровые и микропроцессорные устройства: Учебное пособие»? Томск: Томский межвузовский центр дистанционного обра-зования, 2003.? 166 с.
  5. А.В. «Микропроцессорные устройства и системы: Учебное методическое пособие»? Томск: Томский межвузовский центр дистан-ционного образования, 2000.? 23 с
  6. А.В. «Микроконтроллеры? Это же просто! Т.1 — М.: ООО «ИД СКИМЕН», 2002, — 336 с. илл.
  7. .В., Лунин Ю. Н., Смирнов Ю. Н. и др. «Интегральные мик-росхемы: справочник» — М.: Радио и связь, 1983. — 528 с. илл.
Заполнить форму текущей работой
Купить готовую работу

ИЛИ