功能 动态显示数字4321
C语言程序如下
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
0xf8,0x80,0x90
};
sbit k1=P1^0;
sbit k2=P1^1;
sbit k3=P1^2;
sbit k4=P1^3;
void delay(uchar );
void main( )
{ //P2控制显示数字
//P1控制位选 //定时计数器0初始化;
while(1)
{
k1=0;
P2=0xf9;
delay(200);
k1=1;
P2=0xff;
k2=0;
P2=0xa4;
delay(200);
k2=1;
P2=0xff;
k3=0;
P2=0xb0;
delay(200);
k3=1;
P2=0xff;
k4=0;
P2=0x99;
delay(200);
k4=1;
P2=0xff;
}
}
void delay(uchar z)
{
uchar a;
for(a=z;a>0;a--);
}
汇编语言程序如下
K1 BIT P1.0
K2 BIT P1.1;
K3 BIT P1.2
K4 BIT P1.3
ORG 0000H
LJMP START
START: MOV DPTR,#TAB
MOV R2,0;R2里面存放TAB里面要取的数字
MAIN: MOV R2,#0
CLR K1
LCALL XIAN
SETB K1
MOV P2,#0FFH
CLR K2
LCALL XIAN
SETB K2
MOV P2,#0FFH
CLR K3
LCALL XIAN
SETB K3
MOV P2,#0FFH
CLR K4
LCALL XIAN
SETB K4
MOV P2,#0FFH
LJMP MAIN
XIAN: INC R2
MOV A,R2
MOVC A,@A+DPTR
MOV P2,A
LCALL DELAY
RET
DELAY:MOV R5,#20
DEL1:MOV R6,#100
DEL2:NOP
NOP
DJNZ R6,DEL2
DJNZ R5,DEL1
RET
TAB:DB 0C0H,0F9H, 0A4H,0B0H,99H,92H,82H
END
不知道为什么,我上次写的日志怎么没有了,我 圣圣九 河南理工大学 QQ:604901085
最近真的太忙了,周六周日忙着考研,还有比赛,今天上午没有课,闲着随便写点吧,还有一个IIC 总线的程序,太长了,很好,C语言的已经有了,汇编的程序还在努力!!
文章评论(0条评论)
登录后参与讨论