1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 8个灯以此点亮c语言程序 单片机流水灯C语言程序(8个灯 依次点亮每个灯 延时500MS)...

8个灯以此点亮c语言程序 单片机流水灯C语言程序(8个灯 依次点亮每个灯 延时500MS)...

时间:2020-09-20 11:57:12

相关推荐

8个灯以此点亮c语言程序 单片机流水灯C语言程序(8个灯 依次点亮每个灯 延时500MS)...

#include

#include

void delayms(unsigned char ms)

// 延时子程序

{

unsigned char i;

while(ms--)

{

for(i = 0; i < 120; i++);

}

}

main()

{

unsigned char led;

led = 0xfe;

p0 = led;

while(1)

{

delayms(250);

led = _crol_(led,1); //循环右移1位,点亮下一个led

p0 = led;

}

}

reg51.h中定义的sfr:

/* byte register */

sfr p0 = 0x80;

sfr p1 = 0x90;

sfr p2 = 0xa0;

sfr p3 = 0xb0;

sfr psw = 0xd0;

sfr acc = 0xe0;

sfr b = 0xf0;

sfr sp = 0x81;

sfr dpl = 0x82;

sfr dph = 0x83;

sfr pcon = 0x87;

sfr tcon = 0x88;

sfr tmod = 0x89;

sfr tl0 = 0x8a;

sfr tl1 = 0x8b;

sfr th0 = 0x8c;

sfr th1 = 0x8d;

sfr ie = 0xa8;

sfr ip = 0xb8;

sfr scon = 0x98;

sfr sbuf = 0x99;

/* bit register */

/* psw */

sbit cy = 0xd7;

sbit ac = 0xd6;

sbit f0 = 0xd5;

sbit rs1 = 0xd4;

sbit rs0 = 0xd3;

sbit ov = 0xd2;

sbit p = 0xd0;

/* tcon */

sbit tf1 = 0x8f;

sbit tr1 = 0x8e;

sbit tf0 = 0x8d;

sbit tr0 = 0x8c;

sbit ie1 = 0x8b;

sbit it1 = 0x8a;

sbit ie0 = 0x89;

sbit it0 = 0x88;

/* ie */

sbit ea = 0xaf;

sbit es = 0xac;

sbit et1 = 0xab;

sbit ex1 = 0xaa;

sbit et0 = 0xa9;

sbit ex0 = 0xa8;

/* ip */

sbit ps = 0xbc;

sbit pt1 = 0xbb;

sbit px1 = 0xba;

sbit pt0 = 0xb9;

sbit px0 = 0xb8;

/* p3 */

sbit rd = 0xb7;

sbit wr = 0xb6;

sbit t1 = 0xb5;

sbit t0 = 0xb4;

sbit int1 = 0xb3;

sbit int0 = 0xb2;

sbit txd = 0xb1;

sbit rxd = 0xb0;

/* scon */

sbit sm0 = 0x9f;

sbit sm1 = 0x9e;

sbit sm2 = 0x9d;

sbit ren = 0x9c;

sbit tb8 = 0x9b;

sbit rb8 = 0x9a;

sbit ti = 0x99;

sbit ri = 0x98;

instric.h中定义的内函数有:

extern void _nop_ (void);

extern bit _testbit_ (bit);

extern unsigned char _cror_ (unsigned char, unsigned char);

extern unsigned int _iror_ (unsigned int, unsigned char);

extern unsigned long _lror_ (unsigned long, unsigned char);

extern unsigned char _crol_ (unsigned char, unsigned char);

extern unsigned int _irol_ (unsigned int, unsigned char);

extern unsigned long _lrol_ (unsigned long, unsigned char);

extern unsigned char _chkfloat_(float);

extern void _push_ (unsigned char _sfr);

extern void _pop_ (unsigned char _sfr);

此程序使用了内函数实现,也可以自己用移位操作实现。

#include

void delay(unsigned char ms)

{ unsigned int i;

while(ms--)

{

for(i=0;i<120;i++);

}

}

main()

{unsigned char led,mid1,mid2;

led=0xfe;

p0=led;

while(1)

{mid1=led>>7;

mid2=led<<1;

led=mid1|mid2;

delay(250);

p0=led;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。