ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.11.2023
Просмотров: 77
Скачиваний: 5
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
-
Создаем новый файл «Lab3.pdsprj», при создании выбираем мк 80С31 и компилятор ASEM-51. -
Открываем панель Schematic Capture, в пункте меню Library –> Pick parts from libraries находим нужные компоненты(три кнопки, земля, семь резисторов, осциллограф, семи сегментный индикатор и генератор тактовых импульсов) для нашей электро–схемы(Рисунок 1) и размещаем их на холсте. -
Подключим наши компоненты к порту P2. к выходу 2 подключаем кнопку S3, которая будет останавливать работу семи сегментного индикатора, к выходу 1 кнопку S2 которая будет включать режим работы убывание для семи сегментного индикатора, к выходу 0 кнопку S1 которая будет включать режим работы возрастание для семи сегментного индикатора. К порту P0 подключим семи сегментный индикатор, а к выходу 0 порта P3 подключим генератор тактовых имплуьсов. -
Нарисуем блок схему работы алгоритма для работы кнопок(Рисунок 2) -
Напишем код для работы нашей схемы(Страница 4) -
Осциллограф сломался в проекте, и не отображал своё окно во время симуляции работы МК -
Приложения:
Рисунок 1 – Электрическая схема к лабораторной работе №3, управление светодиодами с помощью трёх кнопок (После нажатия кнопки S1)Рисунок 2 – Блок схема алгоритма работы устройстваКод программы управления семи-сегментным индикатором с помощью трёх кнопок:;====================================================================; Main.asm file generated by New Project wizard;; Created: Вт май 23 2023; Processor: 80C31; Compiler: ASEM-51 (Proteus);====================================================================$NOMOD51$INCLUDE (8051.MCU);====================================================================; DEFINITIONS;====================================================================;====================================================================; VARIABLES;====================================================================;====================================================================; RESET and INTERRUPT VECTORS;====================================================================; Reset Vectorjmp Start;====================================================================; CODE SEGMENT;====================================================================;====================================================================; Справка;====================================================================; p3.0 выход подключённый к генератору тактовых импульсов; p2.0 выход подключёный к кнопке S1 (включить индикатор (возрастающие цифры)), при нажатии которой поступает сигнал 0; p2.1 выход подключённый к кнопке S2 (включить индикатор (убывающие цифры)), при нажатии которой поступает сигнал 0; p2.0 выход подключённый к кнопке S3 (Поставить на паузу изменения индикатора), при нажатии которой поступает сигнал 0; ii... - метки используемые для работы индикатора в режиме возрастание; id... - метки используемые для работы индикатора в режиме убывание; is../ds.. - метки используемые в режиме пауза;==================================================================== Start:mov p3, #00000000bmov p2, #00000111b ;включить кнопки s1, s2, s3mov p1, #01111110b ;0 по умолчаниюii:jnb p2.0, ii1 ;Если не нажата кнопка, S1 (++) перейти на метку idjmp id;--------------------------------------------------------------------------------------------------ii1:mov p2, #00000110b ;выключить кнoпку S1;==========================================================================jb p2.2, ii11 ;Если кнопка S3(stop) не нажата, перейти к метке ii11mov p2, #00000011b ;Выключить кнопку S3 is1:jb p2.0, is12 ;Если кнопка S1 не нажата, перейти на is12
mov p2, #00000110b ;Выключить кнопку S1jmp ii12 is12:jb p2.1, is1 ; Если кнопка S2 не нажата, перейти на is1mov p2, #00000101b ;Выключить кнопку S2jmp id12;==========================================================================ii11:jb p2.1, ii12 ;Если нажата кнопка S2 (--) то выключить её и перейти на метку id0(отображает цифру 1)mov p2, #00000101b ; Выключить кнопку S2jmp id0;==========================================================================ii12:jb p3.0, ii1 ;Перейти на метку ii1, если генератор тактового импульса сейчас даёт 1mov p1, #00000110b ;1;-------------------------------------------------------------------------------------------------- ii2:jb p2.2, ii21mov p2, #00000011bis2:jb p2.0, is21mov p2, #00000110bjmp ii21 is21:jb p2.1, is2mov p2, #00000101bjmp id02;==========================================================================ii21:jb p2.1, ii22mov p2, #00000101bjmp id9ii22:jnb p3.0, ii2 ;Перейти на метку ii2, если генератор тактового импульса сейчас даёт 0mov p1, #01101101b ;2;-------------------------------------------------------------------------------------------------- ii3: jb p2.2, ii31mov p2, #00000011bis3:jb p2.0, is31mov p2, #00000110bjmp ii31 is31:jb p2.1, is3mov p2, #00000101bjmp id92;==========================================================================ii31:jb p2.1, ii32mov p2, #00000101bjmp id8ii32:jb p3.0, ii3mov p1, #01001111b ;3;-------------------------------------------------------------------------------------------------- ii4: jb p2.2, ii41mov p2, #00000011bis4:jb p2.0, is41mov p2, #00000110bjmp ii41 is41:jb p2.1, is4mov p2, #00000101bjmp id82;==========================================================================ii41:jb p2.1, ii42mov p2, #00000101bjmp id7ii42:jnb p3.0, ii4mov p1, #00010111b ;4;-------------------------------------------------------------------------------------------------- ii5: jb p2.2, ii51mov p2, #00000011bis5:jb p2.0, is51mov p2, #00000110bjmp ii51 is51:jb p2.1, is5mov p2, #00000101bjmp id72;==========================================================================ii51:jb p2.1, ii52mov p2, #00000101bjmp id6ii52:jb p3.0, ii5mov p1, #01011011b ;5;-------------------------------------------------------------------------------------------------- ii6: jb p2.2, ii61mov p2, #00000011bis6:jb p2.0, is61mov p2, #00000110bjmp ii61 is61:jb p2.1, is6mov p2, #00000101bjmp id62;==========================================================================ii61:jb p2.1, ii62mov p2, #00000101bjmp id5ii62:jnb p3.0, ii6mov p1, #01111011b ;6;-------------------------------------------------------------------------------------------------- ii7: jb p2.2, ii71mov p2, #00000011bis7:jb p2.0, is71mov p2, #00000110bjmp ii71 is71:jb p2.1, is7mov p2, #00000101bjmp id52;==========================================================================ii71:jb p2.1, ii72mov p2, #00000101bjmp id4ii72:jb p3.0, ii7mov p1, #00001110b ;7 ;-------------------------------------------------------------------------------------------------- ii8: jb p2.2, ii81mov p2, #00000011bis8:jb p2.0, is81mov p2, #00000110bjmp ii81 is81:
jb p2.1, is8mov p2, #00000101bjmp id42;==========================================================================ii81:jb p2.1, ii82mov p2, #00000101bjmp id3ii82:jnb p3.0, ii8mov p1, #01111111b ;8;-------------------------------------------------------------------------------------------------- ii9: jb p2.2, ii91mov p2, #00000011bis9:jb p2.0, is91mov p2, #00000110bjmp ii91 is91:jb p2.1, is9mov p2, #00000101bjmp id32;==========================================================================ii91:jb p2.1, ii92mov p2, #00000101bjmp id2ii92:jb p3.0, ii9mov p1, #01011111b ;9;-------------------------------------------------------------------------------------------------- ii0: jb p2.2, ii01mov p2, #00000011bis0:jb p2.0, is01mov p2, #00000110bjmp ii01 is01:jb p2.1, is0mov p2, #00000101bjmp id22;==========================================================================ii01:jb p2.1, ii02mov p2, #00000101bjmp id1ii02:jnb p3.0, ii0mov p1, #01111110b ;0;--------------------------------------------------------------------------------------------------;==================================================================================================;-------------------------------------------------------------------------------------------------- id:jnb p2.1, id1 ;Если не нажата кнопка, S2 (--) перейти на метку iijmp ii;--------------------------------------------------------------------------------------------------;==================================================================================================;--------------------------------------------------------------------------------------------------id1:mov p2, #00000101b ;выключить кнoпку S2jb p2.2, id11mov p2, #00000011bds1:jb p2.0, ds11mov p2, #00000110bjmp id11 ds11:jb p2.1, ds1mov p2, #00000101bjmp ii12;==========================================================================id11:jb p2.0, id12mov p2, #00000110bjmp ii0id12:jb p3.0, id1mov p1, #01111110b ;0;-------------------------------------------------------------------------------------------------- id2:jb p2.2, id21mov p2, #00000011bds2:jb p2.0, ds21mov p2, #00000110bjmp id21 ds21:jb p2.1, ds2mov p2, #00000101bjmp ii02;========================================================================== id21:jb p2.0, id22mov p2, #00000110bjmp ii9id22:jnb p3.0, id2mov p1, #01011111b ;9;-------------------------------------------------------------------------------------------------- id3: jb p2.2, id31mov p2, #00000011bds3:jb p2.0, ds31mov p2, #00000110bjmp id31 ds31:jb p2.1, ds3mov p2, #00000101bjmp ii92;==========================================================================id31:jb p2.0, id32mov p2, #00000110bjmp ii8id32:jb p3.0, id3mov p1, #01111111b ;8;-------------------------------------------------------------------------------------------------- id4: jb p2.2, id41mov p2, #00000011bds4:jb p2.0, ds41mov p2, #00000110bjmp id41 ds41:jb p2.1, ds4mov p2, #00000101bjmp ii82;==========================================================================id41:jb p2.0, id42mov p2, #00000110bjmp ii7id42:jnb p3.0, id4mov p1, #00001110b ;7;-------------------------------------------------------------------------------------------------- id5: jb p2.2, id51mov p2, #00000011bds5:jb p2.0, ds51mov p2, #00000110bjmp id51
ds51:jb p2.1, ds5mov p2, #00000101bjmp ii72;==========================================================================id51:jb p2.0, id52mov p2, #00000110bjmp ii6id52:jb p3.0, id5mov p1, #01111011b ;6;-------------------------------------------------------------------------------------------------- id6: jb p2.2, id61mov p2, #00000011bds6:jb p2.0, ds61mov p2, #00000110bjmp id61 ds61:jb p2.1, ds6mov p2, #00000101bjmp ii62;==========================================================================id61:jb p2.0, id62mov p2, #00000110bjmp ii5id62:jnb p3.0, id6mov p1, #01011011b ;5;-------------------------------------------------------------------------------------------------- id7: jb p2.2, id71mov p2, #00000011bds7:jb p2.0, ds71mov p2, #00000110bjmp id71 ds71:jb p2.1, ds7mov p2, #00000101bjmp ii52;==========================================================================id71:jb p2.0, id72mov p2, #00000110bjmp ii4id72:jb p3.0, id7mov p1, #00010111b ;4;-------------------------------------------------------------------------------------------------- id8: jb p2.2, id81mov p2, #00000011bds8:jb p2.0, ds81mov p2, #00000110bjmp id81 ds81:jb p2.1, ds8mov p2, #00000101bjmp ii42;==========================================================================id81:jb p2.0, id82mov p2, #00000110bjmp ii3id82:jnb p3.0, id8mov p1, #01001111b ;3;-------------------------------------------------------------------------------------------------- id9: jb p2.2, id91mov p2, #00000011bds9:jb p2.0, ds91mov p2, #00000110bjmp id91 ds91:jb p2.1, ds9mov p2, #00000101bjmp ii32;==========================================================================id91:jb p2.0, id92mov p2, #00000110bjmp ii2id92:jb p3.0, id9mov p1, #01101101b ;2;-------------------------------------------------------------------------------------------------- id0: jb p2.2, id01mov p2, #00000011bds0:jb p2.0, ds01mov p2, #00000110bjmp id01 ds01:jb p2.1, ds0mov p2, #00000101bjmp ii22;==========================================================================id01:jb p2.0, id02mov p2, #00000110bjmp ii1id02:jnb p3.0, id0mov p1, #00000110b ;1;--------------------------------------------------------------------------------------------------jmp iiis:mov p2, #00000111b ;включить все кнопки (Остановить смену цифр)jmp ii;====================================================================ENDВывод: на практике были закреплены теоретические знания по работе со средой автоматизированного проектирования Proteus 8.7.
Ризнык