打印
[51单片机]

电子旅途之初期—II(LED)

[复制链接]
523|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
512751875|  楼主 | 2016-11-1 23:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
51单片机—51的寄存器数量少,操作时可以直接对寄存器赋值。
了解IO的功能,IO口就是单片机的引脚,LED硬件连接在特定的引脚上面,LED一端连接着电源VCC,对LED的另一端送入低电平即可实现LED的点亮。
例如 #define LED1 P1^0
LED1 = 0;即实现连接在P1.0引脚的LED1点亮
LED闪亮: 亮-延时-灭  while{  0delay1 }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
}
}


相关帖子

沙发
512751875|  楼主 | 2016-11-2 13:36 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

133

帖子

1

粉丝