本站近期与电子报单片机公共实验室合作推出系列教学文章!

欢迎来到51单片机学习网:庆祝51单片机学习网全面改版

返回主页xl1000实验仪 51论坛 单片机教学 本站例程  技术资料  软件下载  产品介绍 学液晶显示 如何购买  

         步进电机  xl600实验仪  红外线遥控  c语言集锦 自制编程器 音响技术 品质技术 音响网址   更新中..51论坛

51单片机学习网xl1000开发套件火热推出,全自动smt贴片工艺,推广期间每套单价998元

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

第一章:XL1000 单片机综合仿真试验仪简介

5.1 仿真概述

实验12 DA转换dac0832的原理与应用

1.1 系统简介

5.2 KEIL UV2软件操作指南

实验13 模拟/数字转换器ADC0804

1.2各个模块接口的定义

第六章:XL1000单片机系统实验

实验14 小喇叭警报器试验
第二章: 快速入门篇用XL1000作跑马灯实验

MCS-51单片机引脚说明

/实验15 红外线遥控试验
2.1软件安装 

实验1  最简单的八路跑马灯

实验16 汉字显示屏显示倚天一出宝刀屠龙
2.2软件界面介绍 

实验2  用xl1000试验仪做8路彩灯控制器

实验17  1602液晶显示屏显示A 
2.3软件操作

实验3  8路指示灯读出8路拨动开关的状态 

实验18  8155试验

第三章  USB接口安装指南

实验4  数码管静态扫描 

实验19  24C02储存开机次数实验

3.1 USB驱动程序安装

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

实验20  步进电机实验 
3.2特别情况下的usb安装 

实验6  端口按键判断技术(按键显示数字)

实验21  93c46 演示程序 

第四章ISP 下载部份的应用

实验7  矩阵按键识别技术

实验22 串行双向通信实验 
4.1   ISP 下载部份介绍 

实验8 74LS14反向器实验 

实验23 综合实验 18B20数字温度显示系统 
4.2  XL1000下载头之插头定义  实验9  74LS138 38译码器部分实验 第七章 怎样产生hex文件?
4.3常用芯片的ISP相关引脚连接方法 实验10  74LS164 串入并出实验 第八章   常见问题解答
第五章 XL1000 仿真操作指南 实验11 74LS165并入串出实验 第九章 系统配置和售后服务指南

*实验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

AJMP MAIN

ORG  0030H

MAIN:

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

MOV P0,#28H             ;显示0

LCALL    DELAY          ; 调用延时

MOV P0,#0FFH            ;关显示

 SETB P2.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