標(biāo)題: 如何消除Proteus仿真中數(shù)碼管中開始顯示的8. [打印本頁]

作者: chun201302    時(shí)間: 2022-5-9 10:57
標(biāo)題: 如何消除Proteus仿真中數(shù)碼管中開始顯示的8.
大家好!請(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()//檢測按鍵K1是否按下
{

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



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

}

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

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

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

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


作者: wulin    時(shí)間: 2022-5-9 12:25
void main()
{        
        P0 = 0x3f;//顯示0
//        P0 = 0x00;//不顯示
        while(1)
        {
                keypros();
        }
}

作者: hy47566398    時(shí)間: 2022-5-9 12:47
Y7置高電平
作者: zhxiufan    時(shí)間: 2022-5-9 13:06
主程序的開始做一下數(shù)據(jù)初始化,就可以避免了。
作者: 莫名其    時(shí)間: 2022-5-9 13:13
不要給端口懸空即可
作者: yzwzfyz    時(shí)間: 2022-5-9 14:08
自己單步調(diào)試可以進(jìn)步并理解。
作者: chun201302    時(shí)間: 2022-5-9 17:07
非常感謝大家的回復(fù),學(xué)習(xí)中。
作者: 名字不是重點(diǎn)    時(shí)間: 2022-5-10 16:48
你的573鎖存器不是這么用的!LE和OE必需要有一個(gè)是受控的,你這里都不受控,那573有何意義?




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