技能抽考试题复习进程.docx

上传人:b****2 文档编号:25892139 上传时间:2023-06-16 格式:DOCX 页数:26 大小:53.70KB
下载 相关 举报
技能抽考试题复习进程.docx_第1页
第1页 / 共26页
技能抽考试题复习进程.docx_第2页
第2页 / 共26页
技能抽考试题复习进程.docx_第3页
第3页 / 共26页
技能抽考试题复习进程.docx_第4页
第4页 / 共26页
技能抽考试题复习进程.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

技能抽考试题复习进程.docx

《技能抽考试题复习进程.docx》由会员分享,可在线阅读,更多相关《技能抽考试题复习进程.docx(26页珍藏版)》请在冰豆网上搜索。

技能抽考试题复习进程.docx

技能抽考试题复习进程

 

技能抽考试题

试题3.21按键控制彩灯软件开发

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,编写完整程序实现如下模拟彩灯,开发板从左至右4个按键分别为S1-S4,从上至下8个灯为L1-L8,按下S1键8只LED小灯以1HZ频率闪烁,按下S2键8只灯奇偶交替点亮,间隔0.5S,按下S3键,L1-L4与L5-L8灯交替点亮,间隔0.5s,按下S4键熄灭所有灯。

试题3.22计数器软件开发

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,编写完整程序实现如下模拟计数器功能,开发板4个按键从左至右分别为S1-S4,开发板上电复位后显示0,按下S3显示数据加1,按下S4数据显示减1,当计数小于0时显示0,大于9时,显示9。

#include

sbitspeak=P1^6;

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

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

unsignedchardata_display[5];

intdat_count=0;

voiddelay(unsignedchartime)

