|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
各位大侠帮忙看一下这个程序,为何我无法对单片机的IO口进行单独的位操作。即使按键没有按下,也就是PIND0为高电平的状态下,程序依然进入到了if里面去执行语句。按正常情况的话,它是不应该执行if里面的语句的。这是怎么回事?程序和仿真图片如下:
/ U+ @2 C$ t) N9 }#include<stdio.h>
: b7 J4 W' I7 z% U! I l* q#include<iom128v.h>) |% a5 ]5 X0 E) A9 A
void delayns(void)% j3 W0 e" e: u. }3 ~/ E& Q
{& K6 F% Z# g) w3 y8 R6 {9 b
unsigned int i;
, Z s" I: R$ q4 ]1 \4 b for(i=0;i<50;i++);, U- Q9 }! I: L! b# Y
}
$ i9 g F8 j4 I, B7 f; R- w4 \( e1 Z' ~2 a: S
void main(void)
9 }# r5 N i8 w0 T6 ?. x{$ k6 _8 Z7 m2 A
DDRD=0X00;5 E9 [7 @3 z, _, a
DDRA=0XFF;
. V; z4 i7 q& S4 a DDRE=0X04;' A9 Z* R2 u4 Z2 e
PORTD=0XFF;) M7 G: j! m `- D% K M, x
PORTA=0XFF;
$ `% ~8 u+ t' X2 z, M: O/ F$ s PORTE=0X04;) T9 B5 G* x1 X9 |8 ?# s
while(1)
/ k% ~$ j: \+ o- x {8 ]) Z2 _1 n: s- {' ?& q+ E) j
if(PIND0==0)) j! ~- |2 @( f$ u1 ?9 m6 r9 l
{
+ I5 m) [& f) D8 N* u/ ` delayns();7 f; N7 _0 x( S8 {! o" U
if(PIND0==0)
# e$ ~# U' k E# \( l. i% W {PORTA=0XFE;}
' R6 n2 t0 \# p- c' ] }
* A2 U+ L6 N6 } }
, n: A- v0 u2 E4 s" W}. L6 G9 ]6 t, u- n& d
|
|