51单片机—51的寄存器数量少,操作时可以直接对寄存器赋值。 了解IO的功能,IO口就是单片机的引脚,LED硬件连接在特定的引脚上面,LED一端连接着电源VCC,对LED的另一端送入低电平即可实现LED的点亮。 例如 #define LED1 P1^0 LED1 = 0;即实现连接在P1.0引脚的LED1点亮 LED闪亮: 亮-延时-灭 while{ 0—delay—1 };LED呼吸 通过DA控制,这个会在DA章节探究。 延时函数delayms可以利用两个简单的for循环实现,参考郭天祥延时函数 delayms(unsigned int xms)
{
unsigned int i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
注意分号的有无。 LED 流水: LED0-7依次流水实现 左移<< 右移>> C51中每执行一次移位指令,被操作的数将最高位移入单片机PSW寄存器的CY位,CY位原来的数据丢失。PSW寄存器CY位,在IIC章节,写一个字节函数中使用。 左移函数_crol_( , ) 右移函数_cror_( , ) 这两个函数包含在#include<intrins.c> 部分例: while(1)
{
P1 = aa;
delayms(500);
aa = _crol_(aa,1); //aa左移1位
}
部分例: while(1)
{
for(i=8;i>0;i--)
{
delayms(50);
P1 <<= 1;
P1 = P1|0x01; //0000 0001
}
}
|