|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
51单片机、AVR单片机和PIC单片机IO口的操作, o9 T5 B. D" K+ s
51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的目的是让单片机的管脚输出逻辑电平和读取单片机管脚的逻辑电平。下面我们来看看51单片机、AVR单片机和PIC单片机IO口的操作的方法。' q1 @. n# ~7 n( r0 ]4 ~( b, M
% j! {7 L: |8 ]- x一.51单片机IO口的操作# R* p' w3 _$ M
51单片机IO口的结构比较简单,每个IO口只有一个IO口寄存器Px,而且这个寄存器可以位寻址,操作起来是所有单片机里最简单的,可以直接进行总线操作也可以直接进行位操作,这也是51单片机之所以成为经典的原因之一。下例的运行坏境为Keil软件,器件为AT89S52。# X) y/ w$ {5 i; c" r3 K, N
<p><span style="color: #ff0000">#i nclude</span></p>- `1 ~4 ~4 r4 w& E
<p><span style="color: #ff0000">sbit bv=P2^0;//定义位变量,关联P2.0管脚。sbit是C51编译器特有的数据类型</span></p>
. J1 m$ i2 [6 q2 l% t( k( k<p><span style="color: #ff0000">int main(void)</span></p>
- }; X: t/ w) V8 r# {5 p6 b6 k<p><span style="color: #ff0000">{</span></p>
4 c- l( m7 X9 X8 E<p><span style="color: #ff0000">unsigned char pv;</span></p>: k1 m5 G ?% U; x* S$ \- {/ y
<p><span style="color: #ff0000">//位操作,以P2口的第0位为例:</span></p>5 ~$ `* N Y, E' B* u) G
<p><span style="color: #ff0000">bv=0;//直接对P2口的第0位管脚输出低电平</span></p>
, n6 Q9 z, ?: b8 I4 k<p><span style="color: #ff0000">bv=1;// 直接对P2口的第0位管脚输出高电平</span></p>
1 S1 {& ~5 d1 N. H4 P<p><span style="color: #ff0000">//总线操作输出数据,以P2口为例:</span></p>
" C" F, g: B+ u5 p) u<p><span style="color: #ff0000">P2=0xaa;//直接赋值,P2口输出数据0xaa</span></p>- T# J4 U: h5 z3 a1 C; k
<p><span style="color: #ff0000">//总线操作读取数据,以P2口为例:</span></p>5 [( _8 o2 ~% U4 M" a8 |+ N
<p><span style="color: #ff0000">pv=P2;//直接读取P2口的数据放到pv变量</span></p># o$ [1 w( x c& ]( {+ k! w
<p><span style="color: #ff0000">return 0;</span></p>
4 p6 y, P+ E3 K- T<p><span style="color: #ff0000">}</span></p>
* C F3 a- r& c) H! L
1 p8 | R; H% N( I- F; t3 A4 _& O! m$ t$ x; \
1 b8 Z$ v% I1 C6 u+ W7 I# w/ D
|
|