1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
1.效果展示
1.1.代码1效果 1.2.代码2效果 2.Proteus仿真 元器件:AT89C51 *1,LED-BLUE *2,LED-GREEN *2,LED-YELLOW *2,VCC *1,GROUND *1,电阻包RESPACK-8 *1. 说明:仿真图中LED灯左侧高电平,右侧低电平时,LED正常闪烁。 另:仿真连线使用标号模式。 3.代码1 # include 《reg51.h》 unsigned char table[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 }; //控制P0端口 void delay100ms(void) //误差 0us 用单片机小精灵生成的 { unsigned char a,b,c; for(c=19;c》0;c--) for(b=20;b》0;b--) for(a=130;a》0;a--); } void main() { unsigned int i; while(1) { for(i = 0; i 《 8; i ++) { P0 = table[i]; delay100ms(); } } } 4.代码2 #include《reg51.h》 #include《intrins.h》 void delay100ms(void) //误差 0us 用单片机小精灵生成的 { unsigned char a,b,c; for(c=19;c》0;c--) for(b=20;b》0;b--) for(a=130;a》0;a--); } void main() { unsigned char Data0,i; unsigned int Data1; Data0 = 0x01; // 二进制11111110B Data1 = 0x80; // 二进制01111111B while(1) { for(i = 0; i 《 8; i++) // 循环8次,可执行_crol_函数8次,将Data0各位循环左移8次,即8个LED逐个点亮。 { P0 = Data0; // 将Data传递给P2口 Data0 = _crol_(Data0, 1); // 11111110B各位左移1位 delay100ms(); } for(i = 0; i 《 8; i++) // 与上面道理相似,这是控制Data1各位右移 { P0 = Data1; Data1 = _cror_(Data1,1); delay100ms(); P0 = Data0; } } } |
|
|
|
只有小组成员才能发言,加入小组>>
2548 浏览 0 评论
1145浏览 2评论
744浏览 1评论
498浏览 0评论
263浏览 0评论
424浏览 0评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 17:45 , Processed in 1.315463 second(s), Total 78, Slave 60 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号