51单片机笔记二
写在这里,以后可以翻一翻。
2.LED灯闪烁
LED闪烁:简单理解就是先LED亮,然后延时500ms再亮,然后一直循环(重复),这样就是闪烁。
备注:相对于点亮LED灯实验,这个程序多了一个返回空函数和一个delay函数,
延时可以使用STC-ISP延时计算器,如下图,
注意开发板的频率,普中开发板是12MHZ, 清翔开发板是11.0592MHZ;
指令集选择STC-Y1,适用于STC89C系列;
然后点击复制代码,粘贴到keil里面。
3.LED流水灯
流水灯:8个LED灯依次被点亮,且只有一个LED亮,借助16进制非常好理解。
1111 1110 表示第一个灯亮,1111 1101表示第2个灯亮,1111 1011表示第3个灯亮。
中间再加上延时,就形成了流水灯。
流水灯代码方案一
流水灯代码方案二(没太看懂,以后再来翻一翻)
4.独立按键控制LED亮灭
①需要注意独立按键是P3口,等于使用==,如果使用=,运行程序会报错。可以参考C51数据运算。
②IO口加了上拉电阻,默认是高电平,按下按键则接到地,被拉到低电平,LED灯就亮。
P0口有三个功能:
1、外部扩展存储器时,当做数据(Data)总线
2、外部扩展存储器时,当作地址(Address)总线
3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻
P1口只做I/O口使用:其内部有上拉电阻。
P2口有两个功能:
1、扩展外部存储器时,当作地址总线使用
2、做一般I/O口使用,其内部有上拉电阻;
P3口有两个功能:
除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置。
③代码如下:
5.独立按键控制LED状态
①使用延时来消除按键的抖动,延时20ms
②代码如下(没看太懂,以后再来翻一翻)
6.独立按键控制LED显示二进制
每按一下按键,二进制数+1;8位LED灯按照二进制数显示;
无符号字符型,占8位,范围是0~255;LED灯也是8位。
7.独立按键控制LED位移