skyp 发表于 2021-6-10 14:44 虽然别的地方还有好多问题,但你说的灰色就是没接好线,实在搞不好总线,你就一根一根接总不会出你现在的问题啊。 |
不说你那总线标号,就你那3个 5 ,你那npn,你那7404,??????![]() |
npn 发表于 2021-6-10 13:24 请问我有的LED显示屏为什么没有引脚数字显示呀,还有我有一个引脚不能连接总线了,之前还能连的。。。。 |
hhdsdy 发表于 2021-6-10 13:35 我是学生,不懂什么原理,只是会基本的步骤。。。按照网上搜的一个文档照着画的,结果错了。。。 |
hhdsdy 发表于 2021-6-10 13:35 #include<reg52.h> #define uint unsigned int #define uchar unsigned char uchar code dantab[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40} ; //0~9,+ -; uchar key; uint value=0; sbit W1=P2^0; sbit W2=P2^1; sbit W3=P2^2; sbit W4=P2^3; void delay1ms() { uchar t=25; while(t--); } void Display(uint num) { uchar temp1,temp2,temp3,temp4; temp1=num/1000; temp2=num%1000/100; temp3=num%100/10; temp4=num%10; P0=dantab[temp1]; W1=0; delay1ms(); W1=1; P0=dantab[temp2]; W2=0; delay1ms(); W2=1; P0=dantab[temp3]; W3=0; delay1ms(); W3=1; P0=dantab[temp4]; W4=0; delay1ms(); W4=1; } void scan() { key = 0x03 & P1; while(key==0x00) { key = 0x03 & P1;Display(value);} if(key==0x02) { while(key==0x02) {key = 0x03 & P1;Display(value);} while(key==0x03) {key = 0x03 & P1;Display(value);} while(key==0x01) { key = 0x03 & P1;Display(value); if(key==0x00) { value++; if(value==1001) { value=0; } Display(value); } } } if(key==0x01) { while(key==0x01) { key = 0x03 & P1;Display(value);} while(key==0x03) { key = 0x03 & P1;Display(value);} while(key==0x02) { key = 0x03 & P1;Display(value); if(key==0x00) { value--; if(value==-1) { value=1000; } Display(value); } } } } void main() { P1=0x00; EA=1; //CPU开中断 EX0=1; //允许外部中断0中断 IT0=1; //边沿触发 while(1) scan(); } |
那个不叫灰色的引脚![]() |
导线要添加网络标号,只有相同的网络标号才是同一根线。![]() ![]() ![]() |