1、2. 数码显示技术项目题目需求:采用数码管静态显示和数码管动态显示方法实现对数码管的控制。设计要求是在4位集成共阳型数码管上每隔一定时间循环显示“2”“4”“6”“8”数字。本程序是用51单片机实现4位共阳数码管动态扫描显示程序,采用74HC573做驱动,定时器T0定时16ms,用来刷新数码管显示屏,软件延时1ms实现数码管亮灭延时,相当稳定,没有一点闪烁的感觉,很不错!如果要调整亮度可适当调整数码管亮的时间。现把程序上传,与大家一起共享!哈哈哈!由于电路图很简单我就不画了大家从程序中都可看出来p2.0-2.3 是接4个位选 由于是共阳所以是接的数码管的正极,p2.5是74hc573的锁存端,
2、段的数据口是p0.我是从51hei单片机开发板上的电路图仿制过来的 只是用4个io口做位选 节约了一片573芯片. D0 BIT P2.0 D1 BIT P2.1 D2 BIT P2.2 D3 BIT P2.3 SUBF0 EQU 30H SUBF1 EQU 31H SUBF2 EQU 32H SUBF3 EQU 33H COUT EQU 34H ORG 0000H SJMP MIAN ORG 000BH LJMP INTER0 ORG 0040H MIAN:MOV SP,#60H MOV IE,#00H MOV SUBF0,#80H MOV SUBF1,#80H MOV SUBF2,#80H
3、 MOV SUBF3,#80H MOV TH0,#0C1H MOV TL0,#80H MOV TMOD,#01H MOV R2,#00H MOV R1,#SUBF0 MOV COUT,#04H LCALL DISPLAY LCALL SHUT SETB EA SETB ET0 MOV DPTR,#TABLE LOOP:MOV A,R2 MOVC A,A+DPTR LOOP0:MOV R1,A INC R1 INC R2 DJNZ COUT,LOOP SETB TR0 SJMP $ INTER0:CLR ET0 CLR TR0 PUSH ACC PUSH PSW MOV TH0,#0C1H MO
4、V TL0,#80H LCALL DISPLAY SETB ET0 SETB TR0 POP PSW POP ACC RETI DISPLAY:SETB D1 SETB D2 SETB D3 CLR D0 CLR P2.5 MOV P0,SUBF0 SETB P2.5 LCALL DELAY SETB D0 SETB D2 SETB D3 CLR D1 CLR P2.5 MOV P0,SUBF1 SETB P2.5 LCALL DELAY SETB D0 SETB D1 SETB D3 CLR D2 CLR P2.5 MOV P0,SUBF2 SETB P2.5 LCALL DELAY SETB D0 SETB D1 SETB D2 CLR D3 CLR P2.5 MOV P0,SUBF3 SETB P2.5 LCALL DELAY LCALL SHUT RET SHUT:SETB D0 SETB D1 SETB D2 SETB D3 RET DELAY:MOV R7,#02H DL:MOV R6,#0FFH DL1:DJNZ R6,DL1 DJNZ R7,DL RET TABLE:DB 99H,92H,82H,0F8H END