реклама на сайте
подробности

 
 
> Таблицы, как сделать на Си?
Algol
сообщение Jul 31 2006, 08:28
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 140
Регистрация: 7-04-05
Из: Россия, Владимир
Пользователь №: 3 941



День добрый!
Недавно начал осваивать Си (HT-PICC) и все было хорошо, пока мне не приспичило сделать таблицу перекодировки. На асме я писал вот так, все просто и понятно - перед вызовом процедуры кидаем в W цифру, образ которой хотим получить

TABLE
ADDWF PCL,1
RETLW B'11101011' ;0
RETLW B'01100000' ;1
RETLW B'11000111' ;2
RETLW B'11100101' ;3

Вопрос к знатокам, как мне сделать тоже самое, но только на Си?

Сообщение отредактировал Algol - Jul 31 2006, 08:29
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
giran
сообщение Aug 9 2006, 05:39
Сообщение #2





Группа: Новичок
Сообщений: 12
Регистрация: 18-07-05
Пользователь №: 6 878



Вообщем, вот окончательный вариант, если кому пригодится, правда без русских букв ёЁ, но это 2-мя отдельными if-ами. Вывожу на 16-знаковый ЖКИ hd44780r, проверил в железе, работает.
Код
const unsigned char rusTable[64]= {
0x41, 0xA0, 0x42, 0xA1, 0xE0, 0x45, 0xA3, 0xA4, 0xA5, 0xA6, 0x4B, 0xA7, 0x4D, 0x48, 0x4F, 0xA8,
0x50, 0x43, 0x54, 0xA9, 0xAA, 0x58, 0xE1, 0xAB, 0xAC, 0xE2, 0xAD, 0xAE, 0xAD, 0xAF, 0xB0, 0xB1,
0x61, 0xB2, 0xB3, 0xB4, 0xE3, 0x65, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0x6F, 0xBE,
0x70, 0x63, 0xBF, 0x79, 0xE4, 0x78, 0xE5, 0xC0, 0xC1, 0xE6, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7};

const unsigned  char Message[16]= {"Привет,мир World"};

main()         {
        unsigned char i,currentPOS;
        TRISB=0x00;    
        di();
//---------инициализация lcd-----------
    lcd=0;
    delay(1300);
    lcd=0x30;
    bitset (lcd, en); bitclr (lcd, en);// _/\_
    delay(7);    
    bitset (lcd, en); bitclr (lcd, en);// _/\_
    delay(230);
    wr_command_lcd(0x20);
    wr_command_lcd(0x28);    
    wr_command_lcd(0x0C);
    wr_command_lcd(0x06);
    wr_command_lcd(0x01);
    delay(230);
//----------Загрузка строки --------
wr_command_lcd(0x80);
    for    (i=0;i<8;i++) {
        currentPOS=    Message[i];
        if (currentPOS > 0x7F) currentPOS=rusTable[Message[i]-0xC0];
        wr_data_lcd(currentPOS);    }
wr_command_lcd(0xC0);
    for    (i=8;i<16;i++) {
        currentPOS=    Message[i];
        if (currentPOS > 0x7F) currentPOS=rusTable[Message[i]-0xC0];
        wr_data_lcd(currentPOS);    }
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Algol   Таблицы   Jul 31 2006, 08:28
- - psL   Цитата(Algol @ Jul 31 2006, 12:28) День д...   Jul 31 2006, 10:29
|- - Костян   Цитата(psL @ Jul 31 2006, 08:29) char con...   Aug 3 2006, 15:19
- - upc2   Использовать конструкцию "switch case"   Jul 31 2006, 12:07
- - Algol   upc2 Конструкция switch - case не даст тождественн...   Jul 31 2006, 14:12
- - upc2   1.Согласен, что массив в по сравнению с switch - c...   Aug 1 2006, 06:00
- - Algol   По п.1 согласен, что с буквами будут дополнительны...   Aug 1 2006, 06:30
|- - _Bill   Цитата(Algol @ Aug 1 2006, 09:30) По п.1 ...   Aug 1 2006, 12:54
- - Algol   В случае Си, так как посоветовал psL. В случае асм...   Aug 1 2006, 13:05
|- - _Bill   Цитата(Algol @ Aug 1 2006, 16:05) В случа...   Aug 1 2006, 13:16
- - upc2   Откуда 60 байт? Программа на Си void main(void) {...   Aug 2 2006, 08:09
- - upc2   С точки зрения экономичности совершенно одинаково,...   Aug 4 2006, 05:01
|- - dialex   Цитата(upc2 @ Aug 4 2006, 10:01) Совершен...   Aug 4 2006, 05:06
- - upc2   Сделал. 3 0002 008A MOVWF 0xa ...   Aug 4 2006, 05:19
- - Костян   В итоге с const мы видем наличие 'retlw0x60...   Aug 4 2006, 09:56
|- - upc2   Цитата(Костян @ Aug 4 2006, 12:56) В итог...   Aug 4 2006, 11:43
- - giran   А подскажите, как разместить таблицу, например ...   Aug 8 2006, 08:50
|- - Костян   Цитата(giran @ Aug 8 2006, 06:50) Пытаюсь...   Aug 8 2006, 09:22
- - giran   То есть что-то типа такого: Кодconst unsigned char...   Aug 8 2006, 10:24
|- - Костян   Цитата(giran @ Aug 8 2006, 08:24) То есть...   Aug 8 2006, 10:46
- - giran   ЦитатаНе нужно оперировать кодами букв Вы немного ...   Aug 9 2006, 02:30
|- - Костян   Цитата(giran @ Aug 9 2006, 00:30) Вы немн...   Aug 11 2006, 20:35
|- - upc2   Цитата(giran @ Aug 9 2006, 08:39) Вообщем...   Aug 11 2006, 05:17
|- - dialex   const unsigned char rus_codes[66]= { 0x41,0xa0,0...   Aug 11 2006, 06:49
- - upc2   dialex Спасибо я разобрался.Различие в таблицах ко...   Aug 11 2006, 08:01


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 04:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01378 секунд с 7
ELECTRONIX ©2004-2016