单片机上机操作考试题部分答案Word格式文档下载.docx

上传人:b****6 文档编号:20223221 上传时间:2023-01-21 格式:DOCX 页数:35 大小:21.35KB
下载 相关 举报
单片机上机操作考试题部分答案Word格式文档下载.docx_第1页
第1页 / 共35页
单片机上机操作考试题部分答案Word格式文档下载.docx_第2页
第2页 / 共35页
单片机上机操作考试题部分答案Word格式文档下载.docx_第3页
第3页 / 共35页
单片机上机操作考试题部分答案Word格式文档下载.docx_第4页
第4页 / 共35页
单片机上机操作考试题部分答案Word格式文档下载.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

单片机上机操作考试题部分答案Word格式文档下载.docx

《单片机上机操作考试题部分答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机上机操作考试题部分答案Word格式文档下载.docx(35页珍藏版)》请在冰豆网上搜索。

单片机上机操作考试题部分答案Word格式文档下载.docx

2.完成下面电路所示的功能,K1,K2对应两个开关按键。

P1口对应发光二极管的状态

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

K1=0,K2=0

K1=0,K2=1

K1=1,K2=0

K1=1,K2=1

#defineuintunsignedint

sbitk1=P3^2;

sbitk2=P3^3;

//延时

voiddelay(uintx)

uchari;

while(--x)

for(i=0;

i<

120;

i++);

while

(1)

if((k1==0)&

&

(k2==0))//K1、K2同时按下

{

P1=0x00;

delay(10);

}

elseif((k1==0)&

(k2==1))//K1按下,K2不按

P1=0xcc;

elseif((k1==1)&

(k2==0))//K2按下,K1不按

P1=0xf0;

else

P1=0xff;

3.在一个数码管上循环显示“H”“E”“L”“L”“O”,循环的时间为1s。

ucharcodetab[]={0xf6,0xf9,0xb8,0xb8,0xbf};

uchari=1;

voidt0Proc()interrupt1

TH0=0x3c;

TL0=0xb0;

if(++T_count==10)

P0=tab[i];

i=(i+1)%5;

TMOD=1;

P0=tab[0];

//初始化P0口

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

ucharcodetab[]={};

//学号自己设置

while(x--)

100;

uchark;

ucharwei=0x01;

P0=~tab[0];

P2=0x01;

delay(1000);

for(k=1;

k<

6;

k++)

wei=wei<

<

1;

P0=~tab[k];

//发送数字段码

P2=wei;

//发送位码

delay(1000);

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

voiddelay1s()

for(i=0;

10;

i++)

TH1=0x3c;

TL1=0xb0;

TR1=1;

//启动T1

while(!

TF1);

//判断T1有无请求

TF1=0;

uchart;

TMOD=0x10;

//选择T1计时

for(i=30;

i>

0;

i--)

t=(((i/10)<

4)|(i%10));

//高四位显示十位,低四位显示个位

P1=~t;

delay1s();

6.使用外中断0来控制,去实现下列功能。

其中K1为按键,P1口对应8个发光二极管的状态

无按键按下(循环)

有按键按下

ucharcodetab[]={0xcc,0x30};

voidint0Proc()interrupt0

P1=0xf0;

ucharj;

EX0=1;

IE0=1;

if(k1==1)//未按下

for(j=0;

j<

2;

j++)

{

P1=tab[j];

delay(500);

}

8.采用定时器方式1使得8个发光二极管按如下方式点亮,循环的时间为2s

ucharcodetab[]={0x0f,0xf0,0xcc,0x00};

if(++T_count==20)

i=(i+1)%4;

}

9.在一个数码管上循环显示“0”“1”“5”3个数字,循环的时间为1s。

ucharcodetab[]={0xbf,0x86,0xed};

voidintoProc()interrupt1

i=(i+1)%3;

10.在4个数码管上稳定显示出“A”“C”“E”“P”四个字符。

P0=0xf7;

//A

P2=0xb9;

//C

P3=0xf9;

//E

P1=0xf3;

//P

delay(500);

12.做一个20s的简易秒表,当按键K1按下时,秒表暂停计数,K2按下时,开始计数。

uchartab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

uchari=0;

voiddelay(intx)

//恢复定时器0初值

if(++T_count==10)//100ms*10=1s转换状态

i++;

P0=tab[i/10];

P2=tab[i%10];

if(i==20)

i=0;

{

P0=tab[i];

P2=tab[i];

TMOD=0x01;

if(k1==0&

k2==1)

EA=0;

ET0=0;

TR0=0;

break;

elseif(k1==1&

k2==0)

EA=1;

ET0=1;

TR0=1;

14.使用外中断1来控制,当无按键按下时8个发光二极管循环点亮,循环点亮的时间为1s,有按键按下时,8个发光二极管全部熄灭。

ucharcodetab[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};

//T0定时

voidT0Proc()interrupt1

P1=~tab[i];

i=(i+1)%8;

//INT1中断函数

voidInt1Proc()interrupt2

P1=0xff;

EA=0;

EX1=0;

IT1=0;

ET0=0;

TR0=0;

//主程序

EX1=1;

IT1=1;

P1=0xfe;

16.完成下面电路所示的功能,K1,K2对应两个开关按键。

if((k1==1)&

(k2==1))//都未按下0:

未按下,1:

按下

(k2==0))//k2按下,k1未按下

(k2==1))//k1按下,k2未按下

P1=0xcf;

(k2==0))//都按下

P1=0x55;

17.完成下面电路的功能,P1口对应发光二极管的状态,状态1显示的时间为1s,状态2显示的时间为2s,状态3显示的时间为3s,如此循环

状态1

状态2

状态3

ucharcodetab[]={0x05,0x06,0x03};

ucharState=0;

switch(State)

case0:

if(++T_count==10)

P1=~tab[i];

i=(i+1)%3;

T_count=0;

State=1;

break;

case1:

if(++T_count==20)

State=2;

case2:

if(++T_count==30)

i=1;

State=0;

P1=~tab[0];

18.彩灯系统,实现8个发光二极管从左到右点亮,每个发光二极管点亮的时间为2s,然后从右到左亮,每个发光二极管点亮的时间为1.5s.

ucharcodetab[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

ucharcodetab1[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};

P2=tab[i];

i=(i+1)%8;

if(i==7)

State=1;

}

if(++T_count==15)

P2=tab1[i];

State=0;

i=1;

P2=tab[0];

19.在4个数码管上显示出当天的日期。

ucharcodetab[]={0x06,0x5b,0x06,0x6f};

P2=tab[1];

P3=tab[2];

P1=tab[3];

delay(500);

20.完成下面电路的功能,P1口对应发光二极管的状态,状态1显示的时间为3s,状态2显示的时间为1s,状态3显示的时间为0.5s,状态4显示的时间为0.1s,如此循环

状态4

ucharcodetab[]={0x0c,0x0e,0x0f,0x00};

i=(i+1)%4;

if(++T_count==5)

State=3;

case3:

if(++T_count==1)

23.数码管数字显示控制程序设计。

控制要求:

用按键K1和K2分别控制数码管显示数字0~9的顺序,当按下K1键时按从0到9的顺序显示,当按下K2时按从9到0的顺序显示。

时间间隔均为1秒。

硬件电路如图所示。

ucharcodetab1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

ucharcodetab2[]={0x6f,0x7f,0x07,0x7d,0x6d,0x66,0x4f,0x5b,0x06,0x3f};

sbitk1=P1^0;

sbitk2=P1^1;

voidt0Proc

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 生物学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1