数码管显示例程

  • 格式:docx
  • 大小:19.72 KB
  • 文档页数:6
int i)
{
unsigned int m,n;
for(m=i;m>0;m--)
for(n=90;n>0;n--);
}
void main()
{
while(1)
{
P0=0xfe;
wela=1;
wela=0;
P0=0x4f;//数字“3”的代码
dula=1;
dula=0;
LOOP:MOVC A,@A+DPTR
MOV P0,A;选中第一个数码管
SETB WEI
CLR WEI
MOV P0,#4FH ;数字“3”的代码
SETB DUAN
CLR DUAN
LCALL DELAY
INC A
DJNZ R0,LOOP
LJMP LOOP1
DELAY:自己写延时程序
TAB:DB0xfe,0xfd,0xfb,0xf7,0xef,0xdf;数码管各位的码表
wela=1;
wela=0;
P0=duan[num];
dula=1;
dula=0;
delay(2);//时间间隔短,这是关键(所谓的同时显示,只是间隔较短而已,利用人眼的余辉效应,觉得每个数码管都一直在亮)。
}
}
}
**********************************************************************
DUAN EQU P2.6
WEI EQU P2.7
ORG 0000H
LJMP START
ORG 0100H
START:
MOV P0,#0FEH;选中第一个数码管
SETB WEI
CLR WEI
LOOP:MOV P0,#4FH ;数字“3”的代码
SETB DUAN
CLR DUAN
LCALL DELAY
MOV P0,#00H ;什么都不显示的代码
;利用人眼的余辉效应,觉得每个数码管都一直在亮)。
DJNZ R7,START
LJMP LOOP
LJMP LOOP1
TABDUAN:0x3f,0x06,0x5b,0x4f,0x66,0x6d;0-5的段码表
2.8第一位闪烁地显示数字3(提示,显示3延时一段时间,数码管全灭,延时一段时间,再显示3,循环反复)
{
unsigned int m,n;
for(m=i;m>0;m--)
for(n=90;n>0;n--);
}
void main()
{
unsigned char num;
while(1)
{
for(num=0;num<6;num++)
{
P0=table[num];
wela=1;
wela=0;
P0=0x4f;//数字“3”的代码
//0-5的码表
void delay(unsigned int i)
{
unsigned int m,n;
for(m=i;m>0;m--)
for(n=90;n>0;n--);
}
void main()
{
unsigned char num;
while(1)
{
for(num=0;num<6;num++)
{
P0=wei[num];
#include <reg51.h>
sbit dula=P2^6;//段选信号的锁存器控制
sbit wela=P2^7;//位选信号的锁存器控制
unsigned char code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
//数码管各位的码表
void delay(unsigned int i)
#include <reg51.h>
sbit dula=P2^6;//段选信号的锁存器控制
sbit wela=P2^7;//位选信号的锁存器控制
unsigned char code wei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
//数码管各位的码表
unsigned char code duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d};
END
**********************************************************************
程序功能:让TX-1C学习板的六个数码管流动地显示数字3。
**********************************************************************/
dula=1;
dula=0;
delay(1000);
}
}
}
动态显示:六位数码管同时显示数字0到5。
DUAN EQU P2.6
WEI EQU P2.7
ORG 0000H
LJMP START
ORG 0100H
START:
MOV DPTR,#TABDUANI
MOV R0,#0FEHH
MOV R7,#06H ;用R7计数是否把表格中的数取完
2.2六个数码管流动地显示数字3
DUAN EQU P2.6;段选信号的锁存器控制
WEI EQU P2.7;位选信号的锁存器控制
ORG 0000H
LJMP START
ORG 0100H
START:
MOV DPTR,#TAB
MOV A,#00H
LOOP1:MOV R0,#06H;用R0计数是否把表格中的数取完
LOOP:
MOV A,#00H
MOVC A,@A+DPTR
MOV P0,A;段码输出
SETB DUAN
CLR DUAN
INC DPTR
MOV A,R0 ;R0存位选码
MOV P0,A;选中第一个数码管
SETB WEI
CLR WEI
RL A
MOV R0,A
LCALLDELAYM ;时间间隔短,这是关键(所谓的同时显示,只是间隔较短而已,
SETB DUAN
CLR DUAN
LCALL DELAY
LJMP LOOP1
**********************************************************************
程序功能:让TX-1C学习板的六位数码管同时显示数字0到5。
**********************************************************************/
程序功能:让TX-1C学习板的第一位闪烁地显示数字3。
**********************************************************************/
#include <reg51.h>
sbit dula=P2^6;//段选信号的锁存器控制
sbit wela=P2^7;//位选信号的锁存器控制
delay(1000);
P0=0x00;//什么都不显示的代码
dula=1;
dula=0;
delay(1000);
}
}