EDA365电子论坛网
标题:
一个简单的IO程序问题!
[打印本页]
作者:
weixiao8776
时间:
2012-7-29 12:47
标题:
一个简单的IO程序问题!
各位大侠帮忙看一下这个程序,为何我无法对单片机的IO口进行单独的位操作。即使按键没有按下,也就是PIND0为高电平的状态下,程序依然进入到了if里面去执行语句。按正常情况的话,它是不应该执行if里面的语句的。这是怎么回事?程序和仿真图片如下:
8 y+ \5 z* M/ k6 r) g( P6 O6 N
#include<stdio.h>
3 g; r0 m: F% M3 S+ [' v
#include<iom128v.h>
" G7 Z7 N5 |* ^4 s. v0 m
void delayns(void)
! d/ O3 ^# d; X6 K3 h
{
6 E9 T4 q+ n3 H/ o/ P. I. X$ j7 j
unsigned int i;
+ b8 w% W! @4 i2 C$ x) s, H
for(i=0;i<50;i++);
: f# U2 q b$ Z! S6 f# y4 W& W
}
0 V- I7 X, f: Y* y. v- w ?4 {
7 c' _6 _2 q: _2 }$ h. |
void main(void)
* l4 v" n) Z5 F
{
* M, Y, d2 B% n) A, l
DDRD=0X00;
* C0 r+ @- o7 p0 {% m7 M
DDRA=0XFF;
3 S0 m- [3 c( ?; b/ I4 X. H
DDRE=0X04;
$ `3 Q4 {8 |: {4 b
PORTD=0XFF;
0 X' R5 S( e) R' g
PORTA=0XFF;
R, ]: ?7 R O: q, w9 N
PORTE=0X04;
( E, r5 {7 D9 z
while(1)
1 A f6 R! v8 D" e) D* T0 r+ U
{
, L5 |* }7 j" r( P
if(PIND0==0)
* I9 L! f8 O! ]# m1 K
{
# N6 Q2 E$ z, J
delayns();
5 T9 L- c, R& w2 }+ g" ?3 Q
if(PIND0==0)
g, J' p8 g2 C- }5 D, o* v
{PORTA=0XFE;}
0 g! y. m" t5 L
}
! Q K" T/ u' L& L6 x8 ]) J4 j( \8 E
}
: E& b9 u3 v( J, H0 Q- x* i* U
}
; K/ [% c& | x1 U3 F' W4 t/ p
1111111111.jpg
(31.18 KB, 下载次数: 7)
下载附件
保存到相册
2012-7-29 12:47 上传
作者:
陈豪俊
时间:
2012-7-29 15:56
我不知道您用的是不是51单片机,我依稀记得51单片机读取端口时,先要输出高电平,然后再读
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2