数码管动态扫描显示实验

上传人:桔**** 文档编号:489146100 上传时间:2022-08-15 格式:DOCX 页数:9 大小:214.96KB
返回 下载 相关 举报
数码管动态扫描显示实验_第1页
第1页 / 共9页
数码管动态扫描显示实验_第2页
第2页 / 共9页
数码管动态扫描显示实验_第3页
第3页 / 共9页
数码管动态扫描显示实验_第4页
第4页 / 共9页
数码管动态扫描显示实验_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《数码管动态扫描显示实验》由会员分享,可在线阅读,更多相关《数码管动态扫描显示实验(9页珍藏版)》请在金锄头文库上搜索。

1、实验三定时器和中断实验、实验目的1、学习51单片机内部定时器的使用方法。2、掌握中断处理程序的方法。3、掌握数码管与单片机的连接方法和简单显示编程方法。4、学习和理解数码管动态扫描的工作原理。二、实验内容1、使用定时器T0,定时1秒,控制P1 口发光管循环点亮。2、使用定时器T0,定时1秒,控制1个数码管循环显示数字09,每秒钟 数字加一o3、使用软件定时1秒,控制2个数码管循环显示秒数059,每秒钟数字加O4、使用定时器T0,定时1秒,控制2个数码管循环显示秒数059,每秒钟 数字加一。三、实验电路图B.0.1TT1T1I.2法五一4工工四、实验说明1、数码管的基本概念(1)段码数码管中的每

2、一段相当于一个发光二极管,8段数码管则具有8个发光二极 管。本次实验使用的是共阴数码管,公共端是 1、6,公共端置0,则某段选线置 1相应的段就亮。公共端1控制左面的数码管;公共端6控制右面的数码管。正 面看数码管的引脚、段选线和数据线的对应关系为:q DP f e 6图1数码管封装图图2数据线与数码管管脚连接关系段码是指在数码管显示某一数字或字符时,在数码管各段所对应的引脚上所加的高低电平按顺序排列所组成的一个数字,它与数码管的类型(共阴、共阳) 和与数据线的连接顺序有关。对应数据线D7D6D5D4D3D2D1D0对应显示段efDPgcdba显示数字段码00CFH11001111103H00

3、00001125DH0101110135BH01011011493H1001001150DAH1101101060DEH11011110743H0100001180DFH1101111190DBH11011011(2)位码位码也叫位选,用于选中某一位数码管。在实验图中要使第一个数码管显示数据, 应在公共端1上加低电平,即使P2.7 口为0,而公共端6上加高电平,即使P2.6口 为1。位码与段码一样和硬件连接有关。(3)拉电流与灌电流单片机的I/O 口与其他电路连接时,I/O电流的流向有两种情况:一种是当 该I/O 口为高电平时,电流从单片机往外流,称作拉电流;另一种是该I/O 为 低电平时,电

4、流往单片机内流,称为灌电流。一般I/O的灌电流负载能力远大于 拉电流负载能力,对于一般的51单片机而言,拉电流最大4mA灌电流为20mA一般在数码管显示电路中采用灌电流方式(用共阳数码管) ,可以得到更高的亮度。本实验电路中采用拉电流方式(用共阴数码管) 。2、多位数码管的动态显示在多位 8 段数码管显示时, 为了简化硬件电路, 通常将所有位的段选线相应地 并联 在一起, 由一个单片机的 8 位 I/O 口控制, 形成段选线的多路复用。 而各位数码管的共阳极或共阴极分别由单片机独立的 I/O 口线控制, 顺序循环地点亮每位数码管,这样的数码管驱动方式就称为“动态扫描” 。在这种方式中,虽然每一

5、时刻只选通一位数码管,但由于人眼具有一定的“视觉残留” ,只要延时时间设置恰当,便会感觉到多位数码管同时被点亮了。多位8段LED动态显示器电路,其中段选线占用一个8位I/O 口,位选线占用一个 8 位 I/O 口, 由于各位的段选线并联, 段线码的输出对各位来说都是相同的。因此,同一时刻,如果各位位选线都处于选通状态的话,8位LED将显示相同的字符。若要各位LED能够显示出与本位相应的显示字符,就必须采用扫描显 示方式, 即在某一位的位选线处于选通状态时, 其它各位的位选线处于关闭状态,这样,8位LED中只有选通的那一位显示出字符,而其它位则是熄灭的。同样,在下一时刻, 只让下一位的位选线处于

6、选通状态, 而其他的位选线处于关闭状态。如此循环下去,就可以使各位“同时”显示出将要显示的字符。由于人眼有视觉暂留现象, 只要每位显示间隔足够短, 则可造成多位同时亮的假象, 达到显示的 目的。3、定时器内部定时 / 计数器用作定时器时,是对机器周期计数。每个机器周期的长度是 12 个振荡器周期。当为定时工作方式1 时,定时时间的计算公式为:(216计数初值)X晶振周期X12 或(216一计数初值)X机器周期因为实验系统的晶振12MHz机器周期等于1us。最大定时时间为:(216 0)X1/ 12X 10-6X 12=65536X 10-6(s)= 65.536ms 。所以需要配合软件记数。如

