lkc8210 发表于 2023-11-29 10:05 void DisplayScan(void) { P1= ~T_COM[2-display_index]; P2 = ~t_display[LED3[display_index]]; if(++display_index >= 3) display_index = 0; //8位结束回0 }主要位码不是同一个字节,在P1和P3上的 |
hjx5548 发表于 2023-11-28 22:26 不对,没学过C语言? |
lkc8210 发表于 2023-11-27 09:00 u8 code T_COM[]={0x10,0x20}; //位码 u8 code T_COM1[]={0x80}; //位码0000 1000 这里这样修改的 |
lkc8210 发表于 2023-11-26 14:33 for(i=0; i<3; i++) LED8 = 0x10; //上电消隐 else F0 = 1, j = 400 - j; //温度 < 0度 // LED8[4] = j / 1000; //显示温度值 LED8[1] = (j % 1000) / 100; LED8[2] = (j % 100) / 10 + DIS_DOT; LED8[3] = j % 10; if(LED8[3] == 0) LED8[3] = DIS_BLACK; if(F0) LED8[3] = DIS_; //显示- } else //错误 { for(i=0; i<3; i++) LED3 = DIS_; } 主函数里面这样修改对吗? |
lkc8210 发表于 2023-11-26 14:33 u8 LED3[3]; //显示缓冲 u8 display_index; //显示位索引 u8 display_index1; //显示位索引 bit B_1ms; //1ms标志 void DisplayScan(void) { P1= ~T_COM[2-display_index];P3= ~T_COM1[display_index]; P2 = ~t_display[LED3[display_index]]; if(++display_index >= 3) display_index = 0; //8位结束回0 } 这样修改对吗? |
hjx5548 发表于 2023-11-26 15:36 对,取三位来显示 如36.5 |
lkc8210 发表于 2023-11-26 14:33 for(i=0; i<8; i++) LED8[i ] = 0x10; //上电消隐 while(1) { if(B_1ms) //1ms到 { B_1ms = 0; if(++msecond >= 300) //300ms到 { msecond = 0; j = Get_ADC12bitResult(3); //参数0~15,查询方式做一次ADC, 返回值就是结果, == 4096 为错误 if(j < 4096) { /* LED8[0] = j / 1000; //显示ADC值 LED8[1] = (j % 1000) / 100; LED8[2] = (j % 100) / 10; LED8[3] = j % 10; if(LED8[0] == 0) LED8[0] = DIS_BLACK; */ j = get_temperature(j); //计算温度值 if(j >= 400) F0 = 0, j -= 400; //温度 >= 0度 else F0 = 1, j = 400 - j; //温度 < 0度 LED8[4] = j / 1000; //显示温度值 LED8[5] = (j % 1000) / 100; LED8[6] = (j % 100) / 10 + DIS_DOT; LED8[7] = j % 10; if(LED8[4] == 0) LED8[4] = DIS_BLACK; if(F0) LED8[4] = DIS_; //显示- } 这部分吗? |
lkc8210 发表于 2023-11-26 14:33 u8 LED8[8]; //显示缓冲 改为u8 LED8[3]; 这样对吗? |
hjx5548 发表于 2023-11-26 10:50 对,但本来是8位 你要把数值转数组的函数也改一下 |
coody_sz 发表于 2023-11-25 21:32 /********************** 显示扫描函数 ************************/ void DisplayScan(void) { P7 = ~T_COM[7-display_index]; P6 = ~t_display[LED8[display_index]]; if(++display_index >= 8) display_index = 0; //8位结束回0 } 是不是只要修改这个函数? |
coody_sz 发表于 2023-11-25 21:32 如果移植到STC8H1K芯片上,哪些寄存器需要修改? |
改为直接IO驱动即可。 |