<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>LPC MicrocontrollersのトピックHelp with lpc17xx from 8051</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/Help-with-lpc17xx-from-8051/m-p/523723#M6359</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ciernes on Sat Apr 05 11:35:56 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello I want to introduce myself in the arm architecture &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;and I would like to start converting some codes made ​​in 8051 to arm &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Could you help me please &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
 //crystal is 22-24MHz
//was made for Keil compiler

#include &amp;lt;reg51.h&amp;gt;

sbit Cclock=P1^1;
sbit Clatch=P1^0;
sbit Cdata=P3^7;
sbit Row5=P3^0;
sbit Row4=P3^1;
sbit Row3=P3^2;
sbit Row2=P3^3;
sbit Row1=P3^4;
unsigned int shift_delay;

unsigned char code font[96][5] =
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x00, 0x00, 0x00, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x00, 0x1d, 0x00, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x18, 0x00, 0x18, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0a, 0x1f, 0x0a, 0x1f, 0x0a},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x09, 0x15, 0x1f, 0x15, 0x12},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x11, 0x02, 0x04, 0x08, 0x11},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0a, 0x15, 0x15, 0x0f, 0x05},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x14, 0x18, 0x00, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x00, 0x0e, 0x11, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x11, 0x0e, 0x00, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0a, 0x04, 0x1f, 0x04, 0x0a},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x04, 0x04, 0x1f, 0x04, 0x04},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x05, 0x06, 0x00, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x04, 0x04, 0x04, 0x04, 0x04},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x03, 0x03, 0x00, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x01, 0x02, 0x04, 0x08, 0x10},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0e, 0x13, 0x15, 0x19, 0x0e},&amp;nbsp; //0
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x09, 0x1f, 0x01, 0x00},&amp;nbsp; //1
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x13, 0x15, 0x15, 0x15, 0x09},&amp;nbsp; //2
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x11, 0x11, 0x15, 0x15, 0x0a},&amp;nbsp; //3
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x18, 0x04, 0x04, 0x04, 0x1f},&amp;nbsp; //4
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1d, 0x15, 0x15, 0x15, 0x12},&amp;nbsp; //5
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0e, 0x15, 0x15, 0x15, 0x12},&amp;nbsp; //6
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x10, 0x10, 0x10, 0x17, 0x18},&amp;nbsp; //7
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0a, 0x15, 0x15, 0x15, 0x0a},&amp;nbsp; //8
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x08, 0x15, 0x15, 0x15, 0x0e},&amp;nbsp; //9
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x1b, 0x1b, 0x00, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x15, 0x16, 0x00, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x04, 0x0a, 0x11, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0a, 0x0a, 0x0a, 0x0a, 0x0a},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x11, 0x0a, 0x04, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x08, 0x10, 0x15, 0x14, 0x08},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0e, 0x11, 0x15, 0x12, 0x0e},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0f, 0x12, 0x12, 0x12, 0x0f},&amp;nbsp; //A
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x15, 0x15, 0x15, 0x0a},&amp;nbsp; //B
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0e, 0x11, 0x11, 0x11, 0x11},&amp;nbsp; //C
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x11, 0x11, 0x11, 0x0e},&amp;nbsp; //D
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x15, 0x15, 0x15, 0x15},&amp;nbsp; //E
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x14, 0x14, 0x14, 0x10},&amp;nbsp; //F
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0e, 0x11, 0x15, 0x15, 0x17},&amp;nbsp; //G
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x04, 0x04, 0x04, 0x1f},&amp;nbsp; //H
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x11, 0x1f, 0x11, 0x00},&amp;nbsp; //I
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x02, 0x01, 0x11, 0x11, 0x1e},&amp;nbsp; //J
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x04, 0x0c, 0x14, 0x03},&amp;nbsp; //K
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x01, 0x01, 0x01, 0x01},&amp;nbsp; //L
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x08, 0x04, 0x08, 0x1f},&amp;nbsp; //M
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x10, 0x0e, 0x01, 0x1f},&amp;nbsp; //N
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0e, 0x11, 0x11, 0x11, 0x0e},&amp;nbsp; //O
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x14, 0x14, 0x14, 0x08},&amp;nbsp; //P
&amp;nbsp;&amp;nbsp; //{0x0e, 0x11, 0x11, 0x0f, 0x01},&amp;nbsp; //Q
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0e, 0x11, 0x15, 0x12, 0x0d},&amp;nbsp; //Q&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x14, 0x14, 0x16, 0x09},&amp;nbsp; //R
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x09, 0x15, 0x15, 0x15, 0x12},&amp;nbsp; //S
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x10, 0x10, 0x1f, 0x10, 0x10},&amp;nbsp; //T
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1e, 0x01, 0x01, 0x01, 0x1e},&amp;nbsp; //U
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x18, 0x06, 0x01, 0x06, 0x18},&amp;nbsp; //V
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x02, 0x04, 0x02, 0x1f},&amp;nbsp; //W
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x11, 0x0a, 0x04, 0x0a, 0x11},&amp;nbsp; //X
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x18, 0x04, 0x07, 0x04, 0x18},&amp;nbsp; //Y
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x11, 0x13, 0x15, 0x19, 0x11},&amp;nbsp; //Z
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x1f, 0x11, 0x11, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x10, 0x08, 0x04, 0x02, 0x01},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x11, 0x11, 0x1f, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x04, 0x08, 0x10, 0x08, 0x04},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x01, 0x01, 0x01, 0x01, 0x01},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x00, 0x10, 0x08, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x12, 0x15, 0x15, 0x15, 0x0f},&amp;nbsp; //a
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x09, 0x09, 0x09, 0x06},&amp;nbsp; //b
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0e, 0x11, 0x11, 0x11, 0x0a},&amp;nbsp; //c
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x06, 0x09, 0x09, 0x09, 0x1f},&amp;nbsp; //d
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0e, 0x15, 0x15, 0x15, 0x0d},&amp;nbsp; //e
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0f, 0x14, 0x14, 0x10, 0x10},&amp;nbsp; //f
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x09, 0x15, 0x15, 0x15, 0x0e},&amp;nbsp; //g
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x08, 0x08, 0x08, 0x07},&amp;nbsp; //h
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x00, 0x17, 0x00, 0x00},&amp;nbsp; //i
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x01, 0x01, 0x01, 0x01, 0x1e},&amp;nbsp; //j
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x04, 0x04, 0x0a, 0x11},&amp;nbsp; //k
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1e, 0x01, 0x01, 0x01, 0x01},&amp;nbsp; //l
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0f, 0x10, 0x0f, 0x10, 0x0f},&amp;nbsp; //m
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x10, 0x10, 0x10, 0x0f},&amp;nbsp; //n
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0e, 0x11, 0x11, 0x11, 0x0e},&amp;nbsp; //o
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x12, 0x12, 0x12, 0x0c},&amp;nbsp; //p
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0c, 0x12, 0x12, 0x12, 0x1f},&amp;nbsp; //q
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x08, 0x10, 0x10, 0x08},&amp;nbsp; //r
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x09, 0x15, 0x15, 0x15, 0x12},&amp;nbsp; //s
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1e, 0x09, 0x09, 0x01, 0x02},&amp;nbsp; //t
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1e, 0x01, 0x01, 0x02, 0x1f},&amp;nbsp; //u
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x18, 0x06, 0x01, 0x06, 0x18},&amp;nbsp; //v
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1e, 0x01, 0x1e, 0x01, 0x1e},&amp;nbsp; //w
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1b, 0x04, 0x04, 0x04, 0x1b},&amp;nbsp; //x
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x19, 0x05, 0x05, 0x05, 0x1e},&amp;nbsp; //y
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x11, 0x13, 0x15, 0x19, 0x11},&amp;nbsp; //z
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x04, 0x0e, 0x11, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x00, 0x1f, 0x00, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x11, 0x0e, 0x04, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x08, 0x10, 0x08, 0x04, 0x08},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x00, 0x00, 0x00, 0x00}&amp;nbsp;&amp;nbsp; //
};
unsigned char column[33]=
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
&amp;nbsp;&amp;nbsp;&amp;nbsp; 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
}; //display memory, cleared before used.

