MCU 8051 IDE

(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Runing Light C)
(7 segment - C (tab))
Řádka 275: Řádka 275:
 
     }
 
     }
 
}
 
}
 +
 +
</source>
 +
 +
=== Two 7-segment ===
 +
[[Soubor:MCU-8051-IDE_2-7segment.gif|400px|right]]
 +
 +
<source lang="asm">
 +
MOV DPTR,#TAB
 +
 +
tens: MOV P0,#00000010B
 +
MOV R5,#01H
 +
units: MOV R3,#00H
 +
next: MOV A,R3
 +
MOVC A,@A+DPTR
 +
MOV P2,A
 +
ACALL delay
 +
INC R3
 +
CJNE R3,#10D,next
 +
MOV A,R5
 +
MOVC A,@a+dptr
 +
MOV P0,A
 +
INC R5
 +
CJNE R5,#11D,again
 +
SJMP tens
 +
again: SJMP units
 +
 +
delay: MOV R2,#06D
 +
temp2: MOV R1,#255D
 +
temp1: MOV R0,#255D
 +
DJNZ R0,$       
 +
DJNZ R1,temp1
 +
DJNZ R2,temp2
 +
RET
 +
 +
TAB: DB 00000010B ;0x02 0D
 +
DB 10011111B ;0x9F 1D
 +
DB 00100100B ;0x24 2D
 +
DB 00001100B ;0x1C 3D
 +
DB 10011000B ;0x98 4D
 +
DB 01001000B ;0x48 5D
 +
DB 01000000B ;0x40 6D
 +
DB 00011110B ;0x1E 7D
 +
DB 00000000B ;0x00 8D
 +
DB 00001000B ;0x0F 9D
 +
END
 +
  
 
</source>
 
</source>

Verze z 23. 5. 2013, 20:02

MCU-8051-IDE-logo.png MCU 8051 IDE MCU-8051-IDE-screen.png
popis: Vývoj aplikace pro 8051 v asm nebo C
vývojář Martin Ošmera
aktuální verze 1.4 (2011)
OS Unix-like, Microsoft Windows, freeBSD
typ softwaru aplikační
licence GNU General Public License
web mcu8051ide.sf.net wiki

Download FTP.jpg Download

Obsah

Instalace programu

Založení nového projektu

Simulace programu

Example

Write to Port

RD2kit 08.jpg

start:  	
        mov A,#01010101b
	mov P3,A
	acall delay
 
	mov A,#10101010b
	mov P3,A
	acall delay
 
	sjmp start
 
delay:	mov R0,#01h ; 108 ms 
skok1:	mov R1,#100
skok2:	mov R2,#250
 
skok:	DJNZ R2,skok
	DJNZ R1,skok2
	DJNZ R0,skok1
 
	ret
	end
#include <at89x51.h>
 
void _delay_ms(unsigned int msec) //for 11.0592Mhz crystal
 
{
   unsigned int i,j;
   for(i=0;i<msec;i++)
   {
   for(j=0;j<110;j++);
   }
}
 
void main ()
{
   while(1)
   {
   P3 = 0x55;
   _delay_ms(100); // 100 ms
   P3 = 0xAA;
   _delay_ms(100);
   }
}

Read from Ports

RD2kit 09.jpg

 	org 0 ;pseudoinstrukce umistujici program do pameti programu pocitace adresou 000h
 
start:  	
	mov A,#P1
	mov P3,A
	sjmp start

Runing Light

MCU-8051-IDE 03.jpg
	org 0 ;pseudoinstrukce umistujici program od 00h
 
  	mov P3,#11111110B	;0. bit na log "0"
loop:	mov A,P3
	rlc A	 		;posun obsah A přes C doleva
	mov P3,A
	acall delay	 	;zavolá podprogram pro zpoždění 1s
 	sjmp loop	 	;skočí zpět k rotaci P1
 
delay:	mov R0,#01h		;podprogram zpoždění
skok1:	mov R1,#01h
skok2:	mov R2,#01h
 
skok:	djnz	R2,skok
	djnz	R1,skok2
	djnz	R0,skok1
 
	ret 	 
	end

Runing Light C

#include <at89x51.h>
 
#define LED P2_3
 
void main()
{
	int i;
	while(1)
	{
		if (LED)
		{
		LED = 0;
		}
		else 
		{
		LED = 1;
		}
	  {
	  for(i=0;i<10000;i++);
	  }
	}
}
#include <at89x51.h> 
#include <delay.h> 
 
void main()
{
   while (1) 
   {
      P1=0xff;
      _delay_ms(50); // 50 ms
      P1=0x00;
      _delay_ms(50); // 50 ms
   }
}
 
