电路图如下:
根据电路图,设置P0口的相应位为低电平即可点亮,在程序中即设置P0的响应位为0灯亮
程序:
- #include <REG52.h>
- #include <stdio.h>
- void delay(int num)
- {
- int i,j;
- for(i=0;i<num;i++)
- for(j=0;j<2000;j++)
- ;
- }
- int main()
- {
- while(1)
- {
- P0=1|1<<2|1<<4|1<<6;
- delay(100);
- P0=1<<1|1<<3|1<<5|1<<7;
- delay(100);
- P0=0;
- delay(100);
- P0=0XFF;
- delay(100);
- }
-
- }
说明:
注意其中P0为特殊寄存器,0x80只能进行直接寻址不能进行间接寻址
因此,可以mov 0x80,0x01
而不可以mov r0,#0x80
mov @r0,0x01
反应在C语言中就是,不能进行*((unsigned char *)0x80)=0x01;
上面用指针进行赋值就相当于再汇编中进行间接寻址
阅读(1107) | 评论(0) | 转发(0) |