久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

我寫的這個單片機程序,為什么數碼管顯示一樣的,還是亂碼 顯示函數怎么寫?

查看數: 3465 | 評論數: 7 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2019-7-9 23:44

正文摘要:

這張是顯示的圖紙!    單片機源程序如下:#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 ...

回復

ID:158886 發表于 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();
     }               
         
          
}        現
  這個是正常顯示,,這個程序是60分鐘,倒計時,時間可以調,時間到停止輸出   
LED1,FAN風扇,PTC加熱,都停止輸出,這個程序是用在艾灸上,謝謝大家指點!有你們真好!
ID:158886 發表于 2019-7-12 14:47
素還真.____ 發表于 2019-7-10 23:41
你這個太亂了,一個注澤都沒,wea、web、wec也不知道是什么
  •    P0=0XFF;
  • wea=1;

  • WE,就是位選信號。
    ID:158886 發表于 2019-7-12 14:46
    hantu 發表于 2019-7-11 10:11
    多只數碼管的顯示,一是要動態掃描,二是要消影。

    謝謝,上面的顯示函數寫成了靜態顯示了,改了動態就可以了,
    ID:158886 發表于 2019-7-12 14:45
    謝謝,知道了,謝謝
    ID:462827 發表于 2019-7-11 10:11
    多只數碼管的顯示,一是要動態掃描,二是要消影。
    ID:205483 發表于 2019-7-10 23:41

    RE: 我寫的這個單片機程序,為什么數碼管顯示一樣的,還是亂碼 顯示函數怎么寫?

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



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

    你顯示完一個數碼管,要把位清0,不然一輪下來所有位都在顯示,會亂碼。
    進位不知道你指的什么,counter,   time,time_counter, h; 看不出來你這幾個變量的具體作用


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





    ID:158886 發表于 2019-7-10 15:58
    顯示亂碼我知道了,是數碼管是共陽極的,我用的共陰極的表,才導致顯示亂碼,但這個顯示函數怎么寫,進位顯示數碼管,

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

    Powered by 單片機教程網

    快速回復 返回頂部 返回列表
    主站蜘蛛池模板: 精品国产黄a∨片高清在线 成人区精品一区二区婷婷 日本一区二区视频 | 久久综合一区二区三区 | 午夜小电影 | 少妇精品亚洲一区二区成人 | 精品欧美一区二区三区免费观看 | 黄色成人在线观看 | 精国产品一区二区三区四季综 | 午夜影院视频 | 精品欧美一区二区精品久久久 | 欧美三区视频 | 国产 欧美 日韩 一区 | 欧美一级久久 | 国产精品久久久一区二区三区 | 久久久久久久av麻豆果冻 | 久久一日本道色综合久久 | 亚洲视频 欧美视频 | 在线视频中文字幕 | 亚洲精品日本 | 国产伦精品一区二区三区照片91 | 夜夜爽99久久国产综合精品女不卡 | av永久 | 久久新| 国产精品一区二区久久久久 | 一区二区三区四区在线 | 欧美精品一区在线 | 成人精品久久久 | 一级黄在线观看 | 91伊人网 | 成人亚洲视频 | 伊人免费观看视频 | 黄色大片网站 | 国产成人免费 | 日本字幕在线观看 | 亚洲国产精品一区二区第一页 | 91国在线观看 | 久久88| 成人h动漫亚洲一区二区 | 99久久久无码国产精品 | 日韩精品一区二区在线观看 | 亚洲国产成人精品女人久久久野战 | 成人黄色三级毛片 |