完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本人菜鸟一枚,单片机板子是STC89C52,现在想做一个来回闪的流水灯,现在只能实现从右到左,不知道怎么返回。。。麻烦大神指点一二。。。真心谢谢了。。。
#include ***it ADDR0 = P1^0; ***it ADDR1 = P1^1; ***it ADDR2 = P1^2; ***it ADDR3 = P1^3; ***it ENLED = P1^4; void main() { unsigned int i = 0; unsigned char cnt = 0; ENLED = 0; ADDR3 = 1; ADDR2 = 1; ADDR1 = 1; ADDR0 = 0; while(1) { P0 = ~(0x80 >> cnt); for(i=0;i<30000;i++); cnt++; if(cnt >=8) { cnt = 0; } } } |
|
相关推荐
8个回答
|
|
有没有大神帮我看看,谢谢了
|
|
|
|
右移改一句即可变为左移
P0 = ~(0x01 << cnt); for(i=0;i<30000;i++); cnt++; if(cnt >=8) { cnt = 0; } |
|
|
|
|
|
|
|
感觉有些语句有些含糊不清 还望楼主能加上注释
|
|
|
|
|
|
|
|
#include
unsigned char code tab[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xFF,0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE}; int j; ***it ADDR0 = P1^0; ***it ADDR1 = P1^1; ***it ADDR2 = P1^2; ***it ADDR3 = P1^3; ***it ENLED = P1^4; void main() { unsigned int i = 0; unsigned char cnt = 0; ENLED = 0; ADDR3 = 1; ADDR2 = 1; ADDR1 = 1; ADDR0 = 0; while(1) { for(j=0;j<16;j++) { P0=tab[j]; for(i=0;i<20000;i++); } } } |
|
|
|
#include
#include unsigned char temp; int a; void delay(void); void main() { temp=0xfe; P0=temp; while(1) { for(a=0;a<7;a++) { temp=_crol_(temp,1); delay(); P0=temp; } for(a=0;a<7;a++) { temp=_cror_(temp,1); delay(); P0=temp; } } } void delay() { int i,j; for(i=200;i>0;i--) for(j=1;j<150;j++); } |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
求解外围电路实现的是4脚给持续低电平复位并正常工作,高电平不工作的原因
2084 浏览 1 评论
3629 浏览 3 评论
PIC1946程序有一个变量在运行过程中恢复初始值其他变量保持不变
2336 浏览 2 评论
2763 浏览 0 评论
PIC16F1825的RC5引脚,在主程序中操作无效,在中断中可以改变是为什么?
4027 浏览 5 评论
976浏览 0评论
用XC8编译PIC18F25K80时提示下面Error,求怎么解决这个问题
6362浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 08:13 , Processed in 0.770688 second(s), Total 99, Slave 78 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号