|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
各位大侠帮忙看一下这个程序,为何我无法对单片机的IO口进行单独的位操作。即使按键没有按下,也就是PIND0为高电平的状态下,程序依然进入到了if里面去执行语句。按正常情况的话,它是不应该执行if里面的语句的。这是怎么回事?程序和仿真图片如下:7 j9 U! }/ L' v$ }: v& G
#include<stdio.h>/ g0 K* f5 s- Y8 ^$ D" c8 r5 l
#include<iom128v.h>( Y( M# K* [5 z! v: g: A- z
void delayns(void)
# ?& d Q8 l8 y0 j{/ ?$ T) V2 U% U+ E3 h `& d8 K: N
unsigned int i;
6 F0 F1 g K H) c7 X* q2 B for(i=0;i<50;i++);
8 A! Q1 ^: S* x: G8 |}9 L" ~* A, d$ L2 C0 R& A3 |: u
* I, i8 L- H' n7 ]
void main(void)5 _9 S) v, i# ^/ ~. r
{
$ q) x0 n) r2 e! ]0 b/ ` DDRD=0X00;* O8 f) d; k9 {; r& x( f
DDRA=0XFF;
% s9 w1 l3 m7 _/ b DDRE=0X04;
3 @4 }0 T& k9 U& _ PORTD=0XFF;
, Q k6 w( n4 v* ` ^' E PORTA=0XFF;( t7 a$ D8 z, | z5 C. m8 }
PORTE=0X04;$ Y1 v. w2 _$ C8 w1 G8 n
while(1)) R9 Q) |: i) x' ?+ R7 A* Y
{0 N1 u- c) x* T/ Q9 ^9 j0 S
if(PIND0==0)
3 D4 U0 N7 k0 u" I, P {2 A2 t: B0 j6 H: E* q% Z4 r- i% W
delayns();, D5 E7 R( p+ ~( [+ O; M. ~
if(PIND0==0)
2 o" {; y0 e+ c6 i' g7 a {PORTA=0XFE;}& |3 u. i4 J0 B5 y$ k, [6 ?9 o
}1 g T) Z0 l9 n, f0 t
}2 p1 w& V& B1 c7 q6 I0 m! M+ e
}
3 Q3 D9 P% p) [$ z* z$ j, }- g' C |
|