资源描述:
《实验四-数码显示实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验四 数码显示实验一、实验题目利用定时器1定时中断,控制电子钟走时,利用实验台上的六个数码管显示分、秒、做成一个电子钟。显示格式为:××--×× 分 秒 定时时间常数计算方法为: 定时器1工作于方式1,晶振频率为6.144MHZ,故预置值Tx为: (2e+16-Tx)×12×1÷(6.144×10e+6)=0.1sTx=143360D=3800H,故TH1=38H,TL1=00H 二、实验目的1.进一步掌握定时器
2、的使用和编程方法。2.了解七段数码显示数字的原理。3.掌握用一个段锁存器,一个位锁存器同时显示多位数字的技术。三、实验说明由于有六个LED,用静态显示则需要的I/O口太多,故适合于动态显示。动态显示就是一位一位地轮流点亮显示器的各个位(扫描)。EL-I型可用一个74LS273作位锁存器,用另一个74LS273作段锁存器。EL-II型由于只有一片74LS273可用,不妨将8031CPU的P1口当作一个锁存器使用,本实验例程用P1口作为位锁存器,74LS273作为段锁存器。一、实验连线首先将数码显示部分与82
3、79之间的14个短路子全部拔掉,改插在下面两根导柱上,即将每一组的中、下两导柱短接,然后将P1口的P1.0~P1.5与LED1~LED6相连,74LS273的S00~S07与A~Dp相连,片选信号CSU8与CSO相连。二、程序;将P1口的P1.0~P1.5与LED8~LED3相连,74LS273的SO0~SO7与A~Dp相连,片选信号CS273与CS0相连。去掉短路子连接。NAMET9;数码显示实验PORTEQU0CFA0HBUFEQU23H;存放计数值SBFEQU22H;存放秒值MBFEQU21H;存
4、放分值CSEGAT0000HLJMPSTARTCSEGAT401BHLJMPCLOCKCSEGAT4100HSTART:MOVR0,#40H;40H-45H是显示缓冲区,依次存放MOVA,#00H;分高位、分低位,0A,0A(横线)MOV@R0,A;以及秒高位、秒底位INCR0MOV@R0,AINCR0MOVA,#0AHMOV@R0,AINCR0MOV@R0,AINCR0MOVA,#00HMOV@R0,AINCR0MOV@R0,AMOVTMOD,#10H;定时器1初始化为方式1MOVTH1,#38H;置时
5、间常数,延时0.1秒MOVTL1,#00HMOVBUF,#00H;置0MOVSBF,#00HMOVMBF,#00HSETBET1SETBEASETBTR1DS1:MOVR0,#40H;置显示缓冲区首址MOVR2,#20H;置扫描初值,点亮最左边的LED6DS2:MOVDPTR,#PORTMOVA,@R0;得到的段显码输出到段数据口ACALLTABLEMOVX@DPTR,AMOVA,R2;向位数据口P1输出位显码CPLAMOVP1,AMOVR3,#0FFH;延时一小段时间DEL:NOPDJNZR3,DELI
6、NCR0;显示缓冲字节加一CLRCMOVA,R2RRCA;显码右移一位MOVR2,A;最末一位是否显示完毕?,如无则JNZDS2;继续往下显示MOVR0,#45HMOVA,SBF;把秒值分别放于44H,45H中ACALLGETDECR0;跳过负责显示"-"的两个字节DECR0MOVA,MBF;把分值分别放入40H,41H中ACALLGETSJMPDS1;转DS1从头显示起TABLE:INCA;取与数字对应的段码MOVCA,@A+PCRETDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,
7、7FH,6FH,40HGET:MOVR1,A;把从分或秒字节中取来的值的高ANLA,#0FH;位屏蔽掉,并送入缓冲区MOV@R0,ADECR0MOVA,R1;把从分或秒字节中取来的值的低SWAPA;位屏蔽掉,并送入缓冲区ANLA,#0FHMOV@R0,ADECR0;R0指针下移一位RETCLOCK:MOVTL1,#0AFH;置时间常数MOVTH1,#3CHPUSHPSWPUSHACCINCBUF;计数加一MOVA,BUF;计到10否?没有则转到QUIT退出中断CJNEA,#0AH,QUITMOVBUF,#
8、00H;置初值MOVA,SBFINCA;秒值加一,经十进制调整后放入DAA;秒字节MOVSBF,ACJNEA,#60H,QUIT;计到60否?没有则转到QUIT退出中断MOVSBF,#00H;是,秒字节清零MOVA,MBFINCA;分值加一,经十进制调整后放入DAA;分字节MOVMBF,ACJNEA,#60H,QUIT;分值为60否?不是则退出中断MOVMBF,#00H;是,清零QUIT:POPACCPOPPSWRETI;中断