机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 5218|回复: 15
打印 上一主题 下一主题

一个“单片机”的简单问题

[复制链接]
跳转到指定楼层
1#
发表于 2013-8-16 02:13:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
程序如下:- a: r+ T8 b- y0 \5 u
#include <reg51.h>
( g* K  Q& b5 S6 b  B  sbit led=P0^0;
( {: [6 S0 P4 q( X- q) r) w% T3 A  sbit led1=P0^1;/ Q" D; X" m  K3 ~  c
  sbit led2=P0^2;& [/ F( d# W2 R' E: g$ r8 T
  sbit led3=P0^3; 1 J  k$ z0 e, f7 f+ K
  sbit led4=P0^4;
4 z: f% a' v1 J& _  G  sbit led5=P0^5; 6 f, O, y; k3 Z0 v
  sbit led6=P0^6;
+ ~4 k+ P9 o; ^, y" {9 E; d- @  sbit led7=P0^7;1 S& _5 P4 }# s) \
  sbit ADDR0=P1^0;
9 k  h$ s2 N) A" q9 `% p( j  sbit ADDR1=P1^1;
. L1 m8 N8 K$ }2 R" \  sbit ADDR2=P1^2;
  Y8 Z' u( a8 c4 k+ @4 _; w* U6 e+ W  sbit ADDR3=P1^3;6 t! g2 C: B. D
  sbit ENLED=P1^4;
; }1 E8 \1 K9 |1 E% ^/ I  main(); b7 R$ m$ M4 g1 e
  { ADDR0=0;ADDR1=0;ADDR2=0;ADDR3=1;ENLED=0;  ^- M/ ]1 {' K- ^
    while(1)( r# v( U& d# a+ M- d( n& {: b
    {  led=0;led1=0;led2=0;led3=0;led4=0;led5=0;led6=0;led7=0;
2 y( R$ f; j3 G( d2 \9 L4 W: I }0 l- d) U: w3 A% a4 S+ ~* F2 M" P
  } ! K' Z& p+ G8 m4 {/ b8 ?4 E
我想问while(1)是一个函数吗,他后面有{  }符号
$ Z: A% b  L" I, ?5 Q$ W" ?! O
回复

使用道具 举报

16#
发表于 2013-8-20 00:14:35 | 只看该作者
while(1);  是空的死循环0 O: Z2 D7 [3 F8 A2 }
while(1) {} 是执行{}内的指令的死循环
回复 支持 反对

使用道具 举报

15#
发表于 2013-8-19 23:39:57 | 只看该作者
六楼说的对
回复 支持 反对

使用道具 举报

14#
发表于 2013-8-19 13:07:33 | 只看该作者
逍遥处士 发表于 2013-8-18 15:22
) d$ w; [, ~$ a0 t% X. J给楼主一道题:
" c& ?. D7 l- U) I% [% ]% s. X2 p! y9 m1 ?7 h5 M8 O% g
int func_a(int a)

$ S3 N* O; {) w- R* k) P' Ob=2,c=0,d=2; m+ C/ P5 B& l+ Y- a

点评

int & 是强制转型?还是指针转向?这个太偏,没有见过。  发表于 2013-8-20 11:44
不是。c应该也等于2。  发表于 2013-8-19 13:20
回复 支持 反对

使用道具 举报

13#
发表于 2013-8-18 15:52:58 | 只看该作者
逍遥处士 发表于 2013-8-18 15:22 # z! e* A0 a) [7 e4 }4 C
给楼主一道题:
  b- c) k1 u6 M$ P9 t; y1 M7 l" _/ h) K$ Q1 t  ~
int func_a(int a)

( m$ R" ]2 y; G3 {% {: _/ x1,2,2  ?

点评

说说看。  发表于 2013-8-18 15:58
回复 支持 反对

使用道具 举报

12#
发表于 2013-8-18 15:22:34 | 只看该作者
给楼主一道题:
7 D- h! G% p& Q# P% h% s5 P& L/ L/ O  Z4 j: ?; m
int func_a(int a)
2 O, s! Y0 k6 c: o; w{% @. H0 {& @; ]
        a++;
+ Q; ^7 X- R: O0 a        return a;3 t* T. ~5 b. b+ W  Q! s
}8 x: Q. s7 w4 [# ?$ S
- X3 b& J) ~/ }/ ^4 Y
int func_b(int& a)& Q% A& Q0 a+ g( Y" ]* }
{
5 m1 B- |# e3 H, f3 E        a++;
6 a' m  Z  q7 B. v6 F        return a;
) P% n( {- `7 S5 j8 V}9 P3 L( o% ]' W5 g& ~# s

# r0 O; K3 O9 ^) o- Bint main()
) U1 d! X* p6 W& C% P+ H{
+ v/ K" r5 L) J        a = 1;% G2 @- P- l4 y/ x4 a% a6 M; U" q
        int b, c, d;
/ b5 [6 d1 _# n* q        b = func_a(a);0 ^2 t: v; z5 p; A( ~
        c = func_b(a);
. S! r1 A' S0 T) d) [        d = a;
& L! }2 c. J6 n0 W$ O2 a" j, D}8 T! h6 a. j1 I- V) y
' H: K  Y! ~* W5 }2 ^
请问:
, n2 b* M& k# ^0 P5 Q: d$ }b=?
7 }$ W! P3 F  c+ ~+ P$ hc=?
: T( y( K& N0 {! Jd=?

点评

好像是一样的吧?就跟int* p和int *p一样。  发表于 2013-8-18 21:16
这程序是不是有问题? int& a 还是int &a?  发表于 2013-8-18 16:59
回复 支持 反对

使用道具 举报

11#
发表于 2013-8-16 15:30:15 | 只看该作者
while(1)是一个死循环语句,程序走到这步后就会不停的执行后面{}内的语句,除非你后面在写个中断入口,或者等待外部中断。
回复 支持 反对

使用道具 举报

10#
发表于 2013-8-16 11:24:54 | 只看该作者
keil是会提示你“;”后面的语句不能执行到,但是不是错误,仍然可以运行,并不是keil的问题
回复 支持 反对

使用道具 举报

9#
发表于 2013-8-16 11:23:24 | 只看该作者
while(1)  xxxxx;    while(1)  {}   都是while的用法,前面是一句程序才可以那么写,如果 while循环体要实现很多内容就需要后一种用法了,你在while后面直接加;,那表示程序就运行到while+空  就完事了 并没有向后循环。
回复 支持 反对

使用道具 举报

8#
发表于 2013-8-16 10:03:29 | 只看该作者
循环体
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

小黑屋|手机版|Archiver|机械必威体育网址 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2024-12-19 15:14 , Processed in 0.056195 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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