void delayms(unsigned int ms) //just about 1ms
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int n;
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char i;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for (n=0; n&amp;lt;ms; n++)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i=0; i&amp;lt;200; i++);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}

void init_timer(void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; TMOD=0x01;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TH0=0xfb;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TL0=0x00;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TR0=1;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ET0=1;
&amp;nbsp;&amp;nbsp;&amp;nbsp; EA=1;
}

void Timer0 (void) interrupt 1 //using 2
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char index;
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char i,tmp1;
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char code rowtable[]={0,1,2,4,8,16};
&amp;nbsp;&amp;nbsp;&amp;nbsp; //TH0=0xfb; //48fps
&amp;nbsp;&amp;nbsp;&amp;nbsp; //TL0=0x00;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ET0=0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TH0=0xf8; //30fps
&amp;nbsp;&amp;nbsp;&amp;nbsp; TL0=0x00;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Row5=1; Row4=1; Row3=1; Row2=1; Row1=1;
&amp;nbsp;&amp;nbsp;&amp;nbsp; index++;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (index&amp;gt;5) index=1;
&amp;nbsp;&amp;nbsp;&amp;nbsp; //column
&amp;nbsp;&amp;nbsp;&amp;nbsp; tmp1=rowtable[index];
&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i=1; i&amp;lt;33; i++)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cdata=!(column&lt;I&gt; &amp;amp; tmp1);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cclock=1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cclock=0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; //row
&amp;nbsp;&amp;nbsp;&amp;nbsp; Clatch=1;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Clatch=0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; switch (index)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 1:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Row1=0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 2:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Row2=0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 3:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Row3=0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 4:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Row4=0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 5:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Row5=0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; ET0=1;
}

