目录
一、51单片机
1.寄存器
二、LED点灯
1.原理
2.封装函数
3.顺序点灯
4.特定位点灯
三、动态数码管
1.原理
2.封装函数
3.0~9跳变
4.顺序移位0~9跳变
一、51单片机
1.寄存器
51单片机共40个引脚,其中P0,P1,P2,P3是四个有8引脚的寄存器,寄存器可视为全局变量,寄存器在keil中以特殊宏的形式储存,例如:
用C语言规范写法,需将寄存器地址的值强转为指针,然后访问修改指针所指向内容,因此上图中的寄存器代码等价于:
二、LED点灯
1.原理
单片机通电后,51单片机的40个引脚均为高电平(即值均为1),其中引脚21~28为寄存器P2的八个引脚P20~P27,负责控制LED模块的8个发光二极管。
若将P20置为低电平(即值改为0),则发光二极管D1两端产生电势差,从而产生电流,二极管导通发光。方法为用位运算的方式将寄存器P2的值由1111 1111改为1111 1110,例:
P2 &= ~(1 << 0);// (1 << 0)即二进制数 0000 0001//~(1 << 0)按位取反后为1111 1110//&=即与等于,执行置0操作
2.封装函数
封装一个延时函数
封装一系列LED相关函数
3.顺序点灯
让灯顺序点亮 ,再循环亮回来
4.特定位点灯
令能被2整除的位数上的灯亮,再让能被3整除的灯亮,交替闪烁
三、动态数码管
1.原理
单片机通电后,51单片机的40个引脚均为高电平(即值均为1),其中引脚39~32为寄存器P0的八个引脚P00~P07,负责控制数码管a,b,c,d,e,f,g,dp的亮灭。
另外引脚1~4为寄存器P1的前四个引脚P10~P13,负责控制4位数码管模块的亮灭。
2.封装函数
封装一系列数码管相关函数
3.0~9跳变
从指定数码管由0~9进行跳变
4.顺序移位0~9跳变
先第0位数码管从0跳变到9,再第1位数码管从0跳变到9,直到第3位数码管跳变完再循环至第0位数管