Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>//подключение заголовочного файла содержащий определения макросов, константы и объявления функций и типов, используемых для различных операций стандартного ввода и вывода
- #include "C8051F120.h" // Подключение библиотеки регистров C8051F12;
- sbit LED = P1^6;//Объявление переменной LED
- int array [8] = {0x2,0x4,0x8,0x10,0x20,0x40,0x80,0xFF};//задание массива со значениями уровней яркости свечения светодиода
- int i; //Объявление переменной номера элемента в массиве яркости
- int j; //Объявление переменной числа повторений периода ШИМ
- int k; //Объявление переменной значений период
- // Peripheral specific initialization functions,
- // Called from the Init_Device() function
- void Reset_Sources_Init()
- {
- WDTCN = 0xDE; //Выключение WDT
- WDTCN = 0xAD;
- }
- void Timer_Init()
- {
- SFRPAGE = TIMER01_PAGE;
- TCON = 0x10;
- TMOD = 0x01; // установка таймера в 16-ти разрядный режим
- }
- void Port_IO_Init()
- {
- SFRPAGE = CONFIG_PAGE; // Настройка порта P1.6 на push-pull выход
- P1MDOUT = 0x40;
- XBR2 = 0x40;
- }
- // Initialization function for device,
- // Call Init_Device() from your main program
- void Init_Device(void) // настройка микроконтроллера
- {
- Reset_Sources_Init();
- Timer_Init();
- Port_IO_Init();
- Interrupts_Init();
- void main(void)
- {
- Init_Device();; //Вызов функции инициализации микроконтроллер
- LED=0;
- while(1)
- {
- for (i =0;i<8;i++) // количество уровней
- {
- for (j =0;j<=255;j++)//количество периодов ШИМ
- {
- for(k =0;k<=255;k++)//Формирование периода ШИМ
- {
- if(array[i]<=k)
- LED=1; ; //определение времени, сколько светодиод будет включённым и выключенным за один период ШИМ
- else
- LED=0;
- }
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment