简单的并口扩展演示

电子元件 4年前 (2022) aysz01
0

本例采用处部地址扩展了两个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

 

版权声明:aysz01 发表于 2022-08-06 10:46:04。
转载请注明:简单的并口扩展演示 | 鳌游电工

暂无评论

暂无评论...