Home Article protues仿真数码管不显示及消影问题

protues仿真数码管不显示及消影问题

Release time:2020-07-24 20:00:48 Author:一蓑烟雨 Reading volume:305

今天测试程序时发现protues仿真数码管时不显示,只有调低晶振才有反应,于是找了一下解决方法,原来是数码管设置没有设置对。设置图如下:(将默认的1ms改成1ns或者1us即可)

如果代码不加消影,显示如下:

添加消影后:

 

不加消影代码:

include <reg52.h>

 
#define uchar unsigned char
#define uint unsigned int
 
uchar code DSY_CODE[]=
{
    0xcf,0xf9//左半部分,右半部分
};
uchar code DSY_IDX[]=
{
    0x08,0x10 //第四,第五个数码管
};
 
void DelayMS(uint x)
{
    uchar t;
    while (x--)
    {
        for (t=120; t>0; t--);
    }
}
 
void main()
{
    uchar k,m;
    P0=0xff;
    P2=0x00;
 
    while (1)
    {
        
        P2=DSY_IDX[0]; //选中第四个数码管
        P0=DSY_CODE[1]; //显示右半部分
        P2=DSY_IDX[1]; //选中第五个数码管
        P0=DSY_CODE[0];//显示左半部分
     
    }
 
 
} 

 

 

加消影版本:

include <reg52.h>

 
#define uchar unsigned char
#define uint unsigned int
 
uchar code DSY_CODE[]=
{
    0xcf,0xf9//左半部分,右半部分
};
uchar code DSY_IDX[]=
{
    0x08,0x10 //第四,第五个数码管
};
 
void DelayMS(uint x)
{
    uchar t;
    while (x--)
    {
        for (t=120; t>0; t--);
    }
}
 
void main()
{
    uchar k,m;
    P0=0xff;
    P2=0x00;
 
    while (1)
    {
        P0=0xff; //加上此句可以使数码管不显示
        P2=DSY_IDX[0]; //选中第四个数码管
        P0=DSY_CODE[1]; //显示右半部分
        P2 =0x00;     //不选中任何数码管
        P0=0xff;      //加上此句可以使数码管不显示
        P2=DSY_IDX[1]; //选中第五个数码管
        P0=DSY_CODE[0];//显示左半部分
        P2 =0x00;   //不选中任何数码管
    }
 
 
} 

  
I want to comment

Search

classification

Leave a message
http://blog.rjxj513.com/
User login
You have not written any reviews yet!
You have commented!
Can only praise once!
You have a collection!