欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 數(shù)碼管從0到300之后顯示HELLO [打印本頁(yè)]

作者: wsy979    時(shí)間: 2016-12-15 22:25
標(biāo)題: 數(shù)碼管從0到300之后顯示HELLO
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char

sbit dula = P2^6;
sbit wela = P2^7;


uchar table[] = {
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,
0x76,0x79,0x38,0x38,0x3F,0
};


uchar bai,shi,ge;//顯示百十個(gè)的變量
uchar x,y;//加上HELLO
uchar shijian1,shijian2;//兩個(gè)定時(shí)器的變量
//uchar flag1,flag2;//分別控制定時(shí)器0和1的flag
uint number = 300;//初始時(shí)間
uchar flag = 1;

void init()//初始化函數(shù)
{
   TMOD = 0x11;
   TH0 = (65536 - 45872)/256;
   TL0 = (65536 - 45872)%256;
   TH1 = (65536 - 45872)/256;
   TL1 = (65536 - 45872)%256;
   EA = 1;             //開啟總中斷
   ET0 = 1;                //開啟定時(shí)器0的中斷
   ET1 = 1;                //開啟定時(shí)器1的中斷
   TR0 = 1;                //啟動(dòng)定時(shí)器0
   TR1 = 0;                //定時(shí)器1
}

void delayms(uint xms)
{
     uint i,j;
         for(i = xms ; i > 0 ;i--)
             for(j = 110 ;  j > 0 ;j--);         
}

void display(uchar bai, uchar shi, uchar ge, uchar x , uchar y)
{
   dula = 1;
   P0 = table[bai];
   dula = 0;
   P0 = 0xff;
   wela = 1;
   P0 = 0xfe;
   wela = 0;
   delayms(1);

   dula = 1;
   P0 = table[shi];
   dula = 0;
   P0 = 0xff;
   wela = 1;
   P0 = 0xfd;
   wela = 0;
   delayms(1);

   dula = 1;
   P0 = table[ge];
   dula = 0;
   P0 = 0xff;
   wela = 1;
   P0 = 0xfb;
   wela = 0;
   delayms(1);

   dula = 1;
   P0 = table[x];
   dula = 0;
   P0 = 0xff;
   wela = 1;
   P0 = 0xf7;
   wela = 0;
   delayms(1);

   dula = 1;
   P0 = table[y];
   dula = 0;
   P0 = 0xff;
   wela = 1;
   P0 = 0xef;
   wela = 0;
   delayms(1);
}

void main()
{
    init();
        while(1)
        {
             if(flag==1)
                 {
             display(bai,shi,ge,21,21);
                 }
                 else
                 {
                 display(16,17,18,19,20); //顯示HELLO
                 }
        }
}

void time1() interrupt 1//控制數(shù)碼管顯示百十個(gè)倒計(jì)時(shí)
{
    TH0=(65536 - 45872)/256;
        TL0=(65536 - 45872)%256;

        shijian1++;

if(flag=1)
{
        if(shijian1 == 2)
        {
            shijian1=0;
                number--;

                bai=number/100;//開始分離
                shi=number%100/10;
                ge=number%10;

                if(number==0)                  
                {
                  TR0 = 0;
                  TR1 = 1;
                  flag = 0;
                }
        }
}
                
}

void time2() interrupt 3
{
   TH1 = (65536 - 45872)/256;
   TL1 = (65536 - 45872)%256;
   shijian2++;

if(flag=0)
{  
   if(shijian2 == 20)
   {
       shijian2=0;
           TR1=~TR1;
   }
}

}






歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1