不好意思,刚刚又看了看那个位码,是我看错了![]() ![]() ![]() |
你的程序延时的数据类型选错了,我给你改过来了,而且你在仔细看看你的段码也有错误。 #include <reg51.h> typedef unsigned char u8; typedef unsigned int u16; u8 code smgduan[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void delay(u16 t) { while(t--); } void main() { u8 i; while(1) { P0=0xff; delay(50000); for(i=0;i<16;i++) { P0=~smgduan[i]; delay(50000); } } } |
delay函数参数送数不对,按你定义最大能到255,而你送的数是50000 |
delay函数的参数是u8最大只能送255,而你送了50000. |
不同字码显示间隔的延时的时间太短了,延时定义的变量t是字符型,怎么能装下50000这个数值呢 |