| 硬件要求和给出的电路图也没完全对上,这个不能只改程序还得改电路用飞线方法最好 |
| 必须得改电路了,测试还是可以的,就是不能用来做产品,这样的产品是次品 |
|
电路不改,真的很难。。 原因是,有的段码接电阻了,有的没接,有的位码接电阻了,有的也没接,只是调IO的话: 当串电阻的段码遇上串了电阻的位码,数码管亮度明显不够。 当没串电阻的段码遇上同样没串电阻的位码,可能会把LED烧焦! 难,不改板真的难。 ![]() |
| 不动硬件是无法实现的,不能重做PCB就只能动手改PCB,把R6R8电阻去掉短接,P2.5P2.6串接电阻,其他的就交给软件了。当然还要看你选的什么单片机 |
|
你们是组团拼多多打板的么? 感觉这礼拜,这问题答了4~5次了。 sbit duana = P2^5; sbit duanb = P0^6; sbit duanc = P0^3; sbit duand = P0^1; sbit duane = P0^0; sbit duanf = P2^6; sbit duang = P0^4; sbit duandp = P0^2; sbit wei0 = P2^4; sbit wei1 = P2^7; sbit wei2 = P0^7; sbit wei3 = P0^5; u8 LED_Buff[4]; void Show_Led(u8 LED_Num) { u8 Temp; wei0 = 1; wei1 = 1; wei2 = 1; wei3 = 1; //如果是共阳极的话全 = 0; Temp = LED_Buff[LED_Num]; Temp <<= 1; duandp = CY; Temp <<= 1; duang = CY; Temp <<= 1; duanf = CY; Temp <<= 1; duane = CY; Temp <<= 1; duand = CY; Temp <<= 1; duanc = CY; Temp <<= 1; duanb = CY; Temp <<= 1; duana = CY; switch(LED_Num) { case 0: wei0 = 0; break; case 1: wei1 = 0; break; case 2: wei2 = 0; break; case 3: wei3 = 0; break; //共阳的话,这里 = 1; default: break; } } |
| 如果原先的软硬件都没问题,直接调整软件就好,无需动硬件的。 |
|
void Re_IO(char dat) { P25 = dat & 0x01; P06 = dat & 0x02; P03 = dat & 0x04; P01 = dat & 0x08; P00 = dat & 0x10; P26 = dat & 0x20; P04 = dat & 0x40; P02 = dat & 0x80; } |
| 当然可以了。 |
|
把电阻调换,可以在程序可以随需要而更换不同的IO的。 |