返回主页 单片机教程XL2000开发板 单片机学习 自制编程器 单片机资料 软件下载 电子技术产品介绍如何购买 论坛

点击察看说明书(64页彩色PDF文档)

1.1 系统简介

4.3 ISP引脚连接

端口按键判断

红外线遥控555硬件振荡器

1.2 模块接口定义

5.1 仿真概述

矩阵按键识别技术

汉字显示屏PS2键盘实验
2.1 软件安装  5.2 KEIL软件指南

74LS14反向器

1602液晶显示屏SD卡实验
2.2 软件界面介绍 

51引脚说明

74LS138译码器

8155试验

485通信实验 
2.3 软件操作

八路跑马灯

74LS164串入并出

24C02储存

DS1302实时时钟
3.1 USB驱动安装

继电器控制

74LS165并入串出步进电机产生hex文件
3.2 特别usb安装 

8路拨动开关

dac0832应用

93c46演示

常见问题解答
4.1 ISP介绍 

数码管静态扫描 

模拟/数字转换器

串行双向通信系统配置指南
4.2 下载头之插头定义

数码管动态扫描

小喇叭警报器18B20温度显示购买方式

*实验5  数码管动态扫描显示01234567

原理图:8个数码管它的数据线并联接到JP5, 位控制由8个PNP型三级管驱动后由JP8引出。

 

数码管是怎样来显示1,2,3,4呢?数码管实际上是由7个发光管组成8字形构成的,加上小数点就是8个。我们分别把他命名为A,B,C,D,E,F,G,H。

   

搞懂了这个原理, 我们如果要显示一个数字2, 那么 A,B,G,E,D这5个段的发光管亮就可以了。也就是把B,E,H(小数点)不亮,其余全亮。根据硬件的接法我们编出以下程序。当然在此之前,还必须指定哪一个数码管亮,这里我们就指定最后一个P2.7。

LOOP:

CLR P2.7;选中最后的数码管

SETB P0.7;B段不亮

SETB P0.5;小数点不亮

SETB P0.1;C段不亮

CLR P0.2;其他都亮

CLR P0.3

CLR P0.4

CLR P0.6

CLR P0.0

JMP LOOP;跳转到开始重新进行

END

把这个程序编译后写入单片机,可以看到数码管的最后一位显示了一个数字2。

也许你会说:显示1个2字就要10多行程序,太麻烦了。

显示数字2则是C,F,H(小数点)不亮,同时由于接法为共阳接法,那么为0(低电平)是亮

1(高电平)是灭。从高往低排列,(p0.7_p0.0)写成二进制为01111110, 把他转化为16进制则为A2H。我们可以根据硬件的接线把数码管显示数字编制成一个表格, 以后直接调用就行了。

显示

p0.7

C

p0.6

E

p0.5小数点

p0.4

D

p0.3

G

p0.2

A

p0.1

F

p0.0

B

HEX代码

0

0

0

1

0

1

0

0

0

28H

1

0

1

1

1

1

1

1

0

7EH

2

1

0

1

0

0

0

1

0

A2H

3

0

1

1

0

0

0

1

0

62H

4

0

1

1

1

0

1

0

0

74H

5

0

1

1

0

0

0

0

1

61H

6

0

0

1

0

0

0

0

1

21H

7

0

1

1

1

1

0

1

0

7AH

8

0

0

1

0

0

0

0

0

20H

9

0

1

1

0

0

0

0

0

60H

有了这个表格上面显示一个2的程序则可简化为

LOOP:

CLR P2.7;选中左边的数码管

MOV P0,#0A2H;送数字2的代码到P0口

JMP LOOP;跳转到开始重新进行

END

原理图中把所有数码管的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,由8个PNP的三极管,来控制这8位哪一位工作,例如上面的例子中我们选中的是P2.7.就是最后的一位亮了. 同样的如果要第一位亮, 只需要把程序CLR P2.7改为CLR P2.0即可。

 

在这里就有了一个矛盾, 所有数码管的8个笔划段a-h同名端连在一起, 那么在一个屏幕上如何显示0,1,2,3,4,5这样不同的数字呢? 的确, 在这样的接法中,同一个瞬间所有的数码管显示都是相同的, 不能显示不同的数字。在单片机里,首先显示一个数, 然后关掉.然后显示第二个数,又关掉, 那么将看到连续的数字显示,轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。

例如数码管显示01234567这么8个数,在单片机中实际的工作流程如下:先打开P2.0,送0, 然后关掉P2.0,打开P2.1送1, 再关掉P2.1,打开P2.2 送2 , 依次向下,由于速度足够快, 那么我们将连续的看到01234567这8个数。

(数码管动态扫描显示01234567接线方法以及运行的显示照片 )

1,接8位数码管的数据线。将数码管部份的数据口 JP5接到CPU部份的P0口JP51.

2,接8位数码管的显示位线。将数码管部份的显示位口 JP8接到CPU部份的P2口JP52. 

ORG  0000H

AJMPMAIN

ORG  0030H

MAIN:

CLR P2.0           ;选中第一个数码管

MOV P0,#28H             ;显示0

LCALL    DELAY          ; 调用延时

MOV P0,#0FFH            ;关显示

 SETBP2.0

CLR P2.1          ;选中第二个数码管

MOV P0,#7EH             ;显示1

LCALL    DELAY

MOV P0,#0FFH

 SETB     P2.1

CLR P2.2           ;选中第三个数码管

MOV P0,#0A2H            ;显示2

LCALL    DELAY

MOV P0,#0FFH

 SETB     P2.2

CLR P2.3          ;选中第四个数码管

MOV P0,#62H             ;显示3

LCALL    DELAY

MOV P0,#0FFH

 SETB     P2.3

CLR      P2.4        ;选中第五个数码管

 

MOV P0,#74H            ;显示4

LCALL    DELAY

MOV P0,#0FFH

SETB     P2.4

CLR P2.5          ;选中第六个数码管

MOV P0,#61H            ; 显示5

LCALL    DELAY

 MOV P0,#0FFH

 SETBP2.5

CLR P2.6          ;选中第七个数码管

MOV P0,#21H            ; 显示6

LCALL    DELAY

 MOV P0,#0FFH

 SETB     P2.6

CLR P2.7          ;选中第八个数码管

MOV P0,#7AH            ; 显示7

LCALL    DELAY

 SETB     P2.7

MOV P0,#0FFH

AJMPMAIN               ;重新开始

DELAY:                      ;延时子程序

MOV  R7,#2

D1:  MOV  R6,#25

D2:  DJNZ R6,D2

DJNZR7,D1

RET

END

精致外观

精致外观

精致外观

精致外观

精致外观

精致包装

精致包装

精致包装

配套附件

配套附件

使用手册

使用手册

使用手册

配套附件

配套附件

配套附件

配套附件

配套附件

配套附件

配套附件

精致细节

精致细节

精致细节

精致细节

配套光盘