#include #include "./delay/delay.h" sbit seg_select = P2^1; sbit bit_select = P2^0; sbit key1 = P1^0; #define SEGPORT P0 unsigned char segdata[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char bitdata[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char TempData[2]; void display(void) { /*消除重影*/ 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 = bitdata[i]; bit_select = 1; bit_select = 0; i++; if(2 == i) { i = 0; } } void timer0_init(void) { EA = 1; //打开总中断 TMOD |= 0x01; //选择中断方式 TH0 = (65536 - 2000) / 256; TL0 = (65536 - 2000) % 256; ET0 = 1; TR0 = 1; } void timer0_isr(void) interrupt 1 { TH0 = (65536 - 2000) / 256; TL0 = (65536 - 2000) % 256; display(); } void main() { unsigned char disdata = 0; timer0_init(); while(1) { /*消抖*/ if(0 == key1) //有按键按下 { delay_ms(10); if(0 == key1) //确实有按键按下 { while(!key1); //有按键抬起 delay_ms(10); while(!key1); //确实有按键抬起 } disdata++; if(100 == disdata) { disdata = 0; } } TempData[0] = segdata[disdata / 10]; TempData[1] = segdata[disdata % 10]; } } /************************************/ /*delay.h*/ #define _DELAY_H_ extern void delay_us(unsigned char t); extern void delay_ms(unsigned char t); extern void delay_s(unsigned char t); #endif /***************************************/ /*delay.c*/ { while(--t); } void delay_ms(unsigned char t) { while(t--) { delay_us(245); delay_us(245); } } void delay_s(unsigned char t) { while(t--) { delay_ms(200); delay_ms(200); delay_ms(200); delay_ms(200); delay_ms(200); } } #ifndef _DELAY_H_
void delay_us(unsigned char t)
上一篇:单片机之矩阵键盘的驱动程序
下一篇:利用单片机的数码管模拟时钟的显示时间
推荐阅读最新更新时间:2024-11-10 14:55
设计资源 培训 开发板 精华推荐
- VM800B50A-BK,基于支持3.3/5V MCU转接板的FT800基本开发模块,5.0英寸TFT LCD带显示屏和黑色边框外壳
- Flipper Zero :基于STM32W55B的开源极客多功能工具
- 适用于工业驱动应用的Sigma-delta电流传感解决方案
- IS31BL3508A-STLS2-EB,IS31BL3508A 评估套件,具有 38V 内部 MOSFET 开关的 1Mhz 升压转换器
- 用于工业应用的 LT3973HDD-5 5V 降压转换器的典型应用
- MCP1320 电压监控器的典型应用
- 用于仪表的 16 位 4 通道 DAC
- STM32F103VET6开发板
- 使用 NXP Semiconductors 的 TL431AI 的参考设计
- 使用 MaxLinear, Inc 的 SPX29303U 的参考设计