工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

数码管循环显示实验

作者:dolphin时间:2012-11-13

数码管循环显示实验
一、实验目的
在实际系统中,数码管显示的内容由程序控制,是可以变化的。实验中要求在数码管
上循环显示0~6,通过实验需掌握以下知识点:
1.练习数据传送、循环、延时程序等基本程序结构和LOOP、DJNZ 等常用指令的使
用。
2.循环程序的基本结构。
3.延时程序的编写方法、调试方法。
二、实验预备知识
1.延时程序
在实际应用中,单片机一般用于控制其他设备,如机械、电炉等,而单片机运行的速
度远远快于受控设备的速度。为了使单片机与受控设备的速度匹配,程序中经常采用延时
程。单片机每执行一条指令要消耗一定的时间。
例如:在单片机晶振为6MHZ 时执行MOV A,#09H 的时间为2uS,如果反复执行
该指令10000 次则会产生20mS 的延时。下面是一个实际的延时程序:
……
MOV R0 ,#10H
DEL0:MOV R1 ,#0F7H
DEL1:NOP
DJNZ R1 ,DEL1
DJNZ R0 ,DEL0
……
该程序反复执行NOP 和DJNZ 指令,从而产生延时。延时时间就是单片机执行延时程
序段所消耗的时间,延时时间与单片机的速度有关,因此同一个程序在不同的单片机系统
内运行,延时时间可能不一样。延时程序的延时时间的计算方法:
① 先计算出单片机的机器周期T
T=fosc/12(如果为6 时钟工作方式,T=fosc/6)
② 在指令表中查延时程序中每条指令的机器周期数,机器周期数乘机器周期就是执
行一次该指令的时间。
③ 根据延时程序中各指令的执行次数,计算延时时间。
例如:某单片机的晶振频率为12MHZ,执行上述程序的延时时间为:
(((2+1)×247+1+2)×16+1)×1uS=11905uS=11.905uS
由于单片机执行速度很快,需要执行非常多的指令才能达到一定的延时时间,为了使
延时程序不至于太长,一般都采用循环结构,即多次反复执行同一段程序。以上程序采用
了双重循环,循环次数为3952 次。

思考题:要改变以上延时程序的延时时间,应如何修改。
三、实验内容
1.实验程序
实验程序如下,其中程序空缺部分需自行编写。
ORG ;程序从0000H 单元开始存放。
CLR P3.5 ;位选
LOOP:MOV A ,#0C0H
MOV P0 ,A
LCALL DELAY
MOV A ,#0F9H
MOV P0 ,A
LCALL DELAY
MOV A ,#0A4H
MOV P0 ,A
LCALL DELAY
MOV A ,#0B0H
MOV P0 ,A
LCALL DELAY
MOV P0 ,#99H
LCALL DELAY
MOV P0 ,#92H
LCALL DELAY
SJMP LOOP
DELAY: ;延时1S 的子程序
END
思考:在以上程序中,前面4 次显示通过累加器A 向P0 口送数,而后面3 次直接向
P0 口送数,运行结果会有不同吗?
2.结合硬件和实验要求给每条指令加注释,说明指令在程序中的作用
3.编写以上程序中空缺部分
4.单步运行、断点运行程序观察、记录结果。
5.连续运行,观察、记录运行结果
五、思考题
1.要改变显示速度,应如何修改程序?
六、扩展内容
1.在该程序中有很多相同的操作,试用循环结构重新编写程序,缩短程序长度。
2.修改程序实现显示0~F,时间间隔不变。


关键词: 数码管循环显示实验 电路图

最新电路

评论

技术专区