技能抽考试题

  • 格式:doc
  • 大小:85.50 KB
  • 文档页数:28

下载文档原格式

  / 28
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

一、任务

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

相关主题