diff --git a/Template/README.md b/Template/README.md index be6e5f0..d150e61 100644 --- a/Template/README.md +++ b/Template/README.md @@ -2,19 +2,58 @@ ## 修改后使用 -### 按键消抖 +### 数码管 ```c -if(key == 0) +//数码管初始化参数 +uint8_t Seg_Pos = 0; +uint16_t Seg_Slow_Down = 0; +uint8_t Seg_Point[8] = {0,0,0,0,0,0,0,0}; +uint8_t Seg_Buf[8] = {10,10,10,10,10,10,10,10}; +uint8_t Seg_Char[12] = { - Delay(10); - if(key ==0 ) - { - if(num >= 996) - num=0; - else - num++; - while(!key); - } + 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00,0x40 //共阴 0-9,全灭 和 - + //0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xB0 //共阳 0-9,全灭 和 - +}; + +//数码管处理部分 +void Seg_Disp(uint8_t Wela, uint8_t Dula, uint8_t IsPoint) +{ + //小数点设置,需根据实际情况进行更改;下面适用于共阴极数码管 + uint8_t seg_data = Seg_Char[Dula]; + if(IsPoint) + seg_data |= 0x80; // 设置小数点 + else + seg_data &= 0x7F; // 清除小数点 + + HAL_I2C_Mem_Write(&hi2c1,SEG_ADDR,0x10+Wela, 1, &seg_data, 1, 100);//用在mp157开发板中 } + +//显示修改部分 ,使用主函数调用 +void Seg_Proc() +{ + if(Seg_Slow_Down) return; + Seg_Slow_Down = 1; + + //熄灭就是10 + Seg_Buf[0] = changeme; + Seg_Buf[1] = 10; + Seg_Buf[2] = 10; + Seg_Buf[3] = 10; + Seg_Buf[4] = 10; + Seg_Buf[5] = 10; + Seg_Buf[6] = 10; + Seg_Buf[7] = 10; +} + +//定时器(1ms)中写以下代码 +if(++Seg_Slow_Down == 500) Seg_Slow_Down = 0; // 数码管处理慢速定时器 + +Seg_Pos++; +if(Seg_Pos >= 8) Seg_Pos = 0; +Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); // 数码管显示处理 +``` + +### 按键扫描及消抖 +```c ``` \ No newline at end of file