完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
这次用单片机做个简单的流水灯。
先给大家看一下仿真软件的电路(软件为Proteus) 上图就是用仿真软件制作的线路原理图 AT89C51RC2:单片机 BUTTON:按键 CAP:电容 CRYSTAL:晶振 LED-GERRN:LED灯(绿色) RES:电阻 接下来是程序部分(软件为keil) #include“reg51.h” //此文件中定义了单片机的一些特殊功能寄存器 #include“intrins.h” //因为要用到左右移函数,所以加入这个头文件 void delay1ms(unsigned char c) //c=1时,大约为1ms { unsigned char a,b; for(c ;c》0;c--) for(b=142;b》0;b--) for(a=2;a》0;a--); } void main() { unsigned char led,i; //设定两个变量 led=0xfe; //硬件图上我们是负极连接单片机,所以输出0才能点亮LED,0xfe=1111 1110 delay1ms(100); //大约延时100ms while(1) { for(i=0;i《7;i++) //把0移到最右边需要7次 { P2=led; //P2口的8个引脚输出为0xfe delay1ms(100); led=_crol_(led,1); //左移函数,将led左移一位 _crol_(“变量”,“位数”) } for(i=0;i《7;i++) //同上for的作用 { P2=led; delay1ms(100); led=_cror_(led,1); //右移函数,将led右移一位 } } } PS: 程序中必须先赋值,再移位,不然在执行的时候最两边的灯是不亮的。 流水灯的快慢取决于delay的数值。 |
|
|
|
只有小组成员才能发言,加入小组>>
2496 浏览 0 评论
1059浏览 2评论
678浏览 1评论
440浏览 0评论
175浏览 0评论
292浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 15:51 , Processed in 1.044168 second(s), Total 47, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号