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

QQ登錄

只需一步,快速開始

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

如何消除Proteus仿真中數(shù)碼管中開始顯示的8.

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
大家好!請(qǐng)看一下這程序和仿真,要實(shí)現(xiàn)的是按下K1,就在左一的數(shù)碼管顯3,但按下仿真開始,就出現(xiàn)了右一的數(shù)碼管顯示8.,再按k1才顯示3.如何消除按下仿真開始顯示8.請(qǐng)指導(dǎo)和修正一下,謝謝!


以下是單片機(jī)程序
#include "reg52.h"                         //此文件中定義了單片機(jī)的一些特殊功能寄存器

typedef unsigned int u16;          //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
typedef unsigned char u8;

//138譯碼器管腳接單片機(jī)口
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;

//4個(gè)獨(dú)立按鍵定義單片機(jī)口
sbit k1=P3^0;
sbit k2=P3^1;
sbit k3=P3^2;
sbit k4=P3^3;

//共陰極數(shù)碼管表碼
u8 code smgduan[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                                  0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//顯示0~F的值

//延時(shí)函數(shù),i=1時(shí),大約延時(shí)10us
void delay(u16 i)
{
        while(i--);        
}

//數(shù)碼管左一顯示3
void xiangsi1()
{        
        P0 = 0xff;
        LSA=0;LSB=0;LSC=0;        //控制138譯碼器的Y0輸出低電平
        P0=smgduan[3];
       delay(100); //間隔一段時(shí)間掃描      
       P0=0x00;//消隱
}


void keypros()//檢測(cè)按鍵K1是否按下
{

        if(k1==0)                  //檢測(cè)按鍵K1是否按下
        {        
                delay(1000);   //消除抖動(dòng) 一般大約10ms
                if(k1==0)         //再次判斷按鍵是否按下
                {
                        xiangsi1();        //顯示數(shù)字3
                }
                while(!k1);         //檢測(cè)按鍵是否松開
        }               
}



void main()
{        
    P0 = 0xff;        
        while(1)
        {
         keypros();
        }

}

獨(dú)立按鍵顯示3(程序).rar

16.34 KB, 下載次數(shù): 2

獨(dú)立按鍵顯示3(仿真).rar

105.12 KB, 下載次數(shù): 2

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

使用道具 舉報(bào)

沙發(fā)
ID:213173 發(fā)表于 2022-5-9 12:25 | 只看該作者
void main()
{        
        P0 = 0x3f;//顯示0
//        P0 = 0x00;//不顯示
        while(1)
        {
                keypros();
        }
}
回復(fù)

使用道具 舉報(bào)

板凳
ID:1012735 發(fā)表于 2022-5-9 12:47 | 只看該作者
Y7置高電平
回復(fù)

使用道具 舉報(bào)

地板
ID:121859 發(fā)表于 2022-5-9 13:06 | 只看該作者
主程序的開始做一下數(shù)據(jù)初始化,就可以避免了。
回復(fù)

使用道具 舉報(bào)

5#
ID:336472 發(fā)表于 2022-5-9 13:13 | 只看該作者
不要給端口懸空即可
回復(fù)

使用道具 舉報(bào)

6#
ID:123289 發(fā)表于 2022-5-9 14:08 | 只看該作者
自己?jiǎn)尾秸{(diào)試可以進(jìn)步并理解。
回復(fù)

使用道具 舉報(bào)

7#
ID:1020806 發(fā)表于 2022-5-9 17:07 | 只看該作者
非常感謝大家的回復(fù),學(xué)習(xí)中。
回復(fù)

使用道具 舉報(bào)

8#
ID:824490 發(fā)表于 2022-5-10 16:48 | 只看該作者
你的573鎖存器不是這么用的!LE和OE必需要有一個(gè)是受控的,你這里都不受控,那573有何意義?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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