Advertisement
artones

LR_8_Ass

Jun 2nd, 2021
473
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $NOMOD51;Отключение библиотеки регистров стандартного 51-го контроллера
  2. $include (C8051F120.h);Подключение библиотеки регистров C8051F120
  3.  
  4. SW_SHD EQU 30h;Объявление переменной SW_SHD
  5. LED BIT P1.6;Объявление переменной LED
  6. CSEG AT 0;Указывает место в памяти, где должна располагаться программа
  7. SW EQU P3;
  8. LJMP MAIN;Переход на MAIN
  9.  
  10. TABLE:;
  11. movc a,@a+pc;Чтение значений длительности импульсов
  12. ret;
  13. db 02h,04h,08h,10h,20h,40h,80h,0FFh; массив уровней яркости
  14.  
  15. Reset_Sources_Init:
  16. mov WDTCN, #0DEh;Выключение сторожевого таймера
  17. mov WDTCN, #0ADh
  18. ret
  19.  
  20. PCA_Init:;Настройка PCA массива
  21. mov SFRPAGE, #PCA0_PAGE
  22. mov PCA0CN, #040h;
  23. mov PCA0CPM4, #042h;
  24. mov PCA0CPL4, #080h;
  25. mov PCA0CPH4, #080h;
  26. ret
  27.  
  28. Port_IO_Init:;Настройка порта P1.6 на push-pull выход
  29. mov SFRPAGE, #CONFIG_PAGE
  30. mov P1MDOUT, #040h
  31. mov XBR0, #02Fh;
  32. mov XBR2, #044h
  33. ret
  34.  
  35. Init_Device:;Настройка микроконтроллера
  36. lcall Reset_Sources_Init;
  37. lcall PCA_Init;
  38. lcall Port_IO_Init;
  39. ret
  40.  
  41. MAIN:
  42. CALL Init_Device; Вызов функции инициализации микроконтроллера
  43. CLR LED;Выключение светодиода
  44. mov a,P3;Чтение и сохранение исходного состояния кнопки
  45. anl a,#80h;
  46. mov SW_SHD,a;
  47.  
  48. PWM:
  49. mov r7,#08h;
  50.  
  51. Loop0:
  52. mov a,P3;
  53. anl a,#80h;
  54. cjne a,SW_SHD,SKIP;
  55. sjmp Loop0;
  56.  
  57. SKIP:
  58. mov SW_SHD, a;Сохранение нового состояния кнопки
  59. jnz Loop0;
  60. mov a, r7;
  61. acall TABLE;Чтение текущей длительности импульса
  62. mov PCA0CPH4,a;старший байт 4 модуля (соответствуетР1.6)сравнения захвата, запись значения уровня яркости из переменной в регистр
  63. djnz r7,Loop0;
  64. jmp PWM;
  65. end
Advertisement
RAW Paste Data Copied
Advertisement