首页 | 最新需求 | 最新现货 | IC库存 | 供应商 | IC英文资料库 | IC中文资料库 | IC价格 | 电路图 | 应用资料 | 技术资料
 电路图:    3万份资料
您现在的位置:首页 >  电路图 芯片中文资料列表  
 
 
介绍:

数码管动态显示实验
一、实验目的
在实际的单片机系统中,往往需要多位显示。动态显示是一种最常见的多位显示方法,
应用非常广泛。本实验要求实验两位动态显示,并通过调试程序达到最佳显示效果。通过
实验应掌握以下知识要点:
1.数码管动态显示电路的连接方法。
2.练习动态显示程序的结构及调试方法。
二、实验预备知识
1.动态显示概念
用数码管显示信息时,由于每个数码管至少需要8 个I/O 口,如果需要多个数码管,
则需要太多I/O 口,而单片机的I/O 口是有限的。在实际应用中,一般采用动态显示的方
式解决此问题。数码管动态显示的连接方式如图3-2 所示。
思考:所有数码管的段选全部连接在一起,如何能显示不同的内容呢?
动态显示是多个数码管,交替显示,利用人的视觉暂留作用使人看到多个数码管同时
显示。在编程时,需要输出段选和位选信号,位选信号选中其中一个数码管,然后输出段
码,使该数码管显示所需要的内容,延时一段时间后,再选中另一个数码管,再输出对应
的段码,高速交替。例如需要显示数字“12”时,先输出位选信号,选中第一个数码管,
输出1 的段码,延时一段时间后选中第二个数码管,输出2 的段码。把上面的流程以一定
的速度循环执行就可以显示出“12”,由于交替的速度非常快,人眼看到的就是连续的“12”
在动态显示程序中,各个位的延时时间长短是非常重要的,如果延时时间长,则会出
现闪烁现象;如果延时时间太短,则会出现显示暗且有重影。
2.显示两位十六进制数据的处理方法
在显示数据时需要把被显示的数据拆分为单个的位,然后按照高低位的位置输出显
示。例如显示“8D”,就需要显示一个“8”,然后再在其右面显示一个“D”,因此就需要
把“8D”拆分为“8”和“D”。把一个数据拆分的方法如下:
① 先将被显示的数据与“0FH”相与,其结果就是其低位。
② 再将被显示数据高低半字节交换。
③ 把交换后的数据再与“0FH”相与,其结果就是高位。
示例程序如下:
……
MOV 30H ,#7FH ;被显示的数据为7F,存入30H 单元中。
MOV A ,30H ;把被显示数据送入累加器
ANL A ,#0FH ;与0FH 相与,得到“0FH”
MOV 31H ,A ;把低位存入31H 单元
MOV A ,30H ;再次取出被显示数据

SWAP A ;半字节交换,变成F7H
ANL A ,#0FH ;与0FH 相与。得到“07H”
MOV 32H ,A ;把高位存入32H 单元
……
思考:①为什么要拆成“07H”和“0FH”,而不是“70H”和“0FH”?
②以上程序中,在提取高位时是否可以先与运算,然后再高低半字节交换?
三、硬件电路
使用按键显示模块,按实验二的方法连接。
思考:此时四个数码管的位选分别是单片机的那个I/O 口?
四、实验内容
1.根据要求补充程序
以下程序是在数码管上显示“9E”,把程序补充完整,运行并记录现象。
ORG 0000H
;数据指针指向段码表
MOV 30H,#9EH
MAIN: MOV A ,30H
ANL A ,#0FH
;查表
SETB P3.5 ;熄灭第一个数码管
CLR P3.4 ;选中第二个数码管
MOV P0 ,A
LCALL DELAY
MOV A ,30H
;高、低半字节交换
ANL A ,#0FH
MOVC A ,@A+DPTR
;熄灭第二数码管个
;选中第一个数码管
MOV P0 ,A
LCALL DELAY
SJMP MAIN
TAB: ;段码表
DELAY: ;延时5ms 的子程序
END
2.在前面程序的基础上,修改延时程序,分别改为0.5s 和100us,观察运行现象,并
分析原因。
3.修改显示内容

五、扩展内容
1.在以上硬件的基础上,编程在数码管上显示“1234”。
2.在以上硬件的基础上,编程显示0~59。
3.总结实验内容,根据实验程序绘制程序流程图。
六、思考题
1.总结程序调试结果,动态显示程序中,确定延时的时间长短与那些因素有关?
2.要改善显示效果,实验程序应做那些修改?
3.如果显示有明显的闪烁感,应如何修改程序?

(:)
 
 

更多 110
关于我们 | 联系我们 | IC列表库索引1 | IC列表库索引2 | IC列表库索引3 | IC列表库索引4 |
深  圳13410210660             QQ : 84325569   点击这里与集成电路资料查询网联系
联系方式: E-mail:CaiZH01@163.com