Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>//подключение библиотек с функциями стандартного ввода/вывода
- #include "C8051F120.h"//Подключение библиотеки регистров C8051F120
- sbit SW=P3^7;//Объявление переменной SW
- sbit LED=P1^6;//Объявление переменной LED
- // Peripheral specific initialization functions,
- // Called from the Init_Device() function
- int i=7;//Объявление переменной номера элемента в массиве яркости
- int SW_SHD; // Объявление старого состояния кнопки
- int k;//Объявление переменной значений периода
- int array [8] = {0x2,0x4,0x8,0x10,0x20,0x40,0x80,0xFF};//массив уровней яркости
- void Reset_Sources_Init()
- {
- WDTCN = 0xDE;// Выключение сторожевого таймера WDT
- WDTCN = 0xAD;
- }
- void PCA_Init()
- {
- SFRPAGE = PCA0_PAGE;//вызов страницы настойки PCA
- PCA0CN = 0x40;//настройкарежима 8-битного ШИМ-модулятора
- PCA0CPH4 = array[i];
- PCA0CPM4 = 0x42; //модуль захвата-сравнения
- PCA0CPL4 = 0x80;
- PCA0CPH4 = 0x80;
- }
- void Port_IO_Init()
- {
- SFRPAGE = CONFIG_PAGE;// Настройка порта P1.6 на push-pull выход
- P1MDOUT = 0x40;
- XBR0 = 0x2F;
- XBR2 = 0x44;
- }
- void Init_Device(void) //Настройка микроконтроллера
- {
- Reset_Sources_Init();
- Port_IO_Init();
- PCA_Init();
- }
- void main(void) {
- Init_Device();//Вызов функции инициализации микроконтроллера
- LED = 0;
- SW_SHD = SW;// Сохранение исходного состояние кнопки
- while (1){
- if (SW != SW_SHD){// Проверка неравенства старого и нового состояния кнопки
- SW_SHD = SW;// Запоминание состояния кнопки
- if (SW_SHD == 0){
- i = (i + 1)%8;// Итерация по массиву индексов
- PCA0CPH4 = array[i];//запись значения уровня яркости из переменной в регистр
- }}}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement