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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索

我寫(xiě)的這個(gè)單片機(jī)程序,為什么數(shù)碼管顯示一樣的,還是亂碼 顯示函數(shù)怎么寫(xiě)?

查看數(shù): 3766 | 評(píng)論數(shù): 7 | 收藏 0
關(guān)燈 | 提示:支持鍵盤(pán)翻頁(yè)<-左 右->
    組圖打開(kāi)中,請(qǐng)稍候......
發(fā)布時(shí)間: 2019-7-9 23:44

正文摘要:

這張是顯示的圖紙!    單片機(jī)源程序如下:#include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit led1=P3^3; sbit led=P1^5; sbit led2=P ...

回復(fù)

ID:158886 發(fā)表于 2019-7-12 14:54
  #include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit led1=P3^3;
sbit led=P1^5;
sbit led2=P3^6;
sbit fan=P1^6;
sbit ptc=P3^4;
sbit we1=P2^6;
sbit we2=P2^7;
sbit we3=P2^1;
sbit we4=P2^0;
sbit we5=P2^2;
sbit fm=P2^5;
sbit sw1=P1^0;
sbit sw2=P1^4;
sbit sw3=P3^5;
sbit sw4=P3^7;
uchar code duma[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e
                                   };
                               
                                 
uchar  counter,   time,time_counter, h;                               
                               
                               
                               
uchar i ;

void delay(uint z);
void delay(uint z)
{
  while (z--);

}
void display(uchar mshi,uchar mge,uchar sge,uchar sshi,uchar hge,uchar hshi )
{       
  mge=time_counter%10;
  mshi=time_counter/10;
  sge=time/10;
  sshi=time%10;
  hge=h/10;
  hshi=h%10;

  
   P0=0XFF;
   we1=0;
   we2=1;
   we3=1;
   we4=1;
    P0=duma[mge];
        delay(100);
   
   

  P0=0XFF;
  we1=1;
   we2=0;
   we3=1;
   we4=1;
   P0=duma[mshi];
   delay(100);
  
  

   P0=0XFF;
   we1=1;
   we2=1;
   we3=0;
   we4=1;
   P0=duma[sshi];
   delay(100);
   
  


   

  P0=0XFF;
  we1=1;
   we2=1;
   we3=1;
   we4=0;
  P0=duma[sge];
   delay(100);
   
  
}

void keypros()
{
      

if(sw1==0)
        { delay(10);
         
           if(sw1==0&&time!=60)
           {
                   time+=1;
                 fm=0;
                 delay(10000);
                 fm=1;
                 delay(10000);          
                  while(!sw1);
           }
     }       
if(sw2==0)
{
          delay(10);
          if(sw2==0&&time!=0)
          {
                  time-=1;
                fm=0;
                 delay(10000);
                 fm=1;
                 delay(10000);
                   while(!sw2);
          }
}
if(sw3==0)
         {       
           delay(10);
           if(sw3==0)
           { fm=0;
                 delay(10000);
                 fm=1;
                 delay(10000);
                     TR1=0;
                  led=1;
                  time=0;
                  time_counter=0;
                  fan=1;
                  ptc=1;
                while(!sw3);
           }       
          
}
if(sw4==0)
{                
           delay(10);
          
           if(sw4==0)
           {
                   TR1=~TR1;
                led=~led;
                fm=0;
                 delay(10000);
                 fm=1;
                 delay(10000);
         ptc=~ptc;
                fan=~fan;
                while(!sw4);
           }
}
}
void init()
{
  TMOD=0x10;
  TH1=0x4b;
  TL1=0x00;
  TR1=0;
}


void main()
{       

             
                         init();
                        led2=0;
                        
    while(1)
        {       
        keypros();
                 
   if(TF1==1)
   { TF1=0;
            TH1=0x4b;
     TL1=0x00;
            counter++;

   
   }
         if(counter==20)
        {
         counter=0;
         time_counter++;
          led1=~led1;
        }
        if(time_counter==60)
          {
                time--;
               
                 time_counter=0;
               
        }          
        if(time==0)
           {   
           TR1=0;
                led=1;
                   led1=1;
                ptc=1;
                fan=1;       
               time=60;
                  
           }

                  display();
     }               
         
          
}        現(xiàn)
  這個(gè)是正常顯示,,這個(gè)程序是60分鐘,倒計(jì)時(shí),時(shí)間可以調(diào),時(shí)間到停止輸出   
LED1,F(xiàn)AN風(fēng)扇,PTC加熱,都停止輸出,這個(gè)程序是用在艾灸上,謝謝大家指點(diǎn)!有你們真好!
ID:158886 發(fā)表于 2019-7-12 14:47
素還真.____ 發(fā)表于 2019-7-10 23:41
你這個(gè)太亂了,一個(gè)注澤都沒(méi),wea、web、wec也不知道是什么
  •    P0=0XFF;
  • wea=1;

  • WE,就是位選信號(hào)。
    ID:158886 發(fā)表于 2019-7-12 14:46
    hantu 發(fā)表于 2019-7-11 10:11
    多只數(shù)碼管的顯示,一是要?jiǎng)討B(tài)掃描,二是要消影。

    謝謝,上面的顯示函數(shù)寫(xiě)成了靜態(tài)顯示了,改了動(dòng)態(tài)就可以了,
    ID:158886 發(fā)表于 2019-7-12 14:45
    謝謝,知道了,謝謝
    ID:462827 發(fā)表于 2019-7-11 10:11
    多只數(shù)碼管的顯示,一是要?jiǎng)討B(tài)掃描,二是要消影。
    ID:205483 發(fā)表于 2019-7-10 23:41

    RE: 我寫(xiě)的這個(gè)單片機(jī)程序,為什么數(shù)碼管顯示一樣的,還是亂碼 顯示函數(shù)怎么寫(xiě)?

    你這個(gè)太亂了,一個(gè)注澤都沒(méi),wea、web、wec也不知道是什么
    •    P0=0XFF;
    • wea=1;
    • web=0;
    • wec=1;
    •   P0=duma[hshi];
    •   delay(100);*/



    •    P0=0XFF;
    •    we1=1;  //位1開(kāi)顯示
    •    P0=duma[mge];
    •    delay(100);
    •    we1=0;  //位1關(guān)顯示

    你顯示完一個(gè)數(shù)碼管,要把位清0,不然一輪下來(lái)所有位都在顯示,會(huì)亂碼。
    進(jìn)位不知道你指的什么,counter,   time,time_counter, h; 看不出來(lái)你這幾個(gè)變量的具體作用


    •    if(TF1==1)
    •    {
    •        TF1=0;
    •        TH1=0x4b;
    •        TL1=0x00;
    •        counter++;
    •    }
    •                   //這個(gè)計(jì)數(shù)的值太小了,8M的話(huà)才5ms,1秒得counter得加200次,
    •   if(counter==20) //0.1秒進(jìn)一次,改成counter==200,就是1S進(jìn)一次 ,如果你是設(shè)計(jì)秒表就不用改
    •    {
    •        counter=0;
    •        time_counter++;
    •        led1=~led1; /
    •    }





    ID:158886 發(fā)表于 2019-7-10 15:58
    顯示亂碼我知道了,是數(shù)碼管是共陽(yáng)極的,我用的共陰極的表,才導(dǎo)致顯示亂碼,但這個(gè)顯示函數(shù)怎么寫(xiě),進(jìn)位顯示數(shù)碼管,

    小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

    Powered by 單片機(jī)教程網(wǎng)

    快速回復(fù) 返回頂部 返回列表