找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

关于Proteus仿真数码管显示的问题,各位大哥大姐帮忙看看错在哪

[复制链接]
admin 发表于 2012-9-2 09:16:36 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
我在实验板上可以实现秒表功能用的是STC89C52的单片机,但仿真不出来,以下是仿真图,各位大哥大姐帮忙看看

5_152797_c6c774151370d2b.jpg



程序清单:
/********秒表程序,P0是段选P0.0对应A,P1是位选P1对应D18位。
独立键盘S1是开始按钮,S2是暂停按钮,S3是复位按钮******/

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit starkey=P2^0; //开始按键

//sbit stopkey=P2^1; //暂停按键
sbit resetkey=P2^2; //复位按键
uchar numt0,num1,num2,num3; //定义键盘扫描的变量
//void delay(uint);
void delay(uint x) //延时子函数
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}

//数码管显示0到9
uchar code table[]={0x3f,
0x06,0x5b,0x4f,
0x66,0x6d,0x7d,
0x07,0x7f,0x6f};

void display(uchar numdis1,uchar numdis2,uchar numdis3) //显示子函数
{
uchar ge1,shi1,ge2,shi2,ge3,shi3;

shi1=numdis1/10;
ge1=numdis1%10;
P0=table[ge1]; //微秒显示数码管第一位
P1=0xfe; //第一个数码管的位选
delay(5);
P0=table[shi1]; //微秒显示数码管第二位
P1=0xfd; //第二个数码管的位选
delay(5);

shi2=numdis2/10;
ge2=numdis2%10;
P0=table[ge2]; //秒显示数码管第三位
P1=0xfb; //第三个数码管的位选
delay(5);
P0=table[shi2]; //秒显示数码管第四位
P1=0xf7; //第四个数码管的位选
delay(5);

shi3=numdis3/10;
ge3=numdis3%10;
P0=table[ge3]; //分钟显示数码管第五位
P1=0xef; //第五个数码管的位选
delay(5);
P0=table[shi3]; //分钟显示数码管第六位
P1=0xdf; //第六个数码管的位选
delay(5);
}

void init() //初始化函数
{
TMOD=0X01; //定时器0的工作方式为1
TH0=(65536-10000)/256; //装初值10ms一次中断
TL0=(65536-10000)%256;
EA=1; //开总中断
ET0=1; //开定时器0中断
}

void keyscan() //按键扫描子程序
{
if(resetkey==0) //复位按键
{
delay(10);
if(resetkey==0)
{
num1=0;
num2=0;
num3=0;
TR0=0; //让数码管都显示0并且定在那里
while(!resetkey); //等待按键释放
}
}

if(starkey==0)
{
delay(10);
if(starkey==0);
{
TR0=~TR0; //启动或者停止定时器0
while(!starkey); //等待按键释放
}
}
}

void main()
{
init();
while(1)
{
keyscan();
display(num1,num2,num3);
}
}

void T0_time()interrupt 1
{
TH0=(65536-10000)/256; //装初值10ms一次中断
TL0=(65536-10000)%256;
numt0++;
if(numt0==1)
{
numt0=0;
num1++;
if(num1==100)
{
num1=0;
num2++;
}
if(num2==60)
{
num2=0;
num3++;
}
if(num3==30)
{
TR0=0;
}

}
}
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-24 12:53 , Processed in 0.060967 second(s), 14 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表