首页 数码管动态扫描显示实验

数码管动态扫描显示实验

举报
开通vip

数码管动态扫描显示实验数码管动态扫描显示实验 ------------------------------------------------------------------------------------------------ 数码管动态扫描显示实验 实验三 定时器和中断实验 一、实验目的 1、学习51单片机内部定时器的使用方法。 2、掌握中断处理程序的方法。 3、掌握数码管与单片机的连接方法和简单显示编程方法。 4、学习和理解数码管动态扫描的工作原理。 二、实验内容 1、使用定时器T0,定时1秒,控制P1口发光管...

数码管动态扫描显示实验
数码管动态扫描显示实验 ------------------------------------------------------------------------------------------------ 数码管动态扫描显示实验 实验三 定时器和中断实验 一、实验目的 1、学习51单片机内部定时器的使用方法。 2、掌握中断处理程序的方法。 3、掌握数码管与单片机的连接方法和简单显示编程方法。 4、学习和理解数码管动态扫描的工作原理。 二、实验内容 1、使用定时器T0,定时1秒,控制P1口发光管循环点亮。 2、使用定时器T0,定时1秒,控制1个数码管循环显示数字0~9,每秒钟数字加一。 3、使用软件定时1秒,控制2个数码管循环显示秒数0~59,每秒钟数字加一。 4、使用定时器T0,定时1秒,控制2个数码管循环显示秒数0~59,每秒钟数字加一。 三、实验电路图 四、实验说明 1、数码管的基本概念 (1) 段码 数码管中的每一段相当于一个发光二极管,8段数码管则具有8个发光二极管。本次实验使用的是共阴数码管,公共端是1、6,公共端置0,则某段选线置1相应的段就亮。公共端1控制左面的数码管;公共端6控制右面的数码管。正面看数码管的引脚、段选线和数据线的对应关系为: —————————————————————————————————————— ------------------------------------------------------------------------------------------------ 图1 数码管封装图 图2 数据线与数码管管脚连接关系 段码是指在数码管显示某一数字或字符时,在数码管各段所对应的引脚上所加的高低电平按顺序排列所组成的一个数字,它与数码管的类型(共阴、共阳) (2)位码 位码也叫位选,用于选中某一位数码管。在实验图中要使第一个数码管显示数据,应在公共端1上加低电平,即使P2.7口为0,而公共端6上加高电平,即使P2.6口为1。位码与段码一样和硬件连接有关。 (3)拉电流与灌电流 单片机的I/O 口与其他电路连接时,I/O 电流的流向有两种情况:一种是当该I/O 口为高电平时,电流从单片机往外流,称作拉电流;另一种是该I/O 口为低电平时,电流往单片机内流,称为灌电流。一般I/O 的灌电流负载能力远大于拉电流负载能力,对于一般的51 单片机而言,拉电流最大4mA,灌电流为20mA。 一般在数码管显示电路中采用灌电流方式(用共阳数码管),可以得到更高的亮度。本实验电路中采用拉电流方式(用共阴数码管)。 2、多位数码管的动态显示 在多位8段数码管显示时,为了简化硬件电路,通常将所有位的段选线相应地并联在一起,由一个单片机的8位I/O口控制,形成段选线的多路复用。而各位数码管的共阳极或共阴极分别由单片机独立的I/O口线控制,顺序循环地点亮每位数码管,这样的数码管驱动方—————————————————————————————————————— ------------------------------------------------------------------------------------------------ 式就称为“动态扫描”。在这种方式中,虽然每一时刻只选通一位数码管,但由于人眼具有一定的“视觉残留”,只要延时时间设置恰当,便会感觉到多位数码管同时被点亮了。 多位8段LED动态显示器电路,其中段选线占用一个8位I/O口,位选线占用一个8位I/O口,由于各位的段选线并联,段线码的输出对各位来说都是相同的。因此,同一时刻,如果各位位选线都处于选通状态的话,8位LED将显示相同的字符。若要各位LED能够显示出与本位相应的显示字符,就必须采用扫描显示方式,即在某一位的位选线处于选通状态时,其它各位的位选线处于关闭状态,这样,8位LED中只有选通的那一位显示出字符,而其它位则是熄灭的。同样,在下一时刻,只让下一位的位选线处于选通状态,而其他的位选线处于关闭状态。如此循环下去,就可以使各位“同时”显示出将要显示的字符。由于人眼有视觉暂留现象,只要每位显示间隔足够短,则可造成多位同时亮的假象,达到显示的目的。 3、定时器 内部定时/计数器用作定时器时,是对机器周期计数。每个机器周期的长度是12个振荡器周期。当为定时工作方式1时,定时时间的 计算公式 六西格玛计算公式下载结构力学静力计算公式下载重复性计算公式下载六西格玛计算公式下载年假计算公式 为: (216—计数初值)?晶振周期?12 或 (216—计数初值)?机器周期 因为实验系统的晶振12MHZ,机器周期等于1us。最大定时时间为: (216—0)?1/12?10-6?12=65536?10-6(s)= 65.536ms。 —————————————————————————————————————— ------------------------------------------------------------------------------------------------ 所以需要配合软件记数。如要延时1秒,T0取最大定时时间,则需要T0中断16次,所用时间为 65536*16=1048576μs?1s 因此在T0中断处理程序中,要判断中断次数是否到16次,若不到16次,则只使中断次数加1,然后返回,若到了16次,定时1秒时间到。 如要延时1秒,T0取50ms定时时间,则需要T0中断20次,所用时间为 50ms*20=1000ms=1s 因此在T0中断处理程序中,要判断中断次数是否到20次,若不到20次,则只使中断次数加1,然后返回,若到了20次,定时1秒时间到。 五、参考程序框图及部分程序 1、使用定时器T1,定时1秒,控制P1口发光管循环点亮。 ;利用定时器精确延时1秒 ;循环点亮P1口接的八只发光二极管。 ORG 0000H AJMP START ORG 001BH ;T1中断入口地址 AJMP INT_T1 ORG 0030H START: MOV SP,#60H —————————————————————————————————————— ------------------------------------------------------------------------------------------------ MOV TMOD,#10H ;置T1为方式1 MOV TL1,#0B0H ;延时50mS的时间常数 MOV TH1,#3CH MOV R0,#0FEH MOV R1,#20 SETB TR1;启动定时器1,开始定时 SETB ET1 SETB EA ;开中断 SJMP $ INT_T1:;T1中断服务子程序 PUSH ACC;保护现场 PUSH PSW PUSH DPL PUSH DPH CLR TR1;关闭定时器1,停止定时 MOV TL1,#0B0H;定时50mS常数 MOV TH1,#3CH DJNZ R1,EXIT MOV R1,#20;延时一秒的常数 MOV A,R0; MOV P1,A ;送P1口显示 SETB C RLC A MOV R0,A EXIT: SETB TR1;启动定时器1,开始定时 POP DPH;恢复现场 —————————————————————————————————————— ------------------------------------------------------------------------------------------------ POP DPL POP PSW POP ACC RETI END 2、使用定时器T0,定时1秒,控制1个数码管循环显示数字0~9,每秒钟数字加一。 ORG 0000H AJMP START ORG 000BH ;T0中断入口地址 AJMP INT_T0 ORG 0030H START: MOV SP,#60H MOV TMOD,#01H ;置T0为方式1 MOV TL0,#0B0H ;延时50mS的时间常数 MOV TH0,#3CH MOV R0,#00H ;数码管显示单元 MOV R1,#20 ;定时次数 SETB TR0;启动定时器1,开始定时 SETB ET0 SETB EA ;开中断 Slop: acall display SJMP Slop INT_T0:;T0中断服务子程序 PUSH ACC;保护现场 —————————————————————————————————————— ------------------------------------------------------------------------------------------------ PUSH PSW PUSH DPL PUSH DPH CLR TR0;关闭定时器1,停止定时 MOV TL0,#0B0H;延时50mS常数 MOV TH0,#3CH DJNZ R1,EXIT MOV R1,#20;重置定时次数 MOV A,R0 INC A ;数码管显示单元内容加一 MOV R0,A CJNE A,#10,EXIT MOV R0,#00H ; 数码管显示单元清0 EXIT: SETB TR0;启动定时器0,开始定时 POP DPH;恢复现场 POP DPL POP PSW POP ACC RETI ;显示子程序 display: mov a,R0 mov dptr,#numtab;指定查表启始地址 MOVC A,@A+DPTR ;得到段码 mov P0,a ; 段码送P0口 clr P2.7 ;送位码 acall delay1 ;延时10ms —————————————————————————————————————— ------------------------------------------------------------------------------------------------ setb P2.7 ret ;延时子程序 delay1:MOV R2,#20 L1: MOV R3,#248 DJNZ R3,$ DJNZ R2,L1 RET ;实验板上的7段数码管0,9数字的共阴显示代码 numtab: DB 0CFH,03H,5DH,5BH,93H,0DAH,0DEH,43H,0DFH,0DBH END 3、使用软件定时1秒,控制2个数码管循环显示秒数0~59,每秒钟数字加一。 (1)在 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 过程中使用一个存储单元作为秒计数单元,当一秒钟到来时,就让秒计数单元加1,当秒计数达到60时,就自动返回到0,重新秒计数。 (2)对于秒计数单元中的数据要把它十位数和个数分开,方法一:采用对10整除和对10求余;方法二:采用分数、合数法。 (3)在数码管上显示数,通过查表的方式完成。 (4)一秒时间的产生采用软件精确延时的方法来完成,经过精确计算得到1秒时间为1.002秒。 方法一汇编源程序 —————————————————————————————————————— ------------------------------------------------------------------------------------------------ ;----------10毫秒延时子程序 DELY10ms: MOV R4,#20 D1: MOV R5,#248 DJNZ R5,$ DJNZ R4,D1 RET ;-------主程序 Second EQU 30H ORG 0 START: acall init NEXT: acall display Ljmp next Init: MOV Second,#00H ret display: MOV R3,#50 dis2:MOV A,Second MOV B,#10 DIV AB MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,A ;送出十位数字的段码 CLR p2.7 ;送位码 —————————————————————————————————————— ------------------------------------------------------------------------------------------------ Acall dely10ms Setb p2.7 MOV A,B MOVC A,@A+DPTR MOV P0,A ;送出个位数字的段码 CLR p2.6 LCALL DELY10mS Setb p2.6 djnz r3,dis2 ;20毫秒循环执行50次,时间约1秒 INC Second MOV A,Second CJNE A,#60,ret0 Mov Second,#00h Ret0: ret TABLE: DB 0CFH,03H,5DH,5BH,93H,0DAH,0DEH,43H,0DFH,0DBH END 方法二汇编程序: temp equ 22h ;计数器个位和十位数值存放内存位置 ORG 0000H ;程序执行开始地址 LJMP START ;跳到标号START执行 ;-------------------- 主程序 --------------------------- START: mov temp,#0 ;初始化计数器,从0开始 —————————————————————————————————————— ------------------------------------------------------------------------------------------------ stlop: acall display ;调用显示子程序 acall add1 ;对计数器加1 mov a,temp cjne a,#60H,next ;判断计数器是否满60? mov temp,#0 ;满60就清零重新开始 next: ljmp stlop ;不满就循环执行 ;显示子程序 display: mov r1,#50 dis1: mov a,temp ;将temp中的十六进制数转换成10进制 anl a,#0Fh mov dptr,#numtab;指定查表启始地址 MOVC A,@A+DPTR ;查数字的段码 mov P0,a ;送出个位数字的段码 clr P2.7 ;送出位码 acall delay1 ;显示10ms setb P2.7 ;关闭位选 mov a,temp;将temp中的十六进制数转换成10进制 anl a,#0F0h swap a mov dptr,#numtab;指定查表启始地址 MOVC A,@A+DPTR ;查数字的段码 mov P0,a ;送出十位数字的段码 —————————————————————————————————————— ------------------------------------------------------------------------------------------------ clr P2.6 ;送位码 acall delay1 ;显示10ms setb P2.6 djnz r1,dis1 ret ;延时子程序 delay1:MOV R2,#20 L1: MOV R3,#248 DJNZ R3,$ DJNZ R2,L1 RET ;加一子程序 add1: mov a,temp inc a da a mov temp,a ret ;实验板上的7段数码管0,9数字的共阴显示代码 numtab: DB 0CFH,03H,5DH,5BH,93H,0DAH,0DEH,43H,0DFH,0DBH end 4、使用定时器T0,定时1秒,控制2个数码管循环显示秒数0~59, 每秒钟数字加一。 —————————————————————————————————————— ------------------------------------------------------------------------------------------------ 本题请大家参考前面的例题独立完成。 六、实验 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 1、说明实验目的和内容。 2、画出实验电路原理图,并简要分析电路的执行过程。 3、完成实验内容(4)的程序设计框图并说明编程思想,并给出程序清单。 4、根据实验内容,调式程序,观察、分析程序的运行过程。 5、给出实验结果并进行分析。 6、实验体会。 七、预习实验四 ——————————————————————————————————————
本文档为【数码管动态扫描显示实验】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_005190
暂无简介~
格式:doc
大小:31KB
软件:Word
页数:14
分类:互联网
上传时间:2017-10-17
浏览量:25