文档库 最新最全的文档下载
当前位置:文档库 › 技能抽考试题

技能抽考试题

技能抽考试题
技能抽考试题

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

一、任务

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

试题计数器软件开发

一、任务

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

#include<>

sbit speak=P1^6;

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

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

unsigned char data_display[5];

int dat_count=0;

void delay(unsigned char time)

{

unsigned char i,j;

for(i=0;i

{

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

{}

}

}

void data_change(void)

{

data_display[0]=dat_count%10;

}

void INT0_init(void)

{

IT0=1;

EA=1;

EX0=1;

}

void INT1_init(void)

{

IT1=1;

EA=1;

EX1=1;

}

void display(unsigned char dat,unsigned char bit_code) {

P2=0xff;

P0=seg_dm[dat];

P2=bit_code;

delay(5);

}

main()

{

unsigned char i;

INT0_init();

INT1_init();

while(1)

{

data_change();

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

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

}

}

void Init0() interrupt 0 using 0

{

EX0=0;

if(dat_count<9)

{

dat_count++;

speak=1;

}

else

{

dat_count=9;

speak=0;

}

EX0=1;

}

void Init1()interrupt 2 using 1

{

EX1=0;

if(dat_count>0)

{

dat_count--;

speak=1;

}

else

{

dat_count=0;

speak=0;

}

EX1=1;

}

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

一、任务

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

#include<>

sbit LED1=P1^0;

sbit LED2=P1^1;

sbit S1=P3^0;

sbit S2=P3^1;

sbit S3=P3^2;

sbit S4=P3^3;

unsigned char key;

void key1();

void key2();

void key3();

void key4();

void delay(unsigned char x)

{

int i,j;

for(i=0;i

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

}

void main()

{

while(1)

{

if(P3!=0xff)

{

delay(10);

if(P3!=0xff)

{

key=~P3;

while(P3!=0xff);

}

}

switch(key)

{

case 0x01:key1();key=0xff;break;

case 0x02:key2();key=0xff;break;

case 0x04:key3();break;

case 0x08:key4();break;

}

}

}

void key1()

{

LED1=!LED1;

}

void key2()

{

LED2=!LED2;

}

void key3()

{

LED1=0;

LED2=0;

}

void key4()

{

LED1=1;

LED2=1;

}

试题计数器软件开发

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,编写程序,实现如下功能:对外部的方波信息进行0~99循环计数,每来一个脉冲计数加1,并将计数结果显示在数码管上。

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

一、任务

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

试题秒表软件开发

一、任务

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

试题倒计时秒表软件开发

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,编写程序,使秒表在上电/复位后,具有:开始时显示“99”并开始倒计时,当计时到0S时,数码管显示“00”,同时蜂鸣器报警长鸣,倒计时误差小于秒。

#include<>

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

unsigned char dat_display[2];

unsigned char bit_array[2]={0xfe,0xfd};

unsigned char seconds=99,count;

sbit speak=P1^6;

void delay(unsigned int time)

{

int i,j;

for(i=0;i

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

}

void T0_init(void)

{

TMOD=0x01;

TH0=(65536-10000)/256;

TL0=(65536-10000)%256;

TR0=1;

}

void int_init(void)

{

EA=1;

ET0=1;

}

void dat_change(void)

{

dat_display[1]=seconds/10; dat_display[0]=seconds%10; }

void display()

{

P2=0xff;

P2=~0x01;

P0=duanma[seconds%10]; delay(2);

P2=~0x02;

P0=duanma[seconds/10]; delay(2);

}

void seconds_01(void)

{

if(count==10)

{

count=0;

seconds--;

}

}

void seconds_99(void) {

if(seconds==0)

{

TR0=0;

}

}

void main()

{

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();

}

}

void time_t0() interrupt 1

{

TH0=(65536-10000)/256;

TL0=(65536-10000)%256;

count++;

}

试题游客流量计数器设计

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,编写程序,实现游客流量计数器功能,要求如下:用数码管理显示3数组2位数,分别表示进入人数、出去人数、滞留人数,当按下S1键进入人数加,S2键按下出去人加1,同时出入人数有变化对应的滞留人数也应更新,数值显示结果要与实际应用相结合。

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

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,编程实现如下功能:利用给定的初始化串口程序,编程实现在单片机上以9600的波特率循环向串口发送字符’0’~’9’,并利用USB转232串口线和电脑串口调试助手软件,在电脑上显示接收数据。

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

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,编程实现如下功能:利用给定的初始化串口程序,编程实现单片机接收电脑串口发送的数字(0~9),并开发板上用一位数码管显示当前接收到的数据,波特率为9600。

试题多种特效流彩灯设计

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,利用P1口的8个LED灯,编写程序实现3种特效的彩灯,采灯效果分别为:LED单灯流水左移、LED单灯流水右移、LED从左至右逐个点亮,3种特效循环循环切换。

试题按键发音程序设计

一、任务

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

试题温度计程序设计

一、任务

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

试题时钟程序设计

一、任务

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

试题简易计数器程序设计

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,编写程序实现简易计算器功能,具体功能如下:利用开发板上的矩阵键盘的2个按键实现0~99的加减计数,当按下1号键时计数值加1,计数值为99时加操作无效;按下2号键时计数值减1,计数值为0时减操作无效;计数结果显示在数码管上。

试题简易闹钟设计

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,编写程序实现如下功能,利用给定的读写时间函数,编写程序在数码管上显示时、分、秒,当时间为12:30:00时,LED发光二极管闪烁5S,闪烁频率2HZ。

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

一、任务

在下列开发板硬件(原理图见pdf文档)基础上,设计一个啤酒生产计数器,具体要求如下:利用实验板平台,通过检测并计数,计数时啤酒检测信号可以通过对应的按键模拟,每计一瓶显示加1,当一箱12瓶满时,蜂鸣器响3S,当再次按键时重新循环计数。

#include <>

#define uchar unsigned char

#define uint unsigned int

uint BoxNum=0; //??êy

uchar num=0; //??êy

sbit led=P1^0;//1a±¨?ˉ

sbit bell=P1^6; //éù±¨?ˉ

//sbit key=P3^4;

void delay(unsigned char t);

void Sounder();

void Display();

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

void main()

{

EA=1;

ET0=1;

ET1=1; //?aT0?¢T1?D??

PT0=1;

TMOD=0x26;//0010 0110 T1??ê±·?ê?2£?T0??êy·?ê?£?·?ê?2

TH0=255;

TL0=255;

TH1=0x06;

TL1=0x06;//?¨ê±250us

TR1=1;

TR0=1;//???ˉT1?¢T0

while(1)

{

if(num==12)

Sounder();

}

}

void Display()

{

P2=0xdf;//′ó×ó±??aê?×?????

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;

}

void delay(unsigned char t)

{

unsigned char i;

while(t--)

{

for(i=0;i<125;++i); //?óê±??1ms

}

}

void Sounder()

{ uchar i;

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

{

bell=~bell;

led=~led;

delay(20);

}

}

void INT_T0(void) interrupt 1

{

if(num<12)

{

num++;

}

else

{

BoxNum++;

num=1;

}

}

void INT_T1(void) interrupt 3//±ü?aêy??1üéá??

{

static uchar i;

i++;

if(i==40)

{Display();i=0;} //10msμ÷ó?ò?′???ê??üD?3ìDò

}

试题投票计数器程序设计

一、任务

在下列开发板硬件(原理图见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

相关文档