本文最后更新于 2024-07-23,文章内容可能已经过时。

郭天祥2023全新51单片机教程-入门+提高——数码管

8051单片机最小系统【PS:32位单片机最小系统】

1、电源

2、复位电路

3、晶振

4、如果要使用P0口,必须加4.7K-10K上拉电阻

5、如果要下载程序,必须要与电脑连接的串口下载通道

数码管的显示原理

数码管分为两种,共阴数码管/共阳数码管

阴极变成低电平,阳极给高电平,则发光二极管导通

使用数码管作显示时,要注意区分这两种不同的接法,为了显示数字或字符,

必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。

因此为LED显示器提供的编码正好是一个字节。TX-1CN实验板用共阴极数码管,

根据电路连接图显示16进制数的编码见下表。

TX-1CN共阴数码管列表

0x3f

0x06

0x5b

0x4f

0x66

0x6d

0

1

2

3

4

5

0x7d

0x07

0x7f

0x6f

0x77

0x7c

6

7

8

9

A

B

0x39

0x5e

0x79

0x71

0x00

C

D

E

F

无显示

数组的用法

标准写法:unsigned char table[ ]={a,b,c….};

unsigned char :数组内元素的数据类型

table:定义这个数组的名称,可自己随意定义

内部按从0到n的顺序依次编写,如下:

unsigned char table[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

注意:当写成unsigned char code table[]={};时,告诉编译器,将此数组存在程序存储区,而不是放在SRAM中。还有二维数组,多维数组知识

算数运算和求余

算数运算符:+ - * / %

特别说明:

/ 除法,求商,对于整型和字符型变量,只得出整数的商,小数抛弃。

% 求余数,简称:求余,对于整型和字符型变量,只得出余数部分,商抛弃

优先级:* / % 同级,优先于+ -, + - 同级

如: 3/2=1, 3%2=1,

15/7=2, 18%7=4,

将123中的三个数分别分离出来

123/100=1, 123/10%10=2, 123%10=3,

数组示例

/**
*功能:加减乘除求余商的示例
*/
#include<stc89c5xrc.h>
#include<intrins.h>
#define uint  unsigned int 
#define uchar unsigned char 
#define beep P23
#define dula P26
#define wela P27
uchar num,temp;
uchar t1,t2,t3,t4,t5,t6;
char c1;
float f1;
uchar  table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void DelayMs(uint c);
uint Sum(uchar i,uchar j);
void main ()
{
		t1=1+2;
		t2=1-3;
		c1=1-3;
		t3=2*3;
		t4=15/7;
		f1=15/7;
		t5=18%7;
		while(1);
}

uint Sum(uchar i,uchar j)
{
	uint k;
	k=i+j;
	return k;
}
void DelayMs(uint c)
{
	uint a,b;
	for(a=c;a>0;a--)
		for(b=11;b>0;b--);
}

输出显示如下【嵌入式C语言在调试中进行

代码示例

点亮第一个发光二极管示例代码

静态显示

动态显示