找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3074|回复: 17
打印 上一主题 下一主题
收起左侧

本人是菜鸟,编了一个程序但又不能运行,求大神帮我看看这程序哪里出错!

  [复制链接]
跳转到指定楼层
楼主
ID:92087 发表于 2015-10-28 16:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人是菜鸟,编了一个程序但又不能运行,请各位大神帮我看看哪里出问题!谢谢!
#include<reg51.h>
sbit ledred=P1^0;
sbit ledgreen=P1^1;
sbit k1=P0^0;
sbit k2=P0^1;
sbit k3=P0^2;
sbit sound=P1^2;
unsigned char count=0;
unsigned char miao=60;
void delay(unsigned char i)
{
    unsigned char a;
        for(a=0;i>a;a++);
}
void disp(unsigned char i)
{
        unsigned char led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
        P2=led[i/10];
        P3=led[i%10];
}
void timer1() interrupt 3
{
        TH1=(65536-50000)/256;
        TL1=(65536-50000)%256;
        count++;
        if(count==20)
        {
         count=0;
         miao--;
        }

}

void main()
{
    ledred=1;
        ledgreen=0;
        sound=0;
        TMOD=0x10;
        TH1=(65536-50000)/256;
        TL1=(65536-50000)%256;
        ET1=1;
        EA=1;
        TR1=1;
                while(1);
        disp(miao);
                if(miao==0)
        {ledred=0;ledgreen=1;sound=1;}
        if(k1==0)
        {
                delay(1000);
                if(k1==0){ledred=0;ledgreen=1;sound=1;}
        
        }
                if(k3==0)
        {
                delay(1000);
                if(k3==0){ledred=0;ledgreen=1;sound=1;}
        
        }
                if(k2==0)
        {
                delay(1000);
                if(k2==0){P2=0xff;P3=0xff;}
        
        }
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:76227 发表于 2015-10-28 22:58 | 只看该作者
while(1)  后面的程序出问题了    把那个分号去掉   后面所有的程序用花括号括起来

评分

参与人数 1威望 +6 黑币 +6 收起 理由
aybco + 6 + 6 很给力!

查看全部评分

回复

使用道具 举报

板凳
ID:92087 发表于 2015-10-29 09:41 | 只看该作者
905377346 发表于 2015-10-28 22:58
while(1)  后面的程序出问题了    把那个分号去掉   后面所有的程序用花括号括起来

谢谢!
回复

使用道具 举报

地板
ID:94087 发表于 2015-10-30 11:59 | 只看该作者
void main() {     ledred=1;         ledgreen=0;         sound=0;         TMOD=0x10;         TH1=(65536-50000)/256;         TL1=(65536-50000)%256;         ET1=1;         EA=1;         TR1=1;                 while(1);         disp(miao);                 if(miao==0)         {ledred=0;ledgreen=1;sound=1;}         if(k1==0)
回复

使用道具 举报

5#
ID:94087 发表于 2015-10-30 12:00 | 只看该作者
while1括号后的分号删掉
回复

使用道具 举报

6#
ID:44987 发表于 2015-10-31 16:57 | 只看该作者
while 1 后面的;去掉
回复

使用道具 举报

7#
ID:82476 发表于 2015-10-31 17:38 | 只看该作者
在main函数中while(1);语句已经死了,程序下不去,肯定不对啦。
回复

使用道具 举报

8#
ID:94279 发表于 2015-11-1 10:53 | 只看该作者
while(1)  后面, 把分号去掉, 后面所有用{}括起来
回复

使用道具 举报

9#
ID:93478 发表于 2015-11-1 13:51 | 只看该作者
看完之后,我觉得你应该是想完成一个60秒倒计时吧?没明白你要用k1;k2来控制什么?
回复

使用道具 举报

10#
ID:94325 发表于 2015-11-1 22:11 | 只看该作者
你的while语句构成了一个死循环
回复

使用道具 举报

11#
ID:94358 发表于 2015-11-1 22:12 来自手机 | 只看该作者
while(1)后面的“;”去掉然后用{}把后面的全括起来
回复

使用道具 举报

12#
ID:94365 发表于 2015-11-1 23:40 | 只看该作者
while(1)  后面的程序出问题了    把那个分号去掉   后面所有的程序用花括号括起来
回复

使用道具 举报

13#
ID:94385 发表于 2015-11-2 10:06 | 只看该作者
我来路过
回复

使用道具 举报

14#
ID:94392 发表于 2015-11-2 21:52 来自手机 | 只看该作者
解决好了可以教练我谢谢
回复

使用道具 举报

15#
ID:94660 发表于 2015-11-4 15:51 | 只看该作者
while(1)  后面的程序出问题了    把那个分号去掉   后面所有的程序用花括号括起来
回复

使用道具 举报

16#
ID:92087 发表于 2015-11-17 16:52 | 只看该作者
jasonlee 发表于 2015-10-30 11:59
void main() {     ledred=1;         ledgreen=0;         sound=0;         TMOD=0x10;         TH1=(655 ...

谢谢!
回复

使用道具 举报

17#
ID:96545 发表于 2015-11-21 09:56 | 只看该作者
while(1); 死这里出不来了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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