让找料更便捷
电子元器件
采购信息平台
生意随身带
随时随地找货
一站式电子元器件
采购平台
半导体行业观察第一站
摘要: /* 名称:定时器控制数码管动态显示说明:8 个数码管上分两组动态显示年月日与时分秒,本例的位显示延时用定时器实现。*/#include#include#define uchar unsigned char#define uint unsigned int//段码,最后一位是"-"的段码uchar codeDSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82
/* 名称:定时器控制数码管动态
显示
说明:8 个数码管上分两组动
态显示年月日与时分秒,本例的
位显示延时用定时器实现。
*/
#include
#include
#define uchar unsigned char
#define uint unsigned int
//段码,最后一位是"-"的段码
uchar code
DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};
//待显示的数据:09-12-25 与 23-59-58(分两组显示)
uchar code Table_of_Digits[][8]={{0,9,10,1,2,10,2,5},{2,3,10,5,9,10,5,8}};
uchar i,j=0;
uint t=0;
//主程序
void main()
{
P3=0x80;
//位码初值
TMOD=0x00; //计数器 T0 方式 0
TH0=(8192-4000)/32; //4ms 定时
TL0=(8192-4000)%32;
IE=0x82;
TR0=1; //启动 T0
while(1);
}
//T0 中断函数控制数码管刷新显示
void DSY_Show() interrupt 1
{
TH0=(8192-4000)/32; //恢复初值
TL0=(8192-4000)%32;
P0=0xff; //输出位码和段码
P0=DSY_CODE[Table_of_Digits[i][j]];
P3=_crol_(P3,1);
j=(j+1)%8; //数组第 i 行的下一字节索引
if(++t!=350) return; //保持刷新一段时间
t=0;
i=(i+1)%2; //数组行 i=0 时显示年月日,i=1 时显示时分秒
}
上一篇:单片机串行通信波特率的自适应方法
型号 | 厂商 | 价格 |
---|---|---|
EPCOS | 爱普科斯 | / |
STM32F103RCT6 | ST | ¥461.23 |
STM32F103C8T6 | ST | ¥84 |
STM32F103VET6 | ST | ¥426.57 |
STM32F103RET6 | ST | ¥780.82 |
STM8S003F3P6 | ST | ¥10.62 |
STM32F103VCT6 | ST | ¥275.84 |
STM32F103CBT6 | ST | ¥130.66 |
STM32F030C8T6 | ST | ¥18.11 |
N76E003AT20 | NUVOTON | ¥9.67 |