简单的并口扩展演示
扫描二维码
随时随地手机看文章
本例采用处部地址扩展了两个IO口,并实现16个发光二极管的流水灯实验.程序简单,旨在演示并口的扩展操作
/***************************************
*程序:简单的并口扩展演示
*方法:绝对地址访问
*时间:2008-5-1
*作者:gys
***************************************/
#include
#include //用绝对地址访问时要包含此文件
#define P4 XBYTE[0xfeff]//定义访问外部端口地址0xfeff,一个字节长度
#define P5 XBYTE[0xfdff]
void delay(unsigned int n)//延时
{
while(n--);
}
void main()
{
unsigned int s=0x01;
while (1)
{
P4=s;
P5=s>>8;//把S的高8位送P5口
if (s==0) s=0x01;
s<<=1;
delay(10000);
}
}
/***************************************
*程序:简单的并口扩展演示
*方法:指针
*时间:2008-5-1
*作者:gys
***************************************/
#include
void delay(unsigned int n)//延时
{
while(n--);
}
void main()
{
unsigned int s=0x01;
unsigned char xdata *P4=0xfeff;//定义一个指针指向外部地址0xfeff
unsigned char xdata *P5=0xfdff;//定义一个指针指向外部地址0xfdff
while (1)
{
*P4=s;
*P5=s>>8;//把S的高8位送P5口
if (s==0) s=0x01;
s<<=1;
delay(10000);
}
}
;/***************************************
;*程序:简单的并口扩展演示
;*方法:汇编
;*时间:2008-5-1
;*作者:gys
;***************************************/
org 00h
ajmp main
org 30h
main:mov R7,#01H
mov R6,#0h
loop:mov dptr,#0feffh
mov a,R7
movx @dptr,a
rlc a
mov R7,a
mov dptr,#0fdffh
mov a,R6
movx @dptr,a
rlc a
mov r6,a
lcall delay
ajmp loop
delay:mov r5,#255
D1:mov R4,#255
D2:nop
nop
nop
djnz r4,D2
Djnz R5,D1
ret
end