《单片机(C51)技术》复习题 联系客服

发布时间 : 星期二 文章《单片机(C51)技术》复习题更新完毕开始阅读9b8fdadfcf2f0066f5335a8102d276a2002960c4

x= ;y= 。

17. unsigned char x,y,a[5]={23,67,12,89,43} ; x=15;

for(y=0;y<5;y++) {

if(a[y]==x) break; }

x= ;y= 。

18 . unsigned char x=15,y=0,a[5]={23,67,12,89,43} ; while(a[y]!=x) y++;

x= ;y= 。

19. unsigned char x=15,y=0,a[5]={15,15,12,89,43} ; while(a[y]==x) y++; x= ;y= 。 20.void delay() {int i,j,k;

for(i=1;i<8;i++) for (j=20;j>0;j--) for(k=248;k>0;k--); }

main()

{ int i,temp; while (1) {P2=0xff; delay(); P2=0xfe; temp=0xfe; for(i=0;i<8;i++) { P2=temp<

i=6时,P2= 。并说明其程序功能 。 21.#include

char b[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay() {int i,j;

for(i=20;i>0;i--) for(j=248;j>0;j--); }

void main() {int a;

第5页(共41页)

a=0; P2=0X3F;P3=0X3F; while(1)

{ if (P1!=0xff) delay(); if(P1!=0xff) {

switch(P1)

{case 0xfe:a++;P2= b[a/10] ;P3=b[a] ;break; case 0xfd:a--; P2= b[a/10] ;P3=b[a] ;break; case 0xfb:a=0; P2= b[a/10] ;P3=b[a] ;break; }

if(a==99) a=0;

while(P1!=0xff) ; } } }

分别说明P1为0xfe时功能 ,P1为0xfd时功能 ,P1为0xfb时功能 。 22.#include

int a[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; b[2]={0x01,0x02}; int c=60,i,x[2],j,k; main()

{TMOD=0x10; TH1=0X9E; TL1=0X58; EA=1; ET1=1; TR1=1; while(1) {

x[0]=c/10; x[1]=c; for(i=0;i<2;i++) {P3=b[i]; P2=a[x[i]];

for(k=120;k>0;k--); } } }

void ds() interrupt 3 { TH1=0X9E; TL1=0X58; j++; if(j==40)

第6页(共41页)

{j=0; c--; } }

定时时间为 ,中断源编号为 ,并简要说明其功能 。 23.#include main() {

TMOD=0x01; TH0=0XB1; TL0=0XE0; EA=0; ET0=0; TR0=1; while(1) {if(TF0==1) {TF0=0;

TH0= ; TL0= ; P1_0=~P1_0; } } }

说明其功能 。 24.

#include main( ) {while(1)

switch (P1)

{case 0xfe :P2=0x01;break; case 0xfd:P2=0x02; break; case 0xfb:P2=0x04; break; case 0xf7:P2=0x08; break; case 0xef:P2=0x10; break; case 0xdf:P2=0x20; break; case 0xbf:P2=0x40; break; case 0x7f:P2=0x80; break; default:P2=0xff; }}

P1=0xbf时P2= , P1=0xfe时P2= , P1=0xbe时 P2= 。 第三题 改错

1.本小题共有5处错误,请在不删减原程序指令条数基础上加以改正,请将错误行号和改

第7页(共41页)

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

行号 程序

1 include 2 void ys(void) 3 {

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

11 unsigned char j,k; 12 j=0x01

13 for(k=0;k<8;k++) 14 { 15 P2=~j; 16 ys; 17 j=j<<1; 18 } 19 }

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

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

2.本小题共有5处错误,请在不删减原程序指令条数基础上加以改正,请将错误行号和改

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

行号 程序

1 #include 2 unsigned char i; 3 bit D1=P1^1;

第8页(共41页)