标题:
基于51单片机的数码管显示时钟程序+仿真
[打印本页]
作者:
悠悠一夏
时间:
2018-12-3 11:46
标题:
基于51单片机的数码管显示时钟程序+仿真
基于51单片机的时钟程序和仿真图
0.png
(12.03 KB, 下载次数: 48)
下载附件
2018-12-3 18:02 上传
单片机源程序如下:
#include"reg51.h"
#define uint unsigned int
sbit key=P1^0;
unsigned int addNum;
unsigned char Nums,Numm,Numh;
#define SEGNUM P0
#define WEI P2
unsigned char code table[]={0x3f ,0x06 ,0x5b ,0x4f ,0x66 ,0x6d ,
0x7d ,0x07 ,0x7f ,0x6f ,0x77 ,0x7c ,
0x39 ,0x5e ,0x79 ,0x71 ,0x00};
void delay(unsigned int num)
{
unsigned i,j;
for(i=num;i>0;i--)
for(j=120;j>0;j--);
}
void main()
{
TMOD=0X02;
TL0=TH0=6;
ET0=1; //中断允许位
EA=1;
TR0=1; //TR0置1,开启计时
IT0=1; //中断0的中断方式
EX0=1; //开通允许位
IT1=1; //中断方式
EX1=1;
TR0=1; //启动
while(1)
{
if(!key)
{
delay(10) ;
if(!key)
{
Numh++;
while(!key) ;
}
}
WEI=0Xef;
SEGNUM=table[Nums/10]; //对10取整
delay(5);
WEI=0Xdf;
SEGNUM=table[Nums%10];
delay(5);
WEI=0xfb;
SEGNUM=table[Numm/10];
delay(5);
WEI=0xf7;
SEGNUM=table[Numm%10];
delay(5);
if(Numm==60)
{
Numm=0;
}
WEI=0xfe;
SEGNUM=table[Numh/10];
delay(5);
WEI=0xfd;
SEGNUM=table[Numh%10];
delay(5);
}
}
void timer0() interrupt 1
{
addNum++;
if(addNum==4000)
{
Nums++;
addNum=0;
}
if(Nums==60)
{
Numm++;
Nums=0;
}
if(Numm==60)
{
Numh++;
Numm=0;
}
if(Numh==24)
{
Numh=0;
}
}
void ex0() interrupt 0 //外部中断0
{
Nums++; //表示外部中断来时的动作 (外部中断1)
}
void ex1() interrupt 2
{
Numm++;
}
复制代码
所有资料51hei提供下载:
sz.zip
(59.79 KB, 下载次数: 59)
2018-12-3 11:44 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
PQWER
时间:
2019-8-12 18:18
有错误啊
作者:
dongzhe
时间:
2019-12-4 09:35
想要下载资料啊
作者:
单片机静脉输液
时间:
2019-12-9 16:54
有输液系统监控的嘛?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1