单片机与应用操作考核办法

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

《单片机与应用》操作考核办法

考虑到课程特点与学生学习情况,采用如下考查办法:

出9个试题,每个学生随机抽取一个,要求完成硬件设计、软件设计和系统调试。考核结果按百分制计(硬件设计40%,软件设计40%,调试20%)。

考核时间:50分钟考核地点:躬行楼303(微控制技术实验室)

参考题目

1、循环点亮3个发光二极管,时间间隔可用串口数据控制。(上位机采用scomm32工具发送时间间隔控制数据:0x01:时间间隔1S;0x02:时间间隔2S。默认时间间隔为1S,fosc=11.0592MHz)

2、试用8051单片机产生周期为2ms,占空比可通过串口数据控制的矩形波。(上位机采用scomm32工具发送占空比控制数据:0x01:占空比为25%;0x02:占空比为75%。默认占空比为25%,fosc=11.0592MHz)

3、试用8051单片机产生频率可通过串口数据设置的方波。(上位机采用scomm32工具发送频率控制数据:0x01:f=100Hz;0x02:f=200Hz。默认f=100Hz,fosc=11.0592MHz)

4、现有1个发光二极管D0,试通过串口数据控制D0的点亮。(上位机采用scomm32工具发送控制数据,0x01~D0点亮,0x00~D0熄灭)。

5、现有1个七段LED数码管,试用串口控制数码管的显示。(上位机采用scomm32工具发送数字0~9,数码管显示对应数字)。

6、试用8051单片机实现可通过串口控制不同的循环状态输出。(上位机采用scomm32工具发送控制数据,0x01:循环输出001→010→100;0x02:循环输出001→100→010;默认状态输出为001→010→100。各状态时间间隔1S。fosc=11.0592MHz)

7、试用8051单片机实现可通过串口控制不同的循环状态输出。(上位机采用scomm32工具发送控制数据,0x01:循环输出001→011→010→110→100→101;0x02:循环输出001→101→100→110→010→011;默认状态输出为001→011→010→110→100→101。各状态时间间隔1S。fosc=11.0592MHz)

8、试用8051单片机设计一可通过串口控制8个发光二极管循环点亮的程序,时间间隔为1S。(上位机采用scomm32工具发送控制数据,0x01:循环左移;0x02:循环右移;默认为循环左移。fosc=11.0592MHz)9、编写8051程序检测S0、S1按键状态,并将按键状态通过串口上传PC机。(上位机采用scomm32工具观察按键状态,若S0按下:上传0x00;若S1按下:上传0x01;只有在按键按下瞬间才上传一个数据,按住、不按、松开瞬间都不上传数据)。

物理与电子工程学院

2013.6.9

试题一

#include "reg51.h"

#define COUNT 46080

static unsigned char a=0x01;

void sbuf_init(void)

{

SCON=0x50;

PCON=0x00;

TMOD=(TMOD&0x0f)|0x20;

TH1=0xfd;

TL1=0xfd;

TR1=1;

}

void UART_ISR(void) interrupt 4

{

if(RI)

{

RI=0;

a=SBUF;

SBUF=a;

while(TI==0);

TI=0;

}

}

union MY

{

unsigned int a;

unsigned char b[2];

};

union MY x;

void TIMER0_ISR (void) interrupt 1

{

unsigned char LED[3]={0XFE,0XFD,0XFB};

static unsigned char i=0,j=0;

TH0=x.b[0];

TL0=x.b[1];

sbuf_init();

ES=1;

EA=1;

j++;

if (a==0x01)

{

P2=LED[i];

if(j==20)

{

i++;

if(i==3)

i=0;

j=0;

}

}

else if (a==0x02)

{

P2=LED[i];

if(j==40)

{

i++;

if(i==3)

i=0;

j=0;

}

}

}

void main(void)

{

TMOD=(TMOD&0xf0)|0x01;

x.a=65536-COUNT;

TH0=x.b[0];

TL0=x.b[1];

ET0=1;

EA=1;

TR0=1;

while(1);

}

试题二

#include "reg51.h"

sbit P2_0=P2^0;

#define COUNT 460

unsigned char a=0x01;

static unsigned char i=0;

void TIMER0_ISR (void) interrupt 1 {

TH0=(65536-COUNT)/256;

TL0=(65536-COUNT)%256;

相关文档
最新文档