一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 3117|回复: 9
收起左侧

[其他综合] 刚学C,感觉比汇编难多了。试编了个闪灯程序没成功

[复制链接]
发表于 2011-8-8 07:11 | 显示全部楼层 |阅读模式
编译时有2个警告,HEX文件烧入后灯没闪。把这句:LED=!LED改成LED=0灯也没常亮。好象是没进中断。请大家帮忙看看
#include <reg51.h>
typedef unsigned char uint8;
/*typedef unsigned int  uint16; */
sbit LED=P1^7;
uint8 j=0;

void timer0_init()
{
TMOD =0X01;
TH0  =0X3C;
TL0  =0XB0;
TR0  =1;
}
void int_init()
{
EA  =1;
ET0 =1;
}
void main()
{
  void timer0_init();
  void int_init();
  while(1);
}
void interrupt_timer0()  interrupt 1
{
TH0=0X3C;
TL0=0XB0;
j++;
if(10==j)
{
  LED=!LED ;
  j=0 ;
}
}
发表于 2011-8-8 07:48 | 显示全部楼层
等你移植的时候,你就会觉得汇编根本没法比
当然前提是你养成了良好的编程习惯
发表于 2011-8-8 08:05 | 显示全部楼层
写个大程序试试,比如说积分?
发表于 2011-8-8 08:23 | 显示全部楼层
是不是忘了把选择rom的脚拉高了
发表于 2011-8-8 08:35 | 显示全部楼层
昨天刚看了一个小时的视频教程,程序我还只能看懂两条,建议先试试硬件有没有问题。后面的全注释掉,直接LED=0 看看
发表于 2011-8-8 08:48 | 显示全部楼层
首先应该确认你能不能成功点亮一个LED。然后再排除其它问题。如果怀疑中断,就应该将程序放在死LOOP里面试验代码。
贴出的代码没看到有死LOOP部分,不知道你的CPU会不会出问题,我试过PIC的没写这部分他工作不正常。
发表于 2011-8-8 09:01 | 显示全部楼层
把主函数里的“void”去掉
发表于 2011-8-8 10:41 | 显示全部楼层
#include <reg51.h>
typedef unsigned char uint8;
/*typedef unsigned int  uint16; */
sbit LED=P1^7;
uint8 j=0;
void timer0_init()
{
TMOD =0X01;
TH0  =0X3C;
TL0  =0XB0;
TR0  =1;
}
void int_init()
{
EA  =1;
ET0 =1;
}
void main()
{
timer0_init();
int_init();
while(1);
}
void interrupt_timer0() interrupt 1
{
TH0=0X3C;
TL0=0XB0;
j++;
if(10==j)
{
  LED=!LED;
  j=0;
}
}

函数调用时就不要void了。如果你目的是让LED常亮,那就改为LED=0,你LED=!LED的话LED会显示错乱的,如果是让LED闪烁,那就改为LED=~LED。
 楼主| 发表于 2011-8-8 18:37 | 显示全部楼层
谢谢大家!感觉是lihongran 说的那样,等会去试一下
发表于 2011-8-9 23:05 | 显示全部楼层
本帖最后由 sirius 于 2011-8-9 23:09 编辑

等你学好C,回头再看时,你会发现,花再多的时间都是值得的,现在的单片机太多了,但学会C,一键走天下的,呵呵。我原来51上用的C,后来转AVR花了一周时间,再转到STM32系用了两周。现在如果程序结构规替划的好的话,几种单片机写的程序可很方便的移来移去的---主要的算法这类不用改,就改改驱动部分。
    BTW:你的程序出了一大问题,看来你对C的理解还不是很深
void main()
{  void timer0_init();
你在这的函数名前加了一个类型--void,后面还没有函数体,这样就成了函数申明,而不是函数调用,也就是你在main内申明了一个与外部timer0_init同名的局部函数,但这个函数目前仅申明了,尚没定义,所以你会有“函数没定义”这类的警告。

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-4-28 23:07 , Processed in 0.073819 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表