51单片机——静态数码管显示
#include <REGX52.H>
unsigned char table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
void nixie(unsigned char location,number)
{
	switch(location)
	{
		case 1:P2_4=1;P2_3=1;P2_2=1;break;
		case 2:P2_4=1;P2_3=1;P2_2=0;break;
		case 3:P2_4=1;P2_3=0;P2_2=1;break;
		case 4:P2_4=1;P2_3=0;P2_2=0;break;
		case 5:P2_4=0;P2_3=1;P2_2=1;break;
		case 6:P2_4=0;P2_3=1;P2_2=0;break;
		case 7:P2_4=0;P2_3=0;P2_2=1;break;
		case 8:P2_4=0;P2_3=0;P2_2=0;break;
	}
	P0=table[number];
}
void main()
{
	nixie(1,2);
	while(1)
	{
	}
}

解释

该51单片机采用的是共阴极数码管,所以我们的阳极P0接1有效

我们引用了数组table来表示段码,table[number],当number为0时引用0的段码,1的时候引用1的段码

例如nixie(1,2);指的是数码管第一个位置显示2,我们由图可知显示2的话要使得abdeg显示,即abdeg段码要接1,P0为0x5B(0101 1011),第一个位置为LED8由74HC138译码器决定,即P2_4=1;P2_3=1;P2_2=1

74HC245芯片

74HC245芯片是一种双向缓冲器,主要用于实现两个总线之间的数据传输。(在51中常应用于点阵屏)

DIR(即图中AB/BA引脚): 方向引脚,控制数据的传输方向。当DIR引脚为高电平时,数据从A端传输到B端;当DIR引脚为低电平时,数据从B端传输到A端。
A1-A8:数据传输引脚
B1-B8:数据传输引脚
OE(图中CE引脚)高电平时,输出端口处于失能状态;OE为低电平时,输出端口处于使能状态。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/m0_74219261/article/details/140001162

C51子函数

•子函数:将完成某一种功能的程序代码单独抽取出来形成一个模块,在其它函数中可随时调用此模块,以达到代码的复用和优化程序结构的目的、

void Function(unsigned char x, y)

{

}

返回值 函数名(形参)

{

  函数体

}

C51数组

•数组:把相同类型的一系列数据统一编制到某一个组别中,可以通过数组名+索引号简单快捷的操作大量数据

int x[3];  //定义一组变量(3个)

int x[]={1,2,3};  //定义一组变量并初始化

x[0]   //引用数组的第0个变量

x[1]   //引用数组的第1个变量

x[2]  //引用数组的第2个变量

引用x[3]时,数组越界,读出的数值不确定,应避免这种操作

数码管段码表

switch函数

switch(变量)
{
    case 常量1:语句体1;break;
    case 常量2:语句体2;break;
    (...)
    default:语句体x;break;
}

将变量与case后的各个常量对比
若有相等,则执行相应的语句体
若没有一个相等,则执行default后的语句体

(default可以不写)

C51基本语句

语句解释语句解释
if(逻辑表达式) {     语句体1; } else {     语句体2; }如果逻辑表达式成立     执行语句体1 否则     执行语句体2 (else可以不写)for(初始化;逻辑表达式;更改条件) {     循环体; }先执行初始化 再判断逻辑表达式 若成立则执行循环体 执行后更改条件 再判断逻辑表达式 直到表达式不成立
while(逻辑表达式) {     循环体; }如果逻辑表达式成立     执行循环体 执行后再次判断 若还成立则继续执行直到表达式不成立switch(变量) {     case 常量1:语句体1;break;     case 常量2:语句体2;break;     (…)     default:语句体x;break; }将变量与case后的各个常量对比 若有相等,则执行相应的语句体 若没有一个相等,则执行default后的语句体 (default可以不写)
上一篇
下一篇