名字不是重点 发表于 2021-8-16 17:40 非常感谢 |
lkc8210 发表于 2021-8-16 16:55 真的,非常感谢 |
#include<reg52.h> #define SMG_SEG P3 //这里错了 #define SMG_GPIO P2 //这里也错了 unsigned char code SEG[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char code GPIO[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char DisplayData[2]; void DigDisplay() { unsigned char i; unsigned int j; for(i=0;i<2;i++) { SMG_GPIO = GPIO; SMG_SEG = DisplayData; j=50000; //延时要加大才能看到变化 while(j--); SMG_SEG =0x00; } } void Display() //这段代码其实可以与上面的合并 { DisplayData[0] = SEG[0]; DisplayData[1] = SEG[1]; DigDisplay(); } void main() { while(1) { Display(); } } |
boboj 发表于 2021-8-16 16:36 我也粗心了,如地板所說的不是sbit 而是 #define XXX P3 #define XXX P2 j=50;太短了 |
lkc8210 发表于 2021-8-16 15:30 确实粗心了,但是为什么我把那两行改过后还是有问题 |
glinfei 发表于 2021-8-16 15:40 Proteus单片机仿真可以不接电源 |
为啥这么简单的东西,会出这么多问题啊,比如接线就错了,Eg. sbit SMG_SEG=P0; 还有你好歹接上电源啊。还有程序的延时太短了 |
就算是程序有问题也与P3无关 |
粗心大意 看看第3行的代码和你的仿真图有什么不同 |