Чт дек 07, 2017 08:32:36
Чт дек 07, 2017 11:15:31
при условии, что сумма падений на них меньше напряжения питания. например при питании 3,6 вольта и суперярких светодиодах они оба будут погашены, если пин МК будет в третьем состоянии...КРАМ писал(а):Светодиоды нельзя будет погасить оба
Чт дек 07, 2017 22:00:05
Пт дек 08, 2017 05:05:49
Пт дек 08, 2017 05:25:48
Пт дек 08, 2017 16:21:25
// Подключение нужных библиотек
#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
#define _XTAL_FREQ 16000000 // Тактовая частота 4 МГц
#define SIGNAL 30 // Длительность сигнала в мкс
#define DELMIN 100 // Максимальная задержка в мкс
#define DELMAX 400000 // Максимальная задержка в мкс
// PIC10F322 Configuration Bit Settings
// 'C' source line config statements
// CONFIG
#pragma config FOSC = EC // Oscillator Selection bits (EC: CLKIN function enabled)
#pragma config BOREN = ON // Brown-out Reset Enable (Brown-out Reset enabled)
#pragma config WDTE = OFF // Watchdog Timer Enable (WDT enabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = OFF // MCLR Pin Function Select bit (MCLR pin function is digital input, MCLR internally tied to VDD)
#pragma config CP = ON // Code Protection bit (Program memory code protection is enabled)
#pragma config LVP = OFF // Low-Voltage Programming Enable (Low-voltage programming enabled)
#pragma config LPBOR = ON // Brown-out Reset Selection bits (BOR enabled)
#pragma config BORV = LO // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.)
#pragma config WRT = OFF // Flash Memory Self-Write Protection (Write protection off)
// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.
void Prepare(); // Функция подготовки МК
int main()
{
Prepare(); // Запуск функции подготовки
int K = 4;
while(1) // Бесконечный цикл работы
{
if(RA0 == 0 && RA1 == 1) // Проверка на нажатые кнопки
{
RA3 = 1; // Зажигаем зеленый светодиод
//srand(K); // Инициализация генератора случайных импульсов
//K = DELMIN + rand ()% DELMAX; // Присвоение псевдослучайного числа
//for(int i = 0; i <= K/60; i++) {} // Пустой цикл задержки
__delay_us(SIGNAL-4); // Определяем задержку
RA2 = 1; // Подаем на выход лог. единицу
__delay_us(SIGNAL-2); // Определяем длительность сигнала
RA2 = 0; // Подаем на выход лог. ноль
}
else
{
RA3 = 0; // Зажигаем красный светодиод
RA2 = 0; // На выход ставил лог. ноль
}
}
return 0;
}
// Функция подготовки
void Prepare()
{
TRISA = 0b0011; // Направление работы ножек порта А (вход)
PORTA = 0b0000; // очищаем порт А
OSCCON = (1<<4)|(1<<5)|(1<<6); // Установка IRCF = '111' для частоты в 16 MHz
WPUA&=~((1<<0)|(1<<1)|(1<<2)|(1<<3)); // Отключение WEAK PULL-UP
}
Пт дек 08, 2017 16:32:08
Пт дек 08, 2017 16:35:43
Пт дек 08, 2017 16:36:27
Пт дек 08, 2017 16:52:17
#pragma config MCLRE = OFF // MCLR Pin Function Select bit (MCLR pin function is digital input, MCLR internally tied to VDD) - выключено
// Подключение нужных библиотек
#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
#define _XTAL_FREQ 16000000 // Тактовая частота 4 МГц
#define SIGNAL 30 // Длительность сигнала в мкс
#define DELMIN 100 // Максимальная задержка в мкс
#define DELMAX 400000 // Максимальная задержка в мкс
// PIC10F322 Configuration Bit Settings
// 'C' source line config statements
// CONFIG
#pragma config FOSC = EC // Oscillator Selection bits (EC: CLKIN function enabled)
#pragma config BOREN = ON // Brown-out Reset Enable (Brown-out Reset enabled)
#pragma config WDTE = OFF // Watchdog Timer Enable (WDT enabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = OFF // MCLR Pin Function Select bit (MCLR pin function is digital input, MCLR internally tied to VDD)
#pragma config CP = ON // Code Protection bit (Program memory code protection is enabled)
#pragma config LVP = OFF // Low-Voltage Programming Enable (Low-voltage programming enabled)
#pragma config LPBOR = ON // Brown-out Reset Selection bits (BOR enabled)
#pragma config BORV = LO // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.)
#pragma config WRT = OFF // Flash Memory Self-Write Protection (Write protection off)
// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.
void Prepare(); // Функция подготовки МК
int main()
{
Prepare(); // Запуск функции подготовки
int K = 4;
while(1) // Бесконечный цикл работы
{
if((RA0 == 0) && (RA3 == 1)) // Проверка на нажатые кнопки
{
RA1 = 0; // Зажигаем зеленый светодиод
//srand(K); // Инициализация генератора случайных импульсов
//K = DELMIN + rand ()% DELMAX; // Присвоение псевдослучайного числа
//for(int i = 0; i <= K/60; i++) {} // Пустой цикл задержки
__delay_us(SIGNAL-4); // Определяем задержку
RA2 = 1; // Подаем на выход лог. единицу
__delay_us(SIGNAL-2); // Определяем длительность сигнала
RA2 = 0; // Подаем на выход лог. ноль
}
else
{
RA1 = 1; // Зажигаем красный светодиод
RA2 = 0; // На выход ставил лог. ноль
}
}
return 0;
}
// Функция подготовки
void Prepare()
{
TRISA = 0b1001; // Направление работы ножек порта А (вход)
PORTA = 0b0000; // очищаем порт А
OSCCON = (1<<4)|(1<<5)|(1<<6); // Установка IRCF = '111' для частоты в 16 MHz
WPUA&=~((1<<0)|(1<<1)|(1<<2)|(1<<3)); // Отключение WEAK PULL-UP
}
Пт дек 08, 2017 17:03:23
Пт дек 08, 2017 17:07:05
Пт дек 08, 2017 17:11:55
Пт дек 08, 2017 17:25:00
// Подключение нужных библиотек
#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
// Параметры микроконтроллера
#define _XTAL_FREQ 16000000 // Тактовая частота 4 МГц
// Параметры сигнала
#define SIGNAL 30 // Длительность сигнала в мкс
#define DELMIN 100 // Максимальная задержка в мкс
#define DELMAX 400000 // Максимальная задержка в мкс
// Обознаение выводов и кнопок
#define START RA0 // Кнопка запуска работы МК
#define STOP RA3 // Кнопкка остановки работы МК
#define LED RA1 // Вывод на светодиоды
#define GREEN 0 // Сигнал для зеленого светодиода
#define RED 1 // Сигнал для красного светодиода
#define GENERATOR RA2 // Выход генератора
// PIC10F322 Configuration Bit Settings
// 'C' source line config statements
// CONFIG
#pragma config FOSC = EC // Oscillator Selection bits (EC: CLKIN function enabled)
#pragma config BOREN = ON // Brown-out Reset Enable (Brown-out Reset enabled)
#pragma config WDTE = OFF // Watchdog Timer Enable (WDT enabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = OFF // MCLR Pin Function Select bit (MCLR pin function is digital input, MCLR internally tied to VDD)
#pragma config CP = ON // Code Protection bit (Program memory code protection is enabled)
#pragma config LVP = OFF // Low-Voltage Programming Enable (Low-voltage programming enabled)
#pragma config LPBOR = ON // Brown-out Reset Selection bits (BOR enabled)
#pragma config BORV = LO // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.)
#pragma config WRT = OFF // Flash Memory Self-Write Protection (Write protection off)
// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.
void Prepare(); // Функция подготовки МК
int main()
{
Prepare(); // Запуск функции подготовки
int K = 4;
while(1) // Бесконечный цикл работы
{
if((START == 0) && (STOP == 1)) // Проверка на нажатые кнопки
{
LED = 0; // Зажигаем зеленый светодиод
//srand(K); // Инициализация генератора случайных импульсов
//K = DELMIN + rand ()% DELMAX; // Присвоение псевдослучайного числа
//for(int i = 0; i <= K/60; i++) {} // Пустой цикл задержки
__delay_us(SIGNAL-4); // Определяем задержку
GENERATOR = 1; // Подаем на выход лог. единицу
__delay_us(SIGNAL-2); // Определяем длительность сигнала
GENERATOR = 0; // Подаем на выход лог. ноль
}
else
{
LED = 1; // Зажигаем красный светодиод
GENERATOR = 0; // На выход ставил лог. ноль
}
}
return 0;
}
// Функция подготовки
void Prepare()
{
TRISA = 0b1001; // Направление работы ножек порта А (вход)
PORTA = 0b0000; // очищаем порт А
OSCCON = (1<<4)|(1<<5)|(1<<6); // Установка IRCF = '111' для частоты в 16 MHz
WPUA&=~((1<<0)|(1<<1)|(1<<2)|(1<<3)); // Отключение WEAK PULL-UP
ANSELA&=~((1<<0)|(1<<1)|(1<<2));
}
Пт дек 08, 2017 17:38:22
Пт дек 08, 2017 17:43:29
Пт дек 08, 2017 17:47:27
Пт дек 08, 2017 18:01:04
Пт дек 08, 2017 18:09:14
Пт дек 08, 2017 18:38:38
17: // Подключение нужных библиотек
18: #include <stdio.h>
19: #include <stdlib.h>
20: #include <xc.h>
21:
22: // Параметры микроконтроллера
23: #define _XTAL_FREQ 16000000 // Тактовая частота 4 МГц
24:
25: // Параметры сигнала
26: #define SIGNAL 30 // Длительность сигнала в мкс
27: #define DELMIN 100 // Максимальная задержка в мкс
28: #define DELMAX 400000 // Максимальная задержка в мкс
29:
30: // Обознаение выводов и кнопок
31: #define START RA0 // Кнопка запуска работы МК
32: #define STOP RA3 // Кнопкка остановки работы МК
33: #define LED RA1 // Вывод на светодиоды
34: #define GREEN 0 // Сигнал для зеленого светодиода
35: #define RED 1 // Сигнал для красного светодиода
36: #define GENERATOR RA2 // Выход генератора
37:
38: // PIC10F322 Configuration Bit Settings
39:
40: // 'C' source line config statements
41:
42: // CONFIG
43: #pragma config FOSC = EC // Oscillator Selection bits (EC: CLKIN function enabled)
44: #pragma config BOREN = ON // Brown-out Reset Enable (Brown-out Reset enabled)
45: #pragma config WDTE = OFF // Watchdog Timer Enable (WDT enabled)
46: #pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
47: #pragma config MCLRE = OFF // MCLR Pin Function Select bit (MCLR pin function is digital input, MCLR internally tied to VDD)
48: #pragma config CP = ON // Code Protection bit (Program memory code protection is enabled)
49: #pragma config LVP = OFF // Low-Voltage Programming Enable (Low-voltage programming enabled)
50: #pragma config LPBOR = ON // Brown-out Reset Selection bits (BOR enabled)
51: #pragma config BORV = LO // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.)
52: #pragma config WRT = OFF // Flash Memory Self-Write Protection (Write protection off)
53:
54: // #pragma config statements should precede project file includes.
55: // Use project enums instead of #define for ON and OFF.
56:
57: void Prepare(); // Функция подготовки МК
58:
59: int main()
60: {
61: Prepare(); // Запуск функции подготовки
01E7 21DC CALL 0x1DC
62: int K = 4;
01E8 3004 MOVLW 0x4
01E9 00C2 MOVWF K
01EA 3000 MOVLW 0x0
01EB 00C3 MOVWF 0x43
63: LED = RED;
01EC 1485 BSF PORTA, 0x1
64: while(1) // Бесконечный цикл работы
65: {
66: if((START == 0) && (STOP == 1)) // Проверка на нажатые кнопки
01ED 29FB GOTO 0x1FB
01EE 1D85 BTFSS PORTA, 0x3
01EF 29FA GOTO 0x1FA
01FB 1C05 BTFSS PORTA, 0x0
01FC 29EE GOTO 0x1EE
67: {
68: //LED = GREEN; // Зажигаем зеленый светодиод
69: //srand(K); // Инициализация генератора случайных импульсов
70: //K = DELMIN + rand ()% DELMAX; // Присвоение псевдослучайного числа
71: //for(int i = 0; i <= K/60; i++) {} // Пустой цикл задержки
72: __delay_us(SIGNAL-4); // Определяем задержку
01F0 3022 MOVLW 0x22
01F1 00C1 MOVWF 0x41
01F2 0BC1 DECFSZ 0x41, F
01F3 29F2 GOTO 0x1F2
01F4 0000 NOP
73: GENERATOR = 1; // Подаем на выход лог. единицу
01F5 1505 BSF PORTA, 0x2
74: __delay_us(SIGNAL-2); // Определяем длительность сигнала
01F6 3025 MOVLW 0x25
01F7 00C1 MOVWF 0x41
01F8 0BC1 DECFSZ 0x41, F
01F9 29F8 GOTO 0x1F8
75: GENERATOR = 0; // Подаем на выход лог. ноль
01FA 1105 BCF PORTA, 0x2
76: }
77: else
01FD 29FA GOTO 0x1FA
78: {
79: //LED = RED; // Зажигаем красный светодиод
80: GENERATOR = 0; // На выход ставил лог. ноль
81: }
82: }
83: return 0;
84: }
85:
86: // Функция подготовки
87: void Prepare()
88: {
89: TRISA = 0b1001; // Направление работы ножек порта А (вход)
01DC 3009 MOVLW 0x9
01DD 0086 MOVWF TRISA
90: PORTA = 0b0000; // очищаем порт А
01DE 0185 CLRF PORTA
91: OSCCON = (1<<4)|(1<<5)|(1<<6); // Установка IRCF = '111' для частоты в 16 MHz
01DF 3070 MOVLW 0x70
01E0 0090 MOVWF OSCCON
92: WPUA&=~((1<<0)|(1<<1)|(1<<2)|(1<<3)); // Отключение WEAK PULL-UP
01E1 30F0 MOVLW 0xF0
01E2 00C0 MOVWF __pcstackBANK0
01E3 0840 MOVF __pcstackBANK0, W
01E4 0589 ANDWF WPUA, F
93: ANSELA = 0; // Отключение аналоговой части
01E5 0188 CLRF ANSELA
94: }
01E6 0008 RETURN
// Подключение нужных библиотек
#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
// Параметры микроконтроллера
#define _XTAL_FREQ 16000000 // Тактовая частота 4 МГц
// Параметры сигнала
#define SIGNAL 30 // Длительность сигнала в мкс
#define DELMIN 100 // Максимальная задержка в мкс
#define DELMAX 400000 // Максимальная задержка в мкс
// Обознаение выводов и кнопок
#define BUTTON RA0 // Кнопка МК
#define LED RA1 // Вывод на светодиоды
#define GREEN 0 // Сигнал для зеленого светодиода
#define RED 1 // Сигнал для красного светодиода
#define GENERATOR RA2 // Выход генератора
// PIC10F322 Configuration Bit Settings
// 'C' source line config statements
// CONFIG
#pragma config FOSC = EC // Oscillator Selection bits (EC: CLKIN function enabled)
#pragma config BOREN = ON // Brown-out Reset Enable (Brown-out Reset enabled)
#pragma config WDTE = OFF // Watchdog Timer Enable (WDT enabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = OFF // MCLR Pin Function Select bit (MCLR pin function is digital input, MCLR internally tied to VDD)
#pragma config CP = ON // Code Protection bit (Program memory code protection is enabled)
#pragma config LVP = OFF // Low-Voltage Programming Enable (Low-voltage programming enabled)
#pragma config LPBOR = ON // Brown-out Reset Selection bits (BOR enabled)
#pragma config BORV = LO // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.)
#pragma config WRT = OFF // Flash Memory Self-Write Protection (Write protection off)
// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.
void Prepare(); // Функция подготовки МК
int main()
{
Prepare(); // Запуск функции подготовки
int K = 4;
while(1) // Бесконечный цикл работы
{
if(BUTTON == 1) // Проверка на нажатые кнопки
{
LED = GREEN; // Зажигаем зеленый светодиод
//srand(K); // Инициализация генератора случайных импульсов
//K = DELMIN + rand ()% DELMAX; // Присвоение псевдослучайного числа
//for(int i = 0; i <= K/60; i++) {} // Пустой цикл задержки
__delay_us(SIGNAL-4); // Определяем задержку
GENERATOR = 1; // Подаем на выход лог. единицу
__delay_us(SIGNAL-2); // Определяем длительность сигнала
GENERATOR = 0; // Подаем на выход лог. ноль
}
else
{
LED = RED; // Зажигаем красный светодиод
GENERATOR = 0; // На выход ставил лог. ноль
}
}
return 0;
}
// Функция подготовки
void Prepare()
{
TRISA = 0b1001; // Направление работы ножек порта А (вход)
PORTA = 0b0000; // очищаем порт А
OSCCON = (1<<4)|(1<<5)|(1<<6); // Установка IRCF = '111' для частоты в 16 MHz
WPUA&=~((1<<0)|(1<<1)|(1<<2)|(1<<3)); // Отключение WEAK PULL-UP
ANSELA = 0; // Отключение аналоговой части
}