《单片机(C51)技术》复习题

1 #include 2 bit duanma[10]

3 ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; 4 void main(void) 5 {

6 unsigned char jishu,jianhao,saomiao; 7 p2=0x3f; 8 while() 9 {

10 P1=0xff; 11 saomiao=P1;

12 if(saomiao=0xff) 13 {

14 for(jishu=0,jishu<8,jishu++) 15 {

16 if((saomiao&0x01)==0); 17 jianhao++; 18 saomiao=saomiao>>1 19 } 20 }

21 P2=duanma(jianhao); 22 jianhao==0; 23 } 24 }

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

14.改错题:本大题共有10处错误,请在不删减原程序指令条数基础上加以改正,请将错

误行号和改正后的结果写在对应行后的空白处。每空1分,错改漏改均不得分,共20分。 行号 程序

1 include

第21页(共41页)

2 unsigned char duanma[10] 3 ={0x3f;0x06;0x5b;0x4f;0x66;0x6d;0x7d;0x07;0x7f;0x6f}; 4 void yanshi05s(void); 5 {

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

11 void main(void) 12 {

13 bit jishu1,jishu2; 14 while(1) 15 {

16 for(jishu2=0,jishu2<10,jishu2++); 17 {

18 p2=duanma[jishu2];

19 for(jishu1=0;jishu1<10;jishu1++) 20 {

21 P1=duanma[jishu1]; 22 yanshi05s; 23 } 24 } 25 } 26 }

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

15.改错题:本大题共有10处错误,请在不删减原程序指令条数基础上加以改正,请将错

误行号和改正后的结果写在对应行后的空白处。每空1分,错改漏改均不得分,共20分。 行号 程序

第22页(共41页)

1 #inclde

2 #define uchar unsigned char

3 uchar duanma[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; 4 uchar weima[2]=[0x01,0x02] 5 uchar jishu1,jishu2,miao=60; 6 uchar xianshi[2]={0,0}; 7 void yanshi10ms(void); 8 { uchar i,j;

9 for(i=20;i>0;i--) 10 for(j=250;j>0;j--);} 11 void chushihua(void) 12 {

13 tmod=0x01; 14 TH0=(65536-10000)/256; 15 TL0=(65536-10000)%6; 16 EA=1;ET0=1;TR0=1; } 17 void main(void) 18 {

19 chushihua() 20 while(1); 21 {

22 xianshi[0]=duanma[miao/10]; 23 xianshi[1]=duanma[miao]; 24 jishu1++; 25 if(jishu1==2)jishu1=0 26 P2=weima[jishu1]; 27 P1=xianshi[jishu1]; 28 yanshi10ms(); }} 29 void daojishi(void) interrupt 9 30 {

31 THo=(65536-50000)/256; 32 TL0=(65536-50000)%6; 33 jishu2++; 34 if(jishu2=20) 35 {

36 jishu2=0; 37 miao--; 38 if(miao==0xff)miao=60; } }

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

第23页(共41页)

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

16.改错题:本大题共有10处错误,请在不删减原程序指令条数基础上加以改正,请将错

误行号和改正后的结果写在对应行后的空白处。每空1分,错改漏改均不得分,共20分。 行号 程序

1 #include 2 int duanma[10]

={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

3 int weima[1]={0x01,0x02}; 4 sbit miao,jishu1; 5 int xianshi(6)={0,0}; 6 bit D1=P3^0; 7 sbit D2=P3^1;

8 void chushihua(void) 9 {

10 TMOD=0x01

11 TH0=(65536-10000)/256; 12 TL0=(65536-10000)%6; 13 EA=1;ET0=1;TR0=1; 14 }

15 void main(void) 16 {

17 miao=46; 18 chushihua(); 19 while(1) 20 }

21 void shuzizhong(void) interrupt 100 22 {

23 TH0=(65536-5000)/256; 24 TL0=(65536-5000)%6;

25 xianshi[0]=duanma[miao/10]; 26 xianshi[1]=duanma[miao]; 27 jishu1++

28 if(jishu1==2)jishu1=0; 29 p2=weima[jishu1]; 30 P1=xianshi[jishu1]; 31 miao++;

第24页(共41页)

32 if(miao=100) 33 { 34 miao=0; 35 D1=~D1; 36 D2=~D2; 37 } 38 }

①错误行号 修改为 ②错误行号 修改为 ③错误行号 修改为 ④错误行号 修改为 ⑤错误行号 修改为 ⑥错误行号 修改为 ⑦错误行号 修改为 ⑧错误行号 修改为 ⑨错误行号 修改为 ⑩错误行号 修改为 四、修改程序与完善程序:(本大题共2小题,每小题10分,共20分。)

1.将主程序中斜体部分的程序语句修改为函数,将答案写在程序右边的空白处。功能:5秒闪烁灯。

#include unsigned char i,j,k; main() { while(P1_0==0) { P2_0=~P2_0; for(i=50;i>0;i- -) for(j=200;j>0;j- -) for(k=250;k>0;k- -); } } 2.将主程序中斜体部分的程序语句修改为函数,将答案写在程序右边的空白处。功能:开关闭合后灯依次向左移点亮。

第25页(共41页)

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4