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

QQ登錄

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

搜索
查看: 1337|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)如何才能在按鍵按下后所顯示的數(shù)碼一直存在,再次按下才會(huì)熄滅,現(xiàn)在按一下...

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:995472 發(fā)表于 2022-3-23 16:25 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
如何才能在按鍵按下后所顯示的數(shù)碼一直存在,再次按下才會(huì)熄滅,現(xiàn)在按一下就閃一下數(shù)碼就滅了

單片機(jī)源程序如下:
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define ON 0
sbit CS=P1^0;
sbit CLK=P1^1;
sbit D0=P1^2;
sbit SW=P3^2;   
        unsigned char  led[]={0xc0,0xf9,0xa4,0xb0,
           0x99,0x92,0x82,0xf8,
        0x80,0x90,0x88,0x83,
        0xc6,0xa1,0x86,0x8e,
        0x40,0x79,0x24,0x30,0x19,0xc1};
        unsigned char look[]={0,0,0,0};
//函數(shù)名:timelms
//函數(shù)功能:在T0工作方式下定時(shí)1ms,采用查詢(xún)的方式實(shí)現(xiàn)
//形式參數(shù):無(wú)
//返回值:無(wú)

void time1ms()
{        
        TMOD=0x01;
        TH0=(65536-1000)/256;
        TL0=(65536-1000)%256;
        TR0=1;
        while(!TF0);
        TF0=0;
}
//函數(shù)名:xianshi
//函數(shù)功能:實(shí)現(xiàn)4個(gè)led動(dòng)態(tài)掃描顯示一次,顯示"0-f"
//形式參數(shù):無(wú)
//返回值:無(wú)                        

void display()          //顯示
{
        unsigned char m,n;
        m=0x01;                                                  
        for(n=0;n<4;n++)
        {
        P0=m;                                                                                                   
        P2=led[look[n]];
        m<<=2;                        
        time1ms();        
        P2=0xff;                                 
        }
}

void delay(uint i)         //軟延時(shí)
{
while(i--);
}

uchar ADC0831()
{
uchar i,aa;
        D0=1;
        _nop_();
        _nop_();
        CS=0;
        _nop_();
        _nop_();
        CLK=0;
        _nop_();
        _nop_();
        CLK=1;
        _nop_();
        _nop_();
        CLK=0;
        _nop_();
        _nop_();
        CLK=1;
        _nop_();
        _nop_();
        CLK=0;
        _nop_();
        _nop_();
        for( i=0;i<8;i++)
        {
        CLK=1;
        _nop_();
        _nop_();

        aa<<=1;
        if(D0)
        {
                aa++;
        }
        CLK=0;
        _nop_();
        _nop_();
        }
        CS=1;
        _nop_();
        _nop_();

        return(aa);
        }

        void main()
{
           uint date;
        while(1)
        if(SW==ON)
         {
        date=ADC0831()*196;
        look[0]=(date/10000)+16;                                                 //除萬(wàn)位取于
    look[1]=(date/1000)%10;                                                         //除千位取于
        look[2]=(date/100)%10        ;                                             //除百位取于
        look[3]=(date/10)%10        ;                                                                                 //顯示u
        display();
  delay(10);
         }
         else
         P2=0xff;
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:161164 發(fā)表于 2022-3-24 09:51 | 只看該作者
  1. bit Disp_EN = 0;
  2. void main()
  3. {
  4.         uint date;
  5.         while(1)
  6.                 if(SW==ON)
  7.                 {
  8.                         delay(10);
  9.                         if(SW==ON)
  10.                                 Disp_EN = !Disp_EN;
  11.                 }
  12.                 if(Disp_EN==1)
  13.                 {
  14.                         date=ADC0831()*196;
  15.                         look[0]=(date/10000)+16;                                                 //除萬(wàn)位取于
  16.                         look[1]=(date/1000)%10;                                                         //除千位取于
  17.                         look[2]=(date/100)%10;                                             //除百位取于
  18.                         look[3]=(date/10)%10;                                                                                 //顯示u
  19.                         display();
  20.                         delay(10);
  21.                 }
  22.                 else
  23.                         P2=0xff;
  24. }
復(fù)制代碼

回復(fù)

使用道具 舉報(bào)

板凳
ID:507641 發(fā)表于 2022-3-24 12:28 | 只看該作者
                        display();
                        delay(10);
你這條件判斷,你delay(10);這么短當(dāng)然只閃顯一下
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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