|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
各位大侠帮忙看一下这个程序,为何我无法对单片机的IO口进行单独的位操作。即使按键没有按下,也就是PIND0为高电平的状态下,程序依然进入到了if里面去执行语句。按正常情况的话,它是不应该执行if里面的语句的。这是怎么回事?程序和仿真图片如下:; [) s5 ], i& t- K5 q
#include<stdio.h>0 W; P: I6 R- p7 R3 M! U, I( Y* C
#include<iom128v.h>
; ~- r7 ]: Y: G9 Yvoid delayns(void)
& R) U1 S# Q' r) }. D, v8 n{
$ F. ?! s( P- f+ w unsigned int i;6 s% @$ w0 A0 }
for(i=0;i<50;i++);
. q3 M" q! c6 g$ `2 U}1 D- ]: b* L1 y/ H
! Z2 ]5 f' z" G, w8 a8 {
void main(void)7 A& \1 ^& n5 m' r$ S+ O
{
( y% t5 ?7 p; u- L: }" k DDRD=0X00;; S/ F% f& g; D4 P1 U" M. Y
DDRA=0XFF;
7 u) ^% J; A& F& s DDRE=0X04;2 \7 [7 D, Q: r7 m& ?3 v
PORTD=0XFF;
O. h# U( O5 R) C4 G/ ~" S PORTA=0XFF;: p* I9 T9 x* \9 V
PORTE=0X04;1 E. T+ d0 ? ~6 N
while(1)/ ?, T4 |1 K& H- r) E% \6 C
{9 z/ c8 w4 A# k1 v- m4 l8 `
if(PIND0==0): d) g# @/ c$ f+ W& M1 I8 p( t
{7 S6 m1 U- K Y6 O5 z6 H
delayns();
- n5 g; }+ x; P7 G3 O [1 q+ c if(PIND0==0)& x! ~( M- d, Q" q
{PORTA=0XFE;}
5 q1 A7 i9 k& J. v, z* o } u8 A3 h0 T' q2 S2 b! F0 s
}
/ ^) t& w5 F6 {: n+ c5 B}
; t7 C6 c2 X' s3 f7 e7 Z |
|