4.3 8位共阴数码管

  • 格式:pdf
  • 大小:1.01 MB
  • 文档页数:32

通过数码管显示“H”或者“L”,表示高电平或者低电平,检测引脚定义在P3.2口,平时引脚悬空,数码管显示“H”,用杜邦线将P3.2连接到GND,则显示“L”。

知识要点:4.38位共阴数码管4.3.1硬件连接使用前必须把J50插针用短路块(跳帽)跳上。

此跳帽用于数码管的整体供电,如果平时不需要使用公阴数码管,把跳帽拔掉即可。

4.3.28位数码管显示其中之一第一位数码管显示数字3知识要点:1、锁存器。

锁存器就是把当前的状态锁存起来,使CPU送出的数据在接口电路的输出端保持一段时间锁存后状态不再发生变化,直到解除锁定。

74hc573就是锁存器,锁存引脚高电平表示直通状态,为低电平表示锁存状态,可以通过控制锁存引脚,控制74hc573后端输出数据。

4.3.38位数码管显示其中之二P0J38共阳数码管数据端P2.2(段锁存)J2(B)1段锁存P2.3(位锁存)J2(A)1位锁存第1个和第8位数码管显示同样数字3知识要点:与显示一位相比较,同时选通2位数码管,也可以同时选通多位数码管,但是所有选通的数码管显示的数据只能是相同的。

如果需要显示不同数据,就需要用到动态扫描。

4.3.48位数码管动态扫描8位数码管显示01234567知识要点:1、动态扫描。

由于任一时刻只能显示一种数字,当需要多位数码管显示多位数据的时候就需要动态扫描。

动态扫描实际上执行的是动态显示,由于动态速度很快,人眼分辨不出是在动态显示,所以看上去是静态显示,这种效果正是我们所需要的。

动态扫描的优点是,在不影响显示效果的前提下,大量节省IO端口。

2、If条件语句。

用if语句可以构成分支结构。

它根据给定的条件进行判断,以决定执行某个分支程序段。

C语言的if语句有三种基本形式。

第一种形式为基本形式:ifif(表达式)语句其语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。

其过程可表示为下图。

第二种形式为:if-elseif(表达式)语句1;else语句2;其语义是:如果表达式的值为真,则执行语句1,否则执行语句2。

其执行过程可表示为下图。

第三种形式为if-else-if形式前二种形式的if语句一般都用于两个分支的情况。

当有多个分支选择时,可采用if-else-if 语句,其一般形式为:if(表达式1)语句1;else if(表达式2)语句2;else if(表达式3)语句3;…else if(表达式m)语句m ;else语句n ;其语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。

然后跳到整个if 语句之外继续执行程序。

如果所有的表达式均为假,则执行语句n 。

然后继续执行后续程序。

if-else-if 语句的执行过程如图4.3.58位数码管动态扫描演示扫描速度很慢,可以清楚看到每个数码管显示的数字,并顺序显示,任一时刻显示一个数码管。

知识要点:故意增加了延时长度,目的是为了更直观了解动态扫描原理。

通过软件减少延时时间,就可以看到动态扫描静态显示效果。

4.3.6数码管显示动态数据首先显示01234567,然后显示12345678,最后显示89abcdef。

知识要点:不论数据如何改变,循环扫描的整个部分不能停止,不然就会产生闪烁。

4.3.79累加德飞莱技术论坛: 联系电话:+86-025-********100主函数部分作用:延时一段时间后让数值加1,范围是0-9,然后把该数据送至显示缓冲区TempData显示处理函数,可以通过输入参数选择需要显示的起始位置和一共需要显示的位数。

FirstBit 表示第一个数据需要显示的位置,如果需要把第一个数据显示在第4位,则FirstBit 位置输入3,带入函数的参数相当于DataPort=dofly_WeiMa[i+3],后面用到的程序这个函数就固定成这种模式,我们只需要针对输入参数调整然后直接调用即可。

Display(2,1);主函数中调用显示函数的输入参数为2和1,2表示从第三位开始显示,1表示只显示1位数据,如果把前面的2改成7,则上图5就显示在最后一位,如下图:德飞莱技术论坛: 联系电话:+86-025-********101知识要点:主程序中只需要处理数据num 从0-9累加,并不停循环调用显示函数。

动态扫描显示一个变化的数字是真正意义数码管显示。

4.3.899累加与1位数码管显示比较如下:1、num 取值范围从0-9扩大到0-992、显示缓冲区部分TempData 需要处理2位数据实验现象:数值从00一直累加到99,然后循环。

知识要点:1、运算符。

C语言的运算符不仅具有不同的优先级,而且还有一个特点,就是它的结合性。

在表达式中,各运算量参与运算的先后顺序不仅要遵守运算符优先级别的规定,还要受运算符结合性的制约,以便确定是自左向右进行运算还是自右向左进行运算。

这种结合性是其它高级语言的运算符所没有的,因此也增加了C语言的复杂性。

C语言的运算符可分为以下几类:1.算术运算符:用于各类数值运算。

包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。

