#include<reg51.h>
#define uchar unsigned char
extern uchar idata in_a=0x55;//定义直接访问内部数据储存的外部变量
unsigned char bdata kh=0xfe;//定义直接访问内部数据存储器可位寻址区域变量
sbit P1_0=P1^0;//定义一个位符号
sbit kh_0=kh^0;//给可位寻址区域kh单元的第0位定义符号
bit a=1;//在寻址区任意定义一个变量a
void delay(void)
{
uchar i,j,k;
for(i=10; i>0; i--) //外循环5次每次约0.1s,共延时1s
{
for(j=200; j>0; j--) //循环200次,每次约0.5ms共延时0.1
{
for(k=250; k>0; k--) //内部循环250次,延时约250*2us=0.5ms
{
;
}
}
}
}
void main(void)
{
uchar in_c=76;//定义直接访问内部数据存储器的局部变量
while(1)
{
P1=in_a;
delay();
P1=in_c;//将数据76通过P1口输出
delay();
P1=0xff;
P1_0=kh_0;
//将可位寻址的内部数据存储器kh的第0位送P1口的第0位,P1.0引脚外接二极管亮,其他灯不亮
delay();
kh_0=a;//两个位地址之间传输数据,kh_0=1
P1_0=kh_0;//P1.0引脚外接管不亮
delay();
}
}
|