|
#include<reg51.h>
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
uchar code seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar code se[]={0xe0,0x0e,0xf9,0xa4,0xb0,0x92,0xf8,0x90};
void delayms(uint j);
void main(void)
{
uint num,s,g,n;
num=0;
s=0;
g=0;
g=0;
while(1)
{
num++; //試數(shù),假若num = 3
if(num==10000) //不成立不執(zhí)行
{
num=0;
}
g=num%10; //試數(shù),假若num = 3 g =3
s=num/10%10; //試數(shù),假若num = 3 s =0
n=num/100%10; //試數(shù),假若num = 3 n =0
P1=0xcf; //11001111
P2=0x90; //10010000
P3=se[g]; //試數(shù),假若num = 3 g =3 P3=se[3]; P3 = 0xa4 ;0xa4 二進制 10100100
delayms(1000);
}
}
void delayms(uint k)
{
uchar i;
for(;k>0;k--);
{
i=250;
while(--i);
i=249;
while(--i);
}
}
/*
你沒用動態(tài)刷新用了延時,delayms(1000)后再自加,再刷新顯示。
按照你的程序,p3只能顯示一位數(shù)碼管,或一列(行)LED
不知道你的硬件連接情況,按照這個方法你自己試一下。
*/ |
|