; Версия текста с полными адресами регистров во всех командах форматирования вывода. ; Здесь описаны все Символьные строки для вывода на экран ; Указатель номера строки 16 бит - однозначно хватит с запасом ; Определения переменных вынесены во включаемое файло, доступны по именам. ; #include Define.inc ;Определения Констант и переменных для модуля ;**** каждая отдельная строка DB в секции code должна содержать ЧЁТНОЕ количество байт ;**** иначе будет дополнена НУЛЁМ ;**** Секция code_pack лишена этого свойства ; №=й ж=щ эяйъ=непечатные интересные символы, надо копать/освежить знакогену ; ;LCD_Text code_pack 0x1D44 ; 0x2350 ; Вынес в конец кода с некоторым запасом - неведомые глюки global MsgI,MsgS;,L_Table; ,Table_1W ; Во внешний мир - лишь парочка адресов таблиц, всё остальное внутри таблиц. ; Extern InitAll ; ; Защитный барьер от кода из NOP ; goto InitAll ; При попытке передать управление этой секции - ресет ;LCD_Len retlw (Msg0-MsgI)/2 ; Длинна таблицы адресов, надо перейти на неё. ; ; ******** 17/09/2018 добавлена таблица подмены кирилики #ifdef CyrTable ; global CyrTable ; Таблица подмены кодов кирилики в строках - взята из https://www.radiokot.ru/artfiles/6393/ CyrTable ; Спасибо за готовую таблицу преобразования technik-1017@mail.ru db 0x41,0xA0,0x42,0xA1,0xE0,0x45,0xA3,0xA4,0xA5,0xA6,0x4B,0xA7,0x4D,0x48,0x4F,0xA8 db 0x50,0x43,0x54,0xA9,0xAA,0x58,0xE1,0xAB,0xAC,0xE2,0xAD,0xAE,0x62,0xAF,0xB0,0xB1 db 0x61,0xB2,0xB3,0xB4,0xE3,0x65,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0x6F,0xBE db 0x70,0x63,0xBF,0x79,0xE4,0x78,0xE5,0xC0,0xC1,0xE6,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7 #endif ; ******** конец добавки от 17/09/2018 ; У индекса - Общее Количество сообщений, адреса каждого MsgI ;dw (Msg0-MsgI)/2-2;d'40'; Вычисляем количество вместо указания - вынесено в обработчик строки присваивание dw Msg0,Msg1,Msg2,Msg3,Msg4,Msg5,Msg6,Msg7; Инициализация, все 3 синхронных строки, чутка служебных dw Msg8,Msg9,Msg10,Msg11,Msg12,Msg13,Msg14,Msg15,Msg16,Msg17,Msg18,Msg19,Msg20; Служебные ПОД строки dw Msg21,Msg22,Msg23,Msg24,Msg25,Msg26 ; Енкодер основной блок параметров dw Msg27,Msg28,Msg29,Msg30 ; Коррекция корректорчиков - пока 4 шт dw Msg31,Msg32,Msg33,Msg34,Msg35,Msg36,Msg37,Msg38,Msg39,Msg40 ; с запасом на dw Msg41,Msg42,Msg43,Msg44,Msg45,Msg46,Msg47,Msg48,Msg49,Msg50 ; регулировку параметров dw Msg51,Msg52 ; dw Msg53,Msg54,Msg55,Msg56,Msg57,Msg58,Msg59,Msg60 ; регулировку параметров MsgS ; Здесь возможно появится отдельная таблица ПОД строк если не хватит 256 строк. ; Переклюк "подстрока" можно обрабатывать в многих местах. ;$ #include Proj_Dir\LCD_Key_Enc\LCD_Text_0-5.inc ;Тексты служебных сообщений вынес для удобства ; ******************************* Служебный Экран ******************************** Msg6 ; Вывод 10 раз в секунду, служебный экран db d'39',0x18; dw Tic_10; вывод десятых долей сека в конец 3 строки ;; Отладка клавы ; db 0x16,d'28',0x10 ;; вывод байта Hex - 2 симв ; dw ADC_Out+1 ; Переменник старший байт ;; Конец отладки клавы ; db 0x1A ; Признак как подстрока теперь dw EncSubStrNum;,F,BANKED ; В Начало/конец строки листания параметра рисутеся символы ; #ifdef W1_Pin ; db 0x16,d'78',0x19; ; dw DS1820_ScratctPad1+0;; Дополним вторую строку одним датчиком ; #endif ; ; #ifdef ADC_Present ; db 0x16,d'20',0x13; Полный адрес нужен ; dw ADC_Print; ; db " "; Третья строка начало ; #endif ; #ifdef PCPWM_Present ; Отладочный вывод PCPWM во вторую строку db 0x16,d'20',0x11 ;; вывод байта Hex - 2 симв ; dw PCPWM_SpeedReal; ; db ",",0x11 ; dw PCPWM_AmpSin ; Двухбайтная амплитуда db ",",0x10 ; dw PCPWM_SpCh_Route; db ",",0x10 ; dw PCPWM_Alarm_Route;PCPWM_SpCh_Route; ; db 0x10 ; ; dw PCPWM_MotorStatus;,BANKED ; Номер Return из SpeedChange #endif db 0x1A ; 4 строка выбор варианта dw LCD_6_4;,F,BANKED ; Номер варианта db 0,0;,0,0,0 ; Конец строки ;************************* Рабочий Экран *************************** Msg7 ; Альтернативная строка для вывода 10 раз в сек, рабочий экран . db d'39',0x18 dw Tic_10; вывод десятых долей сека в конец 3 строки ; Отладка ; db 0x16,d'28',0x10;; вывод байта Hex - 2 симв ; db 0x16,d'26',0x11 ;; шестнадцатеричный вывод слова - 4 симв ; dw ADC_Out+0 ; Переменник - шумов нет при выключенном PWM и силе ; dw ADC_Out+2 ; Термистор ; dw ADC_Out+4 ; Ток DC ; dw ADC_Out+6 ; Напруга DC ; dw DeBug_BufLcd+4 ; PDC-0 ; Конец отладки #ifdef PCPWM_Present ;DeBug_BufLcd :4;F,BANKED; Отладочный буферок ;#ifdef PCPWM_Board; Отладочная плата настольная без периферии/контроля условий запуска ; db 0x16,d'79',0x11 ;; шестнадцатеричный вывод слова - 4 симв ; dw DeBug_BufLcd+0 ; Дополним вторую строку одним словом ; db 0x16,d'64',0x13 ; десятичный вывод слова - 5 симв ; dw DeBug_BufLcd+2 ; и вторым словом ;; db "," ; ; #endif ; ; db 0x16,d'64',"Spd=",0x10 ; ; dw PCPWM_WrkSpdBuf;PCPWM_Speed ; Поменял выводимую скорость ;db 0x16,d'64' ; db ",",0x10;; вывод байта Hex - 2 симв ; dw PCPWM_SpeedReal ; db ",",0x10 ;; вывод байта Hex - 2 симв ; dw PCPWM_AmpSin; затирать лишние нули #endif #ifdef ADC_Present ; #ifdef PCPWM_Board; Отладочная плата настольная без периферии/контроля условий запуска ; ; db 0x16,d'71',0x11 ; ; dw DeBug_BufLcd+6 ; Синус 12 бит ; ;db 0x16,d'71',"T=" ; ; ; #else db 0x16,d'72',0x19 ; dw Adc_Volt+2 ; Термистор IRAMX db 0x16,d'71',"T=" ; ; #endif ;********************************************************************* ; db 0x16,d'19' ; Третья строка начало #ifdef PCPWM_Present ; Счётчик ; db 0x10 ; ; dw PCPWM_Alarm_Route;PCPWM_SpCh_Route; ; #ifdef PCPWM_12b; Yes ; 12 бит вычисления вместо 8 бит - пробуем на скорость db 0x16,d'19' ; Третья строка начало db 0x11;; вывод слова Hex - 4 симв #else db 0x16,d'20' ; Третья строка начало db 0x10;; вывод байта Hex - 2 симв #endif dw PCPWM_AmpSin ; Отладочная польза выше #endif ; обработок db 0x19 ; dw Adc_Volt+0 ; Вольтаж №0 db "V" ; ; db 0x10;; вывод байта Hex - 2 симв ; dw ADC_ERR_Counter; Счетчик пропущенных обработчиков АЦП #ifdef PCPWM_Present ; Счётчик ;db 0x16,d'102', ; ; db 0x10 ;; вывод байта Hex - 2 симв ; dw PCPWM_SpCh_Route;PCPWM_Err;PCPWM_Flag1; ; пропущенных ; db 0x10;; вывод байта Hex - 2 симв ; dw PCPWM_MotorStatus;,BANKED ; Номер Return из SpeedChange ; db 0x10 ;; вывод байта Hex - 2 симв ; dw PCPWM_Err;PCPWM_Flag1; ; пропущенных #endif ; обработок ; db " ",0x10 ; ; dw Keyb_Freq_Out;,BANKED ; Частота опроса клавы, раз в сек ;********************************************************************* db 0x16,d'84' ; Четвёртая строка начало db 0x10 ; шестнадцатеричный вывод байта - 2 симв dw RCON_Print ; Копия причины сброса db "," ; db 0x10;; вывод байта Hex - 2 симв dw PCPWM_MotorStatus;,BANKED ; Номер Return из SpeedChange db "," ; ; db 0x19 ; ; dw Adc_Volt+0 ; Вольтаж №0 ; db "V," ; ; db 0x16,d'90' ; db 0x19 ; dw Adc_Amp+0 ; Ампераж №0 db "A," ; ;,0x16,d'84' ; db 0x13 ;5 симв BCD-16 ; Ватты dw Adc_Watt+0 ; как напруга*ток db 0x16,d'103',"W" ; #endif #ifdef W1_Pin db 0x16,d'78',0x19 ;, dw DS1820_ScratctPad1+0 ; Дополним вторую строку одним датчиком db 0x16,d'64',0x19 ;, dw DS1820_ScratctPad1+2 ; и вторым ,0x19,DS1820_ScratctPad1+4 ;,0; 10 byte db "," ; #endif ; db 0,0,0,0 ; Конец строки надежный - укорачиваем #ifdef PCPWM_Present ; анимашка через 1A команду db 0x16,d'7',0x1A ; dw PCPWM_AnimeSubStr ;; Полный адрес переменной ; db "WorK",0x1A ; ; dw PCPWM_AnimeSubStr ; db 0x1A ; dw PCPWM_ForwardReverse; #endif #ifdef ADC_Present ; db 0x16,d'20',0x13,ADC_Print; Третья строка начало #endif ; #ifdef PCPWM_Present ; Отладочный вывод PCPWM во вторую строку ; db 0x16,d'76'; ; #ifdef Math_Present ; db 0x11 ; Unsig Word Command ; dw B_Arg+0; ; Полный адрес ; db ",",0x10 ; 10 раз в сек ; dw Math_ErrCount ; отладочный вывод ; #endif ; #endif db 0 ; Конец строки ; Ниже отладочный вывод параметров циклов ;db 0x16,d'39',0x18; ; dw Tic_10; ;db 0; Конец строки ;************* Остальные строки ************** Msg8 db d'00'," " ; #ifdef PCPWM_Present ; Счётчик db 0x13 ;5 симв BCD-16 ; оборотов dw PCPWM_SpdPrint ; в минуту ; отладка dw ADC_Print;:3; Буфер для печати 1 раз в сек #endif db " ",0 ; подстрока Тахометра ; db 0xA3,0x6F,0xBE,0x61 ; Жопа db 0 ; Сообщение служебное 3 строка Msg9 db d'00',"=======",0 ; служебная подстрока ; db 0xAA,0x6F,0xBF,0x6F ; db 0 ; #ifdef CyrTable Msg10 db d'00',0x16,d'00',"Прямо>>",0x16,d'13',"=";, #else Msg10 db d'00',0x16,d'00',"Forw>>>",0x16,d'13',"=";, #endif #ifdef PCPWM_Present db 0x10 ; dw PCPWM_WrkSpdBuf;PCPWM_Speed ; скорость задатчика #endif #ifdef CyrTable db " Скр",0 ; #else db " Spd",0 ; #endif ; db 0x16,d'84',"Forw>>>",0x16,d'98'," ",0 ; Msg11 db d'00',0x16,d'00'," Spd";, #ifdef PCPWM_Present db 0x10; dw PCPWM_WrkSpdBuf;PCPWM_Speed ; скорость задатчика #endif #ifdef CyrTable db "=",0x16,d'14',"<Обрат",0 ; служебная подстрока #else db "=",0x16,d'14',"<<