熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2019-12-25 01:05
正文摘要:#include<reg51.h> unsigned char code table1[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//輪流點(diǎn)亮 unsigned char code table2[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//逐個(gè)點(diǎn)亮 unsigned char ... |
man1234567 發(fā)表于 2019-12-25 07:35 #include<reg51.h> unsigned char code table1[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//輪流點(diǎn)亮 unsigned char code table2[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//逐個(gè)點(diǎn)亮 unsigned char code table3[]={0x00}; unsigned char code table4[]={0x55,0xaa}; //間隔點(diǎn)亮 unsigned char xs[]; sbit S0=P1^0; sbit S1=P1^1; sbit S2=P1^2; sbit S4=P1^3; sbit S5=P1^4; sbit S6=P1^5; sbit S7=P1^6; sbit P11 =P3^2; unsigned char a=3; unsigned char x=0; unsigned char y=0; int i,j,k; void panduan(); void delay_t1(unsigned char n); void delay_t2(unsigned char n); void chufa() interrupt 0 { if(S5==0) a=0; if(S6==0) a=1; if(S7==0) a=2; P0=0XFF; P2=0XFF; x=8; y=8; } void panduan(){ S4=(S0 & S1 & S2); P11=S4; S5=S0; S6=S1; S7=S2; } void main() { EA=1; EX0=1; IT0=0; PX0=1; a=0; P11=0; while(1) { while(a==0) { x=0; y=0; for(;x<8;x++) { P2=~0x01; P0=table1[x]; delay_t1(2); } for(;y<8;y++) { P2=~0x02; P0=table1[y]; delay_t1(2); } P0=0xff; P2=0xff; } while(a==1) { x=0; y=0; for(;x<8;x++) { P2=~0X01; P0=table2[x]; delay_t1(2); } for(;y<8;y++) { for(x=0;x<8;x++) { P2=~0X02; P0=table2[y]; delay_t2(1); P2=~0x01; P0=0xff; delay_t2(1); } P0=0xff; P2=0xff; delay_t2(2); } while(a==2) { x=0;y=0; for(x=0;x<8;x++) { P2=~0x01; P0=table4[0]; delay_t2(1); P2=~0x02; P0=table4[0]; delay_t2(1); } for(;y<8;y++) { // delay_t1(2); P2=~0x01; P0=table4[1]; delay_t2(1); P2=~0x02; P0=table4[1]; delay_t2(1); } } void delay1_0ms() { for(j=0;j<20;j++) { TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1; while(1) { if(TF0==1){ TF0=0; break; } } } } void delay2_0ms() { for(j=0;j<2;j++) { TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1; while(1) { if(TF0==1){ TF0=0; break; } } } } void delay_t2(unsigned char n) { for(k=0;k<n;k++){ delay2_0ms(); } panduan(); } void delay_t1(unsigned char n) { for(k=0;k<n;k++){ delay1_0ms(); } panduan(); } |
mffhxa 發(fā)表于 2019-12-25 09:01 上面是完整代碼,大神可以看看怎樣修改嗎? |
moluxiyan 發(fā)表于 2019-12-25 08:48 #include<reg51.h> unsigned char code table1[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//輪流點(diǎn)亮 unsigned char code table2[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//逐個(gè)點(diǎn)亮 unsigned char code table3[]={0x00}; unsigned char code table4[]={0x55,0xaa}; //間隔點(diǎn)亮 unsigned char xs[]; sbit S0=P1^0; sbit S1=P1^1; sbit S2=P1^2; sbit S4=P1^3; sbit S5=P1^4; sbit S6=P1^5; sbit S7=P1^6; sbit P11 =P3^2; unsigned char a=3; unsigned char x=0; unsigned char y=0; int i,j,k; void panduan(); void delay_t1(unsigned char n); void delay_t2(unsigned char n); void chufa() interrupt 0 { if(S5==0) a=0; if(S6==0) a=1; if(S7==0) a=2; P0=0XFF; P2=0XFF; x=8; y=8; } void panduan(){ S4=(S0 & S1 & S2); P11=S4; S5=S0; S6=S1; S7=S2; } void main() { EA=1; EX0=1; IT0=0; PX0=1; a=0; P11=0; while(1) { while(a==0) { x=0; y=0; for(;x<8;x++) { P2=~0x01; P0=table1[x]; delay_t1(2); } for(;y<8;y++) { P2=~0x02; P0=table1[y]; delay_t1(2); } P0=0xff; P2=0xff; } while(a==1) { x=0; y=0; for(;x<8;x++) { P2=~0X01; P0=table2[x]; delay_t1(2); } for(;y<8;y++) { for(x=0;x<8;x++) { P2=~0X02; P0=table2[y]; delay_t2(1); P2=~0x01; P0=0xff; delay_t2(1); } P0=0xff; P2=0xff; delay_t2(2); } while(a==2) { x=0;y=0; for(x=0;x<8;x++) { P2=~0x01; P0=table4[0]; delay_t2(1); P2=~0x02; P0=table4[0]; delay_t2(1); } for(;y<8;y++) { // delay_t1(2); P2=~0x01; P0=table4[1]; delay_t2(1); P2=~0x02; P0=table4[1]; delay_t2(1); } } void delay1_0ms() { for(j=0;j<20;j++) { TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1; while(1) { if(TF0==1){ TF0=0; break; } } } } void delay2_0ms() { for(j=0;j<2;j++) { TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1; while(1) { if(TF0==1){ TF0=0; break; } } } } void delay_t2(unsigned char n) { for(k=0;k<n;k++){ delay2_0ms(); } panduan(); } void delay_t1(unsigned char n) { for(k=0;k<n;k++){ delay1_0ms(); } panduan(); } |
man1234567 發(fā)表于 2019-12-25 07:35 應(yīng)該怎樣改呢?大神可以發(fā)下修改后的程序給我嗎? |
HC6800-ES-V2.0 發(fā)表于 2019-12-25 08:14 那應(yīng)該怎么改?或者可以發(fā)個(gè)修改后的程序嗎?求大神指導(dǎo),挺急的 |
你這個(gè)程序的變量i,j,k是0——255范圍用的。而定義的范圍是-128——127的范圍,所以不匹配。 把int i,j,k;改為unsigned int i,j,k;就可以了。 |
雙擊錯(cuò)誤,定位到出錯(cuò)的行上,這么一堆,誰知道錯(cuò)在哪,而且程序還不全 |
錯(cuò)誤太小了。就是你的函數(shù)最后差兩個(gè)}而已,你這樣寫程序,出這樣的錯(cuò)是遲早的。 |
疑似void delay1_0ms()函數(shù)少了 } |
Powered by 單片機(jī)教程網(wǎng)