void LED_put_byte(unsigned char inp)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char i;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i=1;i&amp;lt;33;i++) column&lt;I&gt;=column[i+1];
&amp;nbsp;&amp;nbsp;&amp;nbsp; column[32]=inp;
}

void LED_puts(unsigned char *lcd_string)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char i,tmp_chr;
&amp;nbsp;&amp;nbsp;&amp;nbsp; while (*lcd_string)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tmp_chr=*lcd_string;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i=0;i&amp;lt;5;i++)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED_put_byte(font[tmp_chr-32]&lt;I&gt;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delayms(shift_delay);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED_put_byte(0); //space between character
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delayms(shift_delay);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lcd_string++;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}


void main()
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; init_timer();
&amp;nbsp;&amp;nbsp;&amp;nbsp; shift_delay=100; //bigger = slower shift
&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED_puts("8x32 Matrix LED: AT89C2051, 74HC595, "
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "HEM1588 8x8, LEDFCS9012&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ");
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}
&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 18:05:16 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T18:05:16Z</dc:date>
    <item>
      <title>Help with lpc17xx from 8051</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Help-with-lpc17xx-from-8051/m-p/523723#M6359</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ciernes on Sat Apr 05 11:35:56 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello I want to introduce myself in the arm architecture &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;and I would like to start converting some codes made ​​in 8051 to arm &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Could you help me please &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
 //crystal is 22-24MHz
//was made for Keil compiler

#include &amp;lt;reg51.h&amp;gt;

sbit Cclock=P1^1;
sbit Clatch=P1^0;
sbit Cdata=P3^7;
sbit Row5=P3^0;
sbit Row4=P3^1;
sbit Row3=P3^2;
sbit Row2=P3^3;
sbit Row1=P3^4;
unsigned int shift_delay;

