完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
注意:本实验采用清翔电子51单片机开发板(同样的51单片机开发板,不同型号,内部设计会有一定差异,程序不一定适用)
1、点亮一个灯 #include ***it LED1 = P1^0; //位地址声明,注意:***it 必须小写,P 大写! void main() //头文件 { LED1 = 0; //点亮P1.0上的小灯 } 效果图: 点亮多个灯的方法:简单来说,多***it定义几个就行,在此不再展开。 2、闪烁一个灯 #include ***it LED1 = P1^0; unsigned int i = 0;//定义一个无符号整数(声明部分) void main() //void即函数类型,无返回值 { while (1) { LED1 = 0; //点亮小灯 for (i=0; i<30000; i++); //延时 LED1 = 1; //熄灭小灯 for (i=0; i<30000; i++); //延时 } } 现象:点亮的第一个灯闪烁 闪烁全部灯 #include unsigned int i; //无符号整型,范围0~65535 void main() { while(1) //大循环 { P1 = 0x00; //全亮 i = 65535; while(i--); //延时 P1 = 0xff; //全灭 i = 65535; while(i--); //延时 } } 现象: 3、流水灯 方法一 #include unsigned int i=0; //无符号整型 范围0-65535 unsigned char cnt=0; //无符号字符型 范围0-255,省字节,所以用这个,无符号整型也可以的 void main() { while(1) //大循环 { for(cnt=0;cnt<8;cnt++) //最多移动7位,加上不移动,总共八次 { P1 = ~(0x01< } } } 现象:左移依次循环点亮 在这里补充一下左移的知识, 若P1=0xfe,即二进制为1111 1110 P1<<1;P1左移一位后 为1111 1100,移动时自动填零,所以上述程序采用了取反,来达到效果 方法二 使用这个字符循环左移库函数_cror_ #include #include #define uint unsigned int #define uchar unsigned char uchar temp; void delay(uint z) { uint x,y; for(x = z; x > 0; x--) for(y = 114; y > 0 ; y--); } void main()//main函数自身会循环 { temp = 0xfe; P1 = temp; //1111 1110 初值LED1亮 delay(100);//毫秒级延时 100毫秒 while(1) { temp = _crol_(temp, 1);//字符循环左移 P1 = temp;//移位完成后赋值给P1 每个一个灯点亮 delay(100);//毫秒级延时 100毫秒 } } 现象:左移依次循环点亮 补充下这个_cror_: 如果 a=0xfe;//1111 1110 b=_crol_(a,1) ;//左移1位后将高位补低位,1111 1101 4、蜂鸣器 #include unsigned int i = 0; //无符号整型 范围0-65535 unsigned char cnt = 0; //无符号字符型 范围0-255,省字节,所以用这个,无符号整型也可以的 ***it beep = P2^3; //蜂鸣器 void main() { while(1) //大循环 { for(cnt=0;cnt<8;cnt++) //最多移动7位,加上不移动,总共八次 { P1 = ~(0x01< for(i=0;i<30000;i++); //延时 } } } 现象:流水灯左移,亮灭一次蜂鸣器发一声,跑一趟总共发四声。 beep = 0;是蜂鸣器响,这里的取反是为了让它发滴滴声,而不是一直响。值得注意的是蜂鸣器发声的延时时间不能太短,不然它就一直叫。 总结一下:方法千万条,多练第一条 |
|
|
|
只有小组成员才能发言,加入小组>>
2548 浏览 0 评论
1146浏览 2评论
745浏览 1评论
499浏览 0评论
265浏览 0评论
427浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 09:59 , Processed in 1.044054 second(s), Total 48, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号