微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51单片机 用数码管显示动态检测结果

51单片机 用数码管显示动态检测结果

时间:11-23 来源:互联网 点击:
注:本数码管为共阴极,P2为位选口,P0为数据口

本实验是一个60s计数器,当满60s后,此时又从00开始计数

#include
unsigned char Tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char int_time;
unsigned char second;
void delay(void)
{
unsigned char i;
for(i=0;i<250;i++)
;
}
void Display(unsigned char k)
{
P2=0xfd;
P0=Tab[k/10];
delay();
P2=0xfe;
P0=Tab[k];
delay();
P2=0xff;
}
void main()
{
TMOD=0x01;
TH0=15536/256; //50ms发生一次中断
TL0=15536%6;
EA=1; //开启总中断源
ET0=1;//定时器T0中断允许
TR0=1; //启动定时器0
int_time=0;//中断次数初始化
second=0; //秒初始化
while(1)
{
Display(second);
}
}

void interserver(void) interrupt 1 using 1
{
TR0=0;
int_time++;
if(int_time==20)
{
int_time=0;
second++;
if(second==60)
second=0;
}
TH0=15536/256;
TL0=15536%6;
TR0=1;
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top