unsigned char code font[96][5] =
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x00, 0x00, 0x00, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x00, 0x1d, 0x00, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x18, 0x00, 0x18, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0a, 0x1f, 0x0a, 0x1f, 0x0a},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x09, 0x15, 0x1f, 0x15, 0x12},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x11, 0x02, 0x04, 0x08, 0x11},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0a, 0x15, 0x15, 0x0f, 0x05},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x14, 0x18, 0x00, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x00, 0x0e, 0x11, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x11, 0x0e, 0x00, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0a, 0x04, 0x1f, 0x04, 0x0a},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x04, 0x04, 0x1f, 0x04, 0x04},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x05, 0x06, 0x00, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x04, 0x04, 0x04, 0x04, 0x04},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x03, 0x03, 0x00, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x01, 0x02, 0x04, 0x08, 0x10},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0e, 0x13, 0x15, 0x19, 0x0e},&amp;nbsp; //0
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x09, 0x1f, 0x01, 0x00},&amp;nbsp; //1
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x13, 0x15, 0x15, 0x15, 0x09},&amp;nbsp; //2
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x11, 0x11, 0x15, 0x15, 0x0a},&amp;nbsp; //3
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x18, 0x04, 0x04, 0x04, 0x1f},&amp;nbsp; //4
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1d, 0x15, 0x15, 0x15, 0x12},&amp;nbsp; //5
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0e, 0x15, 0x15, 0x15, 0x12},&amp;nbsp; //6
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x10, 0x10, 0x10, 0x17, 0x18},&amp;nbsp; //7
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0a, 0x15, 0x15, 0x15, 0x0a},&amp;nbsp; //8
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x08, 0x15, 0x15, 0x15, 0x0e},&amp;nbsp; //9
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x1b, 0x1b, 0x00, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x15, 0x16, 0x00, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x04, 0x0a, 0x11, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0a, 0x0a, 0x0a, 0x0a, 0x0a},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x11, 0x0a, 0x04, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x08, 0x10, 0x15, 0x14, 0x08},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0e, 0x11, 0x15, 0x12, 0x0e},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0f, 0x12, 0x12, 0x12, 0x0f},&amp;nbsp; //A
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x15, 0x15, 0x15, 0x0a},&amp;nbsp; //B
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0e, 0x11, 0x11, 0x11, 0x11},&amp;nbsp; //C
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x11, 0x11, 0x11, 0x0e},&amp;nbsp; //D
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x15, 0x15, 0x15, 0x15},&amp;nbsp; //E
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x14, 0x14, 0x14, 0x10},&amp;nbsp; //F
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0e, 0x11, 0x15, 0x15, 0x17},&amp;nbsp; //G
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x04, 0x04, 0x04, 0x1f},&amp;nbsp; //H
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x11, 0x1f, 0x11, 0x00},&amp;nbsp; //I
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x02, 0x01, 0x11, 0x11, 0x1e},&amp;nbsp; //J
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x04, 0x0c, 0x14, 0x03},&amp;nbsp; //K
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x01, 0x01, 0x01, 0x01},&amp;nbsp; //L
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x08, 0x04, 0x08, 0x1f},&amp;nbsp; //M
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x10, 0x0e, 0x01, 0x1f},&amp;nbsp; //N
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0e, 0x11, 0x11, 0x11, 0x0e},&amp;nbsp; //O
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x14, 0x14, 0x14, 0x08},&amp;nbsp; //P
&amp;nbsp;&amp;nbsp; //{0x0e, 0x11, 0x11, 0x0f, 0x01},&amp;nbsp; //Q
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0e, 0x11, 0x15, 0x12, 0x0d},&amp;nbsp; //Q&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x14, 0x14, 0x16, 0x09},&amp;nbsp; //R
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x09, 0x15, 0x15, 0x15, 0x12},&amp;nbsp; //S
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x10, 0x10, 0x1f, 0x10, 0x10},&amp;nbsp; //T
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1e, 0x01, 0x01, 0x01, 0x1e},&amp;nbsp; //U
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x18, 0x06, 0x01, 0x06, 0x18},&amp;nbsp; //V
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x02, 0x04, 0x02, 0x1f},&amp;nbsp; //W
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x11, 0x0a, 0x04, 0x0a, 0x11},&amp;nbsp; //X
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x18, 0x04, 0x07, 0x04, 0x18},&amp;nbsp; //Y
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x11, 0x13, 0x15, 0x19, 0x11},&amp;nbsp; //Z
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x1f, 0x11, 0x11, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x10, 0x08, 0x04, 0x02, 0x01},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x11, 0x11, 0x1f, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x04, 0x08, 0x10, 0x08, 0x04},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x01, 0x01, 0x01, 0x01, 0x01},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x00, 0x10, 0x08, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x12, 0x15, 0x15, 0x15, 0x0f},&amp;nbsp; //a
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x09, 0x09, 0x09, 0x06},&amp;nbsp; //b
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0e, 0x11, 0x11, 0x11, 0x0a},&amp;nbsp; //c
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x06, 0x09, 0x09, 0x09, 0x1f},&amp;nbsp; //d
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0e, 0x15, 0x15, 0x15, 0x0d},&amp;nbsp; //e
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0f, 0x14, 0x14, 0x10, 0x10},&amp;nbsp; //f
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x09, 0x15, 0x15, 0x15, 0x0e},&amp;nbsp; //g
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x08, 0x08, 0x08, 0x07},&amp;nbsp; //h
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x00, 0x17, 0x00, 0x00},&amp;nbsp; //i
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x01, 0x01, 0x01, 0x01, 0x1e},&amp;nbsp; //j
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x04, 0x04, 0x0a, 0x11},&amp;nbsp; //k
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1e, 0x01, 0x01, 0x01, 0x01},&amp;nbsp; //l
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0f, 0x10, 0x0f, 0x10, 0x0f},&amp;nbsp; //m
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x10, 0x10, 0x10, 0x0f},&amp;nbsp; //n
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0e, 0x11, 0x11, 0x11, 0x0e},&amp;nbsp; //o
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x12, 0x12, 0x12, 0x0c},&amp;nbsp; //p
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x0c, 0x12, 0x12, 0x12, 0x1f},&amp;nbsp; //q
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1f, 0x08, 0x10, 0x10, 0x08},&amp;nbsp; //r
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x09, 0x15, 0x15, 0x15, 0x12},&amp;nbsp; //s
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1e, 0x09, 0x09, 0x01, 0x02},&amp;nbsp; //t
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1e, 0x01, 0x01, 0x02, 0x1f},&amp;nbsp; //u
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x18, 0x06, 0x01, 0x06, 0x18},&amp;nbsp; //v
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1e, 0x01, 0x1e, 0x01, 0x1e},&amp;nbsp; //w
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x1b, 0x04, 0x04, 0x04, 0x1b},&amp;nbsp; //x
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x19, 0x05, 0x05, 0x05, 0x1e},&amp;nbsp; //y
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x11, 0x13, 0x15, 0x19, 0x11},&amp;nbsp; //z
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x04, 0x0e, 0x11, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x00, 0x1f, 0x00, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x11, 0x0e, 0x04, 0x00},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x08, 0x10, 0x08, 0x04, 0x08},&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; {0x00, 0x00, 0x00, 0x00, 0x00}&amp;nbsp;&amp;nbsp; //
};
unsigned char column[33]=
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
&amp;nbsp;&amp;nbsp;&amp;nbsp; 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
}; //display memory, cleared before used.

void delayms(unsigned int ms) //just about 1ms
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int n;
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char i;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for (n=0; n&amp;lt;ms; n++)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i=0; i&amp;lt;200; i++);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}

void init_timer(void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; TMOD=0x01;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TH0=0xfb;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TL0=0x00;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TR0=1;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ET0=1;
&amp;nbsp;&amp;nbsp;&amp;nbsp; EA=1;
}

void Timer0 (void) interrupt 1 //using 2
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char index;
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char i,tmp1;
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char code rowtable[]={0,1,2,4,8,16};
&amp;nbsp;&amp;nbsp;&amp;nbsp; //TH0=0xfb; //48fps
&amp;nbsp;&amp;nbsp;&amp;nbsp; //TL0=0x00;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ET0=0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TH0=0xf8; //30fps
&amp;nbsp;&amp;nbsp;&amp;nbsp; TL0=0x00;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Row5=1; Row4=1; Row3=1; Row2=1; Row1=1;
&amp;nbsp;&amp;nbsp;&amp;nbsp; index++;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (index&amp;gt;5) index=1;
&amp;nbsp;&amp;nbsp;&amp;nbsp; //column
&amp;nbsp;&amp;nbsp;&amp;nbsp; tmp1=rowtable[index];
&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i=1; i&amp;lt;33; i++)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cdata=!(column&lt;I&gt; &amp;amp; tmp1);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cclock=1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cclock=0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; //row
&amp;nbsp;&amp;nbsp;&amp;nbsp; Clatch=1;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Clatch=0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; switch (index)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 1:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Row1=0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 2:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Row2=0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 3:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Row3=0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 4:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Row4=0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 5:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Row5=0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; ET0=1;
}

void LED_put_byte(unsigned char inp)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char i;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i=1;i&amp;lt;33;i++) column&lt;I&gt;=column[i+1];
&amp;nbsp;&amp;nbsp;&amp;nbsp; column[32]=inp;
}

void LED_puts(unsigned char *lcd_string)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char i,tmp_chr;
&amp;nbsp;&amp;nbsp;&amp;nbsp; while (*lcd_string)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tmp_chr=*lcd_string;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i=0;i&amp;lt;5;i++)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED_put_byte(font[tmp_chr-32]&lt;I&gt;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delayms(shift_delay);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED_put_byte(0); //space between character
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delayms(shift_delay);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lcd_string++;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}


