Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $NOMOD51;Отключение библиотеки регистров стандартного 51-го контроллера
- $include (C8051F120.h);Подключение библиотеки регистров C8051F120
- SW_SHD EQU 30h;Объявление переменной SW_SHD
- LED BIT P1.6;Объявление переменной LED
- CSEG AT 0;Указывает место в памяти, где должна располагаться программа
- SW EQU P3;
- LJMP MAIN;Переход на MAIN
- TABLE:;
- movc a,@a+pc;Чтение значений длительности импульсов
- ret;
- db 02h,04h,08h,10h,20h,40h,80h,0FFh; массив уровней яркости
- Reset_Sources_Init:
- mov WDTCN, #0DEh;Выключение сторожевого таймера
- mov WDTCN, #0ADh
- ret
- PCA_Init:;Настройка PCA массива
- mov SFRPAGE, #PCA0_PAGE
- mov PCA0CN, #040h;
- mov PCA0CPM4, #042h;
- mov PCA0CPL4, #080h;
- mov PCA0CPH4, #080h;
- ret
- Port_IO_Init:;Настройка порта P1.6 на push-pull выход
- mov SFRPAGE, #CONFIG_PAGE
- mov P1MDOUT, #040h
- mov XBR0, #02Fh;
- mov XBR2, #044h
- ret
- Init_Device:;Настройка микроконтроллера
- lcall Reset_Sources_Init;
- lcall PCA_Init;
- lcall Port_IO_Init;
- ret
- MAIN:
- CALL Init_Device; Вызов функции инициализации микроконтроллера
- CLR LED;Выключение светодиода
- mov a,P3;Чтение и сохранение исходного состояния кнопки
- anl a,#80h;
- mov SW_SHD,a;
- PWM:
- mov r7,#08h;
- Loop0:
- mov a,P3;
- anl a,#80h;
- cjne a,SW_SHD,SKIP;
- sjmp Loop0;
- SKIP:
- mov SW_SHD, a;Сохранение нового состояния кнопки
- jnz Loop0;
- mov a, r7;
- acall TABLE;Чтение текущей длительности импульса
- mov PCA0CPH4,a;старший байт 4 модуля (соответствуетР1.6)сравнения захвата, запись значения уровня яркости из переменной в регистр
- djnz r7,Loop0;
- jmp PWM;
- end
Advertisement
RAW Paste Data
Copied
Advertisement