您的位置:控制工程论坛网论坛 » 自动化软件 » 编程求教 ????????

belle

belle   |   当前状态:在线

总积分:672  2024年可用积分:0

注册时间: 2011-06-29

最后登录时间: 2012-04-18

空间 发短消息加为好友

编程求教 ????????

belle  发表于 2011/8/11 10:21:25      873 查看 1 回复  [上一主题]  [下一主题]

手机阅读

用单片机做“眨眼的LED”实验时,程序运行,每次只令灯亮或灭都没问题,但是一开延时不能出现期盼的灯亮灯灭的现象,这是怎么回事?  
实验的硬件条件是:STC89C52,编译环境:keil 3。

下面是我写的程序,请教高手!!!


#include <reg51.h>   // 文件包含处理

#define uchar unsigned char   //宏定义,方便以后程序的书写
#define uint unsigned int

sbit P1_0 = P1 ^ 0;    //位变量定义


void Delay(uint t)
{
   uchar i;
   while(--t)
   {
      for(i = 0; i < 125; i++)  //延时1MS,在这里我们用的晶振是是12M,根据机器周期的计算,我们
     {;}                        //可算得本次循环延时约1MS
}
}

void main(void)


{

while(1)
    {
    P1_0 = 0;      //点亮LED灯
    Delay(1000);   //应单片执行程序的时间很快,所以必须延时,要不看不到实验现象
    P1_0 = 1;      //熄灭LED灯
    }


1楼 0 0 回复
  • sweect

    sweect   |   当前状态:在线

    总积分:5941  2024年可用积分:0

    注册时间: 2007-11-07

    最后登录时间: 2023-08-21

    空间 发短消息加为好友

    sweect   发表于 2011/8/12 16:02:59

    #include<reg51.h>  // 文件包含处理

    #define uchar unsigned char  //宏定义,方便以后程序的书写
    #define uint unsigned int

    sbit P1_0 = P1 ^0;   //位变量定义


    void Delay(uint t)
    {
       uchar i;
       while(--t)
       {
         for(i = 0; i < 125; i++) //延时1MS,在这里我们用的晶振是是12M,根据机器周期的计算,我们

    2楼 回复本楼

    引用 sweect 2011/8/12 16:02:59 发表于2楼的内容

总共 , 当前 /