代码
#include <reg52.h>
unsigned char const dofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char code seg[]={0,1,2,3,4,5,6,7};//分别对应相应的数码管点亮,即位码
unsigned char i, j, k, div, in0;
/******************************************************************/
/* 延时函数 */
/******************************************************************/
void delay(unsigned int cnt)
{
while(--cnt);
}
/*------------------------------------------------
定时器初始化子程序
------------------------------------------------*/
void Init_Timer0(void)
{
TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响
TH0=0x3C; //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出
AUSR=0x00;
TL0=0xAF;
EA=1; //总中断打开
ET0=1; //定时器中断打开
TR0=1; //定时器开关打开
}
/*------------------------------------------------
主程序
------------------------------------------------*/
main()
{
Init_Timer0();
i = 0;
j = 0;
k = 0;
div = 0;
while(1)
{
if(in0 == 1)
{in0 = 0;
if(div == 19)
{div = 0;
if (i == 59)
{i = 0;
if ( j == 59)
{j = 0;
if (k == 23)
k = 0;
else
k = k + 1;
}
else
j = j + 1;
}
else
i = i + 1;}
else
div = div + 1;
}
P2 = seg[0];
P0 = dofly[k/10];
delay(200);
P2 = seg[1];
P0 = dofly[k%10];
delay(200);
P2 = seg[2];
P0 = dofly[j/10];
delay(200);
P2 = seg[3];
P0 = dofly[j%10];
delay(200);
P2 = seg[4];
P0 = dofly[i/10];
delay(200);
P2 = seg[5];
P0 = dofly[i%10];
delay(200);
};
}
/*------------------------------------------------
定时器中断子程序
------------------------------------------------*/
void Timer0_isr(void) interrupt 1 using 1
{
TH0=0x3C; //重新赋值
TL0=0xAF;
//LED=~LED; //指示灯反相,可以看到闪烁
in0=1;
}
回复
我要赚赏金打赏帖 |
|
|---|---|
| 【FreeRtos】FreeRtos + MPU模块的配置使用被打赏¥32元 | |
| 【分享开发笔记,赚取电动螺丝刀】墨水屏文本显示器被打赏¥25元 | |
| 【STEVAL-STWINKT1B】:结合STMcubeMX软件读取HTS221温湿度被打赏¥22元 | |
| M5PAPERESP32EINKDEVKIT评测|使用MicroPython开发M5Paper被打赏¥15元 | |
| OK1126B-S开发板下以导航按键控制云台/机械臂姿态调整被打赏¥29元 | |
| 【树莓派5】便携热成像仪被打赏¥36元 | |
| 【树莓派5】环境监测仪被打赏¥35元 | |
| OK1126B-S开发板下多时段语音提示型电子时钟被打赏¥27元 | |
| OK1126B-S开发板下函数构建及步进电机驱动控制被打赏¥25元 | |
| 【S32K3XX】LPI2C 参数配置说明被打赏¥20元 | |
我要赚赏金
