久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9003|回復: 14
打印 上一主題 下一主題
收起左側

[求助]這個簡單的流水燈程序怎么了

[復制鏈接]
跳轉到指定樓層
樓主
ID:6799 發(fā)表于 2009-6-30 22:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
delay(uint t);
sbit P17=P1^7; //設置發(fā)光管的開關
main()
{

 P17=0;
 uchar k=0; //設置流水燈的方向標志位
 uchar leds=0x01;
 P0=~leds;
 while(1)
 {
  delay(1000); 
  if(k==0&&leds==0x80)
   {
     k=1;
   }
  else if(k==1&&leds==0x01) 
   {
    k=0;
   }
  if(k==0)
   {
    leds=leds<<1;
    P0=~leds;
   }
  else
   {
    leds=leds>>1;
    P0=~leds;
   }
  }

}
delay(uint t)
{
 uint i,j;
 for(i=0;1<t;i++);
 for(j=0;j<223;j++);
}

就這個簡單流水燈,為什么編譯老是說有K,leds沒有被定義,編譯無法通過,試著調整擺放P17的位置,卻能編譯成功,這到底為什么啊?誰能給個解釋啊?

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:8993 發(fā)表于 2009-7-1 08:49 | 只看該作者

#include <at89x51.h>
#define uchar unsigned char
#define uint unsigned int
uchar k,leds;
delay(uint t);
sbit P17=P1^7; //設置發(fā)光管的開關
main()
{

 P17=0;
 k=0; //設置流水燈的方向標志位
leds=0x01;
 P0=~leds;
 while(1)
 {
  delay(1000);
  if((k==0)&&(leds==0x80))
   {
     k=1;
   }
  else if((k==1)&&(leds==0x01))
   {
    k=0;
   }
  if(k==0)
   {
    leds=leds<<1;
    P0=~leds;
   }
  else
   {
    leds=leds>>1;
    P0=~leds;
   }
  }

}
delay(uint t)
{
 uint i,j;
 for(i=0;1<t;i++);
 for(j=0;j<223;j++);
}


這樣就可以了,什么原因,我也不清楚,請高手回答一下,謝謝??
回復

使用道具 舉報

板凳
ID:8993 發(fā)表于 2009-7-1 08:50 | 只看該作者

上面的〈at89x51.h>是我隨便改的,和錯誤沒關系。

回復

使用道具 舉報

地板
ID:8993 發(fā)表于 2009-7-1 08:55 | 只看該作者
還有一種方法是把P17=0寫在uchar led=0x01的后面也行。
main()
{
 uchar k=0; //設置流水燈的方向標志位
uchar leds=0x01;
 P17=0;
回復

使用道具 舉報

5#
ID:14775 發(fā)表于 2009-7-1 19:40 | 只看該作者

把定義放在main前面時,定義的量在全局有效

回復

使用道具 舉報

6#
ID:6799 發(fā)表于 2009-7-4 07:08 | 只看該作者
如果這樣的話,編譯有錯通不過,
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
delay(uint t);
sbit P17=P1^7;
main()
{
 P17=0;
 uchar k,leds;
 leds=0x01;
 P0=~leds;
 while(1)

但是如果只是把P17=0放到uchar k,leds;的后面就可以
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
delay(uint t);
sbit P17=P1^7;
main()
{
 uchar k,leds;
 leds=0x01;
 P0=~leds;
 P17=0;
 while(1)

真是不得其解啊?想不通為什么...
回復

使用道具 舉報

7#
ID:14964 發(fā)表于 2009-7-4 19:26 | 只看該作者

在函數中,變量的定義必須放在執(zhí)行語句前面!

回復

使用道具 舉報

8#
ID:15556 發(fā)表于 2009-7-24 15:34 | 只看該作者

把定義部分應該放在主函數MAIN之前吧,全局變量

回復

使用道具 舉報

9#
ID:15225 發(fā)表于 2009-7-27 09:36 | 只看該作者
#define uchar unsigned char
#define uint unsigned int

#include <reg51.h>
。。
。。
。。
這樣?
回復

使用道具 舉報

10#
ID:15867 發(fā)表于 2009-10-26 10:25 | 只看該作者

#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
delay(uint t);                  //什么意思??
sbit P17=P1^7;

uchar k,leds;

main()
{
 P17=0;
  leds=0x01;
 P0=~leds;
 while(1)

}

回復

使用道具 舉報

11#
ID:19203 發(fā)表于 2009-12-7 16:29 | 只看該作者

P17=0;賦值語句 unchar leds;變量定義

 

變量定義放在后面肯定不能通過編譯。

回復

使用道具 舉報

12#
ID:20780 發(fā)表于 2010-1-6 17:05 | 只看該作者
定義一般都在每個函數的最前面
回復

使用道具 舉報

13#
ID:24218 發(fā)表于 2010-6-2 15:50 | 只看該作者
void delay(uint z);
回復

使用道具 舉報

14#
ID:5392 發(fā)表于 2010-6-30 14:10 | 只看該作者

main里面的

P17=0;是賦值語句

肯定要放在

uchar k=0; //設置流水燈的方向標志位 
uchar leds=0x01;

之后了,這里沒有什么全局變量不全局變量的問題

回復

使用道具 舉報

15#
ID:24810 發(fā)表于 2010-6-30 16:28 | 只看該作者

“為什么編譯老是說有K,leds沒有被定義”

我也遇到過這樣的問題,不過現在不會這樣的了。

 

定義變量和常量一定要在要定義,再寫執(zhí)行語句,否則不可能編譯通過

把:

P17=0;
 uchar k=0; //設置流水燈的方向標志位
 uchar leds=0x01;

改為

uchar k=0; //設置流水燈的方向標志位
 uchar leds=0x01;
P17=0;
 應該可以的了。

[此貼子已經被作者于2010-6-30 16:28:24編輯過]
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 狠狠躁天天躁夜夜躁婷婷老牛影视 | 久久国产精品偷 | 中文字幕日韩在线观看 | 可以免费观看的av片 | 亚洲看片网站 | 综合久久综合久久 | 国产黄色小视频在线观看 | 二区在线观看 | 亚洲久久一区 | 亚洲国产精久久久久久久 | 伊人婷婷| 色婷婷九月 | 亚洲国产第一页 | 精品一区二区久久久久久久网站 | 欧美1页 | 亚洲精品免费视频 | 欧美成人一区二免费视频软件 | 青青草这里只有精品 | 99综合在线 | 国产精品高清在线 | 精品一区二区三区在线观看国产 | 午夜视频一区二区三区 | 嫩草懂你的影院入口 | 三级在线视频 | 国产美女精品视频 | 久久久网 | 日韩精品一区二区三区在线观看 | 久久久精品一区二区 | 97超碰人人 | 国产欧美日韩在线观看 | 欧美精品中文字幕久久二区 | 亚洲视频在线看 | 亚洲综合色站 | 成人h视频 | 国产精品久久久久久久久久 | 成人亚洲网站 | 免费观看黄色一级片 | 一区二区三区不卡视频 | 成人高清在线视频 | 日韩一区二区三区在线 | 久久国产免费看 |