/*********************************************
*****************四位共阴数码管显示***********
*****************99.99-00.00******************
*****************定时10ms自减*****************
**********************************************/
#include <STC89C5xRC.H>
#define u16 unsigned int
#define u8 unsigned char
#define SMG_DATA P2
sbit w1=P3^0; //数码管
sbit w2=P3^1;
sbit w3=P3^2;
sbit w4=P3^3;
sbit k1=P1^0; //按键
sbit k2=P1^1;
sbit k3=P1^2;
u16 num=9999; //计时显示变量
unsigned char leddata[]={ //共阴数码管0-9编码
0x3F, //"0"
0x06, //"1"
0x5B, //"2"
0x4F, //"3"
0x66, //"4"
0x6D, //"5"
0x7D, //"6"
0x07, //"7"
0x7F, //"8"
0x6F //"9"
};
void delay(u16 a) //延时函数
{
u16 i,j;
for(i=0;i<a;i++)
for(j=0;j<100;j++);
}
void Time_Init() //定时器初始化
{
TMOD=0x01; //定时器0模式1
TH0=(65535-1000)/256; //10ms
TL0=(65535-1000)%256;
TR0=0; //关闭定时器0
ET0=1; //打开定时器0中断
EA=1; ////打开总中断
}
void Display() //数码管显示函数
{
w1=1;w2=0;w3=0;w4=0; //位选
SMG_DATA=leddata[num/1000%10]; //高位
delay(20); //短暂延时
SMG_DATA=0x00; //数码管消影
w1=0;w2=1;w3=0;w4=0;
SMG_DATA=leddata[num/100%10]|0x80;
delay(20);
SMG_DATA=0x00;
w1=0;w2=0;w3=1;w4=0;
SMG_DATA=leddata[num/10%10];
delay(20);
SMG_DATA=0x00;
w1=0;w2=0;w3=0;w4=1;
SMG_DATA=leddata[num%10];//9999 低位
delay(20);
SMG_DATA=0x00;
}
void KEY_Scan()
{
if(k1==0)
{
delay(2);
if(k1==0)
{
while(!k1);
TR0=~TR0; //打开或关闭定时器0
}
}
else if(k2==0)
{
delay(2);
if(k2==0)
{
while(!k2)
Display();
num=num+100; //设置定时器数值加
if(num>9900)
{
num=0;
}
}
}
else if(k3==0)
{
delay(2);
if(k3==0)
{
while(!k3)
Display();
num=num-100; //设置定时器数值减
if(num<=0)
{
num=9900;
}
}
}
}
void main()
{
Time_Init(); //定时器初始化
while(1)
{
Display(); //显示函数
KEY_Scan(); //按键函数
if(num>10000) //计数范围限制
{
num=9999;
}
}
}
void zd() interrupt 1
{
TMOD=0x01; //定时器初值装载
TH0=(65535-10000)/256; //10ms
TL0=(65535-10000)%256;
num--; //变量10ms自减一次
if(num<1) //减到0停止
{
TR0=0;
num=0;
}
}
16030930688931199秒秒表倒计时实验仿真.zip
需积分: 0 193 浏览量
2024-04-10
00:11:33
上传
评论
收藏 49KB ZIP 举报
2401_83978007
- 粉丝: 0
- 资源: 1
最新资源
- 基于python的机械设计实用计算器,可计算电动机,传动装置,V带轮,齿轮,轴,轴承的几何或者力,运动学参数数值+源码+开发文档
- 基于HTML +JavaScript的元旦倒计时代码.docx
- 【Unity资源免费分享】孩子益智小游戏unity 5x系列Baby Doll House Cleaning
- 【资源免费分享】集市游戏(uniyt案例)
- 数据整理结果 2023-12-7 192544 6.dta
- 5.22前端基础(2)
- 糖尿病风险因素分析数据
- matlab项目源码基于matlab的声源定位广义互相关算法的实现.zip
- 基于Go的Dory-Engine应用上云引擎命令行客户端设计源码
- dotnet-core-uninstall-1.7.521001 github上下载下来,从github下载不下来时,可以使用这
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