|
发表于 2024-8-13 11:33:56
|
显示全部楼层
本帖最后由 lyl1070 于 2024-8-13 11:35 编辑
或者你需要的是这个。
- // 更新显示
- void Display_Update(void)
- {
- uchar i=0,flag=0; // 时间,或者有数据更改时,刷新显示
- for(i=0;i<Min(sizeofArray(TM1628_RAM),sizeofArray(display.buff));i++)
- {
- if(TM1628_RAM[i]!=display.buff[i])
- {
- flag=1;
- break;
- }
- }
- if((display.clock>DISPLAY_CLOCK_MS) || (flag!=0)) // 有数据改变,或者每DISPLAY_CLOCK_MS刷新显示
- {
- display.clock-=DISPLAY_CLOCK_MS;
- for(i=0;i<Min(sizeofArray(TM1628_RAM),sizeofArray(display.buff));i++)
- {
- TM1628_RAM[i]=display.buff[i];
- }
- TM1628_LIGHT=display.light;
- TM1628_Update();
- }
- }
- void TM1628_Update(void)
- {
- uchar i=0;
- Start();
- Serial_T(0x00|TM1628_MODE); // 写模式
- End();
- Start();
- Serial_T(TM1628_WRITE_ATUO); // 写数据,自动加1
- End();
- Start();
- Serial_T(0xC0); // 首地址
- for(i=0;i<sizeofArray(TM1628_RAM);i++)
- {
- Serial_T((uchar)(TM1628_RAM[i]%256)); // 先送低位
- Serial_T((uchar)(TM1628_RAM[i]/256)); // 再送高位
- }
- End();
- Start();
- Serial_T(0x88|(TM1628_LIGHT & 0x07)); // 写命令
- End();
- }
复制代码 |
|