Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- include <stdio.h>//подключение заголовочного файла содержащий определения макросов, константы и объявления функций и типов, используемых для различных операций стандартного ввода и вывода
- #include "C8051F120.h"//установка файлов определения регистра;
- sbit LED = P1^6;//Объявление переменной LED
- cnt = 0x06;
- int FLAG = 0x01;//Объявление переменной Flag
- // 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;
- }
- void Interrupts_Init()
- {
- IE = 0x82; //Включение общих прерывания и прерываний с установкой
- }
- // 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 Timer_ISR(void) interrupt 1 //Обработчик прерываний
- {
- TF0 = 0;//очистка флага переполнения
- cnt --;
- if (cnt == 0x00)//Если счетчик 0, то записывается в счетчик число прерываний
- {
- cnt = 0x06;//число прерываний
- FLAG=0x01;
- }
- }
- void main(void)
- {
- Init_Device();
- TR0 = 1; //включение таймера
- while (1)
- {
- if(FLAG==0x01)
- {
- FLAG=0x00;
- LED=~LED;// смена состояния LED
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement