#include #define SEGPORT P0 sbit seg_select = P2^1; sbit bit_select = P2^0; unsigned char duanma[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char weima[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char TempData[8]; unsigned char shi = 20, fen = 54, miao = 55; void display() { static unsigned char i = 0; SEGPORT = 0x0; seg_select = 1; seg_select = 0; SEGPORT = 0xff; bit_select = 1; bit_select = 0; SEGPORT = TempData[i]; seg_select = 1; seg_select = 0; SEGPORT = weima[i]; bit_select = 1; bit_select = 0; i++; if(8 == i) { i = 0; } } void time0_init(void) { EA = 1; //打开总中断 TMOD |= 0x01; //设置定时器工作方式 TH0 = (65536 - 20000) / 256; TL0 = (65536 - 20000) % 256; //设置定时器初值 ET0 = 1; //打开定时器中断 TR0 = 1; } void timer0_isr() interrupt 1 { static unsigned char i = 0; TH0 = (65536 - 20000) / 256; TL0 = (65536 - 20000) % 256; //设置定时器初值, i++; if(50 == i) { i = 0; miao++; if(60 == miao) { miao = 0; fen++; if(60 == fen) { fen = 0; shi++; if(24 == shi) { shi = 0; } } } } TempData[0] = duanma[shi / 10]; TempData[1] = duanma[shi % 10]; TempData[2] = 0x40; TempData[3] = duanma[fen / 10]; TempData[4] = duanma[fen % 10]; TempData[5] = 0x40; TempData[6] = duanma[miao / 10]; TempData[7] = duanma[miao % 10]; } void time1_init(void) { EA = 1; TMOD |= 0x10; TH1 = (65536 - 20000) / 256; TL1 = (65536 - 20000) % 256; ET1 = 1; TR1 = 1; } void time1_isr() interrupt 3 { TH1 = (65536 - 1000) / 256; TL1 = (65536 - 1000) % 256; display(); } void main() { time0_init(); time1_init(); while(1) { } }
上一篇:单片机之利用按键来使数码管上两位示数增加
下一篇:共阴极数码管的显示刷新
推荐阅读最新更新时间:2024-11-03 16:16
设计资源 培训 开发板 精华推荐
- #第六届立创电赛#默语智家蓝牙功放
- 用于便携式的 12 位 8 通道 DAC
- 用于 LCD 背光的 4-LED 白光 LED 驱动器
- AC164101,用于 rfPIC12F675F 433.92-MHz 发射器模块的评估套件
- ADR445B 5 Vout 超低噪声、LDO XFET 电压基准的典型应用,带电流吸收器和电流源
- 【训练营】会跑的狗子
- LT1172CN8、5V/1.25A 正降压转换器的典型应用
- FAN251040GEVB:FAN251040GEVB,具有 PMBUS 的 40A 同步降压稳压器
- AN-H54 使用 MD1811 100V 超声脉冲器驱动高压脉冲器
- MIC2206 的典型应用:具有 LOWQ 模式和电压调节功能的 2MHz PWM 同步降压稳压器