• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

一个维修工如何学单片机(讲述自己学单片机的经历) 3

上贴说到如何点亮一个灯.现在说说如何让一个LED闪烁.程序代码很简单
#include--头文件
#define uint unsigned int--定义无符号整型变量

sbit D1=P2^0;--把P2.0口定义为D1
void delay(uint z)--延时函数
  {
     uint x,y;
    for(x=z;x>0;x--)
  for(y=110;y>0;y--);
  }
void main()==主函数
{
P2=0xff;--上电时把P2口的灯全灭.
while(1)--进入while语句循环
{
D1=0;--P2.0的逻辑值为0,即P2.0输出电压为;此时P2.0口的LED被点亮
delay(50);延时50ms;
D1=1;--P2.0口逻辑值为1,P2.0输出电压为5V,此时,P2.0口LED熄灭;
delay(50);--延时50MS

}---上面这四条语句被封装在while()语句中,而while(1)这个语句括弧内一直为真,也就是大括弧内 语句永远被执行,所以这四 个语句使得P2.0口的LED不断闪烁.

}
本文相关图片如下:
学习板:500) {this.resized=true; this.width=500; this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/81/3540261253200319.jpg?x-oss-process=image/watermark,g_center,image_YXJ0aWNsZS9wdWJsaWMvd2F0ZXJtYXJrLnBuZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSxQXzQwCg,t_20');}" onmousewheel="return imgzoom(this);">
电路图:500) {this.resized=true; this.width=500; this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/81/3540261253200402.jpg?x-oss-process=image/watermark,g_center,image_YXJ0aWNsZS9wdWJsaWMvd2F0ZXJtYXJrLnBuZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSxQXzQwCg,t_20');}" onmousewheel="return imgzoom(this);">
全部回复(1)
正序查看
倒序查看
zhiweiwu
LV.2
2
2009-09-30 13:45
delay(50);延时50ms;
为什么是延时50ms呢?这个应该与单片机的时钟频率有关吧.
只能说是延时了50×110个时钟周期.
0
回复