📄 jishu-miao-0-9999999.9.c
字号:
/******************************************************************
* *
* ME500单片机开发系统演示程序 - 0-9999999.9 秒计时 *
* *
* 8位数码管显示 *
* *
* 版本: V1.0 (2006/11/20) *
* 作者: gguoqing (Email: gguoqing@willar.com) *
* 网站: www.willar.com(伟纳电子) www.mcusj.com(伟纳单片机世界) *
* 邮箱: support@willar.com *
* *
*【版权】Copyright(C)伟纳电子 www.willar.com All Rights Reserved *
*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! *
* *
*******************************************************************/
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar Count;
sbit DIN = P0^7; //小数点
uchar code LEDData[ ] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0xff};
uchar data display[8] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
uchar code scan_bit[] = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
/*********************************************************
延时函数
*********************************************************/
void Delay(uint num)//延时函数
{
while( --num );
}
/********************************************************
显示函数
*********************************************************/
play()
{
uchar i;
for(i=0;i<8;i++)
{
P0=LEDData[display[i]]; //显示个位
P2=scan_bit[i];
if(scan_bit[i]==0xbf)
DIN=0; //加小数点
Delay(50);
}
P2=0xff; //关闭显示
}
/********************************************************
主函数
*********************************************************/
main()
{
P0=0xff;
P2=0xff;
Count=0x00;
TMOD=0x01;
TH0=0x4c; TL0=0x00; //50ms定时
EA=1; ET0=1; TR0=1;
while(1)
play();
}
/*********************************************************
Time0中断函数
**********************************************************/
void Time0(void) interrupt 1 using 0
{
TH0=0x4c; //50ms定时
TL0=0x00;
Count++;
if(Count==2)
{
Count=0;
display[0]++; //0.1S
}
if(display[0]==10)
{
display[0]=0;
display[1]++; //个位
}
if(display[1]==10)
{
display[1]=0;
display[2]++; //十位
}
if(display[2]==10)
{
display[2]=0;
display[3]++; //百位
}
if(display[3]==10)
{
display[3]=0;
display[4]++; //千位
}
if(display[4]==10)
{
display[4]=0;
display[5]++; //万位
}
if(display[5]==10)
{
display[5]=0;
display[6]++; //十万位
}
if(display[6]==10)
{
display[6]=0;
display[7]++; //百万位
}
if(display[7]==10)
{
display[7]=0;
}
}
/*********************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -