《单片机(C51)技术》复习题 下载本文

内容发布更新时间 : 2024/11/15 9:30:51星期一 下面是文章的全部内容请认真阅读。

10 {

11 unsigned char a,b; 12 a=0x80;

13 for(b=0,b<8,b++) 14 { 15 p1=~a; 16 ys1s() 17 a=a>>1;

18 }}}

①错误行号 修改为 ②错误行号 修改为 ③错误行号 修改为 ④错误行号 修改为 ⑤错误行号 修改为

5.改错题:本大题共有10处错误,请在不删减原程序指令条数基础上加以改正,请将错误行号和改正后的结果写在答题卡相应位置。每空1分,错改漏改均不得分,共20分。

行号 程序

1 #include(reg51.h) 2 unsigned char i; 3 sbit D1=P1.1; 4 void zd interrupt 1 5 {

6 TH0=(65536-50000)/256; 7 TL0=(65536-50000)%6; 8 i++ 9 if(i==20) 10 { 11 i=0; 12 D1=!D1; 13 } 14 }} 15 main()

第11页(共41页)

16 {

17 Tmod=0x01;

18 Th0=(65536-50000)/256; 19 Tl0=(65536-50000)%6; 20 EA=1; 21 ET0=1; 22 TR0=1 23 i=0; 24 while(1) 25 }

①错误行号 修改为 ②错误行号 修改为 ③错误行号 修改为 ④错误行号 修改为 ⑤错误行号 修改为 ⑥错误行号 修改为 ⑦错误行号 修改为 ⑧错误行号 修改为 ⑨错误行号 修改为 ⑩错误行号 修改为

6.本小题共有10处错误,请在不删减原程序指令条数基础上加以改正,请将错误行号和改正后的结果写在答题卡相应位置。每空1分,错改漏改均不得分。

行号 程序

1 #includ 2 main 3 {

4 switch 5 {

6 cace 0xfe:P1=0xfe;break; 7 case 0xfd;P1=0xfd;break;

第12页(共41页)

8 case 0xfb:P1=0xfb;breek; 9 case 0xf7:p1=0xf7;break; 10 case 0x7f:P1=0x7f;break 11 case 0xbf:P1=0xbf;break; 12 case 0xdf:P1=0xdf:break; 13 case oxef:P1=0xef;break; 14 } 15 }

①错误行号 修改为 ②错误行号 修改为 ③错误行号 修改为 ④错误行号 修改为 ⑤错误行号 修改为 ⑥错误行号 修改为 ⑦错误行号 修改为 ⑧错误行号 修改为 ⑨错误行号 修改为 ⑩错误行号 修改为 7.本小题共有10处错误,请在不删减原程序指令条数基础上加以改正,请将错误行号和

改正后的结果写在答题卡相应位置。每空1分,错改漏改均不得分。

行号 程序

1、 #include 2、 unsigned char duanma[0]

3、 ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; 4、 unsigned char jianma[8]

5、 ={0xfe;0xfd;0xfb,0xf7;0xef;0xdf;0xbf;0x7f}; 6、 void yanshi20ms(void) 7、 {

8、 unsigned char j,k; 9、 foor(j=40;j>0;j--) 10、 for(k=250:k>0:k--);

第13页(共41页)

11、 } 12、 void main(void) 13、 {

14、 unsigned char jishu;jianhao,saomiao; 15、 P2=0x3f; 16、 while(1); 17、 {

18、 P1=0xff; 19、 saomiao=P1; 20、 if(saomiao!=0xff) 21、 {

22、 yanshi20ms; 23、 saomiao=P1; 24、 if(saomiao!=0xff) 25、 {

26、 for(jishu=0;jishu<8;jishu++) 27、 {

28、 if(saomiao==jianma[jishu]); 29、 {

30、 jianhao=jishu+1; 31、 break 32、 } 33、 }

34、 P2=duanma{jianhao}; 35、 }}}}

①错误行号 修改为 ②错误行号 修改为 ③错误行号 修改为 ④错误行号 修改为 ⑤错误行号 修改为 ⑥错误行号 修改为

第14页(共41页)

⑦错误行号 修改为 ⑧错误行号 修改为 ⑨错误行号 修改为 ⑩错误行号 修改为

8.改错题:本大题共有10处错误,请在不删减原程序指令条数基础上加以改正,请将错误行号和改正后的结果写在对应行后的空白处。每空1分,错改漏改均不得分,共20分。

行号 程序

1 #include

2 uchar led[]={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; 3 void ys(char a) 4 {

5 unsigned char i,j,k; 6 for(i=a;i>0;i--) 7 for(j=200;j>0;j--) 8 for(k=250;k>0;k--) 9 } 10 main() 11 {

12 Tmod=0X20; 13 TH1=0XF3; 14 scon=0X50; 15 pcon=0; 16 TR0=1; 17 while(1) 18 {

19 if(P1= 0xfe)SBUF=led[0];ys(20); 20 if(P1==0xfd) SBF=led[1];ys(20); 21 if(P1==0xfb)SBUF=led[2];ys(20); 22 if(P1==0xf7)SBUF=led[3];ys(20); 23 if(P1==0xef)SBUF=led[4];ys(20); 24 if(p1==0xdf)SBUF=led[5];ys(20); 25 if(P1==0xbf)SBUF=led[6];ys(20);

第15页(共41页)