- 南yi
-
/***********************************************************************/
已知P2口接7段共阴发光数码管(a接P2.0,b接P2.1其他顺序类推),试编写一段测试
程序,让数码管始终显示P1口的低4位的数值,例如P1为0时,数码管显示“0”,
P1为09H时,数码管显示“9”。
你试试,有问题你在追问。
/**********************************************************************/
#include<reg51.h>
#define uchar unsigned char
uchar table[] = {0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uchar temp=0xff;
void main()
{
int Value;
while(1)
{
temp=P1;
if (temp==0x00)
{
Value= 0;
}
else if (temp==0x01)
{
Value= 1;
}
else if (temp==0x02)
{
Value= 2;
}
else if (temp==0x03)
{
Value= 3;
}
else if (temp==0x04)
{
Value= 4;
}
else if (temp==0x05)
{
Value= 5;
}
else if (temp==0x06)
{
Value= 6;
}
else if (temp==0x07)
{
Value= 7;
}
else if (temp==0x08)
{
Value= 8;
}
else if (temp==0x09)
{
Value= 9;
}
else //其他的值都显示F
{
Value= 15;
}
P2=table[Value];
}
}
- snjk
-
;如下即可:
ORG 0000H
MOV DPTR, #TABLE
LOOP:
MOV A, P1 ;读
ANL A, #0FH ;保留低四位
MOVC A, @A + DPTR ;查出对应的段码
MOV P2, A ;显示
SJMP LOOP ;无限循环
TABLE:
DB 3FH, 06H, 5BH, 4FH, 66H
DB 6DH, 7DH, 07H, 7FH, 6FH
END
- wpBeta
-
好的
丘上说吧
我id