简单的并口扩展演示
本例采用处部地址扩展了两个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
推荐阅读
- 51单片机模拟秒表
- 单片机报警声
- 家装中忌用的几种颜色
- 空调应该如何摆放?
- 家居装修如何结合自身的特殊需要?
- 装修过程中影响花钱多少的直接因素有哪些?
- 怎样才能让家具保持光亮?有哪些好的方法技巧?
- 如何确定延误工期的责任方?
- 掉发有哪些原因?容易掉发是什么原因引起的
- 导致脱发的一个最根本的问题