$modxx51 ;krystal 12MHz SCL equ P3.1 ;SCL SDA equ P3.0 ;SDA LED equ P3.7 ;svit inidkuje programovani Nznaku equ 255 ;pocet programovanych znaku Init: clr LED mov dptr,#CharSet mov R1,#0 mov R2,#0 Loop: acall I2Cstart mov a,R2 rl a anl a,#00001110b orl a,#10100000b acall I2Cposilej jc Loop mov a,R1 acall I2Cposilej clr a movc a,@a+dptr acall I2Cposilej acall I2Cstop inc dptr acall Add16bit cjne R2,#high (5*Nznaku),Loop cjne R1,#low (5*Nznaku),Loop setb LED jmp $ Add16bit: mov a,R1 add a,#1 mov R1,a mov a,R2 addc a,#0 mov R2,a ret ;tu je vse se sbernici I2C ;zpozdeni pro I2C DelS: nop nop ret ;I2C start I2CStart: setb SDA setb SCL call DelS clr SDA call DelS clr SCL call DelS ret ;I2C stop I2CStop: setb SCL call DelS setb SDA call DelS ret ;posilani bytu z a na sbernici I2C I2CPosilej: mov R0,#8 Posilej1: rlc a mov SDA,c call DelS setb SCL call DelS clr SCL call DelS djnz R0,Posilej1 ;do c nacti ACK setb SDA call DelS setb SCL call DelS mov c,SDA clr SCL call DelS clr SDA ret ;tabulka znaku CharSet: db 00000000b ;0 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;1 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;2 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;3 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;4 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;5 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;6 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;7 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;8 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;9 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;10 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;11 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;12 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;13 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;14 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;15 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;16 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;17 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;18 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;19 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;20 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;21 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;22 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;23 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;24 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;25 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;26 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;27 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;28 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;29 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;30 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;31 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;32 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;33 - ' ! ' db 00000000b db 01011111b db 00000000b db 00000000b db 00000000b ;34 - ' " ' db 00000111b db 00000000b db 00000111b db 00000000b db 00010100b ;35 - ' # ' db 01111111b db 00010100b db 01111111b db 00010100b db 00100100b ;36 - ' $ ' db 00101010b db 01111111b db 00101010b db 00010010b db 00100011b ;37 - ' % ' db 00010011b db 00001000b db 01100100b db 01100010b db 00110110b ;38 - ' & ' db 01001001b db 01010101b db 00100010b db 01010000b db 00000000b ;39 - ' ' ' db 00000000b db 00000111b db 00000000b db 00000000b db 00000000b ;40 - ' ( ' db 00011100b db 00100010b db 01000001b db 00000000b db 00000000b ;41 - ' ) ' db 01000001b db 00100010b db 00011100b db 00000000b db 00010100b ;42 - ' * ' db 00001000b db 00111110b db 00001000b db 00010100b db 00001000b ;43 - ' + ' db 00001000b db 00111110b db 00001000b db 00001000b db 00000000b ;44 - ' , ' db 01000000b db 00100000b db 00000000b db 00000000b db 00001000b ;45 - ' - ' db 00001000b db 00001000b db 00001000b db 00001000b db 00000000b ;46 - ' . ' db 00000000b db 01000000b db 00000000b db 00000000b db 00100000b ;47 - ' / ' db 00010000b db 00001000b db 00000100b db 00000010b db 00111110b ;48 - ' 0 ' db 01010001b db 01001001b db 01000101b db 00111110b db 00000000b ;49 - ' 1 ' db 01000010b db 01111111b db 01000000b db 00000000b db 01000010b ;50 - ' 2 ' db 01100001b db 01010001b db 01001001b db 01000110b db 00100010b ;51 - ' 3 ' db 01000001b db 01001001b db 01001001b db 00110110b db 00011000b ;52 - ' 4 ' db 00010100b db 00010010b db 01111111b db 00010000b db 00100111b ;53 - ' 5 ' db 01000101b db 01000101b db 01000101b db 00111001b db 00111110b ;54 - ' 6 ' db 01001001b db 01001001b db 01001001b db 00110000b db 00000011b ;55 - ' 7 ' db 00000001b db 01110001b db 00001001b db 00000111b db 00110110b ;56 - ' 8 ' db 01001001b db 01001001b db 01001001b db 00110110b db 00000110b ;57 - ' 9 ' db 01001001b db 01001001b db 01001001b db 00111110b db 00000000b ;58 - ' : ' db 00000000b db 01000100b db 00000000b db 00000000b db 00000000b ;59 - ' ; ' db 01000000b db 00100100b db 00000000b db 00000000b db 00001000b ;60 - ' < ' db 00010100b db 00100010b db 01000001b db 00000000b db 00010100b ;61 - ' = ' db 00010100b db 00010100b db 00010100b db 00010100b db 00000000b ;62 - ' > ' db 01000001b db 00100010b db 00010100b db 00001000b db 00000010b ;63 - ' ? ' db 00000001b db 01010001b db 00001001b db 00000110b db 00110010b ;64 - ' @ ' db 01001001b db 01111001b db 01000001b db 00111110b db 01111100b ;65 - ' A ' db 00001010b db 00001001b db 00001010b db 01111100b db 01111111b ;66 - ' B ' db 01001001b db 01001001b db 01001001b db 00110110b db 00111110b ;67 - ' C ' db 01000001b db 01000001b db 01000001b db 00100010b db 01111111b ;68 - ' D ' db 01000001b db 01000001b db 00100010b db 00011100b db 01111111b ;69 - ' E ' db 01001001b db 01001001b db 01001001b db 01000001b db 01111111b ;70 - ' F ' db 00001001b db 00001001b db 00001001b db 00000001b db 00111110b ;71 - ' G ' db 01000001b db 01000001b db 01001001b db 01111010b db 01111111b ;72 - ' H ' db 00001000b db 00001000b db 00001000b db 01111111b db 00000000b ;73 - ' I ' db 01000001b db 01111111b db 01000001b db 00000000b db 00100000b ;74 - ' J ' db 01000000b db 01000001b db 00111111b db 00000001b db 01111111b ;75 - ' K ' db 00001000b db 00010100b db 00100010b db 01000001b db 01111111b ;76 - ' L ' db 01000000b db 01000000b db 01000000b db 01000000b db 01111111b ;77 - ' M ' db 00000010b db 00000100b db 00000010b db 01111111b db 01111111b ;78 - ' N ' db 00000100b db 00001000b db 00010000b db 01111111b db 00111110b ;79 - ' O ' db 01000001b db 01000001b db 01000001b db 00111110b db 01111111b ;80 - ' P ' db 00001001b db 00001001b db 00001001b db 00000110b db 00111110b ;81 - ' Q ' db 01000001b db 01010001b db 00100001b db 01011110b db 01111111b ;82 - ' R ' db 00001001b db 00011001b db 00101001b db 01000110b db 01000110b ;83 - ' S ' db 01001001b db 01001001b db 01001001b db 00110001b db 00000001b ;84 - ' T ' db 00000001b db 01111111b db 00000001b db 00000001b db 00111111b ;85 - ' U ' db 01000000b db 01000000b db 01000000b db 00111111b db 00011111b ;86 - ' V ' db 00100000b db 01000000b db 00100000b db 00011111b db 00111111b ;87 - ' W ' db 01000000b db 00111000b db 01000000b db 00111111b db 01100011b ;88 - ' X ' db 00010100b db 00001000b db 00010100b db 01100011b db 00000111b ;89 - ' Y ' db 00001000b db 01110000b db 00001000b db 00000111b db 01100001b ;90 - ' Z ' db 01010001b db 01001001b db 01000101b db 01000011b db 00000000b ;91 - ' [ ' db 01111111b db 01000001b db 01000001b db 00000000b db 00000010b ;92 - ' \ ' db 00000100b db 00001000b db 00010000b db 00100000b db 00000000b ;93 - ' ] ' db 01000001b db 01000001b db 01111111b db 00000000b db 00000100b ;94 - ' ^ ' db 00000010b db 00000001b db 00000010b db 00000100b db 01000000b ;95 - ' _ ' db 01000000b db 01000000b db 01000000b db 01000000b db 00000000b ;96 - ' ` ' db 00000001b db 00000010b db 00000000b db 00000000b db 00100000b ;97 - ' a ' db 01010100b db 01010100b db 01010100b db 01111000b db 01111111b ;98 - ' b ' db 01001000b db 01000100b db 01000100b db 00111000b db 00111000b ;99 - ' c ' db 01000100b db 01000100b db 01000100b db 00101000b db 00111000b ;100 - ' d ' db 01000100b db 01000100b db 01001000b db 01111111b db 00111000b ;101 - ' e ' db 01010100b db 01010100b db 01010100b db 00001000b db 00001000b ;102 - ' f ' db 01111110b db 00001001b db 00000001b db 00000010b db 00001000b ;103 - ' g ' db 01010100b db 01010100b db 01010100b db 00111100b db 01111111b ;104 - ' h ' db 00001000b db 00000100b db 00000100b db 01111000b db 00000000b ;105 - ' i ' db 01000100b db 01111101b db 01000000b db 00000000b db 00100000b ;106 - ' j ' db 01000000b db 01000100b db 00111101b db 00000000b db 01111111b ;107 - ' k ' db 00010000b db 00101000b db 01000100b db 00000000b db 00000000b ;108 - ' l ' db 01000001b db 01111111b db 01000000b db 00000000b db 01111100b ;109 - ' m ' db 00000100b db 00011000b db 00000100b db 01111000b db 01111100b ;110 - ' n ' db 00001000b db 00000100b db 00000100b db 01111000b db 00111000b ;111 - ' o ' db 01000100b db 01000100b db 01000100b db 00111000b db 01111100b ;112 - ' p ' db 00010100b db 00010100b db 00010100b db 00001000b db 00001000b ;113 - ' q ' db 00010100b db 00010100b db 00010100b db 01111100b db 01111100b ;114 - ' r ' db 00001000b db 00000100b db 00000100b db 00001000b db 01001000b ;115 - ' s ' db 01010100b db 01010100b db 01010100b db 00100100b db 00000100b ;116 - ' t ' db 00111111b db 01000100b db 01000000b db 00100000b db 00111100b ;117 - ' u ' db 01000000b db 01000000b db 00100000b db 01111100b db 00011100b ;118 - ' v ' db 00100000b db 01000000b db 00100000b db 00011100b db 00111100b ;119 - ' w ' db 01000000b db 00110000b db 01000000b db 00111100b db 01000100b ;120 - ' x ' db 00101000b db 00010000b db 00101000b db 01000100b db 00001100b ;121 - ' y ' db 01010000b db 01010000b db 01010000b db 00111100b db 01000100b ;122 - ' z ' db 01100100b db 01010100b db 01001100b db 01000100b db 00000000b ;123 - ' { ' db 00001000b db 00110110b db 01000001b db 00000000b db 00000000b ;124 - ' | ' db 00000000b db 01111111b db 00000000b db 00000000b db 00000000b ;125 - ' } ' db 01000001b db 00110110b db 00001000b db 00000000b db 00001000b ;126 - ' -> ' db 00001000b db 00101010b db 00011100b db 00001000b db 00001000b ;127 - ' <- ' db 00011100b db 00101010b db 00001000b db 00001000b db 00111000b ;128 - 'e hacek' db 01010101b db 01010110b db 01010101b db 00001000b db 01001000b ;129 - 's hacek' db 01010101b db 01010110b db 01010101b db 00100100b db 00111000b ;130 - 'c hacek' db 01000101b db 01000110b db 01000101b db 00101000b db 01111100b ;131 - 'r hacek' db 00001001b db 00000110b db 00000101b db 00001000b db 01000100b ;132 - 'z hacek' db 01100101b db 01010110b db 01001101b db 01000100b db 00001100b ;133 - 'y carka' db 01010000b db 01010010b db 01010001b db 00111100b db 00100000b ;134 - 'a carka' db 01010100b db 01010110b db 01010101b db 01111000b db 00000000b ;135 - 'i carka' db 01000100b db 01111110b db 01000001b db 00000000b db 00111000b ;136 - 'e carka' db 01010100b db 01010110b db 01010101b db 00001000b db 00111100b ;137 - 'u carka' db 01000000b db 01000010b db 00100001b db 01111100b db 00111100b ;138 - 'u krouzek' db 01000000b db 01000011b db 00100011b db 01111100b db 01111100b ;139 - 'n hacek' db 00001001b db 00000110b db 00000101b db 01111000b db 00000100b ;140 - 't hacek' db 00111111b db 01000100b db 01000000b db 00100011b db 00111000b ;141 - 'd hacek' db 01000100b db 01001000b db 01111111b db 00000011b db 00111000b ;142 - 'o carka' db 01000100b db 01000110b db 01000101b db 00111000b db 00000000b ;143 - '' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;144 - ' ' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;145 - ' ' db 00000000b db 00000000b db 00000000b db 00000000b db 00000000b ;146 - ' ' db 00000000b db 00000000b db 00000000b db 00000000b db 00001000b ;147 - 'velke fi' db 01010101b db 01111111b db 01010101b db 00001000b db 00001110b ;149 - 'male fi' db 00010000b db 01111100b db 00010010b db 00001100b db 00111000b ;150 - 'alfa' db 01000100b db 01001000b db 00110000b db 01001111b db 01111110b ;151 - 'beta' db 00101010b db 00101010b db 00101010b db 00010100b db 01111100b ;152 - 'mikro' db 00100000b db 00100000b db 00011100b db 00000000b db 00101000b ;153 - 'epsilon' db 01010100b db 01010100b db 01000100b db 00000000b db 01011000b ;154 - 'omega' db 01100100b db 00000100b db 01100100b db 01011000b db 01000100b ;155 - 'pi' db 00111100b db 00000100b db 01111100b db 01000100b db 00000000b ;156 - 'stupen' db 00000111b db 00000101b db 00000111b db 00000000b db 00100000b ;157 - 'odmocnina' db 01000000b db 00111110b db 00000010b db 00000010b db 00001000b ;158 - 'neco' db 00001000b db 00101010b db 00001000b db 00001000b db 00001000b ;159 - 'nekonecno' db 00010100b db 00001000b db 00010100b db 00001000b db 00000000b ;160 - 'baterka 1' db 01111110b db 01000011b db 01000011b db 01111110b db 00000000b ;161 - 'baterka 2' db 01111110b db 01100011b db 01100011b db 01111110b db 00000000b ;162 - 'baterka 3' db 01111110b db 01110011b db 01110011b db 01111110b db 00000000b ;163 - 'baterka 4' db 01111110b db 01111011b db 01111011b db 01111110b db 00000000b ;164 - 'baterka 5' db 01111110b db 01111111b db 01111111b db 01111110b db 01110000b ;165 - 'blesk' db 01100100b db 01010110b db 00001101b db 00000100b db 01111111b ;166 - 'kurzor 1' db 01111111b db 01111111b db 01111111b db 01111111b db 10000000b ;167 - 'kurzor 2' db 10000000b db 10000000b db 10000000b db 10000000b end