-
Постов
422 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Блоги
Сообщения, опубликованные Desert _Eagl.5
-
-
дак у меня несколько подпрограмм( до 30 штук), с одной подпрограммой и без прерывания сделать можно.
0 -
Здраствуйте
Немогу понять как реализовать следующий алгоритм: есть кнопка, она замыкает пин контроллера на землю, этот же пин подтянут к + через резистор. Вообщем хочу сделать структуру CASE, которая будет управляться этой кнопкой. Так вот как можно реализовать такое?
Опрос кнопки делаю так
m1: setb p1.0 mov c, p1.0 jc m2 call функция jmp m1 m2: call функция jmp m1
И есть вот такая реализация вышеописанного алгоритма, которая не работает из за того что некоторые функции непонимает Keil c51
mov ax,I cmp ax,0 ; проверка на 0 jne not0 call case0 jmp endcase not0: cmp ax,1 ; проверка на 1 jne not1 call case1 jmp endcase not1: cmp ax,2 ; проверка на 2 jne not2 call case2 not2: endcase:
еще более лучший вариант
mov bx,I shl bx,1 jmp cs:jump_table[bx] jump_table dw foo0,foo1,foo2 ; таблица переходов foo0: call case0 jmp endcase foo1: call case1 jmp endcase foo2: call case2 jmp endcase
0 -
Китайские
А чем вас китайские смущают? Просто нада отличать подвальные от китайских... Как вариант можно выпаивать из бп пк...
0 -
настоящие джедаи паяют без этих приблуд
4 -
блин ну че вы велосипед изобретаете, вот пара схем зарядок
0 -
ну да только LCD_RS это пин порта который может быть 0 и 1 в зависимости от того чему равно RS. Кароче вопрос снят, данную траблу решили.
0 -
Понятно, буду иметь в виду.
0 -
Спасибо, за столь ценную информацию!
0 -
Здраствуйте.
Ктонибудь в курсе как работать с uart на низком уровне( ассемблер) в AT89C51 ?
0 -
-
Я ни под кого не кошу
ммм фото в студию где вы с этим телевизором и паяльником в руках, сразу большинсво наездов отпадут....
И нах там огород на этой бандуре лепить?А кто туда смотреть будет? Если нет возможности поставить иморт то уж лучше КТ чем ничего... Всего то нада проковырять 2 дырки в радиаторе и подложку вырезать...
0 -
кароче возми другую микросхему, может быть горелая у тебя..
0 -
относительно минуса кажется. или плюса.. два дня назад дело было
в таком случае надо поновой изучать основы радиоэлектроники.....
-1 -
дак все электролитические конденсаторы заменены были, остальное целое, вот я и предположил что в трансе кз.
0 -
в трансе кз значит
0 -
здраствуйте, чем можно прошить память типа 24C512? Хочу использовать для хранения массивов картинок.
0 -
наврятле, там железо непотянет.... А вообще недавно заметил что телефон на андроиде у нас в барнауле можно купить за 1000р и выше(huawei).
0 -
Здраствуйте. Вообщем есть код для инициализации дисплея, проблема в том что не работают
#define
вставки, при компиляции пишет error: lvalue required as left operand of assignment. Кароче говоря я стал заменять эти вставки в коде просто вот такими конструкциями
GPIO_ResetBits(GPIOA,GPIO_Pin_6);
, ошибки исправились. Но появилась следующая проблема с
LCD_RS=RS;
, заменил на
GPIO_Pin_5= RS;
и компилятор всеравно выдает эту ошибку. Как можно здесь поступить ?
#define LCD_PORT GPIOA #define LCD_CS 3 #define LCD_RESET 4 #define LCD_RS 5 #define LCD_CLK 6 #define LCD_DATA 7 //Команда/Данные #define CMD 0 #define DAT 1 char RS_old; void LCD_init(void) { LCD_RESET = 0; delay_ms(500); LCD_RESET = 1; delay_ms(500); Send_to_lcd(CMD, 0x01); //Программный сброс Send_to_lcd(CMD, 0x36); //Memory Access Control (Направление заполнения области дисплея (памяти): 0bVHRXXXXX, V - заполнение по вертикали (0 - сверху-вниз, 1 - снизу-вверх), //H - заполнение по горизонтали (0 - слева-направо, 1 - справа-налево), R - меняются местами строки и столбцы (при этом заполнение остается сверху-вниз, слева-направо)) Send_to_lcd(DAT, 0x00); Send_to_lcd(CMD, 0x11); //Выход из спящего режима delay_ms(20); Send_to_lcd(CMD, 0x3a); //Установка цветовой палитры #ifdef _8_BIT_COLOR Send_to_lcd(DAT, 0x02); //Байт на пиксель 256 цветов #else Send_to_lcd(DAT, 0x05); //Два байта на пиксель 65536 цветов #endif delay_ms(20); Send_to_lcd(CMD, 0x29); //Включение дисплея } //=============================================================== //Функция записи команды/данных в LCD (RS==0 - команда, RS==1 - данные) //=============================================================== void Send_to_lcd (unsigned char RS, unsigned char data) { //unsigned char count; LCD_CLK = 0; LCD_DATA = 0; if ((RS_old != RS) || (!RS_old && !RS)) //проверяем старое значение RS (если поступают одни команды то дергаем CS) { LCD_CS=1; // Установка CS LCD_RS=RS; LCD_CS=0; // Сброс CS } ****************************************************************************** запись байта в дисплей //****************************************************************************** LCD_DATA = 0; if ((data & 128) == 128) LCD_DATA = 1; LCD_CLK=1; LCD_CLK=0; LCD_DATA = 0; if ((data & 64) == 64) LCD_DATA = 1; LCD_CLK=1; LCD_CLK=0; LCD_DATA = 0; if ((data & 32) == 32) LCD_DATA = 1; LCD_CLK=1; LCD_CLK=0; LCD_DATA = 0; if ((data & 16) ==16) LCD_DATA = 1; LCD_CLK=1; LCD_CLK=0; LCD_DATA = 0; if ((data & 8) == 8) LCD_DATA = 1; LCD_CLK=1; LCD_CLK=0; LCD_DATA = 0; if ((data & 4) == 4) LCD_DATA = 1; LCD_CLK=1; LCD_CLK=0; LCD_DATA = 0; if ((data & 2) == 2) LCD_DATA = 1; LCD_CLK=1; LCD_CLK=0; LCD_DATA = 0; if ((data & 1) == 1) LCD_DATA = 1; LCD_CLK=1; LCD_CLK=0; RS_old=RS; //запоминаю значение RS LCD_DATA = 0; }
Спасибо!
0 -
столкнулся с очень плохой документацией
ищите нормальную, на офф сайте полюбому должно быть что то, а разобраться можно во всем!!
вот например инфа есть http://www.gaw.ru/html.cgi/txt/publ/micros/stm32w.htm
0 -
дак статьи же щас не оплачиваются, или уже появилась данная функция ?
0 -
Вот теперь понятно о чем речь идет.
0 -
Смысл всех этих извращений, вы что на зоне? Проще называть вещи своими именами чем коверкать и придумывать чето...
9 -
Через плечо мля!!! Тема ваще ни о чем, ни описания, ни чего нет....
0 -
Переключение С Помощью 1 Одной Кнопки, At89C51
в x51
Опубликовано · Изменено пользователем Desert _Eagl.5
вообщем применил cjne
в итоге имеем case на 255 ячеек...
всем спасибо за участие