【026】查表方式流水灯2007-05-02 15:13:00
【评论】
【打印】
【字体:大 中 小】
本文链接:http://blog.pfan.cn/wentao/25469.html
org 0000h
ajmp start
start: mov dptr,#table
mov 30h,#8
lop: mov a,#0
movc a,@a+dptr
mov p1,a
lcall delay100ms
inc dptr
djnz 30h,lop
ajmp start
delay100ms: mov r5,#195
temp: mov r6,#255
djnz r6,$
djnz r5,temp
ret
table: db 07eh, 0bdh, 0dbh, 0e7h, 0e7h, 0dbh, 0bdh, 07eh
end
org 0000h
ajmp start
start: mov dptr,#table
mov 30h,#0
lop: mov a,30h
movc a,@a+dptr
mov p1,a
lcall delay100ms
inc 30h
mov a,30h
cjne a,#8,lop
ajmp start
delay100ms: mov r5,#195
temp: mov r6,#255
djnz r6,$
djnz r5,temp
ret
table: db 0feh, 0fdh, 0fbh, 0f7h, 0efh, 0dfh, 0bfh, 07fh
end
#include <reg51.h>
#define uchar unsigned char
uchar state[8] = {0xe7, 0xdb, 0xbd, 0x7e,
0x7e, 0xbd, 0xdb, 0xe7};
void delay_ms(uchar ms);
void main()
{
uchar i;
while(1)
{
for(i = 0; i < 8; i++)
{
P1 = state[i];
delay_ms(100);
}
}
}
void delay_ms(uchar ms)
{
uchar i;
while(ms--)
for(i = 0; i < 124; i++);
}
阅读(2691) | 评论(1)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论