MCU 8051 IDE

(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(7 segment)
(7 segment)
Řádka 97: Řádka 97:
  
 
=== 7 segment ===
 
=== 7 segment ===
 +
[[Soubor:MCU-8051-IDE_07.gif|400px|right]]
 +
 +
<source lang="asm">
 +
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
 +
</source>
 +
 +
=== 7 segment v2 ===
 
[[Soubor:MCU-8051-IDE_04.gif|400px|right]]
 
[[Soubor:MCU-8051-IDE_04.gif|400px|right]]
  

Verze z 11. 6. 2012, 20:26

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

 	org 0 ;pseudoinstrukce umistujici program do pameti programu pocitace adresou 000h
 
start:  	
	mov A,#01010101b
	mov P3,A
	acall delay
 
	mov A,#10101010b
	mov P3,A
	acall delay
 
	sjmp start
 
delay:	mov R0,#01h
skok1:	mov R1,#01h
skok2:	mov R2,#01h
 
skok:	DJNZ	R2,skok
	DJNZ	R1,skok2
	DJNZ	R0,skok1
 
	ret
	end


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


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;
     }
}

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