第六课:数码管的静态显示

上节课内容回顾.

使发光二极管2-4-6-8闪烁 间隔1000毫秒。

              8个LED发光二极管,分别对应单片机IO口的P1.0到P1.7口,8个单片机IO口组成一个字节,在程序编写过程中,可以直接用P1来进行操作。

我们可以看成一个字节的二进制数代表我们的8个IO口如下表所示!LED1

LED1

LED2

LED3

LED4

LED5

LED6

LED7

LED8

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

1

0

1

0

1

0

1

0

依次点亮LED1到LED8发光二极管隔500毫秒。          

这里我们就会用到C语言运算符

左移运算符应用形态

i << 1

左移最低位补0,最高位移出去

右移运算符应用形态

i >> 1

右移最高位补0,最低位移出去

如:i = 0xff; i << 1;

1111 1111   → 1111 1110

我们让LED1到LED8依次点亮那么我们就可以用左移运算符来实现

然后用延时函数,延时500毫秒即可。

数码管静态和动态显示

静态显示

LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。

动态显示

动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。

数码管图

数码管的内部结构

数码管的真值表

 

如果我们让数码管显示一个 “1”

根据我们学习板的连接电路我们可以得出以下真值表:

P0.0

P0.1

P0.2

P0.3

P0.4

P0.5

P0.6

P0.7

a

b

c

d

e

f

g

dp

0

1

1

0

0

0

0

0

P0 = 0x06;  这就是共阴级的数码管显示一个1的数值

课后练习

明白数码管的显示原理。

使数码管从0-9循环显示间隔500毫秒。

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是静态数码管显示的实验步骤: 材料: - Arduino开发板 - 数码管 - 220欧姆电阻 - 杜邦线若干 步骤: 1. 将材料准备齐全。 2. 将数码管的针脚与Arduino开发板的数字引脚相连,具体连接方式见下: ``` 数码管正极 -> 数字引脚12 数码管负极 -> 数字引脚11 第一位数码管 a -> 数字引脚2 第一位数码管 b -> 数字引脚3 第一位数码管 c -> 数字引脚4 第一位数码管 d -> 数字引脚5 第一位数码管 e -> 数字引脚6 第一位数码管 f -> 数字引脚7 第一位数码管 g -> 数字引脚8 ``` 注意:连接时需要将数码管的220欧姆电阻连接在正极和数字引脚12之间。 3. 在Arduino开发板的IDE中编写代码: ```c void setup() { // 设置数码管的引脚为输出模式 pinMode(2, OUTPUT); // a pinMode(3, OUTPUT); // b pinMode(4, OUTPUT); // c pinMode(5, OUTPUT); // d pinMode(6, OUTPUT); // e pinMode(7, OUTPUT); // f pinMode(8, OUTPUT); // g pinMode(11, OUTPUT); // 数码管负极 pinMode(12, OUTPUT); // 数码管正极 } void loop() { // 显示数字1 digitalWrite(2, HIGH); // a digitalWrite(3, LOW); // b digitalWrite(4, LOW); // c digitalWrite(5, LOW); // d digitalWrite(6, LOW); // e digitalWrite(7, LOW); // f digitalWrite(8, LOW); // g digitalWrite(11, LOW); // 数码管负极 digitalWrite(12, HIGH); // 数码管正极 // 等待一段时间 delay(1000); } ``` 上述代码中,setup函数用于设置数码管引脚的模式,loop函数用于循环执行显示数字1的操作,并通过delay函数控制显示时间。 4. 将编写好的代码上传到Arduino开发板中。 5. 数码管显示数字1,每隔1秒钟更新一次。 注意:实验时要注意电路连接的正确性,避免短路或其他损坏。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值