{

unsignedchari,j;

for(i=0;i

{

for(j=0;j<120;j++)

{}

}

}

voiddata_change(void)

{

data_display[0]=dat_count%10;

}

voidINT0_init(void)

{

IT0=1;

EA=1;

EX0=1;

}

voidINT1_init(void)

{

IT1=1;

EA=1;

EX1=1;

}

voiddisplay(unsignedchardat,unsignedcharbit_code)

{

P2=0xff;

P0=seg_dm[dat];

P2=bit_code;

delay(5);

}

main()

{

unsignedchari;

INT0_init();

INT1_init();

while

(1)

{

data_change();

for(i=0;i<1;i++)

display(data_display[i],bit_line[i]);

}

}

voidInit0()interrupt0using0

{

EX0=0;

if(dat_count<9)

{

dat_count++;

speak=1;

}

else

{

dat_count=9;

speak=0;

}

EX0=1;

}

voidInit1()interrupt2using1

{

EX1=0;

if(dat_count>0)

{

dat_count--;

speak=1;

}

else

{

dat_count=0;

speak=0;

}

EX1=1;

}

试题3.23按键控制组合灯软件开发

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,编写完整程序实现如下功能,4个按键分别控制2个灯,4个按键从左至右分别称为S1-S4,单片机引脚1、2所接灯分别为LED1、LED2,按下S1控制LED1亮灭变化(当前灭则点亮,当前亮则变灭),S2控制LED2亮灭变化,S3开所有灯,S4关闭所有灯。

#include

sbitLED1=P1^0;

sbitLED2=P1^1;

sbitS1=P3^0;

sbitS2=P3^1;

sbitS3=P3^2;

sbitS4=P3^3;

unsignedcharkey;

voidkey1();

voidkey2();

voidkey3();

voidkey4();

voiddelay(unsignedcharx)

{

inti,j;

for(i=0;i

for(j=0;j<120;j++);

}

voidmain()

{

while

(1)

{

if(P3!

=0xff)

{

delay(10);

if(P3!

=0xff)

{

key=~P3;

while(P3!

=0xff);

}

}

switch(key)

{

case0x01:

key1();key=0xff;break;

case0x02:

key2();key=0xff;break;

case0x04:

key3();break;

case0x08:

key4();break;

}

}

}

voidkey1()

{

LED1=!

LED1;

}

voidkey2()

{

LED2=!

LED2;

}

voidkey3()

{

LED1=0;

LED2=0;

}

voidkey4()

{

LED1=1;

LED2=1;

}

试题3.24计数器软件开发

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,编写程序,实现如下功能:

对外部的方波信息进行0~99循环计数,每来一个脉冲计数加1,并将计数结果显示在数码管上。

试题3.25小型电子产品软件开发

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,编写程序实现如下功能,单片机开发板上从左至右4个按键分别为S1-S4,按下S1从单片机第1个引脚上输出频率为1KHz的方波,再按下S1则停止输出方波;方波频率误差小于2%。

试题3.26秒表软件开发

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,编写程序如下功能,开发板上4键从左至右为S1-S4,上电后,开始时显示“00”;利用S1按键后启动计时;S2按键后停止计时;S3按键后计时归零;最大计时为99秒。

计时误差小于0.5秒,显示稳定。

试题3.27倒计时秒表软件开发

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,编写程序,使秒表在上电/复位后,具有:

开始时显示“99”并开始倒计时,当计时到0S时,数码管显示“00”,同时蜂鸣器报警长鸣,倒计时误差小于0.5秒。

#include

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

unsignedchardat_display[2];

unsignedcharbit_array[2]={0xfe,0xfd};

unsignedcharseconds=99,count;

sbitspeak=P1^6;

voiddelay(unsignedinttime)

{

inti,j;

for(i=0;i

for(j=0;j<120;j++);

}

voidT0_init(void)

{

TMOD=0x01;

TH0=(65536-10000)/256;

TL0=(65536-10000)%256;

TR0=1;

}

voidint_init(void)

{

EA=1;

ET0=1;

}

voiddat_change(void)

{

dat_display[1]=seconds/10;

dat_display[0]=seconds%10;

}

voiddisplay()

{

P2=0xff;

P2=~0x01;

P0=duanma[seconds%10];

delay

(2);

P2=~0x02;

P0=duanma[seconds/10];

delay

(2);

}

voidseconds_01(void)

{

if(count==10)

{

count=0;

seconds--;

}

}

voidseconds_99(void)

{

if(seconds==0)

{

TR0=0;

}

}

voidmain()

{

T0_init();

int_init();

while

(1)

{

seconds_01();

seconds_99();

dat_change();

if(seconds==0)

{

P2=0xff;

delay(4000);

speak=0;

delay(3000);

speak=1;

}

display();

}

}

voidtime_t0()interrupt1

{

TH0=(65536-10000)/256;

TL0=(65536-10000)%256;

count++;

}

试题3.28游客流量计数器设计

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,编写程序,实现游客流量计数器功能,要求如下:

用数码管理显示3数组2位数,分别表示进入人数、出去人数、滞留人数,当按下S1键进入人数加,S2键按下出去人加1,同时出入人数有变化对应的滞留人数也应更新,数值显示结果要与实际应用相结合。

试题3.29单片机与PC机通信软件开发

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,编程实现如下功能:

利用给定的初始化串口程序,编程实现在单片机上以9600的波特率循环向串口发送字符’0’~’9’,并利用USB转232串口线和电脑串口调试助手软件,在电脑上显示接收数据。

试题3.30单片机与PC机通信软件开发

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,编程实现如下功能:

利用给定的初始化串口程序,编程实现单片机接收电脑串口发送的数字(0~9),并开发板上用一位数码管显示当前接收到的数据,波特率为9600。

试题3.31多种特效流彩灯设计

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,利用P1口的8个LED灯,编写程序实现3种特效的彩灯,采灯效果分别为:

LED单灯流水左移、LED单灯流水右移、LED从左至右逐个点亮,3种特效循环循环切换。

试题3.32按键发音程序设计

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,利用2个按键S1、S2,在开发板上编写程序实现如下功能,当按下S1、S2时蜂鸣器发出“哆”、“唻”的声音。

试题3.33温度计程序设计

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,编写程序实现如下功能,利用给定的读温度函数,编写程序在数码管上显示实时温度,当温度大于35度时,开启蜂鸣器报警(长响)。

试题3.34时钟程序设计

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,编写程序实现如下功能,利用给定的读写时间函数,编写程序在数码管上显示时、分、秒,当时间为整点时,开启蜂鸣器响3S。

试题3.35简易计数器程序设计

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,编写程序实现简易计算器功能,具体功能如下:

利用开发板上的矩阵键盘的2个按键实现0~99的加减计数,当按下1号键时计数值加1,计数值为99时加操作无效;按下2号键时计数值减1,计数值为0时减操作无效;计数结果显示在数码管上。

试题3.36简易闹钟设计

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,编写程序实现如下功能,利用给定的读写时间函数,编写程序在数码管上显示时、分、秒,当时间为12:

30:

00时,LED发光二极管闪烁5S,闪烁频率2HZ。

试题3.37啤酒生产计数器程序设计

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,设计一个啤酒生产计数器,具体要求如下:

利用实验板平台,通过P3.4检测并计数,计数时啤酒检测信号可以通过P3.4对应的按键模拟,每计一瓶显示加1,当一箱12瓶满时,蜂鸣器响3S,当再次按键时重新循环计数。

#include

#defineucharunsignedchar

#defineuintunsignedint

uintBoxNum=0;//ÏäÊý

ucharnum=0;//Æ¿Êý

sbitled=P1^0;//¹â±¨¾¯

sbitbell=P1^6;//Éù±¨¾¯

//sbitkey=P3^4;

voiddelay(unsignedchart);

voidSounder();

voidDisplay();

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

voidmain()

{

EA=1;

ET0=1;

ET1=1;//¿ªT0¡¢T1ÖжÏ

PT0=1;

TMOD=0x26;//00100110T1¼Æʱ·½Ê½2£»T0¼ÆÊý·½Ê½£¬·½Ê½2

TH0=255;

TL0=255;

TH1=0x06;

TL1=0x06;//¶¨Ê±250us

TR1=1;

TR0=1;//Æô¶¯T1¡¢T0

while

(1)

{

if(num==12)

Sounder();

}

}

voidDisplay()

{

P2=0xdf;//´Ó×ó±ß¿ªÊ¼×î¸ßλ

P0=table[BoxNum/1000];//ǧλ

delay

(1);

P2=0xff;

P2=0xef;

P0=table[(BoxNum%1000)/100];//°Ùλ

delay

(1);

P2=0xff;

P2=0xf7;

P0=table[((BoxNum%1000)%100)/10];//ʮλ

delay

(1);

P2=0xff;

P2=0xfb;

P0=table[((BoxNum%1000)%100)%10];//¸öλ

delay

(1);

P2=0xff;

P2=0xfd;

P0=table[num/10];//ʮλ

delay

(1);

P2=0xff;

P2=0xfe;

P0=table[num%10];//¸öλ

delay

(1);

P2=0xff;

}

voiddelay(unsignedchart)

{

unsignedchari;

while(t--)

{

for(i=0;i<125;++i);//ÑÓʱԼ1ms

}

}

voidSounder()

{uchari;

for(i=0;i<30;i++)

{

bell=~bell;

led=~led;

delay(20);

}

}

voidINT_T0(void)interrupt1

{

if(num<12)

{

num++;

}

else

{

BoxNum++;

num=1;

}

}

voidINT_T1(void)interrupt3//±ÜÃâÊýÂë¹ÜÉÁ˸

{

staticuchari;

i++;

if(i==40)

{Display();i=0;}//10msµ÷ÓÃÒ»´ÎÏÔʾ¸üгÌÐò

}

试题3.38投票计数器程序设计

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,设计制作一个投票计数器,用2组2数码管分别实时显示A、B的投票票数,LED发光二极管D1、D2分别指示A、B的投票结果,S1~S3分别为A投票键、B投票键、票数比较键。

具体功能如下:

当按下S1键,A的票数加1;当按下S2键,B的票数加1;当按下S3键票数多的指示灯点亮,同时AB票数清0,当票数相等时S3键操作无效,且AB的投票数值不超过99

试题3.39按键时间间隔记录仪程序设计

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,设计制作一个反映时间测试仪,具体功能如下:

测试连续2次按键的时间,按下第1次键时,发光二极管D1点视,按下第2次按键时间D2点亮,同时用数码管显示前后两次的时间间隔,精确到0.1S。

#include

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

unsignedchardat_display[2];

unsignedcharbit_array[2]={0xfe,0xfd};

unsignedcharseconds=0,count;

unsignedcharcs=0;

voiddelay(unsignedintz)

{

while(z--);

}

voidT0_init()

{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TR0=0;

}

voidint_init()

{

EA=1;

ET0=1;

}

voiddat_change(void)

{

dat_display[1]=seconds/10;

dat_display[0]=seconds%10;

}

voiddisplay_1bit(unsignedcharseg_code,unsignedcharbit_code)

{

P2=0xff;

P0=seg_code;

P2=bit_code;

delay(200);

}

voiddisplay()

{

unsignedchari;

for(i=0;i<2;i++)

display_1bit(led_seg_code[dat_display[i]],bit_array[i]);

}

voidseconds_01(void)

{

if(count==10)

{

count=0;

seconds++;

}

}

voidcs_1(void)

{

if(cs==1)

{

TR0=1;

}

}

voidcs_2(void)

{

if(cs==2)

{

TR0=0;

}

}

unsignedcharkey_scane(void)

{

unsignedcharkey_value;

P3=0xff;

key_value=P3;

if(key_value!

=0xff)

{

delay(10);

P3=0xff;

key_value=~P3;

while(P3!

=0xff);

returnkey_value;

}

}

voidkey1(void)

{

cs++;

}

voidkey_change(unsignedcharval)

{

if(val==0x01)

{

key1();

}

}

voidmain()

{

T0_init();

int_init();

while

(1)

{

key_change(key_scane());

dat_change();

display();

cs_1();

cs_2();

seconds_01();

display();

if(seconds==0)

{

P2=0xff;

delay(4000);

}

P0=0x80;

}

}

voidtime_t0()interrupt1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

count++;

}

#include

#include

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

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

unsignedcharwei[4];

intcount,temp,num;

voidDelay2ms();

voiddisplay();

inti;

voidmain()

{

EA=1;

ET0=1;

TMOD=0x08;

TH0=7192/32;

TL0=7192%32;

TR0=1;

while

(1)

{

if(pclse==1)

{

P2=0xF0;

num=temp;

}

else

{

temp=0;

display();

}

}

}

voidTimer0()interrupt1

{

TH0=7192/32;

TL0=7192%32;

count++;

if(count>=10)

{

temp++;

count=0;

}

}

voiddisplay()

{

wei[0]=num%10;

wei[1]=num/10%10;

wei[2]=num/100%10;

wei[3]=num/1000;

for(i=0;i<4;i++)

{

P2=~wei_code[i];

P0=duan_code[wei[i]];

Delay2ms();

}

}

voidDelay2ms()//@12.000MHz

{

unsignedchari,j;

_nop_();

_nop_();

i=24;

j=84;

do

{

while(--j);

}while(--i);

}

试题3.40简易减法器设计

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,编写程序实现一位数简易减法器功能,具体功能如下:

使用开发板上的矩阵键盘依次输入被减数、减号、减数、等于号,并将输入数字和运算符及运算结果,分别5位数码管从左至右依次显示出来。

减号用数码管G笔断表示、等于号用A、G笔段表示,程序不考虑容错处理,即输入时被减数必须大于被减数。

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

当前位置:首页 > 医药卫生 > 预防医学

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

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