完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
#define LED P0 void delay();//延时一秒 void main() //按位操作点亮小灯 { unsigned int i; while(1) { for(i = 0;i<8;i++) { LED = ~(0X01< delay(); } } } void delay() //延时一秒 { unsigned int i,j; for(i = 0;i<83;i++) { for(j = 0;j<1000;j++) { ; } } } 由于博主寒假在家里,手里没有51单片机,于是我就用Proteus搭建好了简单的电路,用keil5编写好文件后生成.hex文件,然后添加到Proteus里面运行,具体操作如下: 然后勾选上下面的选项: 然后将写好的代码保存,最后打开Proteus软件。 搭建电路如下: 然后插入代码与电路结合: 选中.hex文件确认,然后左下角运行: 运行如下,蓝色代表小灯正常运行: 我们可以看到小灯从第一个灯循环到第八个灯。 细心的朋友可以看到,我们的delay()函数设定的延时时间是一秒,为什么是一秒呢?这里的控制比较巧妙,用了两个for()循环语句,外层循环执行83次,内层循环执行1000次,也就是总共执行了83 * 1000次,在c语言中执行一次语句的秒数可以通过在前后位置分别下断点观察到,为了深入理解为什么程序执行83*1000次就可以达到1秒,我们在这一语句前后分别下一个断点,通过观察两个端点之间的时间差来大致判断程序的指向时间: |
|
|
|
只有小组成员才能发言,加入小组>>
2182 浏览 0 评论
1161浏览 3评论
641浏览 2评论
[求助]atmega1280与atmega2560在程序上有什么区别?
2245浏览 1评论
323浏览 1评论
1188浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-24 00:05 , Processed in 1.037962 second(s), Total 76, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号