/* file delay.h contains:
unsigned int i,j;
 
void _delay_ms(unsigned int msec) // crystal 10 059 kHz
{
	for(i=0;i<msec;i++)
	for(j=0;j<110;j++);
}

7 segment

MCU-8051-IDE 07.gif
	MOV DPTR,#TAB 	;ulozi adresu cislic do DPTR
nastav:	MOV R5,#0	;nastaveni prvni cislice
zobraz:  MOV A,R5	;presun cislice z R5 do A
	MOVC A,@A+DPTR	;vybere prislusnou hodnotu pro A
	MOV P3,A		;presum hodnoty na port
	INC R5		;zvysi cislo v R5 o 1 
	CJNE R5,#10,zobraz
	SJMP nastav
 
TAB:	DB 0C0h,0F9H,0A4H,0B0H,99H ;0,1,2,3,4,
	DB 92H,82H,0F8H,80H,90H    ;5,6,7,8,9,
	end

7 segment v2

MCU-8051-IDE 04.gif
	mov R6,#10    
START:	djnz R6,NEXT
	mov R6,#10
	mov R5,#0
NEXT:	mov DPTR,#TAB
	mov A,R5
	movc A,@A+DPTR
	mov P3,A
	inc R5
	sjmp START
 
TAB:	DB 0C0H,0F9H,0A4H,0B0H,99H ;0,1,2,3,4,
	DB 92H,82H,0F8H,80H,90H   ;5,6,7,8,9,
	end

7 segment - C

MCU-8051-IDE 05.gif
__sfr __at (0xB0) P3;
 
#define DELAYTIME   15 //Defined delay time constant, originally 65000
unsigned int temp1;
 
void delay(unsigned int temp)//Delay process
{
  while(--temp);
}
 
void main()
{
        P3=255;	//led is off  HGFEDCBA = "1"
        while(1)
	{
                P3=0Xc0;		//0 HG = "1" OFF
		temp1=DELAYTIME;
		delay(temp1);
 
		P3=0XF9;		//1 BC = "0" = ON
		temp1=DELAYTIME;
		delay(temp1);
		}
}

7 segment - C (tab)

MCU-8051-IDE 06.gif
#include <at89x51.h>
 
__code unsigned char out[16] = {0xC0,0xF9,0xA4,0xB0, //0,1,2,3
			        0x99,0x92,0x82,0xF8, //4,5,6,7
			        0x80,0x90,0x08,0x03, //8.9.A.B
			        0x46,0x21,0x06,0x0E};//C,D,E,F
void main(void)
{
    __data unsigned char i = 0;
 
     while (1) // program loop
     {
          P3 = out[i++];
          if (i==16)
               i=0;
     }
}

Two 7-segment

MCU-8051-IDE 2-7segment.gif
	 MOV	DPTR,#TAB	 
 
tens: 	 MOV	P0,#00000010B
	 MOV	R5,#01H			
units:	 MOV	R3,#00H		 
next:	 MOV	A,R3			 
	 MOVC	A,@A+DPTR	 
	 MOV 	P2,A
	 ACALL	delay				 
	 INC	R3				 
	 CJNE	R3,#10D,next
	 MOV	A,R5
	 MOVC	A,@a+dptr
	 MOV	P0,A
	 INC	R5
	 CJNE	R5,#11D,again
	 SJMP	tens
again:	 SJMP	units			 	
 
delay:	MOV	R2,#06D		 
temp2:	MOV	R1,#255D		 
temp1:	MOV	R0,#255D		 
	DJNZ	R0,$         
	DJNZ	R1,temp1		 
	DJNZ	R2,temp2		 
	RET			
 
TAB:	DB 00000010B	;0x02 	0D
	DB 10011111B	;0x9F	1D		
	DB 00100100B	;0x24	2D		
	DB 00001100B	;0x1C	3D		
	DB 10011000B	;0x98	4D
	DB 01001000B	;0x48	5D
	DB 01000000B	;0x40	6D		
	DB 00011110B	;0x1E	7D		
	DB 00000000B	;0x00	8D		
	DB 00001000B	;0x0F	9D					
END

Counter

MCU-8051-IDE 09.gif
	MOV	TMOD,#00000001B
  	MOV	TH0,#00H
  	MOV	TL0,#00H
  	SETB	TR0
 
	MOV DPTR,#TAB 	;ulozi adresu cislic do DPTR
nastav:	MOV R5,#0	;nastaveni prvni cislice
zobraz:  MOV A,R5	;presun cislice z R5 do A
	MOVC A,@A+DPTR	;vybere prislusnou hodnotu pro A
	MOV P3,A		;presum hodnoty na port
	INC R5		;zvysi cislo v R5 o 1 
	acall test
	CJNE R5,#10,zobraz
	SJMP nastav
 
test:
;	ACALL	ZPOZD
 	JNB     P1.0,$		;bit P1.0=0 skok na sebe sama
; 	ACALL	ZPOZD
 	JB	P1.0,$		;bit P1.0=1 skok na sebe sama
	ret
 
ZPOZD:	MOV		R0,#05H
SKOK:	JNB		TF0,$
	CLR		TF0
 	DJNZ		R0,SKOK
 	RET
 
TAB:	DB 0C0h,0F9H,0A4H,0B0H,99H ;0,1,2,3,4,
	DB 92H,82H,0F8H,80H,90H    ;5,6,7,8,9,
	end

www

8051

Osobní nástroje
Jmenné prostory
Varianty
Akce
Rychlá navigace
NEJ aktivity
Nejlepší předměty
Nejlepší MCU
SW-HW
Ostatní
Utility
Nástroje
Tisk/export