前面简单的介绍了如何关闭外设,现在就该简单的实现开发板的功能了,实现开发板LED 流水灯的功能。LED模块主要是通过Y4C这个锁存器来控制的,要想要对这个功能进行操作,首先要打开锁存器,然后再进行电平数据的读入。
#include "STC15F2K60S2.h"
#include "intrins.h"
typedef unsigned int u16;
typedef unsigned char u8;
//关闭外设
void Cls_P()
{
P2 = P2 & 0x1f | 0xa0; P0 = 0x00; // 1010 0000 打开锁存器Y5C, 关闭蜂鸣器
P2 = P2 & 0x1f | 0x80; P0 = 0xff; // 1000 0000 打开锁存器Y4C, 关闭LED
}
//延时函数,最小为1ms
void Delay(u16 num)
{
u16 i;
while(num--){
for(i=0; i<628; i++);
}
}
//LED流水灯
void Display_Led()
{
u16 i;
P2 = 0x80;//打开锁存器Y4C
P0 = 0xfe;//点亮第一盏LED
Delay(100);
while(1){
for(i=0; i<7; i++)
{
P0 = _crol_(P0, 1);//移位,循环左移
Delay(500);
}
for(i=0; i<7; i++)
{
P0 = _cror_(P0, 1);//循环右移
Delay(500);
}
}
}
void main()
{
Cls_P();
Display_Led();
}