Příklady s časovým zpožděním v C pro 8051: Porovnání verzí

Z MediaWiki SPŠ a VOŠ Písek
Skočit na navigaci Skočit na vyhledávání
Bez shrnutí editace
Bez shrnutí editace
Řádek 118: Řádek 118:
   }
   }
}
}
</source>
==Automatická pračka==
===Program pro automatickou pračku===
'''Blokové schéma:'''  [ftp://obelix.sps-pi.cz/n/janousek/mikroLAB/30_SES%20sestavy/SES03%20Pracka/pracka.JPG SES03 Pračka]
<source pracka"asm">
$smod51
org 0
start: mov P3,#00h
vypust:
setb P3.2 ; zapne cerpadlo
jnb P1.0,$ ; test MIN hladiny vody
clr P3.2 ; vypne cerpadlo
napust:
mov P3,#00000011b ; zapne 1. a 2. ventil
jb P1.1,$ ; test MAX hladiny vody ceka na log.„0“
mov P3,#00000000b ; vypne ventily
ohrev:
setb P3.3 ; zapne ohrev
jb P1.2,$ ; test na dosazeni teploty ceka na log.„0“
clr P3.3 ; vypne ohrev
mov r3,#00h
toc:
mov P3,#00110000b
acall zpozd
mov P3,#01100000b
acall zpozd
mov P3,#11000000b
acall zpozd
mov P3,#10010000b
acall zpozd
jnb P1.3,toc
inc r3
cjne r3,#05h,toc
mov P3,#00h
vypust1:
setb P3.2 ; zapne cerpadlo
jnb P1.0,$ ; test MIN hladiny vody ceka na log. „1“
clr P3.2 ; vypne cerpadlo
sjmp konec
zpozd: mov r6,#0ffh
zpozd1:
mov r7,#0ffh
djnz r7,$ ;dekrementuje R7 dokud není log. „0“
djnz r6, zpozd1
ret ; návrat z podprogramu
konec:
mov P3,#00h
sjmp start
end
</source>
</source>

Verze z 30. 4. 2011, 07:20

zdroj informací: http://what-when-how.com/8051-microcontroller/data-types-and-time-delay-in-8051-c/

Unsigned char

example 7-1

#include <reg51.h>

void main (void)

{
	unsigned char z;
	for (z=0;z<=255;z++)
	P1=z;
}

example 7-2

#include <reg51.h>

void main (void)

{
	unsigned char mynum [] = "012345ABCD";
	unsigned char z;

	for (z=0;z<=10;z++)
	P1 = mynum[z];
	
}

example 7-3

#include <reg51.h>

void main (void)

{

for (;;)   //opakovani cyklu
	
	
	P1=0x55; 
	P1=0xAA; 
	
}

Unsigned char

example 7-4

#include <reg51.h>

void main (void)

{

	char mynum [] = {+1,-1,+2,-2,+3,-3,+4,-4};
	unsigned char z;

	for (z=0;z<=8;z++)
	P1 = mynum[z];
	
}

example 7-5

#include <reg51.h>
 
sbit MYBIT = P1^0; //definování výstupního bitu

void main (void)

{
  	 MYBIT = 0;
	 MYBIT = 1;

}


example 7-5-2

#include <reg51.h>
 
sbit MYBIT = P1^0; //definování výstupního bitu

void main (void)

{
  	 MYBIT = ~MYBIT;
}

example 7-5-3

#include <reg51.h>
 
sbit MYBIT = P1^0; //definování výstupního bitu

void main (void)

{
	unsigned int z;
	for (z=0;z<=5;z++)
	{
  	 MYBIT = 0;
  	 MYBIT = 1;
   }
}