7、要延时1秒,T0取最大定时时间,则需要T0中断 16次,所用时间为65536*16=1048576仙 s1s因此在 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 口发光管循环点亮。;利

8、用定时器精确延时1秒;循环点亮P1 口接的八只发光二极管ORG 0000HAJMP STARTORG 001BH;T1中断入口地址AJMP INT_T1ORG 0030HSTART:MOV SP,#60HMOV TMOD,#10H置 T1 为方式 1MOV TL1,#0B0H ;延时50mS的时间常数MOV TH1,#3CHMOV R0,#0FEHMOV R1,#20SETB TR1;O动定时器1,开始定时SETB ET1SETB EA ;开中断SJMP $INT_T1:;T1中断服务子程序PUSH ACC护现场PUSH PSWPUSH DPLPUSH DPHCLR TR1关闭定时器1,停止定

9、时MOV TL1,#0B0H定时 50mS数MOV TH1,#3CHDJNZ R1,EXITMOV R1,#20;延时一秒的常数MOV A,R0;MOV P1,A ;送 P1 口显示SETB CRLC AMOV R0,AEXIT: SETB TR1;启动定时器1,开始定时POP DPH恢复现场POP DPLPOP PSWPOP ACCRETIEND2、使用定时器T0,定时1秒,控制1个数码管循环显示数字09,每秒钟 数字加一。ORG 0000HAJMP STARTORG 000BH;T0 中断入口地址AJMP INT_T0ORG 0030HSTART:MOV SP,#60HMOV TMOD,#

10、01H置 T0 为方式 1MOV TL0,#0B0H ;延时50mS的时间常数MOV TH0,#3CHMOV R0,#00H ; 数码管显示单元MOV R1,#20; 定时次数SETB TR0;O动定时器1,开始定时SETB ET0SETB EA ; 开中断Slop: acall displaySJMP SlopINT_T0:;T0 中断服务子程序PUSH ACC护现场PUSH PSWPUSH DPLPUSH DPHCLR TR0关闭定时器1,停止定时MOV TL0,#0B0H延时 50mS数MOV TH0,#3CHDJNZ R1,EXITMOV R1,#20;重置定时次数MOV A,R0IN

11、C A ; 数码管显示单元内容加一MOV R0,ACJNE A,#10,EXITMOV R0,#00H ; 数码管显示单元清0EXIT: SETB TR0; 启动定时器0,开始定时POP DPH恢复现场POP DPLPOP PSWPOP ACCRETI; 显示子程序display: mov a,R0mov dptr,#numtab; 指定查表启始地址MOVC A,A+DPTR ; 得到段码mov P0,a ; 段码送 P0 口clr P2.7; 送位码acall delay1 setb P2.7延时 10msret; 延时子程序delay1:MOV R2,#20L1:MOV R3,#248DJ

12、NZ R3,$DJNZ R2,L1RET;实验板上的7段数码管09数字的共阴显示代码numtab: DB 0CFH,03H,5DH,5BH,93H,0DAH,0DEH,43H,0DFH,0DBH END3、使用软件定时1 秒,控制 2 个数码管循环显示秒数059,每秒钟数字加一。( 1)在设计过程中使用一个存储单元作为秒计数单元,当一秒钟到来时,就让秒计数单元加 1,当秒计数达到 60 时,就自动返回到0,重新秒计数。( 2)对于秒计数单元中的数据要把它十位数和个数分开,方法一:采用对10 整除和对10 求余;方法二:采用分数、合数法。( 3)在数码管上显示数,通过查表的方式完成。( 4) 一

13、秒时间的产生采用软件精确延时的方法来完成, 经过精确计算得到 1 秒时间为 1.002 秒。方法一汇编源程序;10 毫秒延时子程序DELY10ms: MOV R4,#20D1: MOV R5,#248DJNZ R5,$DJNZ R4,D1RET; 主程序Second EQU 30HORG 0START: acall initNEXT: acall displayLjmp nextInit: MOV Second,#00H retdisplay: MOV R3,#50dis2:MOV A,SecondMOV B,#10DIV ABMOV DPTR,#TABLEMOVC A,A+DPTRMOV P

14、0,A;送出十位数字的段码CLR p2.7; 送位码Acall dely10msSetb p2.7MOV A,BMOVC A,A+DPTRMOV P0,A ;送出个位数字的段码CLR p2.6LCALL DELY10mSSetb p2.6djnz r3,dis2 ;20 毫秒循环执行50次, 时间约1 秒INC SecondMOV A,SecondCJNE A,#60,ret0Mov Second,#00hRet0: retTABLE: DB 0CFH,03H,5DH,5BH,93H,0DAH,0DEH,43H,0DFH,0DBHEND方法二汇编程序:temp equ 22h ; 计数器个位和十位数值存放内存位置ORG 0000H; 程序执行开始地址LJMP START;跳到标号STAR耿行; 主程序 START:mov temp,#0 ; 初始化计数器

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号