目录

单片机中存储器(包括特殊功能寄存器)都有固定的地址,正是通过这些固定的地址,单片机才能准确地实现对各个存储器的操作。
例如,P3口的固定地址是B0H(这在单片机制造时已经分配好,我们只能根据这种分配来使用它,而不可能改变它),P3只不过是地址“B0H”的名字,我们对地址“B0H”的操作实际上就是对P3的操作。
可作如下定义:sfr x=0xb0; // 通过关键字“sfr”将x定义为P3的地址“0xb0”定义后,程序中对x的操作也就相当于对地址“0xb0”即P3的操作。
- #include
//包含单片机寄存器的头文件 - sfr x=0xb0; //将x定义为某特殊功能寄存器(P3)的地址“0xb0”
- /****************************************
- 函数功能:延时一段时间
- *****************************************/
- void delay(void)
- {
- unsigned char i,j;
- for(i=0;i<250;i++)
- for(j=0;j<250;j++)
- ; //利用循环等待若干机器周期,从而延时一段时间
- }
-
- /*****************************************
- 函数功能:主函数
- ******************************************/
- void main(void)
- {
- while(1)
- {
- x=0xfe; //第一个灯亮
- delay(); //调用延时函数
- x=0xfd; //第二个灯亮
- delay(); //调用延时函数
- x=0xfb; //第三个灯亮
- delay(); //调用延时函数
- x=0xf7; //第四个灯亮
- delay(); //调用延时函数
- x=0xef; //第五个灯亮
- delay(); //调用延时函数
- x=0xdf; //第六个灯亮
- delay(); //调用延时函数
- x=0xbf; //第七个灯亮
- delay(); //调用延时函数
- x=0x7f; //第八个灯亮
- delay(); //调用延时函数
- }
- }
