《《單片機(C51)技術》C卷 復習題》由會員分享,可在線閱讀,更多相關《《單片機(C51)技術》C卷 復習題(7頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、《單片機(C51)技術》C卷 復習題
2分,運行結果循序次數(shù)為,循環(huán)結束時x= ,y= 。
2.程序
unsigned char x,y,a[5]={23,67,12,78,43} ;
x=0;
for(y=0;y{
if(x>a[y])
x=a[y];
}
運行結果x= ;y= 。
3.程序
unsigned char x,y;
if(x>45 || xif(xelse y=5;
else y=3;
運行結果當x的值為20時,y= ;當x=45時,y= ;
4.程序
#include
int a[10]={0xc0,0xf9,0xa4,0xb0,0x99,0
2、x92,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%10;
for(i=0;i{
1 頁( 共4 頁)
P3=b[i];
P2=a[x[i]];
for(k=120;k>0;k--);
}
} }
void ds() interrupt 3
{
TH1=0X9E;
TL1=0X58;
j++
3、;
if(j==40)
{j=0;
c--;
}
}
運行結果定時時間為,中斷源編號為,并簡要說明其功能。
三、本小題共有10處錯誤,請在不刪減原程序指令條數(shù)基礎上加以改正,請將錯誤行號和改正后的結果寫在對應行后的空白處。(每空1分,錯改漏改均不得分,共20分。)
行號程序
1 #include
2 sbit led[]
3 ={0xfe,0xfd,0xfb,0xf7,0x7f,0xbf,0xdf,0xef};
4 void ys(char a);
5 {
6 unsigned char j,k;
7 for(i=a;i>0;i--)
8 for(j=200;j
4、>0;j--)
9 for(k=250;k>0;k--)
10 }
11 main()
12 {
13 bit i;
14 for(i=0;i15 {
16 p1=led[i];
17 ys(10)
18 }} }
①錯誤行號修改為
②錯誤行號修改為
③錯誤行號修改為
④錯誤行號修改為
⑤錯誤行號修改為
⑥錯誤行號修改為
⑦錯誤行號修改為
⑧錯誤行號修改為
⑨錯誤行號修改為
⑩錯誤行號修改為
四、修改程序與完善程序:(本大題共2小題,每小題10分,共20分。)
1.將主程序中斜體部分的程序語句修改為函數(shù),將答案寫在程序右邊的空白處。功能:從中間到兩端流
5、水燈。
#include
unsigned char x=0;
delay05s()
{
unsigned char i,j,k;
for(i=5;i>0;i--)
第 2 頁( 共4 頁)
for(j=200;j>0;j--)
for(k=250;k>0;k--);
}
main()
{
P2=0X00;
while(1)
{
x++;
if(x==5)
{x=1;}
switch(x)
{
case 1:P2=0x81;break;
case 2:P2=0x42;break;
case 3:P2=0x24;break;
case 4:P2=0
6、x18;break;
}
delay05s();
}
}
2.完成以下程序的編寫
功能說明:采用中斷定時器/計數(shù)器T0編程,實現(xiàn)從P1.0口輸出周期為60ms的高低電平,使發(fā)光二極管不斷閃爍。
#includebit i;
sbit k1=P1^0;
void chushihua(void )
{ TMOD=0x01;
EA=1;
ET0=1;
TR0=1;
TH0=(65536-60000)/256;
TL0=(65536-60000)%256;
}
void main (void)
{ chushihua();
}
void t0(void) interrupt
{
i=~i;
}
五、編程題:共20分(參見電子版試卷第五題編程)
本題為開放型試題,不限編程方法。
第 3 頁( 共4 頁)
第 4 頁( 共4 頁)