Příklady s časovým zpožděním v C pro 8051
(Rozdíly mezi verzemi)
Řádka 119: | Řádka 119: | ||
} | } | ||
</source> | </source> | ||
+ | |||
+ | |||
+ | </source> | ||
+ | |||
+ | ===example 7-6 (neověřeno)=== | ||
+ | |||
+ | <source lang"asm"> | ||
+ | #include <reg51.h> | ||
+ | |||
+ | void main (void) | ||
+ | |||
+ | { | ||
+ | unsigned int x; | ||
+ | for (;;) //repeat forever | ||
+ | { | ||
+ | P1=0x55; | ||
+ | for(x=0;x<40000;x++); //delay size unknown | ||
+ | P1=0xAA; | ||
+ | for(x=0;x<40000;x++); | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | ===example 7-7 (neověřeno)=== | ||
+ | |||
+ | <source lang"asm"> | ||
+ | |||
+ | #include <reg51.h> | ||
+ | void MSDelay(unsigned int); | ||
+ | void main (void) | ||
+ | { | ||
+ | while(1) //opakování cyklu | ||
+ | { | ||
+ | P1=0x55; | ||
+ | MSDelay(250); | ||
+ | P1=0xAA; | ||
+ | MSDelay(250); | ||
+ | } | ||
+ | } | ||
+ | Void MSDelay(unsigned int itime) | ||
+ | { | ||
+ | unsigned int i, j; | ||
+ | for(i=0;i<itime;i++) | ||
+ | for(j=0;j<1275;j++); | ||
+ | } | ||
+ | |||
+ | </source> | ||
+ | |||
+ | ===example 7-8 (neověřeno)=== | ||
+ | |||
+ | <source lang"asm"> | ||
+ | |||
+ | #include <reg51.h> | ||
+ | void MSDelay(unsigned int); | ||
+ | void main (void) | ||
+ | { | ||
+ | while(1) //another way to do it forever | ||
+ | { | ||
+ | P0=0x55; | ||
+ | P2=0x55; | ||
+ | MSDelay(250); | ||
+ | P0=0xAA; | ||
+ | P2=0xAA | ||
+ | MSDelay(250); | ||
+ | } | ||
+ | } | ||
+ | Void MSDelay(unsigned int itime) | ||
+ | { | ||
+ | unsigned int i, j; | ||
+ | for(i=0;i<itime;i++) | ||
+ | for(j=0;j<1275;j++); | ||
+ | } |
Verze z 18. 5. 2011, 11:55
zdroj informací: http://what-when-how.com/8051-microcontroller/data-types-and-time-delay-in-8051-c/
Obsah |
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; } }
</source>
example 7-6 (neověřeno)
#include <reg51.h> void main (void) { unsigned int x; for (;;) //repeat forever { P1=0x55; for(x=0;x<40000;x++); //delay size unknown P1=0xAA; for(x=0;x<40000;x++); } }
example 7-7 (neověřeno)
#include <reg51.h> void MSDelay(unsigned int); void main (void) { while(1) //opakování cyklu { P1=0x55; MSDelay(250); P1=0xAA; MSDelay(250); } } Void MSDelay(unsigned int itime) { unsigned int i, j; for(i=0;i<itime;i++) for(j=0;j<1275;j++); }
example 7-8 (neověřeno)
#include <reg51.h> void MSDelay(unsigned int); void main (void) { while(1) //another way to do it forever { P0=0x55; P2=0x55; MSDelay(250); P0=0xAA; P2=0xAA MSDelay(250); } } Void MSDelay(unsigned int itime) { unsigned int i, j; for(i=0;i<itime;i++) for(j=0;j<1275;j++); }