×
单片机 > 单片机程序设计 > 详情

简单的并口扩展演示

发布时间:2020-05-29 发布时间:
|

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

 


关键字:并口扩展  二极管 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
如何升级STM32单片机的代码