2.关系运算符:用于比较运算。

包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六种。

3.逻辑运算符:用于逻辑运算。

包括与(&&)、或(||)、非(!)三种。

4.位操作运算符:参与运算的量,按二进制位进行运算。

包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。

5.赋值运算符:用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。

6.条件运算符:这是一个三目运算符,用于条件求值(?:)。

7.逗号运算符:用于把若干表达式组合成一个表达式(,)。

8.指针运算符:用于取内容(*)和取地址(&)二种运算。

9.求字节数运算符:用于计算数据类型所占的字节数(sizeof)。

10.特殊运算符:有括号(),下标[],成员(→,.)等几种。

结合本例中使用的算术运算符除(/)、求余(或称模运算,%)举例如下:假设a=5,b=3,a、b均为无符号整形变量,5/3=1,因为结果必须是整数,所以是看不到小数部分的,得到的结果就是15%3=2,求余数,很显然,余数为2,再分析一下例句:如要显示68,则68/10=668%10=86显示到第一个数码管,8显示到第二个数码管,这样我们就能看到数值是68。

以后所有的算术运算都会用到这种方式。

学习并深入理解。

德飞莱技术论坛:联系电话:+86-025-********102德飞莱技术论坛: 联系电话:+86-025-********103实验现象:知识要点:同上德飞莱技术论坛: 联系电话:+86-025-********104实验现象:知识要点:同上同9位累加相同,不过数字是从9-0累减,然后循环,其他部分一样知识要点:同上德飞莱技术论坛:联系电话:+86-025-******** 105实验现象:同99位累加相同,不过数字是从99-0累减,然后循环,其他部分一样知识要点:同上德飞莱技术论坛:联系电话:+86-025-******** 106实验现象:同999位累加相同,不过数字是从999-0累减,然后循环,其他部分一样知识要点:同上德飞莱技术论坛:联系电话:+86-025-******** 107实验现象:同9999位累加相同,不过数字是从9999-0累减,然后循环,其他部分一样知识要点:上述4个累加4个累减,8个样例大部分程序都是相同的,通过这种强化方式了解动态扫描和数值的处理。

这里再次提及其中知识要点:1、if else判断语句2、运算符3、显示函数输入参数意义和整体结构德飞莱技术论坛:联系电话:+86-025-********108德飞莱技术论坛: 联系电话:+86-025-********1094.3.15显示小数点上图可以看出,在原来999累加的程序中加了一句|0x80,在之前学习过这个按位或的符号,这里采取同样方法显示小数点,在需要显示小数点的位的语句后面加上这一句就可以实现小数点功能,用户可以根据样例更改到其他位,以熟悉“按位或”符号用法。

知识要点:1、按位或“|”德飞莱技术论坛: 联系电话:+86-025-********1104.3.16数码管消隐实验现象:德飞莱技术论坛: 联系电话:+86-025-********111知识要点:消隐是数码管显示中经常用到的部分,上图运行效果显示的消隐的效果,在前面9999累加时如果没有使用消隐则显示1的时候会显示0001,对于数字显然不符合我们平时的使用习惯,这个时候消隐处理就变得非常重要。

数字部分消隐主要是判断出无用的“0”,然后让其不显示即可。

4.3.17递加递减带消隐德飞莱技术论坛:联系电话:+86-025-******** 112德飞莱技术论坛:联系电话:+86-025-******** 113德飞莱技术论坛: 联系电话:+86-025-********1144.3.18数码管左移从最右端开始左移移到最左端德飞莱技术论坛: 联系电话:+86-025-********115第二位数左移到位第三位数左移过程中。

最后显示效果知识要点:4.3.19数码管右移1其他部分相同,蓝色圈中部分i 改成7-i ,运行方向就相反了。

实验现象:同左移现象相反知识要点:同上在显示缓冲区处理上与左移相反过程。

实验现象:同左移现象相反知识要点:同上德飞莱技术论坛:联系电话:+86-025-******** 116主循环部分增加了循环动作。

左移德飞莱技术论坛:联系电话:+86-025-******** 117德飞莱技术论坛: 联系电话:+86-025-********118。

知识要点:4.3.22数码管循环右移1程序见配套光盘。

现象同左移相反知识要点:4.3.23数码管循环右移2程序见配套光盘。

现象同左移相反知识要点:德飞莱技术论坛: 联系电话:+86-025-********1194.3.24数码管闪烁一般用标志位处理,闪烁原理与LED 闪烁相同,不过是整个部分闪烁,可以用延时,也可以用定时器。

本样例是8位数码管全部闪烁。

比较容易操作和理解。

德飞莱技术论坛: 联系电话:+86-025-52158963120知识要点:4.3.25数码管局部闪烁德飞莱技术论坛: 联系电话:+86-025-52158963121P0J38共阳数码管数据端P2.2(段锁存)J2(B )1段锁存P2.3(位锁存)J2(A )1位锁存中间横杠显示延时0.5s 左右横杠不显示然后循环知识要点:4.4定时器4.4.1硬件连接定时器是单片机内部的特殊功能模块。