void main()
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; init_timer();
&amp;nbsp;&amp;nbsp;&amp;nbsp; shift_delay=100; //bigger = slower shift
&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED_puts("8x32 Matrix LED: AT89C2051, 74HC595, "
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "HEM1588 8x8, LEDFCS9012&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ");
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}
&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:05:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Help-with-lpc17xx-from-8051/m-p/523723#M6359</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:05:16Z</dc:date>
    </item>
    <item>
      <title>Re: Help with lpc17xx from 8051</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Help-with-lpc17xx-from-8051/m-p/523724#M6360</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by MarcVonWindscooting on Sun Apr 06 16:35:25 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Seems like I'm not the only one who loses 'less signs' here. I wonder who collects them and what he does with those. :~&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;AT89C2051 - I remember that part! I programmed in assembler those days...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Back to the topic:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;There are a few differences between 8051 and LPC.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;First: on the LPC you typically use true push-pull outputs, rather than the NMOS+pullup of the 8051. Therefore you have to configure the outputs as such, because by default they're inputs with weak pull-ups enabled. This is done by setting the IOxDIR bit p to one, if you want Px.p as an output. Like this: IO0DIR |= 1 SHL p;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Next point: you don't have instructions for setting/resetting one single port pin. Instead you have to access all the 32bits of a port at once, preferably with the IOxSET or IOxCLR registers. You can set pin p of Port x by IOxSET = 1 SHL p; The clearing works by using IOxCLR.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Setting a bit and clearing in the next code line might be a bit fast on the LPC, not only because it has a higher clock, but because the clock is not divided by 12 in the first place.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I think your code can be ported relatively straightforward. But keep in mind, that porting almost never means: improving the code. And: you don't learn from porting, you learn from implementing it from scratch.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;PS: replace 'SHL' by the C shift left operator (two less signs)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:05:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Help-with-lpc17xx-from-8051/m-p/523724#M6360</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:05:17Z</dc:date>
    </item>
    <item>
      <title>Re: Help with lpc17xx from 8051</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Help-with-lpc17xx-from-8051/m-p/523725#M6361</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ciernes on Mon Apr 07 03:53:16 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: MarcVonWindscooting&lt;/STRONG&gt;&lt;BR /&gt;Seems like I'm not the only one who loses 'less signs' here. I wonder who collects them and what he does with those. :~&lt;BR /&gt;&lt;BR /&gt;AT89C2051 - I remember that part! I programmed in assembler those days...&lt;BR /&gt;&lt;BR /&gt;Back to the topic:&lt;BR /&gt;There are a few differences between 8051 and LPC.&lt;BR /&gt;&lt;BR /&gt;First: on the LPC you typically use true push-pull outputs, rather than the NMOS+pullup of the 8051. Therefore you have to configure the outputs as such, because by default they're inputs with weak pull-ups enabled. This is done by setting the IOxDIR bit p to one, if you want Px.p as an output. Like this: IO0DIR |= 1 SHL p;&lt;BR /&gt;&lt;BR /&gt;Next point: you don't have instructions for setting/resetting one single port pin. Instead you have to access all the 32bits of a port at once, preferably with the IOxSET or IOxCLR registers. You can set pin p of Port x by IOxSET = 1 SHL p; The clearing works by using IOxCLR.&lt;BR /&gt;&lt;BR /&gt;Setting a bit and clearing in the next code line might be a bit fast on the LPC, not only because it has a higher clock, but because the clock is not divided by 12 in the first place.&lt;BR /&gt;&lt;BR /&gt;I think your code can be ported relatively straightforward. But keep in mind, that porting almost never means: improving the code. And: you don't learn from porting, you learn from implementing it from scratch.&lt;BR /&gt;&lt;BR /&gt;PS: replace 'SHL' by the C shift left operator (two less signs)&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;hello MarcVonWindscooting. I know the basics with arm, very basic. I would like to create this code to study it carefully. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I send you my attempt code&amp;nbsp; in arm&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Might you help me build it? not want to bother you but would be a great help to me. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;thank you very much in advance&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:05:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Help-with-lpc17xx-from-8051/m-p/523725#M6361</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:05:17Z</dc:date>
    </item>
  </channel>
</rss>

