【027】查表方式双IO口流水灯2007-05-02 15:59:00
【评论】
【打印】
【字体:大 中 小】
本文链接:http://blog.pfan.cn/wentao/25470.html
org 0000h
ajmp start
start: mov dptr,#table
mov 30h,#16
lop: mov a,#0
movc a,@a+dptr
mov p2,a
inc dptr
mov a,#0
movc a,@a+dptr
mov P0,a
inc dptr
lcall delay100ms
djnz 30h,lop
ajmp start
delay100ms: mov r5,#195
temp: mov r6,#255
djnz r6,$
djnz r5,temp
ret
table: dw 0xfffe, 0xfffd, 0xfffb, 0xfff7
dw 0xffef, 0xffdf, 0xffbf, 0xff7f
dw 0x7fff, 0xbfff, 0xdfff, 0xefff
dw 0xf7ff, 0xfbff, 0xfdff, 0xfeff
end
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
void delay_ms(uchar ms);
uint state[16] = {0xfffe, 0xfffd, 0xfffb, 0xfff7,
0xffef, 0xffdf, 0xffbf, 0xff7f,
0x7fff, 0xbfff, 0xdfff, 0xefff,
0xf7ff, 0xfbff, 0xfdff, 0xfeff};
void main()
{
uchar i;
while(1)
{
for(i = 0; i < 16; i++)
{
P2 = state[i] / 256;
P0 = state[i] % 256;
delay_ms(100);
}
}
}
void delay_ms(uchar ms)
{
uchar i;
while(ms--)
for(i = 0; i < 124; i++);
}
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uint state[16] = {0xfffe, 0xfffd, 0xfffb, 0xfff7,
0xffef, 0xffdf, 0xffbf, 0xff7f,
0x7fff, 0xbfff, 0xdfff, 0xefff,
0xf7ff, 0xfbff, 0xfdff, 0xfeff};
void delay_ms(uchar ms);
void main()
{
uchar i;
uchar *p;
while(1)
{
p = state;
for(i = 0; i < 16; i++)
{
P2 = *p;
P0 = *(p+1);
delay_ms(100);
p = p + 2;
}
}
}
void delay_ms(uchar ms)
{
uchar i;
while(ms--)
for(i = 0; i < 124; i++);
}
阅读(4219) | 评论(2)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论