实现51单片机第一个LED灯的1Hz闪烁,程序哪里错了?下载到开发板上后一直亮着……

#include <reg52.h>
sbit l1=P1^0;
void main()
{
while(1)
{
int a ;
for(a=38400;a--;a!=1)
l1 =0;
for(a=0;a++;a<38400)
l1 =1;
}

int a ; 范围是-32768 --- +32767
for(a=0;a++;a<38400) //a 始终小于38400程序跑不出这个for循环,一直在执行I1 = 1
把a明为无符号整形数(unsigned int)试试。追问

用uint不是0到65532,范围更大了嘛

追答

用uint不是0到65532,对啊,这样程序就不会一直陷在for循环里。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-30
#include <reg52.h> // 这样试试
sbit l1=P1^0;
void main()
{
while(1)
{
int a ;
for(a=38400;a--;a!=1)
l1 =0;
for(a=38400;a--;a!=1)
l1 =1;
}
}本回答被提问者和网友采纳
第2个回答  2013-08-30
用uint, uint范围0~65536,而int只有-65536/2~65536/2
第3个回答  2013-08-30
可能时间太短吧
第4个回答  2013-08-30
38400超出了int的范围。 用unsigned int a;定义追问

我电脑的开发环境是32位的,那么范围不是-2^16 ~ 2^16 -1 ( ^ 表示乘方 )吗,没超出啊

实现51单片机第一个LED灯的1Hz闪烁,程序哪里错了?下载到开发板上后...
int a ; 范围是-32768 --- +32767 for(a=0;a++;a<38400) \/\/a 始终小于38400程序跑不出这个for循环,一直在执行I1 = 1 把a明为无符号整形数(unsigned int)试试。

51单片机一个引脚输出一个方波,频率为1Hz到100zHz,第一次用这个应用,所...
S1);\/\/检测到按键改变频率\/*我这里只改变显示的数值,实际上改变数值后你还应该根据新的数值改变定时器的预设值,才能真正改变频率*\/freq = (freq+1)%100;}}}void display_num(uchar freq){uchar num1,num2;num1 = freq\/10;\/\/频率十位num2 = freq%10;\/\/个位CS_1 = 0;...

点亮任意一个LED,先以1HZ的频率闪烁5秒,再以100HZ的频率闪烁5秒,以此...
LED=!LED;delay(5);} } }

让发光二极管以1HZ闪烁。。。?1HZ具体是什么?单片机的晶振频率是11.0596...
让发光二极管以1Hz闪烁,就是让发光二极管毎秒钟闪一下。Hz(赫兹)是频率单位,指毎秒钟完成n个重复动作。本例1Hz,是指LED亮灭一次。51单片机常用的晶振频率应该是11.0592MHz,是MHz,1MHz=1百万Hz。11.0592MHz 转换成时间是 1千1百零5万9千2百分之1秒,即 0.000000090422... 秒。要想让发光...

在51单片机的一个引脚输出一个方波,频率为1HZ-2KHZ,要求用定时器来实现...
if(num<1)num=1;} main(){ Time_Int();led =0;while(1){ keyscan();qian=num\/1000;bai =num%1000\/100;shi =num%1000%100\/10;ge =num%1000%100%10;} } void time0() interrupt 1 { TH0 =0xff;\/\/0.1ms TL0 =0xa3;P0=0X00;cnt++;if(cnt<=a){ led=1;} else if(...

C51单片机编程 求按下按键 8盏LED灯闪烁3次后 灯灭 闪烁频率为1HZ
题目不说清楚,真害人 1、是用一个I\/O口接了8个LED(当然不是,是某一P口)?是用哪一P口?2、然后呢?(单片机不会休息的)3、是用定时器?(还没学到定时器课程吧?)还是延时子程序?4、是汇编语言程序?还是C语言程序?

利用51单片机,4个数码管设计一个计时器,要求在数码管上显示的数据从0开...
2764:EPROM,为单片机提供外部的程序存储区。开关K0、K1、K2分别调整秒、分、时。按键RESET:在复位电路中,起到程序复位的作用。按键PULSE:提供单脉冲,从而实现单片机对外部脉冲的计数功能,利用单脉冲实现相应位加1。(2)地址分配和连接P2.7:和写信号一起组成字位口的片选信号,字位口的对应地址位8000HP2.6:和写...

51单片机 用1个按键控制8盏灯,进行花样显示
P1=P1<<1; \/\/左移或右移,这个自己试一下 delay(1000);.\/\/继续移动到最后一个灯亮 if(P1=0x80) \/\/判断最后一个灯是否亮了,亮了就全部灭 { P1=0xff;} } } void key3(){ if(key==0){ P1=0x00; \/\/全亮 delay(1000);P1=~P1; \/\/全灭 这里灭亮几次可以用for循环,...

让发光二极管以1HZ闪烁。。。?1HZ具体是什么?单片机的晶振频率是11.0596...
让发光二极管以1Hz闪烁,就是让发光二极管毎秒钟闪一下。Hz(赫兹)是频率单位,指毎秒钟完成n个重复动作。本例1Hz,是指LED亮灭一次。51单片机常用的晶振频率应该是11.0592MHz,是MHz,1MHz=1百万Hz。11.0592MHz 转换成时间是 1千1百零5万9千2百分之1秒,即 0.000000090422... 秒。要想让发光...

怎样用51单片机实现累加计时和倒计时,并用六个共阴极数码管显示出来。用...
校时电路是直接加一个脉冲信号到时计数器或者分计数器或者秒计数器来对“时”、“分”、“秒”显示数字进行校对调整。在本设计中,24小时时钟显示、秒表的设计和显示都是依靠单片机中的定时器完成。使用定时器T0产生1s的中断,在中断程序中完成每一秒数字的变化,并在主程序中动态显示该字符。其功能框图如图2.3所示。

相似回答
大家正在搜