单片机上机操作考试题及答案.doc

单片机上机操作考试题及答案.doc

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共55页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

单片机上机考试试题

1.使得8个发光二极管循环点亮,采用定时器方式0使得每个发光二极管点亮的时间为0.5s。

#includereg51.h

intcount=0;

intminute=0;

inttemp;

charcodestyle[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};

voiddesplay()

{

temp=minute%8;

P0=style[temp];

}

voidtoProc()interrupt1

{

count++;

TH0=0x0c;

TL0=0x78;

}

voidmain()

{

TMOD=0;

TH0=0x0c;

TL0=0x78;

TR0=1;

ET0=1;

EA=1;

while(1)

{

if(count==100)

{

minute++;

count=0;

}

desplay();

}

}

2.完成下面电路所示的功能,K1,K2对应两个开关按键。P1口对应发光二极管的状态

P

P

P

P

P

P

P

P

K1=0,K2=0

K1=0,K2=1

K1=1,K2=0

K1=1,K2=1

#includereg51.h

charcodestyle[4]={0x0,0xf0,0x33,0xff};

sbitP1_0=P1^0;

sbitP1_1=P1^1;

voidmain()

{

P0=0xff;

while(1)

{

if(P1_0==0P1_1==0)

{

P0=style[0];

}

if(P1_0==0P1_1==1)

{

P0=style[1];

}

if(P1_0==1P1_1==0)

{

P0=style[2];

}

if(P1_0==1P1_1==1)

{

P0=style[3];

}

}

}

“H”“E”“L”“L”“O”,循环的时间为1s。

#includereg51.h

charcodestyle[5]={0x89,0x86,0xc7,0xc7,0xc0};

inti;

intcount=0;

intsecond=0;

voidt0Pro()interrupt1

{

count++;

TL0=0xB0;

TH0=0x3c;

}

voiddisplay()

{

i=second%5;

P0=style[i];

}

voidmain()

{

TMOD=0x01;

EA=1;

TR0=1;

ET0=1;

TL0=0xB0;

TH0=0x3c;

while(1)

{

if(count==20)

{

second++;

count=0;

}

display();

}

}

4.在6个数码管上分别显示自己学号的后六位数字。

#includereg51.h

charcodecode1[]={0x4f,0x4f,0x01,0x06,0x06,0x4f};

sbitp1_0=P1^0;

charnum;

voiddelay(inttimer)

{

while(timer)

{

--timer;

}

}

voidmain()

{

inti;

while(1)

{

num=0xFE;

for(i=0;i6;i++)

{

P1=num;

P2=code1[i];

delay(1000);

num=(num1)|1;

}

}

}

5.做一个简易30s的倒计时秒表,秒表的显示通过8个发光二极管显示出来。

#includereg51.h

#includestdio.h

intcount;

count=0;

voidt0Proc()interrupt1

{

TH0=0x3c;

TL0=0xb0;

count++;

if(count==10)

{

P0=P0+1;

count=0;

if(P0==

文档评论(0)

文库店小二 + 关注
实名认证
内容提供者

优质教学及办公文档创作者,分享者。

1亿VIP精品文档

相关文档